Disciplined Agile Delivery

From Wikipedia, the free encyclopedia
Jump to: navigation, search
Software development process
Coding Shots Annual Plan high res-5.jpg
Core activities
Methodologies
Supporting disciplines
Tools

Disciplined Agile Delivery (DAD) is a process decision framework that enables simplified process decisions around incremental and iterative solution delivery. DAD builds on the many practices espoused by advocates of Agile Software Development, including Scrum, Agile Modeling, Lean Software Development, and others.

The primary reference for Disciplined Agile Delivery is the book[1] of same name, written by Scott Ambler and Mark Lines.

In particular, DAD has been identified as a means of moving beyond Scrum.[2] According to Cutter Senior Consultant Bhuvan Unhelkar, "The DAD framework provides a carefully constructed mechanism that not only streamlines IT work, but more importantly, enables scaling.".[3] Paul Gorans and Philippe Kruchten call for more discipline in implementation of agile approaches and indicate that DAD, as an example framework, is "a hybrid agile approach to enterprise IT solution delivery that provides a solid foundation from which to scale."[4]

History[edit]

"DAD is a second-generation framework that strives to provide a coherent, end-to-end strategy for how agile solution delivery works in practice. DAD is a people-first, learning-oriented hybrid agile approach to IT solution delivery. It has a risk-value lifecycle, is goal-driven, is scalable, and is enterprise aware."[5]

Scott Ambler developed the Disciplined Agile Development process during his time as Chief Methodologist for IT at IBM Rational (Summer 2006 to Summer 2012). It was developed to provide a more cohesive approach to agile software development; one that fills in the process gaps that are (purposely) ignored by Scrum, and one that is capable of enterprise-level scale. According to Ambler, "Many agile methodologies — including Scrum, XP, AM, Agile Data, Kanban, and more — focus on a subset of the activities required to deliver a solution from project initiation to delivery. Before DAD was developed, you needed to cobble together your own agile methodology to get the job done."[6]

The DAD framework was developed as a result of observing common patterns where agility was applied at scale successfully. It reflects the experiences of IBM employees working in the field with various customer organizations, applying agile at scale internally, and from working with various business partners.[7] "The DAD process framework recognizes not only the importance of networks of cross-functional teams, it also explicitly offers support for scaling key practices across complex working environments using techniques that link software development efforts into robust software delivery contexts".[8]

Disciplined Agile Delivery Lifecycle[edit]

Goals[edit]

Inception Phase Construction Phase Transition Phase
  • Form Initial Team
  • Develop Common Project Vision
  • Align with Enterprise Direction
  • Explore Initial Scope
  • Identify Initial Technical Strategy
  • Develop Initial Release Plan
  • Form Work Environment
  • Secure Funding
  • Identify Risks
  • Produce Potentially Consumable Solution
  • Address Changing Stakeholder Needs
  • Move Closer to Deployable Release
  • Improve Quality
  • Prove Architecture Early
  • Ensure Solution Is Consumable
  • Deploy Solution
Ongoing Goals
  • Fulfill Project Mission
  • Grow Team Members
  • Address Risk
  • Improve Team Process and Environment
  • Leverage/Enhance Existing Infrastructure

[9]

Key Aspects[edit]

People-first[edit]

The Disciplined Agile Delivery framework identifies that "People, and the way they interact with each other, are the primary determinant of success for a solution delivery project."[10]

DAD specifies a robust set of primary and secondary roles, outlined in the 'Roles' section below.

Learning oriented[edit]

The DAD process framework promotes the ideas that team members should collaborate closely and learn from each other, that the team should invest effort to learn from their experiences and evolve their approach, and that individuals should do so as well.[11]

Hybrid[edit]

DAD adopts and tailors proven strategies from existing methods such as Scrum, Extreme Programming (XP), Agile Modeling (AM), Unified Process (UP), Kanban, Outside-in software development, and Agile Data (AD). Rather than taking the time to adapt one of these existing frameworks, with DAD all of the effort of combining relevant pieces of each technique has already been done.

Full delivery lifecycle[edit]

Unlike first generation agile methods that typically focus on the construction aspects of the lifecycle, the DAD lifecycle addresses the entire project from the point of initiation all the way to production and post-delivery production activities.

Process goal driven[edit]

The DAD framework approach is goal-driven rather than prescriptive. Compared to Scrum, which prescribes that all work is managed via a product backlog queue, DAD suggests choosing a work-prioritization strategy based on whatever factors are most important to project stakeholders.

In a DAD approach, strategies could be driven by several factors: business value, risk, due date, dependencies, or any combination thereof. DAD describes the tradeoffs associated with each strategy and discusses the viability of each.

Solution focused[edit]

