Common issues we see tech leaders face
During coaching and consulting work with our clients, we often uncover issues that follow patterns we've seen in the past. After decades of working in tech communities while studying and practising leadership, we still don't have all the answers, but we have learned to recognise many of the common problems. Here are some insights on how you can tackle each one of them.
Whether managing conflicting personalities, motivating your team, or growing their careers, people management is the most challenging and rewarding aspect of your role as a tech leader.
Supporting your team to perform at an optimal level and to deliver outcomes within appropriate timelines is the ultimate goal but how you achieve that from your team and the quality of the output may vary. It is common to emphasise the results while ignoring team health, morale, and possible burnout. It is equally ineffective to maintain strict rules around performance, thinking they will lead to satisfactory results. Instead, they lead to micromanagement, and a distinct demotivation of all concerned. Tech leads often work with equal weight team members, therefore trust for good working relationships is vital. The ability to build trust depends on your ability to acknowledge acceptable behaviour, and call out inappropriate behaviour while having a deep understanding of each of your team members and their expertise.
To motivate others and keep team engagement high, which in turn produces results and increases performance, tech leads must take an integrative approach, and adopt a number of management styles to deal with the situation at hand. We are not born knowing how to lead people. Leadership skills can be learned and improved, which means that all leaders can get better at managing teams. You must develop your ability to communicate, motivate, and to coach your team to think about challenges in new ways.
Lack of communication
When team members fail to communicate effectively, confusion, frustration, and conflict may embroil the company. This results in missed deadlines, clashes, poor performance, lack of teamwork, low employee morale, and reduced profits. Good communication involves sending a clear message, ensuring that the recipient understands, and responding to any requests for clarification. Fortunately, there are many ways to improve communication and reduce conflict.
One way to combat miscommunication that leads to conflict is to establish clear communication policies for your team or company. Some examples below are:
- Meetings management - Have a clear meeting agenda that is communicated beforehand, and a defined purpose and outcome for the meeting. Create a space in the meeting where every voice is heard, not just dominant ones. Respect people’s time by adhering to the time assigned for the meeting and not going over time, and by thoughtful review whether this meeting should actually exist. Create a format for how meeting minutes should be recorded, reviewed and distributed. The format you use should include the names of attendees, discussion items, action items, notation of responsible parties, deadlines and follow-up actions.
- Regular updates - Much like establishing guidelines for documenting meeting outcomes, develop a system for team leads to provide regularly scheduled project updates, and broadcast it across the company. It doesn't have to be a time-consuming process; bullet point updates distributed company-wide can ensure everyone is on the same page with expectations.
- Clear documentation - Your company handbook should cover topics such as how information is shared, how we ask questions and to whom, how we communicate with each other, how we work toward company goals, what behaviours are encouraged or discouraged (aligning values), what work rituals do we have, and what communication channels are acceptable for what.
Estimating upcoming work is needed for some level of predictability, to be able to plan for what is in the pipeline, to ensure we have enough people to get the work done, and to prevent blocking other teams from progress. However, software estimation is like asking how long is a piece of string. We have yet to come across a team who has figured how to do this well; how to estimate their next project or big feature, how long it will take, or how much it will cost. Humans are not good at predicting the future, especially when there are many unknowns in play. Sometimes teams use a point scale assigned to tickets as a measure of the size of the work and team velocity, but in turn this specificity can have a negative impact on team effectiveness, feeling of self-worth, and even burnout when they fall short of the arbitrary numbers.
However, there are some things you can do to help with estimations, for example, starting with breaking down big problems into small, manageable pieces of work. You should track current work, how long it took to complete, and use that as a reference for estimating similar future work. Furthermore, you should build a buffer into your estimations to allow for all those unknown circumstances.
Delivery constraints vs quality
Another common topic that tech leaders find challenging is the idea that quality of work is constrained by the project's budget, deadlines, and scope or features. The project manager can trade between constraints as changes in one constraint will cause the others to adjust accordingly. You may have heard this described as "good, fast or cheap" or "time, cost, quality" triangle. Generally, you can never get all three, well, at least not all at once. As they start, many product companies have a limited budget and they rush to get to market. Thus, they sometimes cut corners and do things quick and dirty. This leads to what some call technical debt, and has far reaching future implications for your product. What you are not paying for now, you will likely pay for later.
It is understandable that some compromises are made in order to find a market fit. Engineering teams need to find the sweet spot of not going too fast (and breaking all the things) or going too slow (and not finishing enough of the things). Trying to be a perfectionist with zero-bugs code and zero technical debt is not achievable on even the most funded teams. Many times the solution involves working with experienced conscientious people that understand the trade-offs in the decisions they make, and balance their work between quick and rough and pre-mature optimisation.
Processes: the standard way of doing things
In organisations with multiple independent teams, especially when they experience rapid growth, some work processes happen organically without forethought. What ends up happening is that every team has a different process for software development (for example pairing in one team while doing code reviews in another), or using a different tech stack or different tools (for example GitHub, and BitBucket, and SVN, and sometimes none of the above). Some teams like to try new shiny technologies in every new project without having the time to learn them well. This creates a development environment that is inconsistent, making it hard to onboard new team members as it takes them longer to understand the process and to become proficient.
The solution is to standardise the process. This can be done by using documentation to share knowledge on best practices and processes. First, you will need to find commonalities in how all the different teams work. Document them by creating a backbone that will be the standard for each team when starting a project. Not everyone will agree, but you need to start somewhere, and you will need to cultivate a culture that wants to improve. Get an understanding of what works, what doesn't, and why. Using the same tech stack, tools, and defined code design processes means that you won't have to reinvent the wheel every time from scratch. Instead you can use well-tested solutions that work at scale, and that will be quicker to start and get going.
The list can go on
The above are just some examples of the most common issues that we see tech leaders face but not entirely all. For example, the downsides of having homogeneous teams, over-engineered hiring and interview processes that do not help diversify teams, toxic team cultures that do not support psychological safety are also amongst the common issues that we see tech leaders struggle with everyday. So if some of these all sound too familiar to you, well then you are not alone. The list can go on and tackling these problems require constant reiteration and practice. We hope that this blog post has helped you in some ways to reflect and improve your current strategies and come up with better solutions.