5 ms·
We don't let managers code where I work. We also don't let them do anything technical besides match employees to work they want to do. Your manager is just ther
by ilovecaching 8y ago
We don't let managers code where I work. We also don't let them do anything technical besides match employees to work they want to do. Your manager is just there to make sure you can focus as much as your time as possible being productive.
I really like this approach, it's extremely bottom up. It's not that I think our managers don't have technical skills. They all have impressive backgrounds as SWEs etc, but this setup is for the best. The alternative at other companies I've worked for ended up with managers who slowly lost their technical skills and essentially fossilized, and couldn't make rational tech decisions, and managers who intertwined their management success with the product and drove it to ruin because they weren't making the best technical decisions for the product.
So please, if you're a manager, stop coding. Manage people, unblock them, make sure they are happy. Empower them to do the coding for you.
- gergelyke 8y agoThat makes sense too - as I see it depends a lot on how big the team is that an engineering manager works with, as well as if the team is a product or a platform team, among other factors.
- ilovecaching 8y agoOur teams have a hard size limit, after that we split and get a manager for the other team. If a manager is managing more than a handful of people, he can no longer give members the attention they need.
- seabrookmx 8y agoA lot of companies do not have the foresight or resources to simply split a team though. There's lots of way to organize teams as well. At previous companies we've organized yes around products, or around skillsets, for instance.
- jimejim 8y ago"We don't let managers code where I work." "...ended up with managers who slowly lost their technical skills and essentially fossilized, and couldn't make rational tech decisions" There's a connection here. A technical manager can't make reasonable tech decisions unless they do some tech work, but perhaps we just need to be more clear that what you want is a pure project manager to check off boxes. I think a good tech manager still respects a bottom up approach most of the time, but should have enough experience to push back when the group is steering in the wrong direction. A generic project manager isn't going to do that.
- ilovecaching 8y agoWe don't want managers steering anything. That's either the job of the group or the tech lead. The manager is supposed to manage the team the same way a managers manages a baseball team. You get the right people, give them the right tools, and let them play the game.
- therein 8y agoExactly, this feels right to me. A manager's job should be to keep track of things but without micromanaging too much (a good example was checking being able to build your team's code on occasion etc.) and also providing the tools and protection they need from upper management so that the team can play the game. In my previous team, I essentially had the tech lead role in the team but that role wasn't acknowledged with a title, although the entire team was very aware of it. Ended up getting too much friction with the new manager and I left. I got a job almost simultaneously as I left. It is much shorter commute, it pays more and it is more exciting. However it is unfortunate I had to exchange 3.5 years of rapport I've built at a place for these.
- therein 8y ago> "We don't let managers code where I work." That leads exactly to the situation you described below. > "...ended up with managers who slowly lost their technical skills and essentially fossilized, and couldn't make rational tech decisions" I recently left my job at a respected social network over my new manager lacking the proper technical skills yet not accepting more reasonable solutions. Case in point: imagine you have an API endpoint you normally hit with your service, periodically. We make a GET request to this endpoint but it also supports POST. The parameter sent is q=<some_long_string>. It comes to my attention that this long string can get over 1MB long, at which point it causes issues with our service. I bring up in a meeting that we should just POST to this endpoint instead of doing GET at all times because the data could be larger than 1MB at times. Makes sense, right? Well, my manager without the proper technical awareness basically pushed for us to check if the query is larger than 1MB and POST if and only if it is larger than 1MB. I gave my two weeks a week after that and made it very clear to the upper management that this manager was the reason I was leaving and I felt like I was being stifled by having a manager like this.
- alexchamberlain 8y agoI don't understand the second paragraph; how did a manager that codes fossilise? Conversely, how do your current managers not?
- ilovecaching 8y agoFossilizations happen more so because companies treat manager as a promotion rather than a separate track for engineers who want to focus on people. You have managers who are used to solving problems with a skillset that's probably been outdated by the pace of technology, who no longer have the time to invest in keeping current since they're essentially wearing two hats now and they have more going on in their lives.
- zeroxfe 8y ago> So please, if you're a manager, stop coding. Not a fan of this advice at all. My best managers were also fantastic engineers that actively contributed to the project. They were better at handling escalations, better at making technical decisions, got more respect from their reports, and were fantastic for team morale. If you have a bad manager, it's not because they're coding, or too technical, it's because they aren't good managers. Good managers also know how to motivate, delegate, support, and lead. They know when to get their hands dirty, and when to let their teams fail and learn. And most importantly, they understand engineering tradeoffs, and when to make them. Most top tech companies have very technical managers, and even though they're not always great, I'd take a random tech manager over a random non-tech one any day.
- dilyevsky 8y agoThere’s only so many hours in a day. The time you wasted coding could be spent much more productively doing your actual job which is managing.
- ilovecaching 8y agoThey're not supposed to make technical decisions. What you're talking about is one person wearing multiple hats. Sure, some people can do that. But the end goal is to have a manager that manages as his sole job. Getting your hands dirty is a bad thing. That means your spending that time doing technical work when you could be reducing friction for the team and promoting their work.
- icedchai 8y agoIf you go too far down that road, you wind up with Dilbert-style PHBs who know nothing about the work their team actually does. I'd rather someone who can get their hands dirty, help out the team if necessary.
- zeroxfe 8y agoSorry. I guess I straight up disagree with all of that. I also disagree with the notion of "sole job", which inevitably leads to "that's not my job", a common response at ossified organizations. IME, well-functioning companies are made up of flexible individuals with good judgement. Obviously, there must be a "main job" for every individual -- I think that's absolutely required. I really wish more managers would actually get their hands dirty.
- icedchai 8y agoHow big are your teams? This probably makes sense for a larger team where the person is less technical and more people focused. In most small companies, this would not cut it. I worked with another team (6 people, 1 manager.) Their manager did NOT code and he was not well respected at all. It caused a ton of morale problems, complaints, etc.
- ilovecaching 8y agoThat's about the maximum number of people a manager should be managing. The biggest issue I see is managers who don't code making technical decisions. Like I said in my OP, managers are supposed to unblock people. The team or a tech lead should be making the technical decisions.