- Context Counts-The Agile Scaling Model
- What Is the Disciplined Agile Delivery (DAD) Process Framework?
- People First
- Learning Oriented
- Agile
- A Hybrid Process Framework
- IT Solutions over Software
- Goal-Driven Delivery Lifecycle
- Enterprise Aware
- Risk and Value Driven
- Scalable
- Concluding Thoughts
- Additional Resources
Risk and Value Driven
The DAD process framework adopts what is called a risk/value lifecycle, effectively a lightweight version of the strategy promoted by the Unified Process (UP). DAD teams strive to address common project risks, such as coming to stakeholder consensus around the vision and proving the architecture early in the lifecycle. DAD also includes explicit checks for continued project viability, whether sufficient functionality has been produced, and whether the solution is production ready. It is also value driven, a strategy that reduces delivery risk, in that DAD teams produce potentially consumable solutions on a regular basis.
It has been said “attack the risks before they attack you.” This is a philosophy consistent with the DAD approach. DAD adopts what is called a risk-value driven lifecycle, an extension of the value-driven lifecycle common to methods such as Scrum and XP. With a value-driven lifecycle you produce potentially shippable software every iteration or, more accurately from a DAD perspective, a potentially consumable solution every iteration. The features delivered represent those in the requirements backlog that are of highest value from the perspective of the stakeholders. With a risk-value driven lifecycle you also consider features related to risk as high priority items, not just high-value features. With this in mind we explicitly address risks common to IT delivery projects as soon as we possibly can. Value-driven lifecycles address three important risks—the risk of not delivering at all, the risk of delivering the wrong functionality, and political risks resulting from lack of visibility into what the team is producing. Addressing these risks is a great start, but it’s not the full risk mitigation picture.
First and foremost, DAD includes and extends standard strategies of agile development methods to reduce common IT delivery risks:
- Potentially consumable solutions. DAD teams produce potentially consumable solutions every construction iteration, extending Scrum’s strategy of potentially shippable software to address usability concerns (the consumability aspect) and the wider issue of producing solutions and not just software. This reduces delivery risk because the stakeholders are given the option to have the solution delivered into production when it makes sense to do so.
- Iteration demos. At the end of each construction iteration the team should demo what they have built to their key stakeholders. The primary goal is to obtain feedback from the stakeholders and thereby improve the solution they’re producing, decreasing functionality risk. A secondary goal is to indicate the health of the project by showing their completed work, thereby decreasing political risk (assuming the team is working successfully).
- Active stakeholder participation. The basic idea is that not only should stakeholders, or their representatives (i.e., product owners), provide information and make decisions in a timely manner, they can also be actively involved in the development effort itself. For example, stakeholders can often be actively involved in modeling when inclusive tools such as paper and whiteboards are used. Active stakeholder involvement through the entire iteration, and not just at demos, helps to reduce both delivery and functionality risk due to the greater opportunities to provide feedback to the team.
DAD extends current agile strategies for addressing risk on IT delivery projects, but also adopts explicit, lightweight milestones to further reduce risk. At each of these milestones an explicit assessment as to the viability of the project is made by key stakeholders and a decision as to whether the project should proceed is made. These milestones, indicated on the DAD lifecycle depicted previously in Figure 1.3, are
- Stakeholder consensus. Held at the end of the Inception phase, the goal of this milestone is to ensure that the project stakeholders have come to a reasonable consensus as to the vision of the release. By coming to this agreement we reduce both functionality and delivery risk substantially even though little investment has been made to date in the development of a working solution. Note that the right outcome for the business may in fact be that stakeholder consensus cannot be reached for a given project vision. Our experience is that you should actually expect to cancel upwards to10% of your projects at this milestone, and potentially 25% of projects that find themselves in scaling situations (and are therefore higher risk).
- Proven architecture. In the early Construction phase iterations we are concerned with reducing most of the risk and uncertainty related to the project. Risk can be related to many things, such as requirements uncertainty, team productivity, business risk, and schedule risk. However, at this point in time much of the risk on an IT delivery project is typically related to technology, specifically at the architecture level. Although the high-level architecture models created during the Inception phase are helpful for thinking through the architecture, the only way to be truly sure that the architecture can support the requirements is by proving it with working code. This is a vertical slice through the software and hardware tiers that touches all points of the architecture from end to end. In the UP this is referred to as “architectural coverage” and in XP as a “steel thread” or “tracer bullet.” By writing software to prove out the architecture DAD teams greatly reduce a large source of technical risk and uncertainty by discovering and then addressing any deficiencies in their architecture early in the project.
- Continued viability. In Scrum the idea is that at the end of each sprint (iteration) your stakeholders consider the viability of your project. In theory this is a great idea, but in practice it rarely seems to happen. The cause of this problem is varied—perhaps the stakeholders being asked to make this decision have too much political stake in the project to back out of it unless things get really bad, and perhaps psychologically people don’t notice that a project gets into trouble in the small periods of time typical of agile iterations. The implication is that you need to have purposeful milestone reviews where the viability of the project is explicitly considered. We suggest that for a given release you want to do this at least twice, so for a six month project you would do it every second month, and for longer projects minimally once a quarter.
- Sufficient functionality. The Construction phase milestone is reached when enough functionality has been completed to justify the expense of transitioning the solution into production. The solution must meet the acceptance criteria agreed to earlier in the project, or be close enough that it is likely any critical quality issues will be addressed during the Transition phase.
- Production ready. At the end of the Transition phase your key stakeholders need to determine whether the solution should be released into production. At this milestone, the business stakeholders are satisfied with and accept the solution and the operations and support staff are satisfied with the relevant procedures and documentation.
- Delighted stakeholders. The solution is running in production and stakeholders have indicated they are delighted with it.