Agile methodologies continue to trend up for software development shops, with Gartner and Forrester Research reports showing that 80% of organizations use Agile in some form. However, "Agile" means different things to different groups.
Techniques and tools designed for small teams don't always scale to the enterprise, and teams are mixing and matching Agile methods depending on their unique needs. In the new book, Disciplined Agile Delivery -- A Practitioner's Guide to Agile Software Delivery in the Enterprise, Scott Ambler and Mark Lines describe an Agile framework that is designed to address the entire delivery lifecycle and to scale well for large, complex projects.
We'll go over some of the characteristics of Disciplined Agile Delivery (DAD), aimed at enterprise leaders who are looking for an effective end-to-end delivery model.
What is Disciplined Agile Delivery?
The Disciplined Agile Delivery process framework was developed to help large enterprise teams achieve success with Agile methods. In their book, Ambler and Lines define DAD as follows:
"The Disciplined Agile Delivery (DAD) process framework is a people-first, learning-oriented hybrid Agile approach to IT solution delivery. It has a risk-value lifecycle, is goal-driven, is callable, and is enterprise aware."
While Scrum and other development methodologies address what's often called the construction-focused lifecycle, DAD is designed to cover the full end-to-end lifecycle from project initiation to delivery. For example, DAD addresses modeling, documentation and governance strategies, which aren't covered in Scrum or XP. Additionally, DAD provides flexibility, enabling groups to custom tailor their implementation to address the specific challenges facing their organizations.
One of the primary characteristics of DAD is the notion that people are the primary determinant of success for IT delivery projects, a philosophy that reflects the first value statement of the Agile Manifesto, "Individuals and interactions over processes and tools." The DAD framework stipulates that team members should be self-disciplined, self-organizing and self-aware. It provides guidance on how to improve the team's effectiveness in these areas but does not prescribe mandatory procedures.
As with other Agile methodologies, DAD emphasizes collaboration and cross-functional teams. It promotes the notion that team members share their skills and experiences with others, minimizing handoffs and blurring boundaries between disciplines. Similar to Scrum, DAD does not specify separate roles for developers, testers and business analysts.
Primary roles in DAD include stakeholder, team lead, team member, product owner and architecture owner. The idea is that all team members are capable of filling in to help cover what is needed. This characteristic of DAD does not differ from other Agile frameworks and is a cornerstone of any framework or methodology that is considered "Agile."
The Agile Scaling Model
The Agile Scaling Model (ASM) is a contextual framework that helps teams define a roadmap and adopt and tailor Agile strategies to address the unique challenges they face. The ASM includes three process categories:
- Core Agile development: These processes focus on small (<15 member) colocated teams using core Agile methods (such as Scrum, Extreme Programming and Agile Modeling) with a focus on construction-oriented activities.
- Agile Delivery: These ALM methods focus on the full delivery lifecycle from project initiation to production, adding Lean governance to balance self-organization. The focus is on small- to medium-size (up to 30 people) with near-located teams.
- [email protected]: These methods apply when one or more of the following scaling factors are faced on an Agile team:
- Team size
- Geographic distribution
- Regulatory compliance
- Domain complexity
- Organization distribution
- Technical complexity
- Organizational complexity
- Enterprise discipline
Recognizing that each team using the ASM is unique is the first step in understanding how to best apply the DAD process framework.
DAD is a hybrid process framework
It's becoming more common for organizations to pick and choose techniques and processes from a variety of frameworks or methodologies to create their own custom hybrid framework. DAD addresses this need by providing a robust hybrid process framework that allows for custom tailoring. The DAD process framework adopts the following Agile techniques originating from the following existing frameworks and models:
- Scrum: DAD has adopted Scrum ideas such as making a product owner responsible for stakeholders, producing a consumable solution with every iteration and working from a stack of work items in priority order.
- Extreme Programming (XP): Many important development processes used in DAD originated from XP, including continuous integration (CI), refactoring, test-driven development (TDD) and collective ownership.
- Agile Modeling (AM): AM is used for DAD's modeling and documentation practices. It includes requirements envisioning, architecture envisioning, iteration modeling, continuous documentation and just-in-time (JIT) model storming.
- Unified Process (UP): DAD's governance strategies are adopted from practices used in OpenUP and Agile Unified Process (AUP) such as lightweight milestones and explicit phases. UP focuses on architecture validation in early iterations to reduce business risk early.
- Agile Data (AD): AD provides database practices including database refactoring, database testing and Agile data modeling.
- Kanban: DAD adopts two critical concepts from the lean framework, Kanban: limiting work-in-progress (WIP) and visualizing work.
More on DAD
To learn more about DAD and the Agile delivery lifecycle, see the DAD community website, available at www.disciplinedagiledelivery.com. It provides further information, discussion opportunities and a free white paper, "Disciplined Agile Delivery: An introduction" by Scott Ambler and Mark Lines.