The software industry has a well-documented talent shortage. But an organization's success isn’t a function of their hiring process or how many developers they can lure in with salary and perks. In the end, it all comes down to leadership.
It’s true that there are relatively few senior developers, compared to the market demand. It's hard to find people who can pick up a complicated, multifaceted problem and understand what it takes to drive it to completion, let alone convince them to work for you.
Yet great developers don’t appear out of thin air. Every senior engineer had to start somewhere. They worked hard, of course, but many were fortunate to do so in environments conducive to growth. They probably had numerous role models, teachers, and encouraging peers.
Managers sometimes think of engineers as business resources to be deployed strategically, like time, money and office supplies. This perspective is valid and necessary for planning. But please, don't forget that developers are people.
To generalize, software developers tend to be a passionately analytical bunch, often with at least a dash of creativity. They're also sensitive and particular. If you lose sight of this and treat your team like cold, mechanical assets, you'll be forgetting that the value of these specific assets can appreciate over time. In the right environment, even a very junior developer can pick up things quickly and find inventive ways to improve the whole team's productivity.
On the other hand, an unhealthy environment will stifle this very ingenuity. If anyone perceives that they don't have the support they need to be successful, or if the culture is toxic in some way, morale will decline. As a result, the very creative and determined spark that teams need to push through challenges will be missing.
What makes for a healthy, optimistic team culture? As Ben Horowitz points out in his book You Are What You Do, there's no magic bullet to building a great culture. And for that matter, there's no objective formulation of what a great culture is.
However, it's clear that leadership is the essential lever for influencing culture. The behavior of a leader forms an implicit model for how the rest of the organization will think and behave. It's crucial to foster a growth mindset and an attitude of continuous experimentation. This will allow your team to improve, and to dynamically adapt to changing circumstances.
Even junior-level individual contributors can be leaders when they exert influence over the organization's culture through their actions. Culture is a self-reinforcing system whose inputs and outputs are everyone's behavior. But the appointed leaders tend to have more power, and therefore more responsibility, to set a positive and encouraging example.
Whatever their specific duties may be, great leaders are humble and see themselves as enablers, not bosses. They pay attention to others' talents and needs.
It's not enough to merely plan and delegate. You need to build relationships and trust so that the team can self-organize. Otherwise, no matter how talented you are, you're still a bottleneck. And even if your team has world-class technical skills, they need a healthy culture to reach their potential.