Disciplined agile delivery

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search
Software development
Core activities
Paradigms and models
Methodologies and frameworks
Supporting disciplines
Practices
Tools
Standards and Bodies of Knowledge
Glossaries

Disciplined agile delivery (DAD) is the software development portion of the disciplined agile toolkit. DAD enables teams to make 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 Choose Your WoW![1], 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, "DAD 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, as chief methodologist for IT at IBM Rational (mid-2006 to mid-2012), and Mark Lines initially led the development of DAD. Ambler and Lines continue to lead the evolution of DAD. DAD 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]

DAD was developed as a result of observing common patterns where agility was applied at scale successfully. It reflects the experiences of people working in the field with various customer organizations, applying agile and lean strategies internally within existing enterprise-class organizations.[7] "[DAD] 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]

In 2015 the disciplined agile (DA) framework, later to become the disciplined agile toolkit, was developed.[citation needed] This was called disciplined agile 2.x. DAD formed the foundation for DA.[citation needed] A second layer, disciplined DevOps, was added as was a third layer called disciplined agile IT (DAIT).[citation needed] These layers, respectively, addressed how to address DevOps and IT processes in an enterprise-class setting.

Disciplined agile 3.x was released in August 2017 to introduce a fourth layer, disciplined agile enterprise (DAE), to address the full process range required for business agility.[9]

In December 2018, disciplined agile 4, now referred to as the disciplined agile toolkit, was released.[citation needed] It focused on a completely revamped description of DAD and a team-based improvement strategy called guided continuous improvement (GCI).[citation needed]

Key aspects[edit]

Many of the challenges that teams are facing are out of scope for scrum and the teams need to look in other methods with overlapping parts and conflicting terminology. DAD attempts to address these challenges by using a people-first, learning-oriented, hybrid approach to IT solution delivery.[10]

People-first[edit]

Disciplined agile delivery (DAD) identifies that "People, and the way they interact with each other, are the primary determinant of success for a solution delivery team."[11] DAD supports a robust set of roles (see below section), rights, and responsibilities that you can tailor to meet the needs of your situation. DAD 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.[12]

Hybrid[edit]

DAD is a hybrid toolkit that adopts and tailors proven strategies from existing methods such as Scrum, extreme programming (XP), SAFe, Spotify, 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, DAD addresses the full delivery lifecycle, from team initiation all the way to delivering a solution to your end users.

Support for multiple lifecycles.[edit]

DAD supports six lifecycles to choose from: agile, lean, continuous delivery, exploratory, and large-team versions of the lifecycle. DAD doesn’t prescribe a single lifecycle because it recognizes that one approach does not fit all.

Complete[edit]

DAD shows how development, modeling, architecture, management, requirements/outcomes, documentation, governance and other strategies fit together in a streamlined whole. DAD does the “process heavy lifting” that other methods leave up to you. 

Context-sensitive[edit]

The approach is goal-driven or outcome-driven rather than prescriptive. In doing so, DAD provides contextual advice regarding viable alternatives - what works, what doesn't and more importantly why - and their trade-offs, enabling you to tailor your way of working to address the situation in which you find yourself and do so in a streamlined manner.

Consumable solutions over working software[edit]

DAD 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 and organizational processes, and overall organizational structures.

Self-organization with appropriate governance[edit]

Agile and lean teams are self-organizing, which means that the people who do the work are the ones who plan and estimate it. They must still work in an enterprise aware manner that reflects the priorities of their organization, and to do that they will need to be governed appropriately by senior leadership.

Lifecycles[edit]

Disciplined originally supported an agile (scrum-based) project lifecycle and a Lean (Kanban-based) project lifecycle. It has since been extended to support six lifecycles:

  1. Agile. A three-phase project lifecycle based on Scrum. The phases are Inception (what is sometimes called "Sprint 0"), Construction, and Transition (what is sometimes called a Release sprint).
  2. Lean. A three-phase project lifecycle based on Kanban.
  3. Continuous Delivery: Agile. An Agile-based product lifecycle that supports a continuous flow of work resulting in incremental releases (typically once a week).
  4. Continuous Delivery: Lean. A lean-based product lifecycle that supports a continuous flow of work.
  5. Exploratory. A experimentation-based lifecycle based on lean startup that has been extended to address the parallel development of minimum viable products as per the advice of cynefin.
  6. Program. A lifecycle for coordinating a team of teams.

