If you’re a manager of a software engineering team, then like most of your peers, you probably struggle to stay current with the latest technology and trends while also juggling the myriad responsibilities you have as a manager. To an extent, managers of all disciplines have this struggle, but it is particularly difficult in engineering where the discipline itself moves in dog years. A manager’s ability to make sound decisions , offer good advice, and gain the trust of her team is a direct result of her ability to blend wisdom with an understanding of everything modern.
How do the best software engineering managers do this?
Make the act of management an opportunity to learn
For some managers, learning is a process that occurs separate from work. There are classes, books, tutorials - countless formats for learning. Then there are meetings, roadmaps, 1:1s, etc - the work.
The trick is in breaking out of this paradigm and re-programming yourself to make learning part of management itself.
1. Let your team teach you
Often, the individuals on your team are keeping up on technology at a more rapid pace than you are. Rather than looking at them only as individuals who need mentorship and guidance, leverage them by absorbing their knowledge. 1:1s, white boarding sessions, etc - in addition to their stated purposes - can be used as opportunities for reports to educate their managers, and in doing so, themselves practice their communication and mentorship skills.
2. Let outsiders teach you
If your team possesses knowledge a bit foreign to you, then this is often doubly true of people on the outside who may not use the same technologies or methodologies to which your team has constrained itself over time. So the next time you interview a candidate or have a phone call with a partner, again, don’t limit your interaction to the stated objective. Ask them questions that help transfer knowledge! They’ll often be glad to spend a few minutes helping you and, in the process, prove their value to you.
3. Distinguish trends from fads
You will often find that the conversations described above help you generate a surface-level understanding of new technologies and approaches. But you may end up leaving those conversations with more questions than answers. This is good! You now know what you don’t know, and have hopefully asked what content you should consume and/or who you should talk to if you want to keep learning.
You cannot possibly generate a masterful understanding of all technology. The key is to listen to and watch carefully for signals. The more people you learn from, the more you will get a sense of a technology’s present-day popularity, its growth curve, its core audience, its strengths and weaknesses, and its future. After enough conversations, you’ll be able to predict with reasonable accuracy a fad vs. a trend. You’ll want to do your best to resist investing your time in learnings fads. You’ll want to do everything in your power to get up to speed on the trends. Which brings me to…
Spend some time engineering
If you don’t get into the weeds every now and then, you’ll be completely unable to understand what your team is up against and what can be done to move it forward. So by all means, set some time aside to work with technology hands-on. The exact percentage of time you spend on this will vary by individual and org, but I believe should average between 15-30% for well-established teams and ~50% for new ones.
There are just two simple rules to follow here:
- Make sure that whatever you do ultimately provides some value back to the org outside of enhancing your own knowledge.
- Don’t work on anything that is in the critical path for your team or org at large. After all, you’re a manager; your first priority is your team, not your code, so you can’t have others waiting on your code.
There are a variety of projects that match these rules perfectly. A couple examples:
- Future business initiatives not on the short-term roadmap that will likely require new tools and methods
- Low-priority bug fixes in unfamiliar areas of the existing architecture
I hope I’ve made the case that it’s really not so difficult to stay up-to-date as an engineering manager. Just like the engineers on your team, it’s important you have a methodology and a process. With this in place, you can break down the psychological barrier between managing and learning, instead accomplishing both by working smarter.