Disciplined agile delivery

Last updated

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.

Contents

The primary reference for disciplined agile delivery is the book Choose Your WoW!, [1] written by Scott Ambler and Mark Lines. WoW refers to "way of working" or "ways of working". [2]

In particular, DAD has been identified as a means of moving beyond scrum. [3] According to Cutter Senior Consultant Bhuvan Unhelkar, "DAD provides a carefully constructed mechanism that not only streamlines IT work, but more importantly, enables scaling." [4] 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." [5]

History

Scott Ambler and Mark Lines initially led the development of DAD, and continue to lead its evolution. DAD was developed to provide a more cohesive approach to agile software development; one that tries to fill 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. [7]

In 2015 the Disciplined Agile (DA) framework, later to become the Disciplined Agile Toolkit, was developed. [8] 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 ]

In August 2019, Disciplined Agile was acquired by Project Management Institute. [10]

Key aspects

Many of the challenges that teams are facing are out of scope for scrum and the teams need to look to 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. [11]

People-first

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." [12] 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. [13]

Hybrid

DAD is a hybrid toolkit that adopts and tailors proven strategies from existing methods such as scrum, extreme programming (XP), SAFe, agile modeling (AM), Unified Process (UP), Kanban, outside-in software development, agile data (AD) and Spotify's development model. 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

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

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

Complete

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

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

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

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

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. An 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

DAD is described as a collection of twenty-one process goals, or process outcomes. [14] These goals guides teams through a leaner process to decisions that 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 phaseConstruction phaseTransition 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 an enterprise aware manner.

  • Grow team members
  • Coordinate activities
  • Address risk
  • Evolve ways of working (WoW)
  • Leverage and enhance existing infrastructure
  • Govern delivery team

Roles

Primary roles

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

Potential supporting roles

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

Related Research Articles

The rational unified process (RUP) is an iterative software development process framework created by the Rational Software Corporation, a division of IBM since 2003. RUP is not a single concrete prescriptive process, but rather an adaptable process framework, intended to be tailored by the development organizations and software project teams that will select the elements of the process that are appropriate for their needs. RUP is a specific implementation of the Unified Process.

<span class="mw-page-title-main">Systems development life cycle</span> Systems engineering terms

In systems engineering, information systems and software engineering, the systems development life cycle (SDLC), also referred to as the application development life cycle, is a process for planning, creating, testing, and deploying an information system. The SDLC concept applies to a range of hardware and software configurations, as a system can be composed of hardware only, software only, or a combination of both. There are usually six stages in this cycle: requirement analysis, design, development and testing, implementation, documentation, and evaluation.

In software development, agile practices include requirements, discovery and solutions improvement through the collaborative effort of self-organizing and cross-functional teams with their customer(s)/end user(s). Popularized in the 2001 Manifesto for Agile Software Development, these values and principles were derived from, and underpin, a broad range of software development frameworks, including Scrum and Kanban.

<span class="mw-page-title-main">Dynamic systems development method</span>

Dynamic systems development method (DSDM) is an agile project delivery framework, initially used as a software development method. First released in 1994, DSDM originally sought to provide some discipline to the rapid application development (RAD) method. In later versions the DSDM Agile Project Framework was revised and became a generic approach to project management and solution delivery rather than being focused specifically on software development and code creation and could be used for non-IT projects. The DSDM Agile Project Framework covers a wide range of activities across the whole project lifecycle and includes strong foundations and governance, which set it apart from some other Agile methods. The DSDM Agile Project Framework is an iterative and incremental approach that embraces principles of Agile development, including continuous user/customer involvement.

In agile principles, timeboxing allocates a maximum unit of time to an activity, called a timebox, within which a planned activity takes place. It is used by agile principles-based project management approaches and for personal time management.

Lean software development is a translation of lean manufacturing principles and practices to the software development domain. Adapted from the Toyota Production System, it is emerging with the support of a pro-lean subculture within the agile community. Lean offers a solid conceptual framework, values and principles, as well as good practices, derived from experience, that support agile organizations.

Agile modeling (AM) is a methodology for modeling and documenting software systems based on best practices. It is a collection of values and principles that can be applied on an (agile) software development project. This methodology is more flexible than traditional modeling methods, making it a better fit in a fast-changing environment. It is part of the agile software development tool kit.

The enterprise unified process (EUP) is an extended variant of the unified process and was developed by Scott W. Ambler and Larry Constantine in 2000, eventually reworked in 2005 by Ambler, John Nalbone and Michael Vizdos. EUP was originally introduced to overcome some shortages of RUP, namely the lack of production and eventual retirement of a software system. So two phases and several new disciplines were added. EUP sees software development not as a standalone activity, but embedded in the lifecycle of the system, the IT lifecycle of the enterprise and the organization/business lifecycle of the enterprise itself. It deals with software development as seen from the customer's point of view.

