Category Archives: Lean

Harder, Better, Faster, Stronger

Ask the average person today why they’re currently doing or planning on moving to Agile and they’ll probably say “it’s faster”.

It’s a very popular answer.

But faster at what exactly?

If pushed, they might elaborate “faster delivery“. And then give you a funny look as if to say “What other kind of faster is there?”

So whilst on the surface of it, this sounds like a purely good thing — there is, or at least there can be, a dark side.

This focus on faster delivery in my experience has often led to implementations of Agile which are nothing more than a relabelling of Waterfall, with stand-ups, “stories” and JIRA® added like props1.

The “agile” or “Scrum” part is applied only to the bits of the endeavour deemed to be “the delivery”, which in its most extreme form2 means “The part where the code is written“ 3.

This is what I believe most people mean when they say “Agile Delivery” — a practice which I would prefer to refer to as “Incremental Delivery” — but more on that in a separate post.

But what if that’s not all there is? What if there was more? What if there was better.? (Even if it was harder)

On the Origins of Faster

As ubiquitous as this “Agile is Faster” belief is today, it’s hard to pinpoint exactly when people started equating Agile with speed. After all, the term is “Agile” not “Speedy” and it’s the “Agile Manifesto”, not the “Go Faster Manifesto” so the origin doesn’t entirely lie with the name. eXtreme Programming also offers no real hints, the scrum is probably the point in a rugby match with the least amount of forward movement and Crystals, well they just sort of sit there4. So it’s not immediately intuitive. It’s certainly not misleading.

At a guess, I would conjecture a few things might be casual here:

There are two Agile Manifesto Principles5 which mildly allude to speed:

  1. ”Our highest priority is to satisfy the customer through early and continuous delivery of valuable software” and;
  2. “Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.”

Which both sound at least a little bit urgent. Although they seem (at least to me) to emphasise regularity more than they do raw speed. At least the term “deliver” is there.

And then there is Velocity

Whilst a Rugby scrum may be relatively static wrt to delivery, one of Scrum’s6 most (in)famous contributions to the Agile canon along with The Sacred Lemming Mantra is velocity.7

If was a betting man, I’d put my money on velocity and it’s cheerleaders being the culprit here. Whilst the Agile Manifesto principles somewhat allude to speed – they don’t outright say it. Whereas the concept of Velocity absolutely does.

How fast is your Waterfall?

OK, so that’s where it might have come from, but so what? Velocity is great!

What could possibly be the Problem with Velocity?

Well, depending on your perspective, maybe nothing. Or maybe everything.

My personal problem with Velocity is that it’s just a raw measure of output. Even its biggest proponent Jeff Sutherland, talks about how he “rates his Product Owners on a dollars per point metric” — which signals very clearly that the Velocity metric itself, is completely devoid of any value or benefit component.

On an Agile Project, that’s kind of a problem. Especially if you’re not tracking anything else except velocity. It’s no good being early and continuous if you’re not being valuable.

But on a Waterfall project, that’s not a problem. Velocity and lots of it, is all you need. By the time we get to the delivery part in Waterfall, value is assumed. Value was pre-determined and fixed really quite early on in the project, sometime around the point when we got our requirements right and estimates acceptable and it was all signed off.

In this situation, Faster Delivery is absolutely a good thing. We know what we want, you just need to get it done.

Faster in this context also often defined as “Faster than your original estimates” — which is why claims of “move to Scrum get hyper-productivity” are so seductive.

It’s less of a state of being and more like a request “Can’t you get it done any faster?”8

Harder

But what if that wasn’t true? What if the requirements were not in fact right?

What if, <gasp> the estimates were wrong?

And what if, that sort of thing happened on a regular basis?

I mean, that’s absolutely ridiculous of course, and would never happen where you work I’m sure. But let’s just imagine it’s true, just for a moment, and explore what that might mean.

If this was the case, then when would you want to know that a mistake had been made? (Assuming you have rational and not political goals and additionally don’t have a job lined up at a competitor)

As soon as possible right? Would that be valuable to you?

Damn right that would be valuable. The more time that passes between having made a mistake, and finding it and correcting it, the more damage we do. We humans have a tendency to compound our errors — and this is doubly true with Software.

