5 Tactics for Engineering Managers to Sharpen the Technical Saw

without affecting management responsibilities

You were once a strong engineer, with sharp technical skills. Then you chose to move into management. The expectations from you have shifted from delivering solid, good quality code to managing your team, growing your people, and delivering value. Now, how can you do justice to both – management and technical aspects of your job? You need to be able to think the high level and still be technical.

When I first became a manager, this was a frustrating part for me. I had been a software engineer for many years. I enjoyed being technical and writing code. I also enjoyed unblocking people and providing direction. But I had limited bandwidth. How could I do both? These are some tactics I have used to sharpen my technical skills and still be able to develop my team.

Why is it important for managers to keep up their technical skills?

  • You need the ability to provide technical direction to both technical and non-technical stakeholders.
  • You need to ensure the software your team is building has a good scalable design, is optimal for your customer’s needs, and is not going to increase your operational burden.
  • You need to understand the work your team is doing in order to create opportunities for their growth.  
  • Your technical skills and ability to participate in technical discussions will earn the trust and respect of your team. 

How Can Software Engineering Managers Sharpen Their Technical Skills?

Keep Up The Learning

The good thing about technology is that it keeps on changing. There is always something new that is the current trend. The way we build applications has changed so much over the years. From MVC to Microservices, architectural patterns continue to evolve.
There is no shortage of new and exciting topics. Take advantage of it and learn a new language or a new topic. Register for workshops/seminars. AWS provides tons of documentation for all of its services and products. I have spent countless hours on the Hands-On Training for many AWS services, trying to get smart on the latest tech. Read blogs, watch videos on YouTube. Learn from your team. My team started a “Code Reading Series” where together we deep-dived code to better understand it. I enjoy participating in these sessions because I learn a lot just by listening to my team.

Learn from your team. Build a learning cultures that supports a quest for knowledge and shared learning. 

The key to enabling learning is to actively carve time on your calendar to dedicate to learning. Personally, I set out 3 hours every Friday afternoon to dedicate to self-learning. Whether you do this weekly or monthly, remember to set aside dedicated time for yourself to learn something new.

Work On A Side Project

Depending upon your company structure and your team size, you may not find the time to work on actual projects. But that should not stop you from coding. Find a side project. Personally, I have loved working on JavaScript and Python projects. I find interesting topics in Open Source or Git repositories and use that to give me a kickstart. If my team is exploring a new technology, I find the time to either explore it on my own or ask them to educate me so I am on the same page as them. 

Participate In Design Reviews

To grow your technical chops, get knowledgeable about the system and technologies your engineers are working with, and offer input for design dilemmas. Build a solid understanding of the architecture patterns, design approaches, and technologies being used by your team. Your team will look to you for help with trade-offs to balance timelines, resources, dependencies, customer experiences, scalability, and extensibility of the software you are building.

Participate in your team’s design reviews to facilitate technical discussions. Your job is not to come up with the software design, let your senior engineers do this. You are here to ensure your team spends adequate time on design. Do a pre-design review so you are better prepared for the team review. When participating in design reviews, I use a checklist as a guide. This is not a secret list. I share this with my team and expect them to consider all these aspects in their design. Using this checklist helps me ask the relevant questions and keep the team focused on getting to a decision.

  1. What is the functionality we are building? Does the design get us the desired outcome?
  2. Has the team considered alternate approaches? What are their pros and cons?
  3. Can the design be simplified?
  4. How scalable is the system? What will be its footprint when it grows?
  5. How will failures be handled? This is often overlooked in favor of happy paths.
  6. What are the assumptions being made?
  7. What are the risks and how does the team plan to mitigate these?

Understand Software Metrics

Frequent review of the business, team and software metrics will help you to analyze the health and quality of your software products. This analysis generates your understanding of the performance of your people and systems. Take the time to build this understanding. First, understand what metrics you need to track. Only track those metrics that will lead to an improvement in your overall strategy. 
Create health monitoring dashboards. Familiarize yourself with the alerting mechanisms. Ask your team’s help, if needed. They will appreciate your preparedness rather than asking them for metrics when there is an issue. 
You can’t improve what you don’t measure.
Identify, monitor, and track metrics. For example, I have tracked these metrics and others over the past several years – lines of code written,  lines of code deleted, # of packages created, unit test coverage, integration test coverage, deployment time, code review metrics, worldwide availability, latency,  page load times, etc. Track trends v/s actual numbers. Don’t micromanage your team over individual numbers. As long as you can justify trends, it’s all good. This understanding of your systems will come in handy when debugging critical bugs. It also helps you identify, prioritize, and communicate fixes/improvements needed. 

Participate In Hackathons

I love the concept of hackathons. I love the idea as it removes all unnecessary process; it is fast; it is quick and dirty; it provides a dedicated focussed time; it enables collaboration where teams “hack” their way.  Personally, I participate in hackathons as I get to learn new tech, gain new skills, attain new knowledge, usually from a group of people I would otherwise have not had a chance to with. It is a very collaborative, yet challenging endeavor. 

If you get a chance to participate in one, do get on board and join a team. It does not matter how or what you contribute to the hackathon project, you will certainly have an opportunity to improve your tech skills. Mingling with smart engineers, you are bound to gain an understanding of some new tech concepts. If you hear of new emerging tech, lean in and create some prototypes or build a proof of concepts (POC). Whether your hackathon project wins the prize or not, it will certainly help to sharpen your tech skills.

To ensure your hackathon is fruitful, be sure to plan ahead. It’s a waste of everyone’s time if you all show up to a hackathon with no plan of what to build and how to distribute the work. Understand that you have limited time. What will you build? What does success look like? How will work be divided? What prep is required? Do you need to install any software? Is everyone on the same page? Be sure to discuss with your team and finalize the goal of your hackathon. 

Conclusion

For you to be an effective leader, you need to be skilled in management capabilities and have solid technical skills. It is important for you to keep sharpening your technical arsenal. You may or may not have the luxury of coding alongside your team, but don’t lose your technical abilities. Prioritize learning and create opportunities that enable you to engage in any or all of the activities I mentioned above. Be the leader your team deserves.

Get your FREE Guide for Effective One-on-Ones (1:1)

Use the Key Pointers and Tips from this Guide
to connect and build trust with every single person on your team.