In Software Engineering, can you be a manager and stay technical?

It seems that most software engineering managers try to stay “on the tools” and keep coding. However, this rarely works out?

Is it inevitable that engineering leaders and managers lose touch with the technology?

Short answer: yes. But the way you “stay technical” may change, and not be quite what you’re used to.

First, I encourage all engineering managers to spend part of their time being hands-on. This may not mean cranking out code as an individual contributor. They should look for other ways to contribute, such as pair programming with engineers on your team or reviewing others’ code. If they do pick up programming work, it should be work that’s off the critical path so they don’t cause bottlenecks.

Second, I believe there are ways to stay deeply connected to the work without necessarily being hands-on. While the code and the unit tests are important, there are higher levels of abstraction where an experienced engineer can add a lot of value without writing code. When I first moved away from day-to-day coding, I felt like I had lost part of myself. But I quickly realised that by involving myself in discussions about dependencies, responsibilities, coupling and cohesion, design patterns, and system design, I was not only able to help my team make better decisions but I also got to scratch my technical itch. Even though I wasn’t writing code, I felt like I was still technical.