Therefore, in a world where we only have imperfect information and mistakes are made, then early detection and correction of those mistakes is something we’ll definitely want.

Work it harder

So how do we discover that something is not as we’d like it to be?

Perhaps we should just rely on our people to tell us.

Because people just love to show you that they’re wrong don’t they? I mean, if a developer suddenly knew that a requirement was wrong (and they’d know surely?). Then they’d ask somebody.

And if and when they asked, they’d also be taken super seriously too, I mean there is no chance at all that they’d be branded as a whinger and told to get back to work and mind their own business? (Which is of course delivery)

And further, even if the problem detected was nominally in their realm of responsibility, say the implementation approach or the estimated time to complete. Then there is no chance that said developer would be branded as incompetent having revealed this information?

It’s a good thing we have professionalism, because if any of those things were true people might be tempted to hide problems rather than face the possibility of criticism and ridicule.9

Not to mention the fact that a great many people just don’t like feeling incompetent. So they tend to hide the truth not just from others, but also from themselves. Oh right, professionalism totally fixes this too, I forgot.

So considering all of this, there would therefore be absolutely no need whatsoever to say, stop development every two weeks, on the regular, so that we could give feedback on what had been done to date, and then immediately act on that information? And there would also be no need to share a common definition of what it means to be done with something; because there is absolutely no chance that something might work on a developers laptop, and not at all once integrated with all the other changes and put into production. And that we showed you it now, because, well you were here, and we assumed that there would be no problems. Because we are, of course, professionals.

None of this is required obviously, because we don’t ever get angry with each other, not even passively and as a result people never want to hide their mistakes (because we’d also never decide to just stay back and fix them quietly) and because none of this ever happens, none of this is necessary.

The Horror of Harder

Because if you did do that, if you did stop to fix the issues when you found them, then that would impact your delivery schedule.

And that would be terrible. I mean, fixing mistakes slows down your delivery. (As does quality and testing, but that’s a story for another day)

Much better to simply raise a ticket. So when a stakeholder says “You better raise a ticket on that” you can professionally reply “I already have”. And then you will get a serious nod, so that you know that you have been sufficiently professional.

After all, a ticket is as good as a fix. Ask any user!

Raising a ticket allows the Developers to Continue On With Delivery and let some business proxy representative Showcase just how on schedule we are to anybody who doesn’t have anything better to do that afternoon.

Better

Unless of course we interpret the “early” in “early and continuous” to meaning gathering feedback early and continuously?

And not “early” as in “earlier than your pessimistic original estimates you lazy bastards”

Even the delivery focussed “with a preference to the shorter timeframe” principle could also be interpreted to being about getting real world feedback on what we’ve built ASAP as much as it’s about Capital D Delivery.

“Delivery” has such a ring of finality to it. A ring of correctness. Which is the way we like it in Waterfall. A land where everything is perfect and there are no mistakes. Just disappointments and failures.

And ironically if you focus on delivery, you’re more likely to be predisposed to ignore feedback you’re getting from your production users (assuming it’s going to the delivery team at all and not to some BAU or maintenance function)

So putting stuff into actual production quickly and regularly is really just another way of gathering feedback, really really meaningful feedback, as to whether what we’re doing is working or not.

The concept of Early from this viewpoint means “in time for it to be easily and cheaply corrected“.

Time to make it Better.

Defining Working

One of the key characteristics of “Agile Delivery” is that it runs off The Engine of Acceptance Criteria. When I first tried XP as a practitioner, a User Story was a sharpie scrawl on an index card. Most of the User Stories I see today would probably need to be printed out on a roll of toilet paper there are so many details and acceptance criteria. Which is why I guess, these days, User Stories rarely dare to venture outside of their JIRA® branded fortress.  Where they are very safe indeed.

In this case, “working” can and usually is, defined as “meets all the acceptance criteria” (or in some case “provisionally meets” as there will of course be a giant test phase at the end of the Project after the “Agile Delivery” is over). Once said “stories” have met these pre-contracted and comprehensively documented criteria, then and only then is it considered safe to “demo” them, as we are now sure there will be no surprises. And surprises are of course awful. 10

But what if there was another way to define working? One that actually required people directly affected by the software to use to the software before they could make the determination? I dunno, in some kind of regularly schedule review?

