(This is a different take on Uncle Bob's Where is the Foreman? http://blog.8thlight.com/uncle-bob/2014/02/21/WhereIsTheForeman.html)
The gardener of a garden is the guy who cares about making sure all the plants are given the optimum conditions to grow. He's the guy with the compost that goes around making sure all the soil has the proper nutrients. He's the guy who examines all the vines and leaves to make sure parasites have not invaded. He's the guy -- the guy who cares -- the guy who makes sure everything grows right.
Where is the gardener on our software projects? Where's the guy who makes sure all the coders are finding satisfaction in their work? Where's the guy who makes sure people are working through a weekend only because they love what they do too much and not from managerial subjugation? Where's the guy that encourages the physical well-being of a coder's otherwise sedentary lifestyle so that we don't all get shorted YEARS of said developer's brilliant contributions? Where's the guy who makes sure that the programmers are trusting enough, exploring enough, creating enough? Where's the guy who keeps the weeds away?
Without a good gardener, a garden is destitute. The weeds choke out the healthy plants. The soil becomes barren. The parasites destroy everything.
Without a gardener, there is no produce.
What would the gardener do on software projects? He'd do the same thing he does in a garden. He'd make sure everything is healthy, everyone is respected, everyone is cherished. He'd make sure communication flows frequently and naturally throughout the team. He holds no authority over anyone and leads by example. He brings in cupcakes to celebrate Mary's birthday. He encourages Brian to take the day off because his daughter's health is more important than the deadline. He gives a lunch and learn session and invites everyone out to happy hour.
I imagine that many programmers scoff at the thought of needing a person to tend their emotional well-being. After all, the world has taught us that we ought to take care of happiness on our own time. How can you possibly write code to the best of your ability when you aren't convinced that what you're doing actually matters? It'd be like every other dog eat dog corporate business that just focuses on maximizing some metric of productivity by squeezing as much as it can from its resources.
If you want your team to innovate, for them to care about the condition of the code base, to make your company more money, you need a gardener. And that gardener has to be so empathetic and genuine that even the emotional walls of the toughest employee can be set aside. He has to take no authority against them so that they will trust him. And he has to have the courage to champion and empower a developer to say "No" to the unreasonable demands of the customers and managers.
Where is the gardener on our software projects? Where is the guy who loves? Where is the guy who makes sure processes and tools don't become more important than people and interactions?
Why don't we have this guy?
Is it any wonder why we produce nothing of value?