"Emerge your architecture" goes the agile mantra. Great, 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. Daily assessment is a simple process consisting of the following routine:
This process requires a new kind of infrastructure and associated skill that enable you to craft checkers fast and cheaply. The Moose analysis platform can be used for this purpose (http://moosetechnology.org). 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.