Humans are a complex and contradictory bunch. We wish the impossible to be true, the complex to be simple, and mistake slow progress for inaction or reversal.
We are much more easily seduced by a singular, all encompassing answer1 than the messy, tangled chaos of reality.2 We love thinking that affecting change is straight forward. That if you did ‘This One Neat Trick’ then everything would be fixed.
We conflate simplicity with clarity, and are confident in the person delivering that message. We assume competence correlates with conviction. After all, if they didn’t know what they were talking about, they wouldn’t be this forthright and direct.
We use their words as salves for our concerns, to solve the big, thorny, complex problem we’re facing. We hope that some might even rub off on us.
And if we’re lucky – the illusion breaks, and we see that the Emperor has no clothes before any damage is done.
Back in 2017, I found myself needing to have the hardest conversation of my professional life.
At the time I was working at OrangeBus, as Scrum Master on a large account to develop a social care platform.3 This would allow people with additional needs to use their Direct Payments to independently book appointments, etc, for the assistance they needed.
As with all development, design assumptions are made with the best intentions. As people start to use the service, we find out if those assumptions are correct.4
During a few months of tweaks and changes, it is noticed that the pilot users are booking appointments in excess of the funds they have available. This was due to a user’s funds being deducted after the appointment has occurred, rather than when it was booked.
It was agreed that a sensible change would be to trigger the deduction at booking. A story was written up, estimated, and brought in to a subsequent sprint.
Work begins, and is picked up by a relatively junior member of the team. After a couple of days, questions start being asked about why it’s taking so long to get ‘this simple ticket’ in to test. The Dev Lead decides to pair with them, and they’ll speak to me if anything unexpected turns up.
Lunchtime rolls round, and the Lead catches me as I’m heading out to grab a bite to eat. Something weird is going on. The code is not performing in the way we’re expecting.5 We agree the best course of action is to keep investigating, and to shuffle some tickets around to make space.
Come end of day, we still have no idea what’s going on. I decide it’s best not to drop that particular bomb right before logging off for the night. In stand up, we try to walk the line between transparency and not spooking the PO/Client, with some success.
But by the end of the sprint, things are looking pretty bad – for two reasons. The obvious technical one, but also the relationship with the client. We’d been through some rocky patches before6 and there wasn’t much trust.
It’s the sort of situation you dread. Having to explain to someone who thinks you’re shit is only working with you because of decisions higher up, that it isn’t you and your team that are the problem, but the product they’ve spent the last 18+ months building.
And not only that, but we have no idea how long it’ll take to fix.
What do you do in that situation?
Do you try to bullshit your way through? To project confidence and simplicity in the face of the unknown? Trying to buy time, sprint by sprint, and hope that you’ll grind out a solution just fast enough so they don’t pull the statement of work?7
Or, do you tear down the facade?
Those of you who worked with me at the time, or saw my AgileNE talk many moons ago, will know the answer to what I did.
During the latter’s Q&A, my favourite question was on how to deal emotionally with that sort of situation. At the time, my answer was; “I drink a lot”.
A better answer is that honesty, transparency, and the truth are more important than perceptions and facades. Trust is built through someone experiencing you choosing to ‘do the right thing’. To not try to blag your way through.
To differentiate between your confidence in your skills and being able to lead the way out, versus pretending you already know the route.
We would never have solved the problem by hiding it, by pretending that what ended up being six months of rework to the core part of the system would be finished in the next sprint.
- i.e. Populism – deport minorities, the poor are feckless, addiction is a personal moral failure, etc ↩︎
- Ronald Reagan is attributed as saying “If you’re explaining, you’re losing” – and look how that philosophy turned out… ↩︎
- This was an account OB inherited when bought by Capita, and I was put on the project about a month before the pilot launch ↩︎
- And this is why waterfall will always cost more, take longer, and produce worse outcomes ↩︎
- With ten years – and many lunches – of distance between then and now, I can’t remember the details of what the issue was. What sticks in my mind is realising that we had no idea how the system seemed to be allocating money correctly, when the code to do so demonstrably wasn’t. ↩︎
- Some of which I handled better than others ↩︎
- Something they’ve already done, twice. The first being at the end of the first day you met them ↩︎