Effective Tech Leading

Ankit Sharma
5 min readMar 2, 2020

--

When done right, it is very rewarding.

Photo by Jehyun Sung on Unsplash

Disclaimer: These are my personal views and they are not representative of my employers’ views.

I’ve been working full time as an Android Developer after finishing my Master’s in Computer Engineering since 2016. And I’ve been the lead developer for the projects I’ve worked on for over two years. I’ve gotten some really good opportunities and would like to share my experiences to help you become the lead developer for your project. Even if you are the lead developer on your project, hopefully, some of my learnings will help you level up. My learnings apply specifically to app teams although most of them are pretty generic and can be applied across a spectrum of technical projects. Companies may have slight variations in how they define the position of tech lead but I’m talking about the standard A person who guides other developers on the team definition.

Work with the Project Manager

“The single biggest problem in communication is the illusion that it has taken place.” ~ George Bernard Shaw

Your company may call them product managers but these are the people who’re responsible for the timeline for a project. Even though agile is the preferred way of doing things in a lot of companies, the reality is that every project has a deadline, and nobody likes delays.
Before every sprint planning meeting, it is a good idea to ask your PM about the short term priorities and long term priorities and if there have been any changes.

I know you and other developers on the team want to work on that juicy refactor you’ve been eyeing for a while but your PM may have information which you don’t. Knowing and being flexible with changing directions and helping other developers on the team shift gears is a necessary skill to have as a tech lead.

You don’t know everything

“If I have seen further than others, it is by standing upon the shoulders of giants.” ~ Isaac Newton

A lot of times we think we have to know everything, (as someone with a bad case of imposter syndrome, I know that feeling too well) but it is not humanely possible to know it all. After working on a variety of projects with a lot of different kinds of developers, I’ve realized that the experts are experts about a specific domain. Every company with a sizeable developer population has people who are experts in something, you want to ask about asynchronous code, go and ask X, you want to talk to someone about architecture, put some time on Y’s calendar.

There will be times when you’ll be stuck, feel frustrated and someone will ask you something which you have absolutely no idea about. Next time it happens, try this.

1. Take a deep breath
2. Look at the person with a kind smile.
3. ‘I’m sorry but I don’t much about this. Let me look at this for you (or) I think X knows more about this’.
4. Put your noise cancellation headphones back on and keep coding.

Motivating other developers

“The mediocre teacher tells. The good teacher explains. The superior teacher demonstrates. The great teacher inspires.” ~ William Arthur Ward

Once on a project, I was working with a super smart developer. We were light on workload, as the client wasn’t sure about what they wanted to do. (Don’t clients always know what they want you ask? LOL).

The team was feeling demotivated, so I worked with the PM to create stories to do a refactor of the existing code but required us to learn some new things and implement them in the project. We pitched it to the client saying how it will help make the project more sustainable and awesome and they agreed. Even though we weren’t working on any new features, the prospect to learn something new and use it improved morale and boosted productivity. And we did end up decreasing the number of bugs we had and made the code more maintainable.

Know your craft

“If a man is called to be a street sweeper, he should sweep streets even as a Michaelangelo painted, or Beethoven composed music or Shakespeare wrote poetry. He should sweep streets so well that all the hosts of heaven and earth will pause to say, ‘Here lived a great street sweeper who did his job well.” ~ Martin Luther King Jr.

Photo by SwapnIl Dwivedi on Unsplash

When I say know your craft, I mean that you have to be REALLY GOOD at atleast two to three things. One thing I noticed working with designers was that most of the designers either have iPhones or come from a web background so a lot of them are not familiar with the user experience for the Android OS.

This is something I’ve been paying attention to and learning by downloading popular apps and investigating their behavior, following up with new releases of the OS and seeing how I as a customer feel about a certain behavior when I’m using an app. This has helped me push back in meetings when the designer decides to implement a user flow even though that may not be the best user experience on Android.

Avoid the Tech Walls

Too often we become religious about the programming language, the framework or software we use. I believe what matters most is using the right tool for the job. It’s very easy to run towards the shiny new thing but the cost to the development team for doing that can be huge. Doing so entails that every developer has to learn a new way of doing things. The whole team has to stop feature work and spend all its time porting things over.

It is good to analyze the pros and cons and only decide to commit to the new programming language/framework if the pros far outweigh the cons.

--

--