Project Management

Disciplined Agile

by , , , , , , , , ,
This blog contains details about various aspects of PMI's Disciplined Agile (DA) tool kit, including new and upcoming topics.

About this Blog

RSS

View Posts By:

Scott Ambler
Glen Little
Mark Lines
Valentin Mocanu
Daniel Gagnon
Michael Richardson
Joshua Barnes
Kashmir Birk
Klaus Boedker
Mike Griffiths

Recent Posts

The Disciplined Agile Enterprise (DAE) Layer

Disciplined Agile (DA)'s Value Streams Layer

The Disciplined DevOps Layer

Would you like to get involved with the 20th Anniversary of Agile?

The Four Layers of the Disciplined Agile Tool Kit

The End of Agile? No, the End of Undisciplined Agile.

Categories: DW/BI, Enterprise Agile

Kurt Cagle recently wrote an article for Forbes, entitled The End of Agile. Although Forbes’ regular Steve Denning responded effectively a few days later with Why Agile’s Future is Bright, I’d like to chime in with several thoughts beyond what Steve has offered.  Here they are:

  1. Look beyond Scrum. Kurt started out with a tongue-in-cheek description of an agile team, but it was really a description of a small team at the very beginnings of learning Scrum.  This is the classic “Scrum = Agile” mistake that many people make, and it plays well to people who only have a passing understanding of how agile works in practice. We recommend that you look at teams that are succeeding with agile, rather than teams that are clearly struggling.  Better yet, let’s help the teams who are struggling — rather than making fun of them.
  2. Beware of agile purists. Kurt’s observation that agile has become a religion wasn’t far off.  It might be more accurate to say that there are Agile purists out there, people who often prove to only have experience with applying agile in straightforward situations — rather than in the enterprise situations that Kurt describes.  But there are also pragmatists out there in the Agile space (pragmatism is one of the seven Disciplined Agile principles) who are actively addressing how to apply agile and lean strategies in less-than-ideal situations.  We have always recommended that you be open-minded and pragmatic, to do the best you can in the situation that you face and always strive to learn and improve.
  3. Agile works in a very wide range of situations.There is ample research data and case studies showing that agile works in a wide range of situations.  For example, in our 2016 Agility at Scale survey we found that organizations were in fact applying agile on large teams, in complex domains, using legacy technologies (including legacy data sources), in regulatory environments, and multi-organization situations including outsourcing.  And we have data from other studies going back over a decade that show that Agile strategies have been applied beyond the “small teams with straightforward problems” scenario for quite a while.  We recommend that you look around and see how agile is being applied in practice.
  4. Scaling agile requires discipline. The article also states that agile doesn’t scale well to address big problems, yet many organizations are doing just that.  To be fair to Kurt, this is a common misunderstanding that is a result of the Scrum = Agile mindset because Scrum purposefully doesn’t address architecture (amongst many topics). But other agile methods do — in particular Agile Modeling and Jim Coplien’s excellent work around Lean Architecture — strategies which are explicitly part of Disciplined Agile.  In Disciplined Agile Delivery (DAD), we explicitly include initial architecture modeling early in a project via the Identify Architecture Strategy process goal, we show how to reduce architectural risk via the Prove Architecture Early process goal, and how to evolve architecture throughout Construction via the Produce a Potentially Consumable Solution process goal.  DAD teams also have someone in an explicit Architecture Owner role who is responsible for guiding the team through architecture decisions.  Furthermore, there is an explicit Enterprise Architecture process blade to support organization-level architecture issues.  Finally, DA the idea that Architecture Owners and Enterprise Architects should work closely together.  Our recommendation is to explicitly address architecture in your way of working, and this is something that Disciplined Agile provides clear, proven options for.
  5. Data projects can be difficult. The same can be said of non-data projects too. When either domain complexity or technical complexity rise, or both, you need to become more disciplined in your approach to requirements and architecture modeling.  As Cagle implies, data projects often suffer from domain complexity, this is particularly true for the enterprise data systems he mentions. Similarly data projects tend to suffer from technical complexity in that they need to integrate data from many disparate sources that often use different technologies, apply different semantics, and are accessed via different strategies. Once again, the context-sensitive choice-driven strategy promoted by Disciplined Agile wins the day over the prescriptive methods and frameworks Cagle appears to be familiar with.  To confuse matters further, prescriptive frameworks such as Scrum and SAFe have virtually nothing to say about addressing data issues.  Disciplined Agile, on the other hand, encompasses proven strategies from the Agile Data method which are critical to success on data projects.  Our recommendation is to embrace the complexity that you face and to recognize that you will need to explicitly tailor your way of working (WoW) to address that complexity.
  6. Agile is applicable to data projects…and may be the superior approach. I’m going to be blunt here – Kurt Cagle was completely and utterly wrong concerning the application of agile strategies to data projects.  While traditional data professionals often prefer to do extensive data modeling up front, this strategy has been shown to be ineffective in practice. What does work well is an agile data modeling strategy where high-level modeling is performed early in a project and detailed data modeling performed as needed during construction.  You can be very agile when supported by agile database practices such as database refactoring, automated database regression testing, and continuous database integration. And his claim that the focus on enterprise data is relatively new clearly doesn’t reflect the wealth of techniques around enterprise data modeling, master data management, and meta data management that the data community has been following since at least the mid-1990s. And yes, there are agile approaches to all of those practices.  As an aside, I started writing this blog in the evenings while attending the World Wide Data Vault Conference in Hannover.  Most of the presenters have discussed how they’re taking, or at least supporting agile — and often a Disciplined Agile — approaches on their data projects.
  7. Many other claims the article makes are observably false. Contrary to what Kurt claims, there are many large and complex open source projects, and they clearly benefit from agile and lean strategies.  Examples of such projects include Linux (operating system), Hadoop (big data processing), MongoDB (database), Numenta (machine learning), Angular (web application framework), and Docker (software infrastructure) to name but a few.  But hey, it’s not as if any of those technologies have become mission critical for your organization.  And his discussion of games development?  Having actually consulted to several commercial game companies, I can safely say that they were all working in a very agile manner.
  8. You must adapt your approach to address the context that you face. One process size does not fit all. Two of DA’s principles are Context Counts and Choice is Good – different teams in different situations will choose to work in different manners.  If you want your teams to be effective then you have to allow them — and better yet, enablethem — to choose their own way of working (WoW).
  9. Adapting your approach requires skill and experience. In some ways, Kurt is right – enterprise-class problems require an enterprise-class agile approach. But he was wrong in assuming that because people were struggling to apply undisciplined agile strategies to these situations that agile didn’t work; the real problem was that they didn’t know how to make it work.  The fact is that others have figured these things out, and we’ve captured a lot of these strategies in PMI’s Disciplined Agile (DA) toolkit.

