The transition from programmer to Team Lead or Software Manager can be a difficult one.
One week, you’re in your cubicle cranking out masterful code, and the next, you’re managing a whole team that has to navigate innovative solutions, coordinate input from different departments, then anticipate and eliminate potential showstoppers.
Stepping away from your identity as a superior coder into a role in management requires a whole new perspective on your work. Grasp the difference now, and you’ll save yourself months of frustration, friction, and fumbling.
Here’s the biggest realization that most new managers miss: you’re not a production unit anymore.
Starting now, you’re a leader. An encourager. A troubleshooter. A BS-caller. Most of all, you’re communication hub.
Your daily focus is no longer the perfection and elegance of your code, it’s the creation of something much larger using the coordinated work of many other people.
In other words, it’s all about communication and responsibility.
Think of it this way. When you attend a night at the symphony, you don’t go to see the conductor wave her arms around in an expressive and inspiring way. You expect to look past her the entire night, seeing only the orchestra as she keeps the whole group together, keeping time and leading the musicians through each crucial part of the piece.
She’s not making the music, but she makes the entire performance possible.
If the tuba player screws up–even in rehearsal–the last thing she’s going to do is march over, wrestle the tuba away from him and play the part herself. That’s just a formula for disaster.
Because the moment she forgets her role and steps off the podium to wade into the orchestra, the entire show starts to run off the rails.
It’s not the conductor’s job to play every instrument better than the musicians. They don’t need her to stand over their shoulder every moment in the practice room. And they don’t need a lecture insisting that there’s only one right way to play the piece.
Everyone, from the concertmaster to the triangle player, completely understands that they need her leadership at the podium to keep the entire ensemble together. They are relying on her to know the entire piece inside and out and have a good connection with each musician. This allows her to call out the best in them during the performance.
It is just as imperative that new technical managers stay at their podium. Most fancy leadership books are full of inspirational phrases, but they pass over this essential fact.
You and everyone else on your team needs to be secure in the knowledge that the while programmers are responsible for their craft and their individual output, you are in command of the entire process.
Even if your company hasn’t specifically communicated this to you, they’re very clear on your responsibilities for them. I’m here to help you understand those priorities–and own them.
Here are a few essential lead-from-the-podium concepts that every new tech manager should learn and develop.
6 Leadership Concepts Most New Technical Managers Miss
- Keep your eye on the entire project. Yes, coding is your specialty, but unless you keep track of how every programmer’s output is coming together into the product, you’ll miss an issue that can derail yourself, your team, other departments and the delivery date.
- Know the demands of the project and the players’ capabilities. This means reading between the lines of team comments like, “This is easy,” or “This can’t be done.” A solid manager knows what elements of the project are triggering these statements. He can also anticipate hidden complexity in a seemingly simple project or determine how he’s going to have to direct the team around hidden landmines.
- Call BS on idealism and shortsightedness. Occasionally, a conductor has to be brave enough to hurt the tuba player’s feelings in order to have the entire performance come off well. Likewise, managers have to step in with a dose of reality when programmers insist that a project will “only take an hour”, and you have that gut feeling that even an all-night session won’t get it done. Remember that programmers are overly optimistic about their abilities, so build a realistic cushion into the timeline for them–and yourself.
- Don’t take the tuba away from the tuba player. Just don’t. I know, you’re an expert at the work that you’re now managing. That makes it almost impossible to avoid the temptation to jump in and do it yourself. But let me tell you, this is the most time-sucking, team-killing mistake that most new tech managers make. It’s so destructive and prevalent that I’m dedicating an entire lesson to it soon. But for now, just trust me. Stick to your job and let the programmers stick to theirs.
- Realize that communication–not production–is your priority. A manager’s value is crafting relationships on his team that allow him to motivate, direct, persuade, and correct the people on his team. This is the most important aspect of management and the core of your job. But after being in production mode for years, this kind of “work” can feel like you’re not “doing” anything. When you’re feeling this way, start tracking the number of conversations you have with your team members, and then see how your sense of your own production improves. Communication UPWARDS and OUTWARDS is just as important as INWARDS.
- Take the blame when failure hits. While it’s natural to want to shift responsibility to someone else when the deadline was missed or a key function of the software bombed, but pulling the blame card just looks immature. Face the pain, learn the lessons and move on. Learn to say “My Team Screwed up” publicly, and then hold people accountable privately.
Making the shift from a respected programmer to an effective manager is a tough one, and not all of the best practices are obvious. The most essential realization you need to make–one that you’ll have to reinforce repeatedly in your first months in leadership–is that you’re no longer a maker.
You’re a conductor.
About the Author
Marcus Blankenship – Nearly 20 years ago I made the leap from senior-level hacker to full-on tech lead. Practically overnight I went from writing code to being in charge of actual human beings. Without training or guidance, I suddenly had to deliver entire products on time and under budget, hit huge company goals, and do it all with a smile on my face. I share what I’ve learned here.