Agile unified process (AUP) is a simplified version of the rational unified process (RUP) developed by Scott Ambler. It describes a simple, easy to understand approach to developing business application software using agile techniques and concepts yet still remaining true to the RUP. The AUP applies agile techniques including test-driven development (TDD), agile modeling (AM), agile change management, and database refactoring to improve productivity.

<span class="mw-page-title-main">Scrum (software development)</span> Management framework

Scrum is an agile team collaboration framework commonly used in software development and other industries.

<span class="mw-page-title-main">Unified Process</span> Object oriented software development process framework

The unified software development process or unified process is an iterative and incremental software development process framework. The best-known and extensively documented refinement of the unified process is the rational unified process (RUP). Other examples are OpenUP and agile unified process.

<span class="mw-page-title-main">Jeff Sutherland</span> American computer scientist

Jeff Sutherland is one of the creators of Scrum, a framework for product management. Together with Ken Schwaber, he presented Scrum at OOPSLA'95. Sutherland contributed to the creation of the Agile Manifesto in 2001. Along with Ken Schwaber, he wrote and maintains The Scrum Guide, which contains the official definition of the framework.

Agile testing is a software testing practice that follows the principles of agile software development. Agile testing involves all members of a cross-functional agile team, with special expertise contributed by testers, to ensure delivering the business value desired by the customer at frequent intervals, working at a sustainable pace. Specification by example is used to capture examples of desired and undesired behavior and guide coding.

Scott W. Ambler is a Canadian software engineer, consultant and author. He is an author of books about the Disciplined Agile Delivery toolkit, the Unified process, Agile software development, the Unified Modeling Language, and Capability Maturity Model (CMM) development.

In software engineering, a software development process or software development life cycle (SDLC) is a process of planning and managing software development. It typically involves dividing software development work into smaller, parallel, or sequential steps or sub-processes to improve design and/or product management. The methodology may include the pre-definition of specific deliverables and artifacts that are created and completed by a project team to develop or maintain an application.

Lean project management is the application of lean concepts such as lean construction, lean manufacturing and lean thinking to project management.

<span class="mw-page-title-main">Kanban (development)</span> Software development methodology

Kanban is a lean method to manage and improve work across human systems. This approach aims to manage work by balancing demands with available capacity, and by improving the handling of system-level bottlenecks.

Scrumban is an Agile aligned approach to product delivery which is a hybrid of Scrum and Kanban. Scrumban was originally designed as a way to transition from Scrum to Kanban.

The scaled agile framework (SAFe) is a set of organization and workflow patterns intended to guide enterprises in scaling lean and agile practices. Along with disciplined agile delivery (DAD) and S@S (Scrum@Scale), SAFe is one of a growing number of frameworks that seek to address the problems encountered when scaling beyond a single team.

Agile architecture means how enterprise architects, system architects and software architects apply architectural practice in agile software development. A number of commentators have identified a tension between traditional software architecture and agile methods along the axis of adaptation versus anticipation.

References

  1. Ambler, Scott; Lines, Mark (2019). Choose Your WoW! A Disciplined Agile Delivery Handbook for Optimizing Your Way of Working. ISBN   978-1-7904-4784-8.
  2. Book: Choose Your WoW! – Disciplined Agile (DA)
  3. Ambler, Scott (2013). "Going Beyond Scrum: Disciplined Agile Delivery".
  4. Disciplined Agile Delivery in the Enterprise (Cutter IT Journal, Special Issue, June 2013)
  5. Kruchten, Philippe; Gorans, Paul (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
  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. "Intro to Disciplined Agile".
  9. Ambler, Scott; Lines, Mark (2017). An Executive's Guide to Disciplined Agile. ISBN   978-1-5398-5296-4.
  10. "PMI Announces Acquisition of DA".
  11. Lines, Mark; Ambler, Scott (2019). Choose Your WoW! A Disciplined Agile Delivery Handbook for Optimizing Your Way of Working. p. 41. ISBN   978-1-7904-4784-8.
  12. Ambler, Scott. "Agility@Scale: Strategies for Scaling Agile Software Development". IBM developerWorks. IBM Software.
  13. "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.
  14. Scott Ambler; Mark Lines (2019). "Choose Your WoW!". p. 46.
  15. Ambler, Scott. "Roles on DAD Teams". disciplinedagiledelivery.com.
  16. Ambler, Scott. "Roles on DAD Teams". disciplinedagiledelivery.com.
  17. "Generalizing Specialists: Improving Your IT Career Skills". Agile Modeling.

Further reading