On July 16, I will give a talk at Agile Breakfast Luzern on Steering agile architecture. Here is the abstract:
"Emerge your architecture" goes the agile mantra. That’s great. Developers get empowered and fluffy papers make room for real code structure. But, how do you ensure the cohesiveness of the result?Testing, pair programming and code reviewing are the proposed means to approach this problem. However, testing is only concerned with the functional side of a system, and thus, it is not able to capture structural contracts. Pair programming and reviewing work well in the small, but they do not scale when you need to handle the millions of details entailed in modern systems.
The architecture of the system is important and it deserves special attention because it is too easy for it to go wrong in the long run. In this talk we sketch a method of approaching this challenge on a daily basis by:
- making architectural concerns explicit,
- crafting automated checkers,
- agreeing on findings, and
- distilling corrective actions.
Why daily? Because architectural integrity is about the most important long term technical asset you have.
This process requires a new kind of infrastructure and associated skills that enable you to craft checkers fast and cheaply. However, this is a technical detail. The critical benefit comes from making architectural decisions explicit, and from the daily actions of cleaning the state of the system.
This talk is targeted to both engineers and managers. We cover the basics of the process, and we accompany the conceptual descriptions with real life examples.