“Are we there yet?”
This is the whine from the backseat of many road trips. Maybe you’ve been on some of these? I have, both as the driver and the impatient child. It’s hard for a child that doesn’t have as strong a sense of time or patience to sit still and enjoy the journey. Without having anything to do, it’s even harder.
As a parent, I’ve learned to patiently set the context with my children as we prepare for a trip. I then talk to them about what we’re doing, how far along we’ve made it, and interesting things we’re passing. Well, they’re interesting to a dad anyway. With an ongoing conversation, at least the time passes quickly and I don’t get asked that question.
Thinking about it today, I realize that “Are we there yet?” is a euphemism for, “I don’t want to travel with you any longer.” The journey just doesn’t seem worth it at those moments.
I think this is true in our business life as well. A leader needs to sell the team on where we are going and how we’ll get there. In fact, if they haven’t done this, very little else really matters.
It’s even worse with software developers. We are problem solvers by craft. Until we’re sold on where we’re going, we naturally treat it as an unsolved puzzle and often get carried away trying to do the leader’s job for them. It’s an advanced form of nerd snipping.
So, for software developers, they need to be assured (often) that the problem isn’t the organization, the product or anything else. The problem is a particular set of prioritized issues and features. If that’s not known, the problem is figuring those out. Software developers can reason with product owners about whether a customer will notice a feature or whether a bug is critical or minor. It’s not really a negotiation, just a little bit of information needs to be shared.
This is important for productivity. It’s also important for cost management. Engineering is usually one of the most expensive parts of a project, some of the riskiest components, so getting engineers to push along is critical.
So, why is it so hard for most companies to figure this out?
It’s rare, in my experience, to actually get a team to work together and move in the same direction. And, we don’t live in an autocratic society. Right now, it’s usually pretty easy for a developer to leave a company and get a job at higher pay. There just aren’t enough software developers for current demand. So, trying to control every aspect of a person’s thinking and loyalty is a futile experience. Only the insecure will stick around in the face of utter control.
What I’ve seen work is respecting why the key players are at the table. As in all things, never delegate understanding. A leader can’t wield knowledge they never had. Figure out what’s actually making people tick and help them turn that into something valuable for the company.
A particularly loyal employee told me why he was willing to stay so long at a troubled company. “The CEO never failed to appreciate my particular skill set. After that, of course I’d do anything he asked.” The leader knew why this person was at the company, what brought him fulfillment and clarity. The CEO honored that, and this talented human moved mountains for him.
Put another way, by recognizing the talents my friend had, they made it easy to answer the more-important question: “how can I help?” Outside of caring for children, humans don’t often do something for someone unless they actually want it.
An Ugly Chapter (one time it all went terribly wrong)
As a counter example, I once had a particularly challenging experience at a company. Half of the development team had left in a matter of months. There were grumblings that half of the remaining were preparing to leave as well. Without dragging out all the dirty laundry, there was a common issue that kept coming up, nobody owned anything they worked on. People were reduced from solid developers to something miserable and frustrated. Somehow in the pressure, this leader got in the habit of starting and taking over things, then leaving everything unfinished and nobody confident they could contribute. I heard, without exaggeration, 100 times, “it doesn’t matter anyway, X will just come in and change it whenever he feels like it.” I heard this over and over again.
I’ve never seen a team succeed where the team members weren’t allowed to win.
Or, if the leader has to be the hero, everyone will do the bare minimum not to get fired or stick out in any way.
I think that’s the way I want to leave that story. There are many useful details that someone trying to lead a team successfully would want to hear. However, my experience tells me that people can grow and learn. I don’t want a criticism to be an excuse for someone to be stuck in their ways. My advice is that they need to point where they’re going and get out of the way so people can do their jobs.
This isn’t about culture
Notice how, in my opinion, the answer is to get someone that sees where a leader is going and wants to pitch in. It’s not about creating culture. Despite all the hype, culture is a cheap substitute for strategy.
Actually think about that for a moment. There’s a strategy/culture trade off. If there’s a strong strategy, people get vested and excited about their contribution. If not, people get excited about getting along, having fun, being personally recognized. It becomes about looking good rather than doing good. Even in cultures of delivery, the external pressure of delivering something isn’t as useful as the internal desire to produce something important.
That means it’s not about who’s in charge. It’s not about leadership style. It’s about wanting to be part of the core purpose of a team. And, in my experience, wanting to be part of that purpose is a lot easier and cheaper than trying to manufacture culture.
That’s because when we get a job, we almost always developed some real talent to be there.
Developers especially paid an incredible price to be at their desks. For me, it was attending lots of school, reading hundreds of books, spending near 80,000 hours of practice (I’m a workaholic though I’m less and less proud of that as I grow older). I had to really want to be there, and my experience isn’t unique.
We worked incredibly hard to get there. We have incredibly critical reasons to be there. Use that to get someone to care about where you’re going, and you’re a leader of software developers.
This really is an issue.
Believing in where we are going and having some ownership of the solution is the easiest cure. I’m not talking about equity or options. I’m talking about just letting people deliver worthwhile contributions and thanking them for it.