Let’s hope this is the end of undisciplined agile. But as Steve Denning points out, it certainly isn’t the end of agile.  I suggest this could be an important beginning for Disciplined Agile approaches.

Posted by Scott Ambler on: September 16, 2019 10:35 AM | Permalink | Comments (0)

Agile Enterprise Architecture 101

Layered Architecture

This blog posting, the first in a series, overviews fundamental concepts in enterprise architecture.  This posting provides some definitions of common terminology, then proposes a definition for agile enterprise architecture, then discusses why your organization’s approach to enterprise architecture is an important topic.

Definitions

  • Enterprise architecture (EA).  An organization’s enterprise architecture consists of the various structures and processes of an organization, including both technical structures and processes as well as business/domain structures and processes.  There is always an enterprise architecture, even when it isn’t documented.
  • Enterprise architect.  Someone who is responsible for identifying, communicating, and evolving the enterprise architecture.
  • Architecture owner.  A person on a disciplined agile delivery team who is responsible for facilitating architecture-level decisions, for mentoring and coaching other team members in architectural skills, and for collaborating with the enterprise architecture team (if one exists) in your organization.  See The DAD Role of Architecture Owner for more details.
  • Reference architecture (agile). A working, high-quality example of an architectural component.  For instance, you may have a web services reference architecture which shows how a web service is built and invoked within your organization’s IT ecosystem.  This example will often be used as a template by developers as a basis for their own work.  This example will including supporting documentation that describes how to properly use it.
  • Reference architecture (traditional). A document, or set of documents, describing an architectural component and strategies for using it.
  • Enterprise architecture model (EAM). An EAM is a representation of those structures and processes. A good enterprise architecture model will depict the organization both as it is today and as it is envisioned in the future, and will map the various views representing the architecture to one another. These views include both business-oriented perspectives as well as technical perspectives. In many ways enterprise architecture models are a communication bridge between senior business stakeholders and senior IT professionals.

What is Agile Enterprise Architecture?

We need to answer this question from two points of view:

  1. The act of agile enterprise architecture is the collaborative and evolutionary exploration and potential modelling of an organization’s architectural ecosystem in a context-sensitive manner.  The implications are that enterprise architects must be willing to work in a collaborative and flexible manner AND software development teams must be willing to work closely with enterprise architects.  The latter is a key philosophy built into DAD from the very start, and the former is being introduced in DAD 2.0.
  2. An agile enterprise architecture is flexible, easily extended, and easily evolved collection of structures and processes upon which your organization is built.

Why Is This Important?

The benefits of agile enterprise architecture can be summed up using three words:

  1. Better.  An agile enterprise architecture enables disciplined agile teams to produce better quality solutions for their stakeholders by providing a more reliable ecosystem with which to work.
  2. Faster. An agile enterprise architecture enables disciplined agile teams to delivery solutions to market faster due to improved reuse and infrastructure quality.
  3. Cheaper. An agile enterprise architecture enables disciplined agile teams to deliver solutions to their stakeholders at a lower cost due to improved reuse, greater quality, and greater platform consistency.

It is important to realize that the better, faster, cheaper (BFC) benefits come at a price. First, you must be willing to invest in the underlying organizational and cultural structures to support them. Second, enterprise architects must be willing and able to work in an agile manner. Third, agile teams must be willing and able to work with enterprise architects effectively.

Related Readings

 

Posted by Scott Ambler on: May 25, 2015 02:44 PM | Permalink | Comments (0)
ADVERTISEMENTS

Don't ever take a fence down until you know why it was put up.

- Robert Frost

ADVERTISEMENT

Sponsors

Vendor Events

See all Vendor Events