Disciplined Agile Development matures focus from simply producing software to providing consumable solutions that provide real business value to stakeholders. While software is clearly an important part of the deliverable, being solution focused means taking a holistic view of the overall problem. This can lead to suggested updates in hardware, business/organizational processes, and overall organizational structures.

Risk-value lifecycle[edit]

The DAD lifecycle is risk and value driven. It extends Scrum's value-driven lifecycle which produces potentially shippable software each sprint/iteration so that it explicitly includes light-weight milestones such as ensuring stakeholder consensus as to the scope of the project early in the lifecycle, proving the architecture with working code early in the lifecycle, ensuring sufficient functionality exists before transition, and ensuring production readiness before actual release of the solution.

Enterprise aware[edit]

Enterprise awareness is a crucial philosophy of the DAD framework. DAD teams work within an organization's enterprise ecosystem just like any other team. Ideally a DAD team will leverage existing resources in order to reduce overall delivery time and cost, and can work in parallel to other teams in the organization. An important aspect of enterprise awareness is that DAD has explicit DevOps [12] practices and strategies built right into the framework.

Roles[edit]

Primary Roles[edit]

These five primary roles[13] in the DAD framework are typically found regardless of scale.

  • Stakeholder. Someone who is materially impacted by the outcome of the solution. More than just an end user, this is anyone potentially affected by the development and deployment of a software project.
  • Product Owner. The person on the team who speaks as the "one voice of the customer", representing the needs of the stakeholder community to the agile delivery team.
  • Team Member. The team member focuses on producing the actual solution for stakeholders, including but not limited to: testing, analysis, architecture, design, programming, planning, and estimation.
  • Team Lead. The team lead is the agile coach, responsible for facilitating communication, optimizing processes, and ensuring the team has the resources it needs and is free of obstacles.
  • Architecture Owner. Makes the architecture decisions for the team and facilitates the creation and evolution of the overall solution design.

Secondary Roles[edit]

These secondary roles[14] are introduced (sometimes on a temporary basis) to address scaling issues.

  • Specialist. Although most agile team members are generalizing specialists,[15] sometimes other specialists are required depending on the needs of the project.
  • Domain Expert. While the product owner represents a wide range of stakeholders, a domain expert is sometimes required for complex domains where a more nuanced understanding is required.
  • Technical Expert. In cases where a particularly difficult problem is encountered, a technical expert can be brought in as needed. These could be build masters, agile database administrators, user experience (UX) designers, or security experts.
  • Independent Tester. Although the majority of testing is done by the DAD team members, in cases with complex domains or technology an independent testing team can be brought in to work in parallel to validate the work.
  • Integrator. For complex technical solutions at scale, an integrator (or multiple integrators) can be used to build the entire system from its various subsystems .

References[edit]

  1. ^ Ambler, Scott; Lines, Mark (2012). Disciplined Agile Delivery: A Practitioner's Guide to Agile Software Delivery in the Enterprise. ISBN 978-0132810135. 
  2. ^ Ambler, Scott (2013). "Going Beyond Scrum: Disciplined Agile Delivery". 
  3. ^ Disciplined Agile Delivery in the Enterprise (Cutter IT Journal, Special Issue, June 2013)
  4. ^ Philippe Kruchten; Paul Gorans (February 2014). A Guide to Critical Success Factors in Agile Delivery (Report). IBM Center for the Business of Government. p. 14. http://www.businessofgovernment.org/report/guide-critical-success-factors-agile-delivery. Retrieved February 1, 2014. "a hybrid agile approach to enterprise IT solution delivery that provides a solid foundation from which to scale"
  5. ^ Disciplined Agile Delivery: the foundation for scaling agile (Crosstalk journal, November / December 2013)
  6. ^ Disciplined Agile Delivery Meets CMMI (Cutter IT Journal, November 2013)
  7. ^ "Disciplined Agile Delivery". Crosstalk. 
  8. ^ Brown, Alan W. (2013). "Toward the Agile Organization: Accelerating Innovation in Software Delivery". Cutter IT Journal, November 2013. 
  9. ^ "Disciplined Agile Delivery: An introduction (white paper), pg 11". IBM Software. 
  10. ^ Ambler, Scott. "Agility@Scale: Strategies for Scaling Agile Software Development". IBM developerWorks. IBM Software. 
  11. ^ "Disciplined Agile Delivery: An introduction (white paper), pg 7". IBM Software. 
  12. ^ Mansoura, Cherifa (2012). "Adapting agile requirements practices to ongoing enterprise improvement efforts: DevOps to the rescue". 
  13. ^ Ambler, Scott. "Roles in Disciplines Agile Delivery". disciplinedagiledelivery.com. 
  14. ^ Ambler, Scott. "Roles in Disciplines Agile Delivery". disciplinedagiledelivery.com. 
  15. ^ "Generalizing Specialists: Improving Your IT Career Skills". Agile Modeling. 

Further reading[edit]