A personal note from David
I believe that most software companies don’t pay attention to their system architecture until it’s too late. Agile development has revolutionised development and helped us focus on delivering value to users early and often, but there is a heavy price to pay when an organically grown, unsuitable architecture results.
Almost every company seems to run into the same blockers, with monolithic systems which don’t scale and become more fragile and harder to modify, exactly when the business needs to scale up quickly. Agile development teams need architectural support now more than ever.
This is why I started Simplified Systems Consulting. It’s possible to avoid most of these issues with the right architecture choices and techniques. I always look at the total cost of ownership of each piece of technology, including maintenance and eventual replacement. I treat people’s time as the most valuable resource and optimise for this.
Good architecture doesn’t have to be complex. As humans we have a natural tendency to complicate things. The flexible nature of software makes this a minefield which all organisations need to cross! Managing complexity is the #1 priority. By keeping it simple, organisations are able to move much more quickly and meet their goals.