Rhythm coordinates the activities of the architecture stakeholders, and it helps spur progress of the architecture team. There are three elements to rhythmtempo, content, and quality. Tempo is the frequency with which the same type of handoff occurs between groups. Content is the delivery of value from one group to another. Quality is the set of activities needed to develop and maintain an architecture without deficiencies. When these three elements are present, an organization has a good rhythm.
Rhythm is important for architecture-based development because so many different organizations are involved in the development and use of an architecture. It is not possible to manage all of these groups from the top down, so rhythm is needed to coordinate these autonomous groups.
Rhythm has other benefits. First, it enables the architecture stakeholders to focus on transitions. Transitions are critical for success, but they frequently do not receive the attention they warrant. Rhythm also enables the architecture stakeholders to create an urgency that drives progress forward.
While there are many practices that support rhythm, such as regular builds popularized by Microsoft, there are a number of pitfalls. This chapter explored some of these pitfalls and described solutions to some of the problems encountered by organizations seeking to establish and maintain a rhythm.
Other Applicable Patterns and Antipatterns
There are other patterns that can be used to put the principle of Rhythm into practice, as well as antipatterns to avoid along the way. Table 4.2 lists organizational patterns and antipatterns cataloged in the 2000 edition of The Patterns Almanac [Rising00]. Table 4.3 lists antipatterns from Antipatterns: Refactoring Software, Architectures, and Projects in Crisis [BrownW98].
Table 4.2 Organizational Patterns and Antipatterns That Can Shape Rhythm [Rising00]
|BACKLOG [Beedle99]||PHASING IT IN [Coplien95]|
|CASUAL DUTY [Olson98]||PRODUCTION POTENTIAL [Taylor99]|
|COMPLETION HEADROOM [Cunningham96]||PROGRAMMING EPISODE [Cunningham96]|
|COUPLING DECREASES LATENCY [Coplien95]||PULSE [Taylor99]|
|DECOUPLE STAGES [Coplien95]||SACRIFICE ONE PERSON [Cockburn98]|
|DELIVERABLES TO GO [Taylor99]||SCHEDULE CHICKEN [Olson98]|
|DIVIDE AND CONQUER [Coplien95]||SCRUM MEETINGS [Beedle99]|
|DON'T INTERRUPT AN INTERRUPT [Coplien95]||SOMEONE ALWAYS MAKES PROGRESS [Cockburn98]|
|EARLY AND REGULAR DELIVERY [Cockburn98]||SPRINT [Beedle99]|
|EFFECTIVE HANDOVER [Taylor99]||TAKE NO SMALL SLIPS [Coplien95]|
|GET INVOLVED EARLY [DeLano98]||TAKE TIME [DeLano98]|
|GOLD RUSH [Cockburn98]||TEAM PER TASK [Cockburn98]|
|HUB, SPOKE, AND RIM [Coplien95]||TIME TO TEST [DeLano98]|
|INTERRUPTS UNJAM BLOCKING [Coplien95]||WORK GROUP [Cunningham96]|
|KEEP IT WORKING [Foote99]||WORK QUEUE [Cunningham96]|
|LONG POLE IN THE TENT [Olson98]||WORK QUEUE REPORT [Cunningham96]|
|MICROCOSM [Cockburn98]||WORK SPLIT [Cunningham96]|
|NAMED STABLE BASES [Coplien95]|
Table 4.3 Antipatterns That Can Derail Rhythm [BrownW98]
|ARCHITECTURE BY IMPLICATION|
|FEAR OF SUCCESS|
|SMOKE AND MIRRORS|
|THE GRAND OLD DUKE OF YORK|
|THROW IT OVER THE WALL|
|WALKING THROUGH A MINEFIELD|