How do you lead a development team without any technical expertise?
The incompetent manager
According to Laurence Peter research made in 1969, every employee is promoted until she reaches her level of incompetence. In other words, if someone is good at their job they get promoted. If after promotion they are performing well and show skills and competence they are promoted again. An employee gets stuck without a promotion when she is incompetent and doesn’t qualify for moving up the corporate ladder.
This effect was formulated as The Peter Principle, and it inspired Scott Adams, author of the Dilbert, to develop a similar concept, The Dilbert Principle, which states that companies tend to systematically promote incompetent employees to management to get them out of the workflow. Adams first explained the principle in 1995 and then wrote a book about it in 1996.
You might think that it’s a joke, but this effect was known before as Putt's Law and was stated in a book by Archibald Putt in 1981. Putt's Law states the following: "Technology is dominated by two types of people, those who understand what they do not manage and those who manage what they do not understand.”
Can a non-tech lead the team?
So can you lead a team without technical expertise so that you don’t become that incompetent boss everybody jokes about at the water-cooler? My biggest takeaway from the years of management is that the key to leading and managing is entirely non-technical. It’s all about the process and communication. The heart of being a project or team leader is being a good administrator. Some aspects of a development process benefit from technical know-how, but it’s not required as long as you have technical advisors.
The reality is this — good developers don’t want a manager to make technical decisions. Your job is to recognize roadblocks and manage your way around them. Your job is to understand issues based on the judgment of those who are dealing with them and making the decision based on their assessment. You are the one to facilitate communication, identify resources, plan ahead and do a ton of other things that are very distant from technical expertise.
In fact, having technical skill might hinder your effectiveness. I do have technical skills because I was a developer for fifteen years. My background is useful sometimes, but most of the time I need to make a significant effort not to get bogged down into technical details of fix the problem myself.
How to avoid becoming the project manager everybody hates
There’s only one reason why developers (well, not only developers) hate managers. They hate managers because all those managers care about is when the work will be finished. They hear managers asking only these few questions — Is this finished? When will you finish? Why are you still working on this? The actual form of these questions varies based on the stress level of the manager and severity of the task. The only way for a manager to turn from an enemy to an ally is to become someone who helps to get the job done and stay out of the way until it’s done. And the only way to do it is by designing the right process.
Right process will help you avoid common mistakes everyone in management does from time to time. Such as setting unreasonable expectations or failing to define priorities and making everything a priority. With the right process, you should be able to manage an essential part to a manager-developer relationship — requirements, scope, and estimations. The right process will also help you protect the team from the upper management, stakeholders or clients and manage their expectations well.
Skills you need to lead a development team
- Communication. Most of the manager’s time is spent communicating. You need to convey goals, ideas, and vision effectively. You also need to understand issues and their sources and be able to deliver them effectively to other team members and stakeholders.
- Leadership. While leadership is a buzzword in the industry, it’s a set of skills that make team members listen to you and value your vision and goals that you set. A leader must be respected and liked by the team to get results delivered in an effective way.
- Team management. You need to manage the team day-to-day and ensure that there are no roadblocks. You need to administrate and coordinate work of multiple people or groups of people by delegating tasks, resolving conflicts and evaluating outcomes.
- Negotiation. You may consider this skill as part of communication skill, but I’d like to emphasize it. As a manager, you have to continually negotiate resources, schedules, scope, and timelines and make compromises. Knowing how to negotiate and say “no” is critical for manager’s and team’s success.
- Self-management. You can’t manage other people if you can’t control yourself, as simple as that. If you are disorganized, always busy, always late and forgetting about things, you will immediately lose respect as a manager. Get organized!
- Risk management. You need to predict issues before they happen and create solutions for them. Every project has a lot of uncertainty, and it’s your job to manage that uncertainty. If you fail to recognize and address risks early on you can put yourself and the team under significant stress or even fail the project.
Make sure you have a technical lead
Nobody likes terrible managers and behaviors that make software development manager bad are quite the same as for any other industry. If you want to lead a development team and don’t have the technical expertise make sure that you do an excellent job as a manager. Trust your technical team members to make technical decisions. One caveat is that you can’t trust junior developers to make the judgment because they have too little expertise. You need to have at least one senior developer on the team who will become a technical lead.
Managers with technical background are relatively inexperienced
One thing to add is that most of the managers with the technical background out there are relatively inexperienced as managers. A manager who’s been managing for years and also worked as a developer for years is a rare find. Most ‘technical’ managers will make rookie management mistakes. If you have decent management experience, then you’ll probably do much better than them anyway, and if you don’t — we’ll you’ll make the same mistakes in the beginning.