
Six months ago my team went through a crisis.
Well, "crisis" is a big word. It was more like sobering up.
The kind of sobering up that happens when you suddenly wake up and realise you are not on a yacht in white trousers, you are sitting on a swing on a playground, throwing up into your own pocket. Everyone has been there, right?
Code quality and delivery speed were going down. The team was turning from a single whole into a pile of loners. Our service was sliding, aiming for the customer care standards of the DMV.
All of it had to be fixed, and fast. But I saw right away that on my own I would be chewing through that much work for years. I needed help from my guys.
If you want a developer to do something for you, put a ticket in Jira. For some reason we don't accept any other way. Maybe because we are afraid that otherwise we will have no proof that we are busy with something we are paid for. Or because our memory is a goldfish's: if you don't write down what you are doing, you forget it in 15 minutes.
But this was not the kind of work you can write up and order. I needed the guys to come up with the solutions themselves, and to dig out a free minute for it themselves, somewhere between their everyday tasks.
I needed a different approach. One that would make my guys want what I want.
A cynic would call it manipulation. I call it…
A leader is someone who invents a future for other people.
A leader "dreams" that future, imagines it in detail, keeps building it out.
A leader believes the ideal is reachable. Their confidence turns a plasticine sketch of a dream into a stone castle.
A leader shares that vision with others and gets them to follow it.
A leader gives certainty about the future to their people.
That certainty gives their life meaning.
Yes, that is not everything a leader has to be able to do. They also have to be active, sociable, patient and so on. But without the ability to lead people, all the rest is just a set of useful qualities.
I thought about the perfect future from three sides: the service, the team, the delivery of code.
A perfect service is one where it is absolutely clear how to work with it, which gives promises and keeps them, doesn't break, and runs without a manager.
A perfect team is a group of world-class professionals who make decisions fast and on their own, who support each other, who can coordinate their work to walk towards a common goal.
A perfect way to deliver code is Continuous Delivery (CD). Everything here was invented and sold to the masses a long time ago.
I was not trying to come up with something realistic and easy to reach. That is the whole point of a "perfect" future. The image of a perfect team, for example, is something you would want to build, something worth the time spent on it by itself. Something objectively good and bright. Something you will not be ashamed to tell little coder kids about when you are old.
At the same time you have to understand that the road to that ideal can serve the selfish interest of every participant. And that is good. It gives everyone positive reinforcement on the way to a big goal. For the guys the personal stake here is professional growth and an excuse to touch new technologies and practices.
I talked my vision over with them, worked out who was interested in what, and set up three task forces: TITS (Top IT Service), TOPLESS (Team of Professionals Elevating Systematic Solutions) and BUTTS (Build Unblocked, Tested, Trusted, Shipped).
On the very first calls with the task forces I asked:
"Why did we decide we have not reached the goal yet? How is our current state different from the perfect one?".
For BUTTS I also asked:
"What stops us from just scheduling a release once a minute? What could go wrong?"
* spoiler: almost everything
That is how we built the list of obstacles we would have to get through. We picked the worst ones, the ones blocking most of the light at the end of the tunnel, and started attacking them. Every two weeks we had a call to discuss what we had achieved and how we were moving on.
We shut TOPLESS down a couple of months later. The guys tried to graft the "design review" practice onto the team, it did not take, and they decided to stop.
TITS and BUTTS are still alive. The guys are growing as professionals, they help the team with their effort, slowly getting closer to the ideals we drew. Maybe not as fast as they expected themselves. But that does not matter. What matters is that they have already closed the biggest problems we had, and they keep moving towards the goal.
A cynic could say this is an artificial, imposed path.
I think any path is better than no path at all.