If we did that, we could save a bit of time on all these acceptance criteria, sure we might still need a few, but instead we’d be tracking towards whether or not we’d done something useful, instead of merely what we had been told (or could justify having done).

But that sounds like it would slow down delivery! I can hear at least some of you cry.

Faster

The good news here is that there is a different kind of faster available to us, not of delivery, but of faster problem solving.

This is what it means to me, that Agile is faster.

It does however mean that we have to start measuring from a different point. Faster Delivery by definition only starts at the point that you’re declaring that you’re ready for “delivery”.

At best, Agile Delivery looks something like this:

We are timing how long it takes from the point we’ve defined and designed our solution to when it makes it into production. You might be overlapping some of those “phases” and I hope you are, but we’re still tracking the same two endpoints.

Sometimes thou, Agile Delivery does not include deployment. In some places, that belongs now not to Agile (apparently) but to some newer, younger, cooler thing called “Dev Ops”11 — and thus Agile Delivery has in these places been redefined to this:

Or God Help us, this:

Faster Problem Solving on the other hand is measured from two different end points. Two points that are not even on the above diagrams — because they sit directly before and somewhat after Define and Deploy in our above Waterfall Hybrid Agile examples. Something you might hear referred to in Lean Circles as Concept to Cash.

To navigate down this little stream will require a degree of iteration. The linear left to right arrow is, I apologise somewhat misleading, and merely represents the passage of time, and not linear, even progress.

But problem identification and value realisation are not typically seen as IT issues, that is the domain of The Business! If you define the project like that, then we’d end up with Business People and Developers working together daily, and what would that lead to!

A prominent head of contract negotiation at a major bank once declared it to me as total madness. And pointed out that collaborating with the enemy IT Department is considered in many organisations to be treason. Punishable by lack of career progression.

Stronger

Solving problems creates value. There is nothing more valuable to a person, or an organisation, than solving a problem for them.

Everybody likes to talk a big game about “value” and as a result the term has become a little abused and ill defined. I’ve seen BA’s argue until they’re blue in the face that the requirements document that they just spent two years writing is VALUE. (Even thou 30% of the original users have now retired). Perhaps this is a legacy of the term “Value Add” (as in Value Added Reseller or VAR) — a world where simply doing extra things, was regarded as “increasing value”.

But my guess is that the problem with the term “value” is that it people take it personally. Deep down most people want their work to have value, so that they themselves feel valuable. If you’re a BA in the 21st century workplace, maybe you feel that you have to “declare value” at the point of writing your requirements, because the chances of you seeing them make it into production are terrifyingly slim12.

Which is why, for reasons of clarity and equanimity, I’m talking about Problem Solving. But if you’re a traditionalist, you can think of it as Value Creation if you like.

Either way, it’s a far bigger deal than just quicker delivery.

Makes us stronger

To me, the Working Software alluded to in the Manifesto has never meant software that merely compiles and runs. Software that can stay up for the 5 minutes required to “demo” it.

Frankly I’m not sure why anybody see it that way, but they do. I guess it’s easy. (See Harder)

To me, Software is only Working when it’s solving the problem that we originally hoped it would, or other problems that we didn’t even know we had, but are glad to have removed from our lives.

Software that is working for us.

Software like that does not live in isolation, but is part of a bigger thing. Part of a solution that makes us all individually stronger, capable now of achieving things we could never have done before without it13

Now you might end up with a result like that if you just focus on faster delivery.