Process goals[edit]

DAD is described as a collection of twenty-one process goals, or process outcomes.[13] These goals guides teams through a leaner process decisions to address the context of the situation they face. It enables teams to focus on outcomes and not on process compliance and on guesswork of extending agile methods. It enables scaling by providing sophisticated-enough strategies to address the complexities you face.

Inception Phase Construction Phase Transition Phase
Get the team going in the right direction. Incrementally build a consumable solution. Release the solution into production.
  • Form Team
  • Align with Enterprise Direction
  • Develop Common Project Vision
  • Explore Scope
  • Identify Architecture Strategy
  • Plan the Release
  • Develop Test Strategy
  • Develop Common Vision
  • Secure Funding
  • Prove Architecture Early
  • Address Changing Stakeholder Needs
  • Produce Potentially Consumable Solution
  • Improve Quality
  • Accelerate Value Delivery
  • Ensure Production Readiness
  • Deploy the Solution
Ongoing Goals

Improve and work in a enterprise aware manner.

  • Grow Team Members
  • Coordinate Activities
  • Address Risk
  • Evolve WoW
  • Leverage and Enhance Existing Infrastructure
  • Govern Delivery Team

Roles[edit]

Primary roles[edit]

These five primary roles[14] in the disciplined agile delivery are typically found regardless of scale.

  • Stakeholder. Someone who is materially impacted by the outcome of the solution. More than just an end-user or customer, 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. They will have a subset of the overall needed skills and they will strive to gain more to become generalizing specialists.
  • Team lead. The team lead is a host leader and also the agile coach, responsible for facilitating communication, empowering them to choose their way of working, and ensuring the team has the resources it needs and is free of obstacles.
  • Architecture owner. Owns the architecture decisions for the team and facilitates the creation and evolution of the overall solution design.

Potential supporting roles[edit]

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

  • Specialist. Although most agile team members are generalizing specialists,[16] 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 (2019). Choose Your WoW! A Disciplined Agile Delivery Handbook for Optimizing Your Way of Working. ISBN 978-1790447848.
  2. ^ Ambler, Scott (2013). "Going Beyond Scrum: Disciplined Agile Delivery" (PDF).
  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. 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. Archived from the original on 2014-02-22. Retrieved 2014-01-31.
  8. ^ Brown, Alan W. (2013). "Toward the Agile Organization: Accelerating Innovation in Software Delivery". Cutter IT Journal.
  9. ^ Ambler, Scott; Lines, Mark (2017). An Executive's Guide to Disciplined Agile. ISBN 978-1539852964.
  10. ^ Lines, Mark; Ambler, Scott (2019). Choose Your WoW! A Disciplined Agile Delivery Handbook for Optimizing Your Way of Working. p. 41. ISBN 978-1790447848.
  11. ^ Ambler, Scott. "Agility@Scale: Strategies for Scaling Agile Software Development". IBM developerWorks. IBM Software.
  12. ^ "Disciplined Agile Delivery: An introduction (white paper), pg 7" (PDF). IBM Software. Archived from the original (PDF) on 2013-05-29. Retrieved 2014-01-31.
  13. ^ Ambler & Lines (2019). "Choose Your WoW!". p. 46.CS1 maint: uses authors parameter (link)
  14. ^ Ambler, Scott. "Roles on DAD Teams". disciplinedagiledelivery.com.
  15. ^ Ambler, Scott. "Roles on DAD Teams". disciplinedagiledelivery.com.
  16. ^ "Generalizing Specialists: Improving Your IT Career Skills". Agile Modeling.

Further reading[edit]