A poor farmer who one day discovers in the nest of his pet goose a glittering golden egg. At first, he thinks it is a trick and is about to discard it, then he decides to take it to be examined only to find it is pure gold. Each day, the same event occurs, each day a new golden egg is laid and the man becomes wealthy!
With this wealth comes greed and he grows more impatient – he decides to kill and open the goose to collect all the golden eggs, except he finds the goose is empty – and now he no longer has the asset producing the wealth. He destroyed everything!
I’ve seen this happen in software teams!
I recently got round to reading the 7 habits of highly effective people and this story (an Aesop fable) is used as an example of something he calls the P/PC rule. Producer/Producer Capability.
The idea is that if you don’t take care of the producer, you’ll soon lose that producer capability. But equally if you don’t focus on that capability at all, or won’t produce the results either. Focus on that capability too much, and that also slows down the producing. So you must strike a balance between the two.
I think this relates strongly to the idea of sustainability in teams. You may have a highly effective team that flex when necessary and burn the midnight oil to meet a deadline. Watch out though, if you keep pushing them to work weekends, you’ll burn them out (the asset that is producing the results will degrade and produce less).
In this scenario, a once highly effective team, quickly becomes “the cause of all the problems” and the team slips into death march. Then morale goes down, the effective team is now highly ineffective, people start leaving the company. If new people join the team, they are immediately treated poorly, micro managed and sometimes blames for a team or project that is already doomed. The team are marched until the project fails, goes way over budget or, if you are lucky, someone steps in and saves it.
So what should you do?
I recently experienced an Ops Team receiving an envelope full of high street vouchers after they had been burning the midnight oil and working flat out way beyond their core hours for at least a couple of months – whilst is seems nice, I think this sends the wrong message! It sends the message that you will only be rewarded by your company if you take actions that are unsustainable. You could see it in their daily behaviours, they were exhausted. It led to a lot more “raise a ticket” responses, I can tell you. It certainly wasn’t sustainable and they clearly didn’t enjoy it. They even started putting a traffic light system on the top of their desks, so you could look across the office and see which Ops members should not be disturbed. Like “I’m too important to talk to you” – extremely bad vibes. Believe it or not, they rolled these damn lights out to the whole of the office – talk about cultivating a hostile environment!
So, anyway… I am going to assume you’ve totally lucked out and landed a good software team that can deliver good software (not easy to land by the way, but it does happen). It is important to cultivate this golden goose but equally important not to get greedy but equally help the team not get too greedy too, after all they still need to produce!
A good software team love delivering software, and they will keep doing so as long as the work is rewarding. The best example I have seen of this in an agile environment is where business representatives came to the standups each week and did a quick update on Fridays letting the team know what impact the recently delivered features had had on the business – often this was figures of hard cash “sales are up, we’re bringing in an extra 20k per month”, sometimes it was “signups have increased by 7% since this feature went live”. Imagine how rewarding this is for the Team (Producer) to hear this. This is way better than a little high street voucher payoff. Information is cheap but extremely powerful for morale, momentum and inspiration. An effective feedback loop, keeps the team happy and keeps delivering you those golden eggs.
Another reward is freedom to self-manage, internally train and cultivate that Producer Capability. Let them pair programme even though you think it is wasteful, let them refactor openly, let them continuously improve, let them run community events and go to conferences and training days. In the office, code katas are a great way to build team cohesion, work as a team outside the production code, yet find solutions that later help find solutions to use in production code. Let them hone their craft and be experts.
However. It is also completely possible for this team to be rewarded too much or be given the freedom to gold plate, train too much, be too awesome, but without realising, let them get greedy themselves and accidentally take their focus off the job of producing those golden eggs. Their might be the best team in the world but if they aren’t focused on delivering the goods, then how can the goods get delivered?
So back to the solution…. strike a balance within the team, know you need to deliver those eggs, but don’t let the goose die of starvation or get too fat on that lovely golden corn.
Habit 1 of the highly effective software development team is remembering to focus on the team and their needs, not just the goods that they produce and by doing so, resisting the urge to get too much from the team in an unsustainable way.