The Six Types of Leaders in Software
I’ve been a software developer for a long time and have run into many types of leaders over the leaders. As I transition into more of a lead role I’ve begun to realize just how important leadership is in the success of a software project.
Way back when I was starting out in the software field it was the knowledge of technology that I thought set apart a great software team from a mediocre one. As I’ve witnessed and been a part of great as well as mediocre teams, I’ve realized that software and technology is the easy part. There are challenges of course, but the real challenge is people.
You can teach Node.js. You can get someone up to speed with object-oriented programming. But it takes a special type of leader to marry all of that with business requirements, customer support and developer interactions.
Unpredictable leaders are a very dangerous yet common type of leader in the software community. They produce hesitant followers, and hesitant followers don’t follow for long in the competitive software development field.
Technology changes every day, and the hot thing yesterday is deprecated today. Unpredictable leaders regularly change direction. Whether it is the technology being used or some new methodology, unpredictable leaders produce followers incapable of focus.
Perhaps they returned from a conference where they saw a keynote that inspired change. Maybe a new Pluralsight course caught their interest. Or possibly they learned of a competitor that’s doing something the team should try.
There’s nothing wrong with these notions when they’re thought through, warranted, and discussed with the team. But to continually break a developer’s focus for the latest whim is very dangerous to the productivity of the team.
If you find you tend to be a bit of an unpredictable leader, consistency is key. Consistency builds trust and is very important to software developers. The vast majority of developers thrive in consistent environments, and will be able to produce much better immediate results even in an outdated framework than implementing the latest craze.
Domineering leaders produce compliant followers. They intimidate and use their position to get others to follow them. I would argue domineering leaders generally don’t truly understand the software industry.
Software developers are not dumb, and they should be free to think for themselves. An entire team of “yes-people” may work for a project or two, but not long term. A domineering leader is like a coach who keeps his best players on the bench while he suits up to play.
Not only is the creativity of the developers held back, but let us not forget about the bus factor. A domineering leader produces a bus factor of one. If the leader quits or gets hit by a bus, the team is left in disarray. And being a domineering leader is not good job security.
If you are more of a domineering type it might be time to let go and give the team some more freedom. Ask lots of questions, but only to understand, never to imply a command.
Secretive leaders produce guarded followers. They don’t have a reason to trust you so they avoid telling you things just as much as you avoid telling them. They don’t feel as though their ideas matter.
Perhaps their vantage point is too naive because they don’t understand the bigger picture. While they may not and should not know everything, a viewpoint into the future produces trust. The more they know, the more they care.
Software developers are are on the front lines. They understand the immediate problems better than anyone and often know solutions to problems that their leaders don’t even know about. A guarded follower doesn’t feel as though their opinion matters so they just blindly follow, often disgruntled because they know they are heading in the wrong direction.
Transparency and honesty are fairly obvious traits in a good leader and it’s especially true in software. As mentioned earlier, the field is competitive and good devs are always on the lookout for what could be next for them in their career. Never let them feel unsure of what that may be, because someone may just come along with a clearer picture.
In my experience passive leaders are the most frustrating leaders to have to follow. These are generally very inexperienced leaders who don’t take leadership seriously and the entire team suffers from it.
Whether it’s an issue with employee morale, requirements gathering, or enforcing clean code, the passive leader does nothing to address the problem. They just hope it works itself out. They avoid all conflict. While this may work for a period of time, once people feel it’s not a fixable problem they lose interest.
Passive leaders produce disengaged followers. I said it before and I’ll say it again, the software field is incredibly competitive. When people don’t care because their leader doesn’t care, they either are not going to stay long or are going to produce below average results.
If you find yourself identifying yourself as a passive leader, acknowledging the problem is the most important thing to gaining your followers interest again. You may not have the answer, but showing you understand the problems and are working with them to find a solution shows you care, and will start to make them care as well.
It’s time to turn to some positive types of leaders. A healthy leader is the opposite of each of the four negative leaders we’ve talked about. Healthy leaders produce faithful followers. If you’ve ever had a healthy leader, you know what a pleasure it is to work for them and what a positive culture it creates.
Unlike unpredictable leaders, healthy leaders have a clear vision that they don’t deviate from. This is so important for developers as it allows them to focus on the stack they are working on. They don’t need to go and learn a new technology or framework every week to stay ahead. They can focus their efforts on the current technology, allowing them to become more and more productive on the projects.
While a domineering leader is all about compliance, a healthy leader allows his or her followers to make decisions. The healthy leader asks far more questions than he gives specific directions. Each dev is tasked to own their project. A team full of members with an ownership mindset can completely change the culture of a team.
Secretive leaders keep things to themselves but a healthy leader trusts their followers with decisions that could and will shape the business. This is huge, as it allows those on the front lines to make the important decisions. When any employee feels trusted, it makes it a lot easier for them to trust the leadership.
A healthy leader will have far less problems than a passive leader would in the first place, because the followers are in a place to take care of most of them. Nevertheless, the healthy leader is always one step ahead of these issues and now has the time to spend to find solutions, increasing morale and keeping everyone on task.
When it comes down to it, followers have to believe in their leader. As long as that is the case, they will want to spend more time for them and for the business.
While a healthy leader may sound like the cream of the crop, it should not be the end goal for a leader to achieve. In my experience, all leaders could improve in most areas mentioned, so it’s certainly a good place to start.
However the best kind of leader is the empowering leader. It may seem a bit counterintuitive, but the best types of leaders produce other great and healthy leaders. It seems like it could be a threat to job security but the empowering leader is so extremely rare and valuable that couldn’t be further from the truth.
They do everything a healthy leader does, but also empower others to do even more that the leader could do themselves. They give responsibility away and train others what to do with it. Empowering leaders empower those on the front lines to make business affecting decisions.
As someone who’s graduated with a Computer Science degree, I can confidently say the vast majority of those working in software are never trained on leadership skills and that it doesn’t come naturally to most. This means the empowering leader is even more valuable in software than in other fields. You often won’t find great developers, you have to build them.
This and the subsequent posts are based on the the Craig Groeschel Leadership Podcast. Each post will take the concepts discussed in the podcast(s) and relate them to leaders in software. I have no affiliation with the podcast.