Are Hyperproductive Teams Real?
We have all heard the story of the hyperproductive team. That beautiful creation that is 400% more effective that regular teams. The team that never stops getting better. But how many of us have actually seen such a thing in the flesh? I have been lucky enough to see one or two but most teams never reach those lofty heights. Why? Is it because we have the wrong people? Not smart enough? Not talented enough? Not committed enough? I don't think so. I have seen very talented teams struggle while teams that had much less raw talent went on to do great things. Although talent helps, there is no guarantee that a talented team will become hyperproductive and a less talented team will not.
Is it the methodology they use? Is scrum the recipe for hyperproductive teams? Is it Kanban? Crystal? SAFe? Less? Again, none of these things seem to matter. I have seen teams struggle and succeed with all methodologies. So what is it then that allows some teams to become hyperproductive? In my experience, there is one thing that allowed my hyperproductive teams to become hyperproductive - they are parts of hyperproductive organisations. The hyperproductive team is a myth.
Teams As An Ideal Gas
I have a confession to make. I'm a bit of a physics nerd. Actually that's not true. I'm a huge physics nerd. I'm not a trained physicist, I'm an engineer by training (which is pretty close...BTW that loud noise you just heard was a bunch of physicists' heads exploding at the thought of being compared to an engineer) but I have always loved physics. All that sets the stage for my next sentence - I was reading an article the other day on ideal gases (as you do) and suddenly thought that gases make a great metaphor for our teams. Stick with me on this...
An ideal gas is a construct physicists use to better understand the behaviour of real gases. Real gases are messy and awkward and do some strange things (like heat up when you compress them) which make studying them difficult. An ideal gas is a conceptual model of a gas that you can use to infer the behaviour of a real gas. In an ideal gas, you assume that the particles that make up the gas are free to move without impediments and when they interact, they do so in a perfectly elastic collision - both particles rebound and go about their business with no loss of energy. The speed of the particles is related entirely to the temperature of the gas. The hotter the gas the faster they move. This also makes an ideal gas a model of an ideal team.
Why Do Agile Teams Slip?
"Come and have a look at my team" says my new stakeholder. "We have been doing agile for a few years now and while we started well, I think we have slipped back to old habits". How often have you heard this when starting a new engagement? Quite often? What do you see when you take a look? It's usually lack of planning, absence of meaningful retrospectives, ineffective standups, lax WIP limits, poor metrics, mini waterfalls. Yep. They have slipped all right.
When you ask the team why they think they have slipped, you will usually get answers like "we scaled up and things went wrong" or "the rest of the organisation is pulling us back" or "some key people left" or something like that. In my experience these are never the real reason. They may have contributed, but the underlying problem is something else entirely. That underlying problem is almost always the same - they never had the basics right in the first place.
Scaling Up To Scale Down
Last time we looked at the trend towards massive scale in the agile community and some of the problems scale leads to. We looked at an alternative approach. A scaled down approach -
"Imagine, instead of a huge program, we have small groups of teams, say 2-5 teams in a group. Each group manages its own stakeholders, environments, dependencies and the like. Each group is directly aligned to a set of business stakeholders with a common set of outcomes, is funded through an investment pool aligned to business outcomes, not specific project deliverables, and delivers value end to end for the stakeholder group."
This approach would allow the organisation to deliver value efficiently without the need for massive scaled structures and the complexity and inefficiencies that go along with them. The only problem of course is that such a structure is impossible in most organisations because they are built around large programs and large platforms and simply don't have the ability, architecture or processes to handle a scaled down operation.
Should We Scale?
There has been a trend recently within the agile community to embrace massive scale. Not just a few teams working together but really large groups. Every day we see examples of bigger programs, larger release trains, all successfully being managed through agile techniques. Just recently, a colleague ran a PI planning event for close to 1000 people spread across three countries. I have seen other organisations proudly boasting that they have "the largest release train in the southern hemisphere", with some figures on the incredible budgets that the train is managing. The SAFe framework now has 4 levels rather than 3 to enable it to manage bigger and bigger structures. Less has Less-huge to do the same.
While I celebrate the achievements of the coaches successfully helping organisations achieve this, and the incredible feat of facilitation that a 1000 person, 3 country PI event must be, I can't help worrying that this drive towards massive scale is not altogether a good thing. Large companies want scale because that's the way they are used to working. They are used to thinking in terms of large programs of work involving hundreds of people. In order to help them, we have developed techniques that allow us to handle this sort of scale. But just because we can do something, it does not automatically follow that we should do something. There are significant downsides to scale.
Everyday Agility
I was having a discussion the other day about the difference between "doing" agile and "being" Agile. My standard question when asked this is - "how agile is your life outside of work?" Usually people look at me like I have grown a second head at this point, visions running through their head of family sprint planning events ("No dad, I can't accept the washing up card, I already have the homework card and that is much higher priority. You said so yourself.") and having to get out of bed late at night to move the "special cuddling" card from backlog to in progress. That's not what I mean. I don't expect people to live their life according to 2 weeks sprints. That would be "doing" agile at home. Which would be a bad idea.
What I mean is - when you have a problem to solve outside of work, do you naturally use agile principles to do it? This also tends to produce confused looks so I usually explain by running people through the way I write this blog (yes, this is going to be a blog post about writing blog posts. It will get a bit meta). When I first started this blog a good few years ago now, it was a bit...erratic. Essentially I never found the time to do the writing so posts just didn't happen. So I was faced with a problem - how do I make sure that work gets delivered? My answer to that was to establish a cadence.
When To Remove The Training Wheels
We were having a discussion about coaching teams at work a few weeks ago, in particular how deeply embedded a coach should be, so I naturally got to thinking about teaching kids to ride bikes. I know that sounds like a stretch but stick with me. Back quite a few years ago when I was teaching my kids how to ride, I did a lot of observing of other parents and, being a geek, did a bunch of reading online about how to go about it. There are generally two accepted ways to teach kid to ride and the difference is on how long to leave the training wheels on.
Method one leaves the training wheels on for a long time - until the child is "fully confident" and the second leaves the training wheels on for the shortest possible time (there is a third radical method that rejects the training wheel altogether but we shall leave such heresy out of this discussion for now). I was, for the record, a method two parent but I observed a lot of parents using both methods. Method one is the intuitive one - leave the training wheels on until the kids knows how to ride then take them off and away they go. Easy. Trouble is, it quite often doesn't work out that way because training wheels have some significant disadvantages.
Don't Wait To Communicate
A nice short post this time to ease myself gently back into the business of blog writing in the new year. I hope everyone had a fantastic holiday season filled with as much of your chosen way of celebrating as you could handle without doing yourself lasting damage.
How many times have we seen this situation - it's standup time and the team are gathered around the board sipping their morning coffees. "I need to raise a blocker" says one of the team. "I need some help with the design and I've been stuck since lunchtime yesterday so can anyone help out this morning? I probably only need 10 minutes". The team discusses the problem, tasks are rearranged and the team works out how to get the job done. Sounds great doesn't it? But there's a problem here. Can anyone see it?
Perfect Is The Enemy Of Done
Ever been in a standup and heard something like this - "I could complete this task but I'd like to re-factor the code one more time"? What about this one - "All the acceptance criteria are met so I could move this story to done, but I won't because there are a couple of additional cases I think it should handle as well... So I'll add a couple of extra tasks and work on them today"? What about this - "The feature is complete but we can't put it in production yet... It really needs to be bundled with that other feature to make an impact in the market" ? Or this - "The MVP is done but we have decided to hold off on releasing it to market because it's not the complete, fully featured solution our customers would expect"? Or this - "We have decided to delay the release by another couple of sprints to add in some additional features that will enhance the customer experience some more"?
One description of agile is "the art of getting things done". Done is a great thing to aim for. Done means delivering value, making a difference, achievement. Unfortunately, a lot of the time we are pretty bad at it. Done has a mortal enemy that tries to prevent us from ever reaching Done. It continually moves Done further and further away from us. We take one step towards Done and its mortal enemy moves Done two steps further away. The name of this mortal enemy? Perfection.
Agile Architecture Revisited
I have written about agile architecture before, but since I have been working with a group of architects recently (the kind that build software, not the kind that build buildings), I figured it's time to revisit the topic. The question that kept on coming up was "how do you do proper architecture in agile?". It's a good question. Agile is all about just in time rather than up front planning and traditional architecture looks a heck of a lot like a type of upfront planning. We even have a special term for what we want in agile environments - emergent architecture. Architecture that emerges just in time from the team. The problem is that while emergent architecture works fine in some problem domains, there are others where emergent architecture just isn't enough. If you're designing banking systems, or safety critical healthcare systems, or even just regular old big complex systems, relying on emergent architecture simply doesn't cut it. You need some level of upfront thinking (or at least longer term than a sprint or two ahead) to make sure your product doesn't fall in a heap.
Some of the scaled frameworks recognise this and introduce the concept of "intentional architecture" for the upfront stuff. The amount of intentional vs emergent architecture you do is a function of the type of system you are building. That's great but it still doesn't tell us much about how to do architecture (emergent, intentional or otherwise) in an agile environment. Before we look at how to do architecture, we should start by understanding what architecture is, and more specifically, what it isn't. Let me start by saying something really important. Remember this, there will be a test later - architecture is not the same as design. Many organisations, actually all organisations that I have worked for so far, have been getting architecture wrong. In these organisations, the architects didn't actually do any architecture. They produced detailed design documents. That's design. Not architecture. Detailed design absolutely should not be done up front.
Principles Part 5 - Self Similarity
We have now covered six principles -
They are built around small, self-organising teams
The team has a clear vision of what they are doing and where they fit into the bigger picture
The team has a well defined backlog of work
There is a content authority responsible for making sure decisions are made quickly
There is a clear bidirectional service agreement between the team and the rest of the organisation
There is a fast feedback loop that allows the team and organisation to optimise both the process and the product.
At this point we have everything we need to enable a team to operate in a really agile way. The team doesn't need anything else. So why are there seven principles?
Principles Part 4 - Feedback Loops
So, where are we now? Over the last few weeks we have looked at the first 5 of my agile principles -
They are built around small, self organising teams
The team has a clear vision of what they are doing and where they fit into the bigger picture
The team has a well defined backlog of work
There is a content authority responsible for making sure decisions are made quickly
There is a clear bidirectional service agreement between the team and the rest of the organisation
We have a pretty good setup going now - we have an efficient delivery engine (the team), a destination (the vision), a route (the backlog), a navigator (the content authority) and last time we added a clear service agreement, so the team and organisation know what's expected of each other. With this sort of structure they can really start to get things done. But there is still one more thing to add to make the team really high performing - the ability to improve.
Principles Part 3 - Service Agreement
When we left our hypothetical team last post, they had the first 4 of my principles applied -
They are built around small, self-organising teams
The team has a clear vision of what they are doing and where they fit into the bigger picture
The team has a well defined backlog of work
There is a content authority responsible for making sure decisions are made quickly
They have their powerful delivery engine (the team), they have their destination in mind (the vision), they have their route planned (the backlog) and they have someone looking head and changing the route (and even the destination) if things change (the content authority). Is that all they need?
Principles Part 2 - Content Authority
Last post we looked at the first three of my agile principles -
They are built around small, self-organising teams
The team has a clear vision of what they are doing and where they fit into the bigger picture
The team delivers a regular flow of value via a well-defined backlog of work
This gives us an effective delivery engine (the team) with a clear destination in mind (the vision) and a clear route to get there (the backlog). All good? Not quite. If nothing was ever going to change, this would be all we need, but we know this isn't the case. When doing development work, and no matter what it is we are developing, we generally aren't travelling on well marked highways. Most development is, at best, navigating though a confusing maze of back streets and at worst, blazing our own trail through virgin country of varying degrees of ruggedness.
Principles Part 1 - Teams, Visions and Values
Last post I put forward 7 principles that I think every agile methodology should have. In this post, I'll be explaining (hopefully) what each of those principles means and why I think it is important. To recap, the six principles for a successful methodology are -
They are built around small, self-organising teams
The team has a clear vision of what they are doing and where they fit into the bigger picture
The team delivers a regular flow of value via a well defined backlog of work
There is a content authority responsible for making sure decisions are made quickly
There is a clear bidirectional service agreement between the team and the rest of the organisation
There is a fast feedback loop that allows the team and organisation to optimise both the process and the product.
The methodology is self-similar at scale.
So, let's start looking at these in more detail.
Agile First Principles
Recently I put out a post calling for the agile community to stop focusing so much on executing methodologies and return to a principles based approach. To stop doing scrum, or SAFe or Less or whatever and start being agile. That has generated a small amount of comment, mostly people asking me what I mean by a principles based approach and what I think those principles are. Here is my attempt to explain both.
To illustrate what I mean by a principles based approach, I will continue with the analogy of cooking because it's my other favourite activity and because it seemed to strike a chord with those that read my last post on this. There are, as I said before (and to massively generalise), two types of cook, those that follow recipes and those that don't. Recipe following cooks can be great cooks but if they want their chocolate cake to be a little more chocolatey, they need to look for a new recipe. They can't adjust it themselves. Cooks that don't use recipes tend to work from a set of fundamental principles - this flavour goes well with that flavour, adding extra dry ingredients means you need to add extra wet ingredients, bacon makes everything taste better, and so on. So when they want a more chocolatey chocolate cake, they can adjust (add more cocoa and some extra milk to balance). When the cake collapses coming out of the oven, they can diagnose why and adjust so it works next time. When they have a recipe for chocolate cake but don't have any chocolate they can improvise a vanilla cake from the same recipe.
Agile Maturity Checklists
There has been a lot of talk at work recently about agile maturity checklists. There are dozens of them out there in the wild - the Nokia test, the unofficial scrum checklist, spotify checklists. Every organisation, at some point in their agile journey, seems to become consumed by a burning desire to measure just how agile they are, and sets about creating some sort of ultimate agility checklist mashed together from ones found online plus whatever else they can think to throw in.
There are a lot of reasons organisations want to measure agility. Some of them are good reasons, like looking for capability gaps so coaches and leaders know where more guidance is needed. There are also a whole lot of really bad reasons for measuring it, like comparing teams against each other at bonus time, or looking for conformance to a corporate agility standard. The biggest problem though with most agility checklists is that they measure the wrong things. They tend to focus on specific practices rather than focusing on desired outcomes. They are doing agile checklists not being agile checklists.
A Return To First Principles
It's always good to go back to first principles occasionally so let's take a look at the agile manifesto. How does it go again? Processes and tools over individuals and interactions... No wait, that's not right. It's the other way around. But anyone observing the agile community over the last few years would be excused for thinking otherwise. For a group that follows a manifesto that explicitly prioritises individuals and interactions above processes and tools, we certainly get very hung up on processes and tools.
Be warned...this is a bit of a rant so you might want to stand back to avoid getting any on you.
The Limits of T Shaped Teams
We talk a lot about T shaped skills in agile teams. For those who aren't familiar with the terminology, think about a capital "T". The vertical line is the team's core skill, they have deep expertise in that. The horizontal line is all the other things the team is capable of outside its core skill. A good team should have skills that are T shaped (broad as well as deep), rather than "I" shaped - deep in one area with no ability to work outside that (like traditional silo teams). We don't want a team that can only work on the back end of the website, we want teams that can deliver end to end. We don't want teams that can only deliver on the shopping cart, we want teams that can deliver in other areas as well.
The more T shaped our teams are, the more flexible we can be in organising work. If we have a lot of shopping cart enhancements, we don't have to wait for the shopping cart team to become free and deliver them all, we have a bunch of teams who can pick up the work and deliver it. This is a very good thing. There are however, a few key misconceptions about T shaped teams that I have observed over the years, that are worth pointing out and correcting.
The Elastic Limit - Why Change Doesn't Stick
Take a thin steel rod. I'm sure you have one handy. Clamp one end in a vice (which you also have handy...I know I do) so that it's sticking straight up in the air. Now move the free end of the rod to the side a little and let it go. What happened? Did it spring right back? OK, now move it a little further. Still springing back? If you keep going, moving it a little further each time, you will find a point where the rod no longer springs back but bends permanently. Materials scientists call this the elastic limit. Below this limit, materials experience elastic deformation - they spring back to the way they were before once the force is removed. Above this limit, they experience what is called plastic deformation - they no longer spring back but permanently change shape.
So why am I giving you this lecture in materials science? Because organisations behave the same way. When you apply a force to them - when you change something - the organisation is very good at snapping straight back to the way it was before. As soon as you stop pushing the change, the change disappears. We've all seen it happen. As soon as you relax, the change evaporates and within a short time the organisation is happily doing what it has always done.