Venue: London
Johannes Thönes talks to Rebecca Parsons, Chief Technology Officer at ThoughtWorks, about evolutionary architecture. The practice of evolutionary software architecture means making decisions as late as possible (last responsible moment) and setting up cross-functional requirements that the architecture has to meet (architectural fitness function).
In the beginning, Parsons and Thönes introduce the term evolutionary architecture and explain the difference to emergent design. Parsons also explains why big design upfront is a bad idea and why we still need architecture even in Agile projects.
Parsons then describes five principles of evolutionary architecture (last responsible moment, architect and develop for evolvability, Postel’s law, architect for testability, and Conway’s law). She goes on to highlight three techniques of evolutionary architecture (database refactoring, continuous delivery, and microservices).
Show Notes
Related Links
- Episode 182: Domain-Specific Languages with Martin Fowler and Rebecca Parsons https://www.se-radio.net/2012/01/episode-182-domain-specific-languages-with-martin-fowler-and-rebecca-parsons/
- Rebecca’s posts from working for the “Technology for Development Office” of Unicef in Uganda http://rebeccaparsons.com/?cat=3
- Episode 166: Living Architectures with John Wiegand https://www.se-radio.net/2010/08/episode-166-living-architectures-with-john-wiegand/
- “[architecture is all the] ‘things that people perceive as hard to change.'” – Martin Fowler in Who Needs an Architect
- Episode 224: Technical Debt with Sven Johann https://www.se-radio.net/2015/04/episode-224-sven-johann-and-eberhard-wolff-on-technical-debt/
- Episode 186: Martin Fowler and Pramod Sadalage on Agile Database Development https://www.se-radio.net/2012/06/episode-186-martin-fowler-and-pramod-sadalage-on-agile-database-development/
- Episode 221: Jez Humble on Continuous Delivery https://www.se-radio.net/2015/02/episode-221-jez-humble-on-continuous-delivery/
- Episode 210: Stefan Tilkov on Architecture and Micro Services https://www.se-radio.net/2014/09/episode-210-stefan-tilkov-on-architecture-and-micro-services/
- Episode 213: James Lewis on Microservices https://www.se-radio.net/2014/10/episode-213-james-lewis-on-microservices/
- Building Microservices by Sam Newman http://www.amazon.com/Building-Microservices-Sam-Newman-ebook/dp/B00T3N7XB4/
- Continous Delievery by Jez Humble and David Farley http://www.amazon.com/Continuous-Delivery-Deployment-Automation-Addison-Wesley/dp/0321601912
- Refactoring Databases: Evolutionary Database Design by Scott Ambler, Pramod Sadalage http://www.amazon.com/Refactoring-Databases-Evolutionary-paperback-Addison-Wesley/dp/0321774515
- Rebecca’s website http://rebeccaparsons.com
- ThoughtWorks website http://www.thoughtworks.com
- Rebecca’s Twitter http:twitter.com/rebeccaparsons
Nice episode, thanks a lot. But I wonder if I got right what “design” is meaning for you. Code level, really? Algorithm design maybe? Software design in my understanding is the superset of modelling your domain (to meet functional requirements) and your architecture (NFRs) during software development process. Then, the term Big Design Up Front also perfectly makes sense, since you completely create the domain model and the architecture in advance.
[…] http://www.se-radio.net/2015/08/se-radio-episode-236-rebecca-parsons-on-evolutionary-architecture/ […]
[…] http://www.se-radio.net/2015/08/se-radio-episode-236-rebecca-parsons-on-evolutionary-architecture/ […]
Great episode, especially for an architect with focus on fitness functions which are also referred to as Quality Attributes by Software engineering Institute at CMU. Also known as Technical, Non Functional requirements. Unfortunately, still these are ignored by many in software industry focusing on functional requirements ONLY? Love the assertion that Continuous delivery lets us celebrate the features instead of the fact that new release didn’t break any functionality? Also like the premise that know what you know and make decision based on that and Know what you don’t know and avoid making decisions based on that! Simple yet hard to practice!
[…] Episode 236: Rebecca Parsons on Evolutionary Architecture […]