To be effective at DAD, we embrace these philosophies:
- Consumable solutions. One aspect of adopting a disciplined agile approach is to mature your focus from just producing “potentially shippable” software to instead providing a potentially consumable solution. Consumable means that it is usable, desirable, and functional. A solution potentially includes software, (upgraded) hardware, process changes, organization structure changes, and supporting documentation.
- Incremental value delivery. Value is delivered to stakeholders incrementally in small portions called minimum business increments (MBIs). An MBI is the smallest piece of functionality that can be delivered that has potential value to your stakeholders.
- Shift left. Verification and validation (V&V) techniques – including but not limited to testing practices, reviews, and collaborative work strategies – are performed as early as possible in the life cycle. In the agile community we call this “shifting left.” V&V is so important to disciplined agilists that we want to do it every single day, not just at the end of the life cycle. The goal is to gain feedback as early as possible thereby reducing the cost of change and increasing the chance that you’re producing what is needed by your stakeholders.
- Shift right. Thinking strategies, such as modeling and planning, are similarly pushed right in the life cycle. Our plans, including schedules, scope, and architecture strategies, should evolve as we learn and as our situation evolves. Thinking is so important to disciplined agilists that we need to do it every single day, it isn’t something that we only do up front in phases.
- Prove it with code. There is a big difference between thinking that our architecture works and knowing that it does. This is particularly important when we are making significant architectural decisions, typically during the first release of a solution or when we are reworking or replacing important aspects of an existing solution. DAD life cycles include the proven architecture milestone to explicitly call out the need to prove that your architecture works early in the life cycle and the prove architecture early process goal captures several strategies for doing exactly this.
- Automate, automate, automate. There are significant opportunities to automate the activities of DAD. This includes automated checking of the work of delivery teams via acceptance test driven development (ATDD) and sustainable test drive development (STDD), continuous integration (CI), and continuous deployment (CD) technologies to name a few. See the Accelerate Value Delivery process goal for automation options.