My Insights: Architecture is a misunderstood discipline and there is a lot of push back from many, and especially people that adopted “partial views” of Agile: Agile manifesto never said “don’t do Architecture”! The fact is: there is always an architecture and as such we better make it explicitly part of our ways of working. By focusing on “good enough” architecture, as Stefan shares, we can make great steps to modernize how we do Architecture and make it an important part of the journey of building software products. As Grady Booch said: “Architecture represents the significant design decisions” and I am sure no one doubts we need to properly address those. It may mean take a few moments now, but that will enable us to go at much higher velocity for much longer!
Analysis & Summary
Stefan Tilkov showcases six different real world architectures where something “went wrong” and “lessons learned” from that (on technical but also organizational aspects). This is a condensed show of wisdom, where we can learn a lot about several patterns and practices to consider or avoid when architecting systems. Many of the remarks/lessons could be framed and placed on the walls of offices of people building software systems - e.g.: “If your design attempts to satisfy everyone, you’ll likely end up satisfying no one”.
Stefan concludes with some interesting remarks, namely: don’t be afraid of architecture, and don’t ignore it: it will always be there, so you better think of it explicitly instead of just “letting it organically & accidentally grow”, that is a recipe for disaster. Keep it simple but make sure that if you need to cope with different conditions its structures are evolvable; plus architecting does not mean “full upfront architecture”, it can be (and should be) an incremental process.