But is that a risk you really want to take?


  1. This is of course only a problem if this was not what you intended to do. 
  2. Actually this is not the most extreme form, the most extreme form is “just some of the Software Developers on the days where it suits us” 
  3. By which I mean the coders, or programmers, or whatever else you want to call them. The whole concept of “developers” meaning everybody never really took off in any meaningful way and is at best confusing, so I think ideally we should give up on that one. 
  4. Regardless of colour. 
  5. Interestingly enough there is nothing that could even remotely be construed as providing or requiring speed in the Four Agile Values. 
  6. Although XP also had the concept of Velocity, it is, and always seems to have been, more closely associated with Scrum. Scrum thought leaders have certainly been the most active in promoting it. 
  7. And it’s slighter more attractive half sister from Florida — hyper productivity. 
  8. Said the Project Manager to the Pregnant Woman. 
  9. Unless being professional means never making mistakes in which case… 
  10. Unless of course you’re interested in gathering information cheaply and effectively, in which case they’re awesome. See my talk “Adventures in Advanced Product Ownership” for more details, or take an Information Theory course at a nearby University. There are probably other options, but those are the best two I can think of at short notice. 
  11. Now some readers might be under the impression that Dev Ops has something to do with Developers getting involved in deployments and operations! But according to some very Senior and very sure that they are correct Managers I have met, a “Dev Op” is a new kind of person in a new kind of team and the developers better damn well keep their nose out of it. 
  12. There are at least two factors at work here in my personal experience. I spent a few years consulting to one organisation which cancelled projects with an alarming regularity. Usually after they had been running for several years. Additionally if you work in a place where almost all projects are large, then depending on the industry it’s not unlikely that the lifespan of the project far exceeds the tenure of the majority of the people working on it. 
  13. Even if the only thing it does for us is give us back extra hours in our days, which might be the most valuable gift of all. 

Organisational Archetypes and Agility

A “classic” organisation basically has three archetypes:

  1. Doers
  2. Decision Makers
  3. Information Providers

These archetypes are pretty much self explanatory, and the operational model that they create should be familiar to most readers.

Doers perform the actual work; the work they do is directed by the Decision Makers. This is typically the “core” of the business. Often somewhat outside of this dynamic is a third archetype, the Information Provider. Their actions are also directed by “The Decisions Makers” and their work product is then directly consumed by the Decision Makers, with a view towards making better decisions.

Basically, in true traditional style, everything flows in and out of the decision making function, and decision making is kept deliberately separate from execution.

What happens when you Introduce Agile into this mix?

If you introduce an “Agile Bod” into this organisational dynamic, the system attempts to constrain it to one of the existing organisational archetypes.1 Where you end up depends on which archetype you most closely resemble.

ScrumMaster Shaped People

ScrumMaster shaped people are most often placed into the doer category, either in the form of “Process Police” or “Team Leader” or even “Project Manager”2

Agile Coaches / Consultants

For the Agile Coach role however, the only obvious choice is to make them Information Providers3

Thus the line between “training” and “coaching” becomes more an issue of delivery method than ontology.

What’s the problem then?

This mismatch fundamentally causes three problems:

  1. Bad ScrumMasters
  2. Unintended Power Battles
  3. Wasted Potential

Bad ScrumMasters

Even if you don’t know much about “Agile” you have probably at least heard the phrase “The ScrumMaster is a Servant Leader” or similar.

The problem is that the existing organisational archetypes don’t really allow for Servant Leaders4 – they allow for leaders as Decision Makers and Doers as Servants. Pick one.

Unintended Power Battles

So where does this leave the Agile Coach?

Agile Coaches are typically brought into organisations that are just starting out with Agile, or have tried and screwed it up somewhat.

One of the leading causes for Agile Screw Ups is of course the “not realising that this is a paradigm shift not a tweak” part.

And this is where it so often goes wrong; consultants are asked Waterfall Paradigm Questions that have Agile Paradigm answers.5

And worse, from the consultant’s perspective, the client is either not asking the right questions or focussing on the important things (at least wrt adopting Agility).

Since the consultant feels tasked (and at least partially responsible) for the client’s successful adoption of Agility, they react to this perceived lack of “correct focus” by offering increasingly impassioned unsolicited advice – which in the classic archetype model begins to look like they’re making decisions; and decisions only come from the people in charge; and consultants, if they are anything, are most definitely not in charge.

And thus you end up with an unintended power battle, the perception of a threat, where none was originally intended. Leaving behind it defensive, affronted management and a bewildered consultant who thought they were just trying to help. After all, they were just trying to save you from yourself…

Wasted Potential

So let’s assume lastly that for whatever reason no power battles ensue. We are still wasting potential here. Because the fact remains that (if Agility is the objective) the client probably is asking at least suboptimal questions and potentially directing their focus towards immaterial areas.

So instead of building a world class Agile capability, instead what you get is lots of people who are really good at Planning Poker™.

There is basically no dynamic apart from hiring on the coach as a manager (and thus letting them make decisions) whereby the organisation can benefit from anywhere close to their full expertise.

Rounding the corners

