We are very pleased to share this episode on Agile Architecture featuring the return of Martin Fowler and the first visit from Rebecca Wirfs-Brock. You can hear Martin’s first interview with us (as part of the Agile Manifesto Author project) here.
Martin is a friend of the Uprising podcast and more information about him is found in our previous post with him. Rebecca is a person Martin himself says helped sharpen his agile mindset and someone from which he draws inspiration. She is the inventor of Responsibility-Driven Design, the first behavioral approach to object design. She also wrote about object role stereotypes in 1992 in a Smalltalk Report article and this influenced the UML notion of stereotypes. Her invention of the conversational (two-column) form of use cases was then popularized by Larry Constantine. Most of the more recent "driven" design approaches acknowledge their roots and the influence of RDD.
In this episode, Martin quickly makes reference to an article he wrote for the IEEE Software magazine, which you can read here. Martin and Rebecca provide a very clear definition of what architecture is to start the conversation which then leads into an honest conversation about how architecture is defined in the product’s unique context. They also provide great insight into the dynamics of what can be and cannot be considered architecture, and how the definition is fluid based on the engineering context.
We discuss the impact of unit tests on architecture, and to what degree tests and emergence define architecture, vs. up front design.
We also discuss the importance of domain models, and who should be involved in the definition of the domain model – specifically the requirement that the business folks be in the conversation.
As the interview draws to a close, we discuss the importance of documentation in agile architecture. The discussion covers the “the code is the documentation” stance to more comprehensive documentation stances.
This interview took place in May 2017 and was hosted by Ryan Lockard (@AgilePHL)