August 1, 2015 | John Rusk There are many forms of agile. Some do support setting price and scope up front. Here, I outline two overall flavours of agile – one which supports fixed scope and price, and one which does not. Background Much as the Old Town in a European city is the center of the city, but doesn’t itself have a center (all the little twisty streets are roughly equal in “centerness”), so agile looks like a single place from a distance, but isn’t a single place, and the closer you get to the center, the more you see there isn’t a single center. The Agile Manifesto was written by over a dozen people with their own world views and their own multi-centeredness, so it’s no wonder if there is no center to agile itself. –Alistair Cockburn, one of the 17-co-authors Agile has always been a wide-ranging term. In the beginning, it encompassed several “light” software development process that had been developed in the 1990s. These included Scrum, Extreme Programming (XP), Crystal, Dynamic Systems Development Method (DSDM), and Feature Driven Development (FDD). Those processes were represented by some of the original authors of the Agile Manifesto. Other authors subscribed to no particular methodology, but shared the group’s interest in pragmatic lightweight processes. So agile looks like this: a large “bubble”, with smaller defined bubbles within it. XP and Scrum have become by far the most popular, so much so that many people think that the XP/Scrum way is the only way to do agile. That’s simply not true. Each “bubble” has a different emphasis. XP and Scrum emphasise the ability to handle changing requirements. FDD and DSDM lean more towards identifying a full(ish) set of requirements up front (in a relatively lightweight way, of course). Crystal emphasises efficiency and “habitability”. (Habitability = “Would the team willingly work this way again?”) Note also that there’s lot’s of white space in between the little bubbles – plenty of space for your team to do something that doesn’t fit with any one of the published methodologies, but is still “agile”. (Which is a topic for another day… 😉 How does this relate to contracts? When considering contracts for agile project, its helpful to simply the diverse landscape of agile processes. For contract purposes, I suggest we can group all the different types of agile into just two flavours. Flavour 1: Exploratory Agile Don’t have a fixed project scope up front To a significant degree, scope is discovered as the project proceeds Cost is either unknown in advance, or is specified by timeboxing the entire project: “We’ll work in priority order. After we’ve spent $X, we’ll just stop”. Useful for environments where some of the following apply: We cannot know what we need when we start (e.g. R&D projects, or others with very high degree of novelty or business uncertainty) We expect very high degrees of change. E.g. launching a new commercial product and learning what do do next from user feedback, and maybe even pivoting to a completely different direction. As long as each iteration delivers business value in excess of what it cost, its worthwhile for us to continue. Most on-line articles about agile contracts assume that this flavour is used. That’s fine, up to a point. It’s OK for authors and companies to say, “The exploratory flavour is mandatory for our kind of agile”. As we saw above, there are many kinds of agile and people are perfectly entitled to set the rules for their own work. However, it is not OK to say, “The exploratory flavour is mandatory for all kinds of agile”. That misrepresents the beliefs of those who drafted the Agile Manifesto. It’s also just plain wrong. On the positive side, the Exploratory flavour is genuinely useful in many contexts and is probably the easiest way for a team to get started with agile. But it’s not the only game in town. Flavour 2: Target-Driven Agile Do have an overall scope. This scope is defined during the early stages of the project. Expect some changes, refinement and feature-thinning, but on the whole aim to deliver more-or-less the original scope May also have an overall budget , which is also set during the early stages of the project. The budget might be fixed, or it might be a target with controlled flexibility. Most commonly seen with the FDD and DSDM flavours of agile, but is also possible with Scrum. (In Scrum, you’re allowed to define the backlog up-front, if you want) Useful for environments where some of the following apply: The project is replacing an existing system. It only makes sense to conduct the project if we can be reasonably sure of building enough scope to successfully replace the old system, at a price we can afford. The business can’t proceed without knowing what they are getting into – in terms of scope and cost. With a few weeks or months of business analysis, depending on system size, it is actually possible to identify the project scope. Typically the scope would be identified in the form of a few dozen, or maybe a few hundred, “epic” user stories. Preparing such a list likely to be achievable when the project is addressing a known need in an established business. It’s less likely to be possible in startups or R&D. This is my favourite flavour of agile. Why? Because its a fair question for the businesses to ask, “What are we getting into?” If you were about to spend that much money, you’d ask too. Exploratory Agile dodges the question; Target-Driven Agile answers it. [This is the first in a short series of posts on Contracts for Target Driven-Agile. Here’s the next.]