I spoke at Brighton Lean Agile last week, stepping in at short notice to cover for a friend. The event was great fun and I enjoyed the discussions I had with everyone. Rather than share the slides, I thought I’d do a quick blog post, allowing me to add some context to the bullet points.
The talk discussed how agile doesn’t always work, and what can be done about it.
As Churchill put it: “it has been said that agile is the worst form of project methodology except for all those other forms that have been tried from time to time.”
While I might sound cynical about agile in what follows, I still believe in it. I think that the principles it promotes, such as regular reviews, tailoring methods to the team etc. are incredibly important. At the same time, a good waterfall project beats a bad agile one.
While agile is detailed and subtle, there are core principles that are easily applied. It is flexible – there are accounts of it being applied to many industries and sizes of team. And it is popular – a large number of people have experience of it.
However, most companies face problems with the implementation, and even fundamental aspects. Every IT job ad I see these days has agile as a requirement. But listing something in a set of job requirements is not the same as understanding or implementing it.
Issues with the daily meeting
I believe in the principle that ‘the way you do anything is the way you do everything’. I’ve seen a lot of issues with the daily meeting, and feel that many wider issues with agile could be alleviated by getting this right. The stand-up is particularly useful for experimentation since it happens daily, and only lasts 15 minutes (in theory!). Note how ‘briefing scenes’ turn up in movies and TV shows a lot – this meeting should also be compelling, informative and entertaining. Problems seen include:
- The stand-up is boring
- Too many people in the stand-up
- The stand-up is not relevant to the entire team,
- The stand-up is at the wrong time
- The stand-up shifts with a manager’s schedule
- The stand-up becomes a reporting tool
- Some developers think agile is silly
Some things I’ve tried
- Balancing co-ordination vs social vs reporting
- Adding initial reports to slack (particularly useful across timezones)
- Changing who runs the standup (making team members feel more invested in agile)
- Enforcing promptness
- Track who is talking and who isn’t
- Asking what we gain from it
- Be high energy, be entertaining
Most of the points above are self-explanatory. I think it’s important to look at what an organisation needs from the daily meeting, and to focus on providing that without distraction or fluff (for example, if you do need people to report to management, find a more effective way to do that). The energy is also important – attendees need to think about their contribution and how to make it effective.
- The estimates are already set (by a team member or management) and planning is a sham
- Low expectations – developers aren’t pushed
- No theme to the sprint
- Team members don’t understand some stories (specialisations)
- Nobody cares about the estimates – the code is produced late without any investigation
- Translation is made between story points and time (worse when compared between teams or the translation being used is not explicit)
- Estimates aren’t believed by management
- Pressure is applied to reduce estimates: “But how long if you try harder…”
- Estimates are given as self-protection – Padding or straight-out refusal to play
- Punishing bad news
- The team are told how, not what and why, meaning they estimate that method rather than considering wider goals
In the discussion we talked a little about how teams refusing to give estimates is usually a symptom of a larger problem. Another issue is estimates as negotiation rather than a best-effort prediction (ie padding for safety). Punishment for failing to hit previous estimates often leads to this sort of padding.
I concluded this section by saying that estimation sessions were something I often wished to cancel, possibly in favour of the person who was most informed/influential doing the estimates themselves. One participant said they had abandoned estimates in favour or sizing stories in a predictable manner.
One important thing to consider is whether the information in the estimates will change anything. If not (for example, schedule and scope are already set) then there may be little point spending time working out how long something will actually take.
When agile doesn’t fit the business
- External factors (deadlines, releases, tradition) restrict agile
- Product owner issues:
- No time to do the role
- Don’t want to do the role (the product owner is the most senior person who can’t avoid doing it)
- Product owner has no power (proxy product owners)
- Too much long-term planning – looking months ahead rather than supporting the team’s current work
- Committing to futures that might not happen
- Disconnect between stories and business
- No idea how much a story costs to produce
- Team composition shifting so you can’t learn anything
- Technical debt is ever-growing
- Multiple developer commitments outside project
- Agile not adopted/understood/respected above the team level
- The project is scheduled with no slack for developers being called away by emergencies.
- Planning based on what people would like to happen, rather than taking note of what will happen
- An example of this is ‘schedule compression’ – the deadline doesn’t move, but everyone resolves to try harder and be more efficient.
- Not warning people about coming problems in the hope that someone else announces a serious issue first
Why aren’t Things Better?
I made two suggestions – the first was a reference to Sturgeon’s Law, which claims that “90% of everything is crap”. Maybe agile is difficult, everyone is doing their best, and we just have to be happy that things are working better than they would without agile.
My other suggestion was looking at cargo cults. This is a pejorative term in agile, but this betrays a lack of sympathy/understanding of the actual cargo cults.
Cargo cults were seen on a number of Polynesian islands, particularly after world war 2, where the residents of those islands built planes and airstrips from local materials, supposedly in the hope of cargo planes landing on the island. It’s given as an example of people imitating something without understanding the principles.
However, this idea that cargo cults are foolish is a racist and limited one. Indeed, the idea that they are about the arrival of cargo and that people actually expect planes to land are probably misapprehensions. For those involved, there are other reasons for setting out these airstrips. Western anthropologists have potentially had a blind-spot in their own obsession with monetary goods and missed these deeper motives.
In fact, these cargo cults are a success, if you understand why they have been set up. They are also effective simply on the terms for which they have mocked, since the cults have brought anthropologists and TV documentary crews to the islands in question. But to see why they succeed, you need to have sympathy/empathy with why cargo cults exist.
A lot of agile implementations seem to feature a sort of sabotage, where people involved do things that are directly against their best interests.
I closed by suggesting that, when an organisation is doing things that are obviously wrong and harmful to agile, there is often a deeper, more compelling system in place. This then formed the basis of a final discussion section.