One of the problems in integrating Agile delivery or continuous delivery into enterprises is the differences in cycles. Companies have tended to run on annual budgeting cycles, longer strategic planning cycles, with some, although not always close coordination between the two. Product management tends to run on product cycles—that depending on the product type can be months to years (for airplanes for example). Projects tend to run in phases (traditional projects) or releases and iterations (Agile). Project Management Offices, reflecting upper management desires, run monthly, quarterly, and annual cycles.
There are several potential problems with all these cycles:
- the cycles don’t coordinate well
- Everyone wants everyone else to conform to their cycles
- Finance, particularly for public companies, seem to drive everyone else’s cycles
- Different kinds of projects and business initiatives need different cycles
Project cycles have always clashed with financial cycles, as projects just don’t naturally finish in December. The cost side of projects has traditionally been reported on a calendar basis, but the value side has often not started until the project has completed. Incompatible cycles have plagued developers and accountants alike, as for example, bi-weekly payrolls don’t match up nicely with monthly financial reporting.
Most cycle mis-matches are time related, but there are other types. For example, Agile cycles delivery partial results in 2-week iterations. By partial results I mean—working software, but only part of the application; architectural pieces, but not an entire architecture; requirements, but only details for the stories done during the iteration. However, many company governance cycles are built around completed results—a complete requirements document, a complete test plan, a completed data base design. Governance systems built around this latter model—make Agile projects difficult to “govern” in these organizations because of this cycle mismatch.
In my prior life, as a waterfall methodologist (yes, I admit it) in the 1980s, I used something called the Warnier-Orr methodology that included a bracket-style diagram called the Warnier-Orr diagram. Part of the methodology for resolving cycle conflicts was to determine the “lowest common denominator.” In a payroll system, for example, that needed to generate by-weekly paychecks and monthly financial statements, the lowest common denominator would be days. While this is a simple example, it’s amazing how many systems kept data at the wrong level of detail and then couldn’t generate all the required information for different cycles.
Many Agile organizations are using the 3-tier model for development shown in the graphic—Iteration (2 weeks), Release (3-6 months), and Roadmap (6-18 months) with corresponding differences in the granularity of the deliverables (stories, features, capabilities). What if the entire enterprise used this “Short-Horizon” model to actually run the business? What if everyone synchronized using 2-week iterations? What if everyone focused on 2-week delivery of partially completed products, documents, business initiatives, plans, and other business artifacts? I was talking with a client recently who was having cycle meshing problems—their product management group wasn’t syncing up very well with their Agile delivery teams. In other companies Devops initiatives are attempting to sync operations and release management more closely to delivery team releases.
When companies get serious about Enterprise Agility, one area that will require major change is moving from financial cycles being the driver to focus on a product-driven (deliverables) “Short-horizon” model (that does deliver the required financial information but is not driven by that financial cycles) that is more adaptable to changing conditions.