Managing a team of developers without any idea how to do the work is a disaster.
Of course, having some experience doesn’t guarantee you’ll be an effective manager, but without it you’re almost guaranteed to fail.
Managing a team of developers without any idea how to do the work is a disaster.
Of course, having some experience doesn’t guarantee you’ll be an effective manager, but without it you’re almost guaranteed to fail.
As a manager my goal is to use as little of my technical knowledge as possible but rather to let my senior technical leaders do that part instead. I've got so many other things to handle and deal with that being technical except at a high level seems silly.
Like what?
- Helping figure out the right goals and metrics for the team and ensuring everyone is on the same page.
- Holding 1-on-1s with team members, non-technical feedback and yearly reviews. Seriously, yearly reviews are a massive time sink if you actually care and spend time on them.
- Passing around information to the team and making sure they are involved in the right meeting/conversations.
- Attending various management meetings that usually could be replaced with a wiki page.
- Resolving non-technical issues my team members are having. This includes listening to venting sessions, complaints and general bitching. Need to handle these situations in a diplomatic non-judgemental way.
- Keep track of team non-technical blockers (people, process, etc.) and try to resolve them (short or long term). This includes resolving product management issues and other teams blocking my team.
- Keeping stakeholders close and happy
- Selling the team, it's vision and achievements broadly
- Hiring
- Planning team promotions and executing on those plans. This includes telling your team members what they need to do to get promoted and then ensuring those promotions happen.
- Non-toxic (or toxic depending on the company) politics
- Talking to random people in the company for networking. It's amazing how much people from HR will tell you if you are friendly and get coffee with them.
In my experience engineers hate it when an out of touch manager makes an estimate on their behalf and then they are forced to do crunch time to meet it.
edit: Also most projects come via the PM who would coordinate with the tech leads directly for planning and scoping.
This brings up my overall view that being technical can often make a manager take short term shortcuts. That works right until it no longer does and then you have a broken team and culture and processes. Not thinking technically means you are forced to implement good long term processes and not keep monkey patching things. For example, if the managers keeps making these decisions in meetings then senior engineers will wonder how they can have their voice heard except by going into management.
Even if they trust me to provide them with estimates (and they understand that 9 women cannot have a baby in a month). I have to spend a lot of time just constantly communicating the information they need, and why certain things need to happen so they can tell (and satisfy) their stakeholders.
A Visual Basic 6 programmer "can't" be hired to program in Javascript, although its the same people and skills 25 years apart. However put that VB6 programmer in a management role and somehow that completely obsolete technical skillset is "invaluable", LOL.
Likewise, some lessons transfer. "Huh, that time we were working on Thing X and relying solely on Bob's technological expertise we were completely screwed and the company went under after after Bob had an aneurysm, I should make sure there are no single points of failure on the team knowledge wise."
Or "Man, we built such a beautiful Visual Basic 6 program, but the interface was so bad nobody used it and we failed. Let's make sure our front end and back end people are communicating properly." Or, "This was the most elegant technical solution, but then it turned out nobody had the resources to run it. So let's make sure to do our user testing and make sure we're designing appropriately."