So the upshot of all this is that in order to really adopt agile, your organisation needs to be able to support and recognise at least two additional archetypes:

  1. Enablers
  2. Advisors

Enabling ScrumMastery

The enabler archetype is an oversight role which focuses on supporting rather than directing.

Without it, Servant Leadership, and thus ScrumMastery becomes nothing more than empty rhetoric6 or passive aggression.7
With it however, you open the doors for an entirely new category of management; which includes genuine ScrumMastery.

Advising on Agility

So the final “Enabling Archetype” is The Advisor. And allowing Advisors to exist and thrive in your organisation8 is Step One in terms of accelerating Agility (or the adoption of any other paradigm shift for that matter).

To borrow a term that the 1980’s rendered somewhat cringeworthy; it allows for true synergy between client and consultant.

It allows for a consultant / client dynamic where the consultant is allowed to take information in, then synthesise it with their deep domain knowledge and then spit out useful advice. Genuine contextually relevant advice. Not Best Practice. Not what the last client did. But rather what you should probably do.
It allows consultants to offer strategic, structural and operational suggestions clearly and concisely, without fear of reprisal, not hidden under one thousand layers of politics and double speak (lest the advice be mistaken for decisions and thus be perceived as a shameless grab for power)
In this way your organisation can safely and quickly navigate a paradigm shift; using Advisors as living bridges instead of seeing consultants as nothing more than expensive walking dictionaries.


  1. And if it can’t it will just spit you out. 
  2. I don’t place Project Managers fully into the category of “Decision Makers” here as they are typically tasked with overseeing that a decision is executed correctly not with making the original decision itself. 
  3. We all know that Agile Coach as “doer” is ridiculous ;) 
  4. Or more accurately Servant as Leader, as was the original phrasing that re-introduced the concept in the late 20th Century. This is clearly an even worse deviation from the norm. Many people read that statement as “And the Meek Shall inherit the Earth. Right Now” with the immediate follow-up thought of “Screw That”. 
  5. Or as Alistair Cockburn puts it, “You’ve just asked me a Shu level question that requires a Ri level answer.” 
  6. There is probably a 4th Universal Organisational Archetype – “Ballast” or “Window Dressing” – into which ScrumMaster and Agile Coaches can also be put. “We don’t really know what function these people have, we suspect none, but you’re expected to have them anyway”. This is however a slightly separate problem, because here, Agile is assumed to have no effect beyond the desirable qualities of adopting the brand. 
  7. I will forever be reminded of an Open Space session where a “ScrumMaster” proclaimed that they once tried letting their team self organise, but when they checked up on them “They were doing it wrong”. 
  8. And recognising that Agile Coaches should probably fall into this category. 

“Regular” Products Iterate too…

Occasionally there is push back about the need to iterate on software projects. In fact just today I read a comment in a blog post that clearly stated “The only process that works is Waterfall – clearly define exactly what it is that the business wants, then figure out how you’re going to provide that and then build it” – well that’s a great idea – except around 9 times out of 10 we fail at the first step.

That’s not an isolated thought, it’s an honest one. Many people believe deep down inside that somehow iteration is failing1, or at the very least cheating and some people even call it waste.2

My Refrigerator

Those of you who sat with me at lunch on the last day of Agile Vietnam will know that I own a really nice refrigerator.3

Seriously, it’s amazing. It’s not just the best ‘fridge I’ve ever owned4, it’s one of the best products I’ve ever owned. Forget Apple, this thing just works.

And then I stopped to to compare it to the last fridge I had, and then the one before that – why were they not as unashamedly awesome? Why didn’t they just build fridges like this in 2008? 2003? 1977?

Basically because we didn’t know how…

Oh sure, we could keep stuff cool to frozen5 – and the door would open, and you could in theory see into it in the dark. But I’ve never loved a ‘fridge until now. I’ve never enjoyed using one before.

It’s probably important to point out at this point that I’m not talking about a massively expensive appliance here. The benefits are less to do with how much I’ve spent, and more to do with just how much refrigerator technology and design have come on since I last bought one.

The refrigerator has iterated.

Slowly I’ll grant you; but this is not a new product, it’s an iterative build on the product that came before it.
And that’s why it’s awesome.6

“Real” products – like ‘fridges, cars, dryers iterate. The products I have today are generally recognisable and serve largely the same core purpose, but they are not the same products by any margin as the ones my parents bought.

