What to look for when choosing the captain of your team
Efficient leaders in software development teams often find themselves at the confluence of all the structures of their organization, from the team they coordinate, to the upper management, clients, stakeholders and all the other departments. The more one tries to construct a strict set of parameters for identifying a perfect candidate for the job, the more it becomes apparent that (1) the perfect software development team leader might not exist and (2) that a lot of the qualities necessary outside the scope of the job description are more matters of character traits and charisma.
In this material, we embarked on a discovery journey to trace the anatomy of a bad software development manager to its fundament, to understand how they come to be, and to look at the qualities and characteristics that should make for a great software development team leader who is able to deliver show-stopping products. In paying close attention, we concluded that a lot of these qualities can be discovered, educated, and nurtured so that an inveterate software developer can come to understand what they need to sprinkle on top of their expertise in order to step up for their project and for their team.
Read onward to find out more about the deal breakers that impede proper leadership, and the qualities one can nourish to ensure it.
What are the deal breakers? The problems with software team leadership
Especially from an executive position, knowing to look for the ‘red flags’ in a software development team leader may turn out to either cost you or save you valuable time, money, and churn in the long run. According to a study published by the Society for Human Resource Management on maximising success while onboarding management employees, one employee leaving the company ends up costing the employer an average of 6-9 months of the former employee’s salary just to correctly identify and successfully onboard a competent replacement. All the while not accounting for dents left in productivity, and the more sensitive-to-assess costs of re-investing in institutional knowledge or in client relationship management, in some cases.
In this section of our material we will be looking at two of the most relevant pressures set out for a software development team leader, as well as at the flaws that can stand to become debilitating for his team and the success of its projects as a whole.
As stated in a Researchgate study, the technical skill of the manager per se may not be important, but the manager having technical knowledge is very important for his managerial skills. Thus, there are some problems of software engineering management that cannot be solved just by being a good software engineer, as it were.
At the start and end of the day, the software team lead needs to:
- successfully take responsibility for the flow of the project, make sure that he not only delivers the product, but does so within the negotiated term with the client and in a timely fashion;
- ensure proper training and guidance for his team members;
- assign tasks and responsibilities to the team’s members according to their expertise;
- follow and account for time management practices both for himself and the team.
So, what breaks in this process? One of the most challenged, yet ground breaking principles that stands out in this context is the Peter Principle. In short, a person who is highly competent at their job will earn a promotion, based on their achievements in their field of expertise, to a management position that simply requires a completely different set of skills.
After a while, the team leader either commits to acquiring the necessary managerial skills to properly conduct their activities or attempts to apply the same principles he used to complete a project as a subordinate on an entire group of people. This does not always turn out for the best.
We narrowed down the following two major paradigms in which a software development team leader fails his team.
The Human Side
There are a series of soft skills that must become second nature to a team manager in general, and a technical team lead in particular. Here, we will tackle the lack thereof.
Lack of Empathy
An unequipped software development team leader seems to always fall short in their ability to read people’s reaction in various situations and cannot seem to properly assess social queues (when it is a good time to push for results and when it would be in the team’s advantage to allow time for regrouping). They do not take the time to properly understand the strengths and weaknesses of each team member and seldom listen to opinions, complaints, or suggestions.
A disconnection like this can lead to a bad assessment of the team’s strengths and weaknesses, improper placement on different roles, gaps in or misappropriations of ownership on projects, or simply an alienation from both the highs and lows that the team is confronted with.
Lack of Trust, the Need to “Take Over”, and the Vicious Circle
It’s the basic “I have been hurt in the past” scenario. One of the most common mistakes that a team leader can make is not be able to “let go” of the knowledge ownership over the project. They act and feel suspicious about the professionals they themselves helped to hire and patronise or undersell their own team members’ ability to successfully complete a task. Grazing over the self-evident dissatisfaction of the employee, this leads to a gross imbalance both in responsibility and ownership over the work and the results – the plague of the overly cited micromanager.
The micromanager will get results, that is true. But they will be fleeting under the underlying costs of replacing frustrated employees who gradually either become fed up with the communication pattern of their superior or simply cannot pursue their ideas or explore the creative (i.e. problem solving) side of their job. So does the micromanager risk of adding ”truck factor” to his set of nicknames. By gradually accumulating knowledge that they withhold from the team, they risk becoming a liability for the success of the project itself, if they suddenly ceased to be part of it.
The paradox of this attitude is that the developers themselves will not be able to gain full independence without some responsibility being delegated to their roster as well, stunting their growth, thus validating the initial prejudice of their “bad manager”.
The Managerial Side
Lack of Feedback
Both good and bad. This is the software team leader who either criticises without offering constructive feedback or worse, disengages and does not open a healthy dialogue with the team members. What comes hand in hand with this attitude is a failing to acknowledge one’s accomplishments, to give credit where credit is due. In short, a deal breaker that is often cited by members of software development teams is a lack of proper communication with their team leader and a sense that motivation is dwindling under an overly critical or tedious leadership.
Lack of Leadership Skills
Either over-procedural or not procedural enough, either pushing for unrealistic deadlines or stagnating deployment dates with complicated solutions to simple problems, one of the most common issues faced by a software development team lead is the sheer lack of the managerial skills required to hold a team of people together.
An otherwise experienced developer who was not however prepared to be a leader will often prove to lack in autonomy and will either not be able to make difficult decisions, or will rush into them. They may avoid facing the stakeholders with bad news and take it out on the team, might demand complete transparency while not offering clarity in their decision-making process, or just simply may not be able to muster a much-needed sense of humour in a tense situation.
What are the solutions? The qualities of a good software development team leader
Both when outsourcing management or when trying to assess competence within a software development team in order to identify the perfect leader, talent may prove hard to find. A Gallup study on US business management goes on to state that around one in ten people actually possesses the qualities necessary to lead. So, if just 10% of professionals naturally engage team members and clients, retain top performers, and sustain a culture of high productivity, what are the chances for the other 90%?
Some of them should maybe reassess their path and follow a career choice that requires them to engage less within a strongly defined hierarchy. Others, however, have the option of educating themselves by consciously cultivating a series of traits that will improve the statistical odds.
Google studied this phenomenon within its team and found a set of ten pivotal skills necessary for good management to thrive in a technically rich environment. We compounded this skillset with our own research and came up with an enriched list that focuses more cohesively to the particularities and challenges of software engineering.
A good team leader needs to be able to understand the nature of a problem, find a way to help the team overcome it, and turn it into a learning opportunity. The team leader breeds a sense of curiosity among the team members and is able to nurture an environment of constructive growth by encouraging constant learning and development.
Team empowerment goes hand in hand with avoiding micromanagement. When detecting this kind of flaw within oneself or in the candidate an executive is looking to promote to a leadership position, a good solution is to encourage a thorough assessment of the team’s strengths and weaknesses. A software development team leader who knows his team well will automatically be able to assess his ability to delegate and to build trust.
Moreover, by slowly letting go of autonomy and by assigning the right tasks to the right people, not only will enough growth be encouraged within the team members, but results will start showing as well.
Inclusiveness and Wellbeing
A good software development team leader will know how to balance work with play. They will strive to create a relaxing working environment, cultivate relationships with their team members, and properly assign more accessible tasks to developers that are maybe in a “burnout” stage, or create creative challenges for the ones who may be unmotivated. All the while not forgetting to show a sense of humor.
Promoting Productivity and Results
Good results start with proper goal orchestration. And for that to be achieved, one of the most common cards to play is the Agile principle. An Agile team leader will constantly thrive to optimize the balance between company culture, goal orientation and productivity meters to harmonize the three and increase productivity. All the while keeping all the parties involved happy and eager to collaborate on new projects.
According to a Michigan Technological University study on communication patterns in software development, the essential intangibility of software presents some unique communication challenges, compared to other engineered products. It mandates sophisticated communication to convey requirements and changes, in ways that accommodate multiple stakeholders’ mental models and goals.
The key is to constantly balance this with transparency and an open line of dialogue with the team. Encouraging effective communication between team members will not only increase morale, but also instil predictable expectation from the project itself and the upper management’s future plans. It will offer a sense of belonging and develop trust on both sides.
Supporting Career Development and Performance
Going hand in hand with communication and productivity, a team’s inner development, and an orientation towards performance (encouraging professional and technical growth) will have visible effects on the end-product as well.
Clear Vision and Strategy for the Team
As Infoq puts it, team leaders can become innovation engineers and should allow themselves to dream, within the boundaries of divergence and convergence. That is to say that they should be constantly pushing themselves and their team to come up with innovative ideas, while weighing all the practical means of putting them in practice. All this comes packed with the ability of thinking ahead. Once the software development team leader has a long-term strategy of growing productivity and investing in an efficient and cohesive team, they will be able to construct paths and make decisions that meet their specific end goal.
Possessing the Technical Skills Necessary to Offer Proper Guidance
As an executive or a stakeholder in an IT company, it may seem easy to conclude, after reading the stats, that it might prove healthier to just hire a team leader outside the scope of the field to just manage processes and let the developers “do their magic”. There are traps on both sides, however. And the truth is, it may prove easier to spark the flame of leadership in a brilliant inveterate developer than to teach an external project manager the ropes of the job itself. Guiding a team through the process of problem-solving on an IT project cannot be done without a solid technical background.
This trait does not limit itself to gaining the capacity to delegate properly or to find ways to engage all the members of the team in problem-solving. The team leader must have the vision to detect the proper moment in which to employ the help of higher management, or to facilitate a perpetual exchange of information between the structures of the company for things to run smoothly.
Good Decision-Making Skills
An autonomous software development leader will exhibit the kind of strength, backed by experience and the trust put in an efficient team, to know when to say no to a client and to persuade them about what works in the best interest of the end-product. This requires to practice integrity and an infallible sense of consistency in actions that breeds reassurance and predictability.
When looking to choose the perfect fit for managing a team of software developers, the key is to find a fine balance between flawless expertise and a proven “social” factor. This might sound tricky, but the truth is that the baseline traits – assertiveness, empathy, accountability, integrity – are not elusive attributes of a manager that do not come up in the day-to-day machinations of a professional outside of an executive position.
A keen eye and a solid evaluation system will weed out the candidates that not only look good on paper, but have consistently proven potential and checked the majority of the boxes needed to drive productive results and build harmonious, efficient, and collaborative teams. Look around. They’re out there!
If you’re interested to read more about our take on team management, make sure to also check out how our lead developers maintain healthy relationships with customers, and how our design team found its superpowers.