Leading a successful tech team
When you’re in the start-up and scale-up world, things move so quickly you can end up in a leadership role in the blink of an eye. Sometimes you have little experience as a leader and often there’s no guidance or time from your manager or superior to help you grow and improve your skills. Then you start questioning yourself: Am I doing it right? How can I measure the success of the team? What is a successful team?
In this blog post I would like to provide some hints and ideas that helped me in this journey and that I hope can help you if you’re new to the tech leadership world or if you want to focus your career in this direction.
A quick google search will give you 7, 8, 10 different leadership styles. It’s good to know which ones are out there and in certain situations you might need to change or adopt one of them. However, to provide stability to the team, you should keep a consistent line of leadership and try to improve your skill set to be a better leader.
Working in an agile environment and specifically in tech, I would like to focus on Servant Leadership. This style focuses on giving the team members all the tools and skills they need to do their job independently. As a leader, your job is to identify and remove impediments and silos of knowledge and spread this knowledges and the responsibilities among teams members. Raise questions to the team instead of answering them. Lead not only by adopting this mindset, but transmit it to the team so that everyone embraces it.
You are probably tired of hearing words like agile or lean. Why are they so important? — Your team should be able to deliver fast, learn fast, iterate, and pivot, and to do this, you should focus on removing waste — here is where agile and lean methodologies become key.
For example, Product will often propose a sophisticated user interface that will take a long time to do, or your engineering team will come with the perfect caching solution. If this happens, encourage your team to ask themselves: Do we really need this UI or can we do it with a simpler UI, without compromising the feature? What happens if we introduce caching later? A good rule of thumb is: If 20% of a feature is going to take 80% of the implementation time, maybe you should cut the scope.
The next most important question your team should ask themselves is: How do we measure if this new feature is a success?
Two of the indicators you should follow closely are: adoption and impact. Adoption of the feature could be easily tracked using one of the many tools out there such us Amplitude, Firebase, or Google Analytics. Depending on the nature of your project and the feature you are implementing, you might need to look for the numbers of clicks per unique user, time spent on a screen, or other metrics.
Impact is a harder topic and it also depends on what you would like to achieve with your feature. You should not build features just because, you should be able to measure if those features are improving your metrics and your project. Depending on your goal, you might consider looking at: time spent in your app or number of new users acquired.
You must challenge the product and engineering decisions with the goal to release as soon as possible, measure the impact of your features and iterate.
Build an environment of trust. That might sound like empty words, but without trust, your team probably will not move to the next level. To keep your team evolving, they need to feel free to try new things and fail — that’s how we learn since the moment we start walking. Failing is good, but it’s better to fail fast (that’s another reason why LEAN is so important!). We are humans, so at some point, a mistake will be made. This is the moment to focus on why this happened and how to prevent it from happening next time, not on whose fault it was. There are many techniques that help answer these questions, such as post mortem, fail walls, retrospectives. Try a few of them and choose what fits best in your team.
In the era of WhatsApp, Slack, Zoom, don’t forget that human interaction is key to build trust; your goal should always be to convince instead of defeat. See the human you’re working with. We can all feel emotional, stressed, attacked. Having an honest and healthy relationship with your teammates is a key to success.
Define your team vision and values
Defining the team vision and values will help you make better decisions, hire the right people, and address where your team needs to improve and grow. For example, imagine you envision having a T-shaped team vs. an I-shaped team; this changes how you will improve. These values should, of course, be aligned with the company values, otherwise you might be working at the wrong place.
There are many techniques you can use to define your team vision and values, such as V2MOM (used by Salesforce). Just remember that people are more important than processes and adapt everything to your team needs
Think about your ideal team and go for it. Share your vision with the team and challenge them to try new techniques and processes like TDD, Scrum, Kanban, Scrumban, trunk-based development. Nothing should be set in stone. Some things will work, others will not, but make it part of your routine to experiment with new things and don’t be afraid to fail.
A clear vision, values and leadership style, together with building an environment of trust and to follow lean and agile principles are the foundation and you can start building up from here!
And lastly, don’t forget to have fun and smile!
Thanks to Sadie Martin and Patricia La Hoz.