Refrigerator MVP

But it was not always thus. Visit any stately home in Europe and I’ll bet 9 out of 10 of them have a cellar, cool room or ice room.

Once upon a time (not that long ago – I bet it’s in the memory of your grandparents, if not your parents) – ice in a box was basically the state of the art.

Ice in a box was the MVP7 for home food cooling.

Granted, no single organisation ever owned the entire process from home ice delivery through to the French Doored, humidity controlled LED lit ‘fridge of my dreams, but the market as a whole certainly did (even if it took it the better part of 50-60 years)

Don’t fight the iteration, instead admire the speed

Once you accept that all products exist only to solve problems – to create outcomes desirable enough to pay for, you can clearly see that iteration is not a failure or a cheat – it’s basically the way in which the world works.

The difference with software is the speed at which we can accomplish this.

It’s not a failure to develop your software in an iterative fashion. It’s a privilege. An exciting time to be alive.

When we accept this process as natural we can take our ideas from blocks of ice to stainless steel wonders in a fraction of the time it took our forefathers.


  1. Who precisely is failing here however seems to rely entirely on your perspective. 
  2. Somewhat missing the point I know; but waste is both a tricky concept and an emotive word. 
  3. No kidding, I think we talked about my fridge for about an hour. I think it made us all feel cooler. I cannot for the life of me however remember how the subject came up in the first place. 
  4. One of the upsides of changing which country you live in every 5-10 years or so, is that you’re basically forced to upgrade your white goods. 
  5. Although I’d have to say that the majority of the freezer compartments I had in London operated around the concept of mostly frozen
  6. Imagine if people thought about their cars like they think about their smart phones – I hate this new Audi! It has the same form factor and user interface as the last one! Boooooring! I’m so going to switch to {insert brand here} car which moves the doors and steering system around every time they release a new one! 
  7. Minimal Viable Product 

Have you Mastered the Basics?

So I’ve noticed a trend in recent years. Whereby a lot of people are hungry for “advanced” Agile and Lean techniques (whether it be at a conference, in the classroom or in a coaching engagement)

So far so good, both Agile and Lean have been around for decades – and so it should not be a surprise that people are passed the basics and ready for some more advanced stuff.

But a conundrum often arises in these situations whereby the organisations and people most eager to learn the more advanced techniques are the very same ones that are yet come to grips with (let alone having mastered) the basics of Agile or Lean.1 (This is obviously a generalisation and not true in every case, but it’s sufficiently widespread for me to consider it a trend)

As I tweeted back in January:

And talking to other established consultants, trainers and practitioners it seems that I’m not alone in this observation.

So what’s going on?

There seem to be two fundamentally different views on what “the basics” are actually comprised of.2

And these two views may be an attribute that is unique to (or at the very least exacerbated by) the very nature of Lean, Agile & Systems Thinking.

(So again making a gross generalisation here)

Many people tend to class the basics as things that you do.3

Whereas “we in community” tend to class the basics as concepts you understand.

And thus many feel that they have mastered the basics when they can go through the motions – they write things on post-it’s or enter them into a tool – perhaps they set WIP limits, and they almost certainly know which three magic questions lead to hyperproductivity

But because they’ve not mastered the basics by the community’s definition – they often fail to yield any benefits from these changes (sometimes they do however, but that’s a topic for another time) – and thus they feel the hunger for something more advanced. Something more to do.

So this explains the phenomena – at least to my satisfaction – but it does not necessarily provide an answer 😉

Except perhaps that we should more carefully consider how we use our language and how we label things; because Basic Practices != Fundamental Concepts.4


  1. This does however put me in mind of an episode of House (“House vs God”) – where Wilson convinces a child who believes that he is a saint and thus does not need surgery to have surgery through the argument that an actual saint would have the humility to believe that they were in fact just sick and not in fact special. 
  2. This being an entirely different question to “what the basics actually are” – I’m arguing ontology here. 
  3. As soon as you do that, it’s also easy to apply models like Dreyfus 
  4. Ease of measurement and evaluation plays a big part here too. It’s much quicker and easier to determine whether or not somebody is having a 15 minute Daily Scrum than it is to determine whether or not everybody has internalised the value of (say) slack.