I recently watched a presentation by Peter Campbell from 2016’s O’Reilly Software Architecture Conference in London. The presentation was titled “Architecture as Belief.” The talk’s emphasis was on identifying and discussing the fundamental principles that underly decision-making as software architects. Peter did a very good job identifying that software architecture is not primarily about making…

Read More Principles of Software Engineering

Software Architecture is a term that is often used, and abused. Frequently it is used as shorthand for all the technical decisions that go into a software project. Other times it is used to refer to diagrams and documentation so disconnected from implementation that its usefulness is completely suspect. But, the reality is that every…

Read More What is Accidental Software Architecture?

I recently got to attend OSCON in Austin, Texas, and it was a great experience. Before the main conference I spent two days going through a hands-on Software Architecture training course led by Neal Ford. Towards the end of the training he took some time to discuss presentation techniques. In that portion of the training…

Read More Give The Talk; Don’t Talk About The Talk

By Pixabay, CC0 Licensed, https://www.pexels.com/photo/abstract-aluminum-architectural-architecture-210158/ Last week DHH wrote about his love for implicit code, and held up Rails as an example of the benefits. As someone who has been working with Ruby on Rails since 2006, I appreciate a lot of the benefits that Rails offers. However, I have also run up against some…

Read More The Right Abstraction Matters

Web development started for me with PHP and Perl when table-based layouts were considered only a half-way bad idea. In 2006 I began working with Ruby and Rails, and I focussed on content management systems and e-commerce. On the front-end I have worked with plain JavaScript, jQuery, MooTools, and a variety of other frameworks. Now,…

Read More A Rubyist’s Perspective on React

All our teams at Mavenlink care a great deal about effective development workflows. Since we work daily in a pair programming environment support for refining our process is never far away. Over the last several weeks I have talked with both Salt Lake City and San Francisco colleagues about ways to keep development flowing effectively.…

Read More Friends & Enemies of Effective Development

Code smells tend to attract developer attention. We have automated tooling for many languages that can spot the most obvious ones. But, code smells are low-level problems and have corresponding low-level solutions. But, what about when your application has a clear mismatch between the way it is built and the problem it is trying to…

Read More Domain Smells: Domain-Data Overcoupling