39 ms·
Turn your best programmers into managers
- ShehryarShahid 4y ago[dead]
- marcinzm 4y agoIsn't this exactly why there's Staff+ paths for engineers at tech companies?
- maxk42 4y agoExactly. I'd argue that your best engineers should probably stick to engineering. And your best managers should manage. Don't take someone's skillset and dilute it by playing to something other than their greatest strengths.
- joshthecynic 4y ago[dead]
- roenxi 4y agoWhile programmers probably make quite good managers; it is worth noting that software companies write software and then transform into some other form of company. Google, for example, started as a software company then became an advertising company. Since writing software isn't what they really do, it is unclear what use it is trying to promote programmers into general management. If writing new software the the core business of an organisation then sure, put a programmer in charge of things. I'm struggling to think of situations where that is the case. Usually the success of an existing company doesn't depend on writing new software.
- darreninthenet 4y agoThat's a really good take but the reverse can also happen - my last company was an insurance company in the UK who's job was selling insurance... now they fully accept (with the way insurance is sold almost entirely online and with bringing rapid product and website changes to the market as fast as possible) that they are now a software development and data company who's end goal just happens to be selling insurance.
- justinlloyd 4y ago> I'm struggling to think of situations where that is the case. Usually the success of an existing company doesn't depend on writing new software. Video games and, to a lesser extent, consumer devices.
- menzoic 4y agoSoftware is always used to build something. A digital advertising company does in fact have software as the core business. You need software engineering managers to manage the software that continues to be built and get more complex.
- shard972 4y ago[dead]
- mcraiha 4y agoDo not do that. There is a good podcast episode about this in Freakonomics that explains why it will most likely fail https://freakonomics.com/podcast/why-are-there-so-many-bad-bosses/ https://freakonomics.com/podcast/why-are-there-so-many-bad-b...
- Cypher 4y agoI don't want to be a manager.
- warent 4y agoIt's a short and sweet comment with a lot of understated power. A lot of people mistakenly conflate management with upward growth, and mistakenly believe you're not growing if you don't make this "career leap". Management is lateral. it's not for everyone, and it's not the definition of success
- a_t48 4y agoWhile I agree with this, I’ve been at multiple companies that claim to have a management and a technical track, but neglect the technical track as it’s much more straightforward to define success and show progression as a manager.
- jjav 4y ago> A lot of people mistakenly conflate management with upward growth It's not a mistake, if the company doesn't provide any growth opportunity for ICs beyond a level equivalent to a Sr.Director or so. If you want to make VP/SVP/EVP level comp, what other option do you have? In most companies, none.
- sarchertech 4y agoSure if you want to make it to VP it’s very hard to do it as an IC. But then again it’s hard to make VP as a manager as well (outside of title inflation or working at a very small startup). It’s just a numbers game. 50 engineers, 6 EMs, 2 directors and 1 VP. The amount of meetings a VP attends is insane. That coupled with the diminishing marginal utility of money makes me question anyone who sets that as their explicit goal though.
- scruple 4y agoIt's interesting to get a glimpse of these things inside of major corporations. At a former (BigTech Co) employer, Staff Software Engineer was equivalent to Director. I was not well received when I pointed out that we had a few dozen Directors in the engineering organization, but we only had less-than a dozen Staff Software Engineers, and half as many Principal Software Engineers. It didn't take me long to leave after having these conversations.
- quanticle 4y agoIt’s perfectly possible for someone who still performs surgery to play a decisive role in how a hospital is run. Or for someone who still represents clients in court to be a big cheese in a law practice. I'm not sure that's the case. A good counterexample is the Manhattan Program. Sure, Oppenheimer was a great physicist. But was he as good as, e.g. Teller, Fermi, Feynman, Szilard, Von Neumann, etc? No, he was not. He knew enough physics to keep up with the geniuses, and, more importantly be respected by them. But he wasn't working day-to-day on the atomic bomb. His job was to oversee the program and distill its status into reports for the Army, so that external stakeholders would continue funding this enormously expensive project. Similarly, I'm not sure it's a good idea to have your best programmers also be managers. They're too valuable to pull away from day-to-day involvement with the code. Instead it might be better to select programmers who are good (but not necessarily great) at coding, but also display strong organizational and communications skills.
- tgv 4y agoThis is short term thinking that leads to promoting the least competent, and it hasn’t worked well.
- mirashii 4y agoNo, this is favoring competence at the skills necessary for a different role, rather than assuming competence at one set of skills extends to another.
- tgv 4y agoYou misread it, I think. The parent comment wrote "They're too valuable to pull away from day-to-day involvement." That's short-term thinking. Of course you should only hire people in roles that match their capabilities. Instead, the thought process behind the parent comment leads to "Who provides least value right now? Ok, bad luck he/she makes a bad manager."
- bjornsing 4y ago
- ls15 4y agoI'd say n mandatory coding days per month for every software manager to keep them on the ground.
- jbay808 4y agoThe Toyota Way emphasizes that managers cannot merely read and listen to reports. They need to walk the genba, the factory floor, and see firsthand what the state of things is. With software, the genba is not the office. It is the codebase. Managers don't need to be making commits that get merged into production, but they should be constantly familiar with the codebase that their team is responsible for, and capable of playing with it and try out ideas. See the technical debt with their own eyes. Understand firsthand why their report says that making certain minor changes is such a difficult task.
- emrah 4y ago> Managers don't need to be making commits that get merged into production, but they should be constantly familiar with the codebase that their team is responsible for, and capable of playing with it and try out ideas. Bingo!
- stoneman24 4y agoWhile the codebase is critically important, the most important aspect is how that codebase translates into user experience. How the design/software changes impact what the customer expects and how the company manages the expectations of both existing and new clients are both vital factors. Managing that journey for both internal software teams and the wider client base to achieve the overall objectives is the real landscape for managers. Especially for small companies, the impact of poor commits can have huge impacts for important clients which then takes time to educate and assist them to handle. In addition, it gets very difficult to critique a commit made by a manager (or worse a director who still wants to code) which is not consistent with rest of the team or the technical goals. They may have the best intentions but not reflect the current design/techniques that the rest of the team are using to improve the code base. The power structure just doesn’t allow the team to work. Seen many good people quit over this.
- deleted 4y ago[deleted]
- kristiandupont 4y agoThe article seems to argue the opposite of what the title says? And then concludes that programmers should be on the board? There are companies where deep technical knowledge can guide strategic decisions. That applies to companies that are developing cutting edge technology, where the "ability" of the code base does in fact affect which products can be made. Currently, examples could be VR or AI. However, any random SAAS where features can be developed in a reasonably predictable manner and can more or less be designed by non-technical people, I don't see a programmer adding more value to the board than any other employee that's not C-level.
- bjornsing 4y agoTrue. What is good organization always depends on the problem that is to be solved. Almost every discussion on this kind of topic misses this. The most confused one is probably the one on “10x engineers” BTW. Just ridiculous to try to discuss that without specifying the problem, or at least the general level of difficulty.
- silisili 4y agoNah. I thought that was the pinnacle, and took it. I thought I'd get to mentor folks and tie break tech decisions and whatnot. Nope, nothing but BS. Hundred meetings a day, forms to fill out, people texting you that their belly hurts and won't make it, people telling you you can't give good reviews, etc. Being a manager is not the same as being a leader. It's being someone who can stand playing the game.
- ytygg775 4y agoThen you are doing this wrong. It's in your hands how you fill the role. Don't try to learn from people who are also doing it wrong.
- silisili 4y agoNo idea what you're talking about. Manager is not CEO. There are forces above.
- ytygg775 4y agoOf course there are. And in a good company, those above you will listen to your suggestions for improvement and work with you to make them happen, or something addressing the same issues. Just like you should be listening to your reports and work with them, not against them. This whole "opposing forces" attitude is what makes hierarchies toxic instead of supportive and I'd run the other way if somebody described a workplace like that to me.
- mythhouse 4y ago> And in a good company what % of companies do you think fit this qualifier.
- ytygg775 4y agoApparently not many. What's beyond me is why people don't leave the shitty ones. HN comments are full of examples where I'd scream that question. But maybe it's not as bad and people like to exaggerate? Or they prefer to complain instead of taking consequences. I suppose seeing oneself as the victim is just the easy way out.
- ytygg775 4y agoFor everybody working as a programmer, this should be blatently obvious. Who hasn't experienced a non-programmer manager without a clue telling them what to do? I'll never ever work again for a manager who couldn't do my job, at least in principle. Ideally they stay in touch with the programmers by continuing to program, occasionally but regularly. To not have their knowledge frozen in time the day they became managers. And to keep feeding their flame. It's a necessary qualification, but not a sufficient one. The manager also needs to be a people person. Lots of programmers are not, and that's ok, they can be excellent programmers. Just not managers. In summary, a better title would have been "Turn the people persons among your best programmers into part-time managers".
- P5fRxh5kUvp2th 4y agoThe single best manager I've ever had was completely non-technical. Some of the worst I've had were very technical. The difference between them is who treats me with trust and who doesn't, the technical/non-technical divide doesn't matter.
- watwut 4y agoAbsolutely worst managers I had have zero technical background. They both treated people badly and also were incompetent and did not understood our work. Which led to absurd processes, being simultaneously under pressure and having nothing to do, social issues in teams and so on. The worst thing about outside managers is that they generally don't understand teamwork and peer cooperation. They are too used to relationships based on hierarchy, negotiation and competition. And they don't have experience of actually cooperating with same level peers.
- andirk 4y agoI worked at a company that almost only hired [nationality omitted] engineers. Seemed their goal was to become one of the managers so they could rule the others with an iron fist, much like they had been ruled for years. The very bad code proved that the engineering part of the job was mostly nominal. As a defensive measure, they knew to never hire good engineers. I was hired by one of the directors. So in that case, the managers _were_ kind of technical but it would have been better if they weren't.
- fhd2 4y agoDon't agree with everything, but the opening for sure: "People Who Make Software Happen (you may know them as “programmers”) should have the option to progress their careers without leaving the code face." I was promoted to CTO of a quickly growing company some years back. At some point I had so many offsites, strategy workshops and generally low value meetings (that the other C levels loved), that I got somewhat out of touch with what's actually going on in the code base and with the people. I was both frustrated and ineffective. Ever since I've made sure I spend roughly half my time in a CTO role reviewing/writing code or pairing. It's not about all good programmers being managers, though they should be given the opportunity if they want it. It's about all (technical) managers being decent programmers.
- onion2k 4y agoThat was on you though, and by the sounds of it you realized that and fixed it. When you're a C-level you're expected to use your autonomy and agency to say no to things, and if people need you to be there (eg strategy meetings that need tech input) then they should have to work to your priorities. No one above senior dev level has too many meetings. The issue is always that they say yes to all the meetings they're invited to. Realizing that you're allowed to say no is a critical part of leadership. Possibly the most important part...
- fhd2 4y agoAbsolutely true, it was nothing but my own failure to not follow whatever "best practices" (how I dislike that phrase) others talked me into. It's lonely to be the only technical guy in the C suite of a tech company, but that's the job. And it's important - I've seen what happens when there's nobody there.
- kqr 4y agoWhat surprised me when I became a manager was how high the variance of the workload was. Some days (or even weeks) I have very little administrative/communication work to do. Others I'm doing 10 hour days to catch up. Since I don't know when I will be swamped next, I'm hesitant to take on technical work lest I block someone else. How are you handling this? Have you found a way to smooth the admin/comm load? (One advice is was given is "do only low value technical work" and I've tried this but it's just not satisfying enough to keep me engaged.)
- molly0 4y agoWhat are some examples of good coders that turned Managers successfully?
- zoigdev1 4y agoWhy to do that if someone loves being developer? I think that it's better to convert struggling developers to managers because they would understand better the abilities of best developers. After switching to managerial role, you have a lot more to take care of and it would be better to focus on organization of work than to take most complex programming on yourself. Let managers be managers and developers be developers.
- bmitc 4y agoI don’t think managers should be limited to former developers.
- t43562 4y agoYou cannot do everything - even in development itself you cannot be master of all languages or all subject matter areas and the ones you don't work on daily atropy. I used to know Java but now... I became a team lead recently and my job is to do all the things the others don't want to do. To keep shit off them so that they can focus. To organise things so that the people that we work with outside the team are ready for what we produce to do their testing, evaluation etc. There's meetings about how to fix our many problems, about what work we should do in future, about bugs - triaging them and working out which team should handle them. It's all necessary but it cuts into the day and destroys my focus. There's just no time to get anything serious developed. I am lucky to almost tag-along technically but I cannot learn at the rate my team do (we are picking up a system that was done badly and quickly by contractors) because I cannot spend the concentrated time on it. I struggle to do bits here and there to keep myself understanding the situation just about. I work on the test system because we didn't have one till I started and it's so critical to fixing all the problems we have but that's about it. I do find though that it's important to work daily with people who do know how to program even if their experience is years old. Having a programming Product Owner for example. Without that experience people just don't get it and they try to make teams do silly things or they try to apply pressure to get what they want as if that worked. So to me there's no alternative to turning programmers into managers (or other functions) because without it the company will try to do everything in incredibly stupid ways. Also it's important that the best programmers get into decision making and by this I don't mean people who are good at writing piles of code. I am sorry but I don't find that important - to me it's people who write code that others can maintain and who help each other - people who help optimise the team's performance rather than just their own. That sort of developer is needed at higher levels to make sure the company acts intelligently but they will pay a price in lost expertise. It's quite common, unfortunately, for companies to be agile at the bottom and waterfall at the top and you just cannot get the idea of agile into the heads of the accountants. It's hard enough for developers to get it.
- kqr 4y agoI think this "I'm leading a team so I need to become a single point of failure for a lot of important tasks" idea is dangerous. Have you tried rotating the unpleasant tasks around the team? Started training your replacement?
- rgblambda 4y ago>If they love to do it (and that’s usually what distinguishes the average from the best programmers) Anyone else feel that people who love programming aren't necessarily great at it? A lot of devs who "love" programming can be highly opinionated, get distracted by minor issues, have difficulty or reluctance to summarize things to non technical people , have unwieldy PR's containing changes for things way outside of the scope of the task they were given, and don't believe that documentation is something they personally have to do.
- cybrox 4y agoI don't think their point was that "[all] people who love programming are great at it". So far, from the people I have met, I would agree that having a love for the craft distinguishes very good programmers from exceptionally good ones. There's only so much you can do against someone who is talented and enjoys spending even more time learning something.
- rgblambda 4y agoYeah, my issue was with the word "usually". "Can be" I would have accepted. I think what you've said is a lot closer to the mark. A love of programming can distinguish the very good from the exceptional. Although I'd be envious of whoever has the dilemma of having to select a manager from only very good or exceptional candidates. That's the minority of us. Most of us are average or above average, and applying that rule tends to pick someone closer to my example.
- Corazoor 4y agoI want to point out that none of your points are an actual indicator of how good someone is at programming. They are important in the context of a job, especially in a team, but not for actual coding. So its really two different things we are talking about here.
- rgblambda 4y agoGood point. The points I made apply more to Software Engineering. I should have clarified "good programmer to work with". But as you say, this is in the context of a job. There are no managers in amateur/hobby programming.
- tlocke 4y agoWith open source projects there aren't any managers, and yet good quality software gets produced. I'm interested to know people's thoughts on that? Perhaps in open source projects the 'maintainer' roles are analogous to being a manager? On the other hand I've been a manager of a software team in a company, and I'm also a maintainer of a couple of open source projects, and I'd say that the two roles are very different. Does it mean that we don't actually need managers? Really I don't don't know the answer and I'm raising the question to see what other people think.
- rc00 4y agoI would start by suggesting that the incentives and motivations aren't aligned but there's more to it than that. With open source projects, most commonly, everyone wants to be there and has some level of the same objectives, possibly because they are consuming the final product as well as contributing to it. Here, the open source maintainer is a sort of shepherd for the flock. As a software team in a company, not only is everyone not equally motivated, the incentives are also not the same. A company has a financial incentive that may not align with the technical one. A company also has the pressure of deadlines where an open source project can be delayed or even in a state of maintenance mode. This drives a different culture as well. The purpose of the manager is to deliver value for the company while the role of the open source maintainer is to deliver value to the project. I would simply posit that the two roles are not the same. There are maybe some overlaps from the standpoint of overseeing finished code and the delivery of releases, but the hierarchy, org structure, motivations, and incentives create very different situations.
- cma 4y agoIs there any example of a long-lived successful open source project from a non-technical manager that leads a team of people on board with his or her vision?
- rc00 4y agoIt depends on your definitions of long-lived, successful, and non-technical but Canonical/Ubuntu and Mark Shuttleworth seem like an apt example.
- sokoloff 4y ago> though they may still be at the code face, it’s purely prejudice that suggests that they therefore can’t be involved in strategic or executive decision-making. It’s not purely prejudice. Strategic and executive decision-making is a different skillset and demands significant time for preparation and integration of disparate information. “Though they may be leading the company, it’s pure prejudice to think the C-suite couldn’t do some drive-by coding…”
- awesomegoat_com 4y agoI believe there is a lot of confusion in the debate between programmers and "the business" on what is actually needed from software manager role. Sometimes there is need for efficiency and the programmer promoted to manager role will excel as they have devoted their past life to optimization and efficiency anyway. Other times, there is a need for engineering excellence (-> best practices -> complexity -> over engineering -> bloat). If that's the case you better promote your worst engineer to the manager role. It is really that simple, but most will fail to see it.
- mro_name 4y agosee what people can do best and have them do something else. I am not convinced.
- awesomegoat_com 4y agoThe best managers I ever had were those that actively created room for team members to be creative. It's been almost 10 years when I last had such. Tear it down.
- wheelerof4te 4y agoYeah, why not turn your best farmers into welders.
- Simon_O_Rourke 4y agoI was pushed, less than willingly, into a management role for a pretty junior dev team. Ended up doing the work of about three developers as it was faster for me just to do certain things than manage other folks into doing it. Bad experience for everyone, shouldn't have done it but learned my lesson.
- sirwhinesalot 4y agoI got the opportunity to be a manager awhile ago. I had to take people I used to work closely together with on a very agile research environment and fit them into the "totally agile but really waterfall" scrumfall development process used elsewhere in the company. I was forced to assign highly specialised people to totally unrelated tasks to their expertise because PMs wanted features that we neither had enough people nor the right people to do, all the while people were either quitting or wanting to quit left and right. I had all the responsibility and none of the power. Fuck that.
- mythhouse 4y agoDid you come back to being an IC?
- sirwhinesalot 4y agoI quit as a manager and went back to working as a developer (after burning-out for awhile). I can deal with shitty processes as long as I'm not asked to impose them on other people. The sad part is that nobody in my immediate surroundings (including higher managers) are happy with those processes, they're all great people trying to do the best of a bad situation. But "it's just how things are". Big companies suck.
- mythhouse 4y agoThis reflects my own experience too and I did come back to being IC. That was about a decade ago. All my friends and peers are now at director level positions and I still have to do leetcode puzzles to 'stay sharp' incase i have to change jobs. I also make about 50% less pay than them. i tell myself 'atleast i enjoy going to work everyday' when i feel like a failure.
- sirwhinesalot 4y agoI'd rather be slightly poorer than miserable and needing therapy. It's what it is, we're not all cut out for corporate ladder climbing. My hope is that I'll find a startup I truly believe in someday, join them early and skip a bunch of steps. It's not management that I can't stand, it's middle management.
- GnarfGnarf 4y agoWhatever for? Programmers work with machines because the results are predictable and controllable. Unlike people, who don't do as you ask, don't tell the truth, and have their own agenda.
- whywhywhywhy 4y agoI agree with the title but more of a case that the alternative is having people who desperately just want to manage who usually make the worst managers.
- Manjuuu 4y agoThe unpredictability of people is a myth.
- merlinran 4y agoWell working with machines wouldn't need sprint planning and code review. I think peer programmers are also uncontrollable, the business requirements and technology evolvements can be unpredictable, and the customers/users have their own agenda, and they're kinda what/whom senior programmers tend to care about. They don't represent the responsibilities of a manager role though.
- hbrn 4y agoThese days are long gone. Most programmers are building products for people.
- wildcow 4y agoStop hunting programmers. Many of us actually don't care about the deadlines, the users etc. We just love to program. We don't care about stand-ups, story points or whatever the business uses to convert complexity to billable hours. http://programming-motherfucker.com/ http://programming-motherfucker.com/
- deleted 4y ago[deleted]
- meindnoch 4y agoFinally, a movement I can identify with!
- tjpnz 4y agoNot only will I be buying that t-shirt, but I'll also be wearing it the next time I get asked to interview someone. That'll teach them.
- cube2222 4y agoThere's a difference between programming, the hobby, and programming, the job. In one of these you're paid to care.
- vaylian 4y agoTrue. But it would help some managers to understand that there is more to programming than just achieving business goals.
- throwaway98797 4y agothe only other goal a manager should care about is if the programmer feels fulfilled i bet a lot managers know that devs don’t care about business goals
- eastbound 4y agoAs a founder, I pay programmers who care about customers about 50% more. I’ve actually doubled the salary if a total junior within 10 months of hiring, because he cared about business goals. I also work to eject those who can’t work with customers. We’re not here to serve the beauty of JUnit tests. I simply don’t understand the “programmers aren’t paid enough” torpe; It’s only true for purists who don’t dedicate their work to building a business.
- guax 4y agoThis is bizarro world for me because to this day we're still fighting to have technical career progression outside of management. Excluding big companies there is no path forward after a certain level. Good programmers are good programmers and more often than not make shitty managers, they're separate skills. The best managers I had were at most ok programmers.
- steve1977 4y agoI’m not sure if the author has relevant and successful experience in either of these fields.
- fexecve 4y agoI agree with this. If someone has put in the work to become good at programming, and perhaps has some innate intelligence required to become good at programming, then I think it's reasonable to assume that they might be able to put in the work to become a great manager, and perhaps have some innate intelligence required to be a great manager. Certainly many programmers here are saying that they only program because they love it, and they wouldn't give it up to go into management. Great, but that in no way proves that there aren't some or perhaps many programmers who would like to make a transition to management.
- zelphirkalt 4y agoThe best programmers are usually the ones, who enjoy programming and have been doing it for years. If you move them on to the management, perhaps even convincing them, that this is what they want, you might make them very unhappy and ultimately leave your business. Great way to lose your best programmers. Just let people do, what they excel at and listen to what they say about things they could have an idea about. Instead of moving your best programmers to management, hire management, that listens to the best programmers in matters, which the programmers touch due to working on problems.
- jadams3 4y agoCoded for 10 years, been a manager or higher roughly the same period of time. What knocked me out of coding ... you should always give your best work to your people ... don't steal it, never block the team, and do the work your team doesn't want to ... e.g. c*p deflection. For any reasonably sized team (8+) and company that isn't a startup, that's a full time job. That's without going above and beyond the low standards most people set of managers these days ... working career planning, understanding industry technical and business trends, helping people realize their better ideas and so on. One other thing I've realized ... anyone that's hiring knows that it takes new hires time to come up to speed. Depending on how optimistic or senior you are, that can be anywhere from 1 to 2 months full time. If you're a manager, you should look in a mirror, that's you. That means to be anywhere near as effective you need a month to focus on bringing yourself up to speed while delivering on some content your team needs. If you're a full time manager doing a good job, that's not a thing unless you are giving up nights and weekends to do it. I miss my years coding and delivering though, when I finally get to a 'work on my own terms' state towards the end of my career, I'd really like to go back to it though.
- skeeter2020 4y agoManagers can still program, it's just not the hard/rewarding/critical-path stuff. Knock yourself out with the shitwork like documentation updates and quality of life improvements like build & release streamlining. >> If you're a full time manager doing a good job, that's not a thing unless you are giving up nights and weekends to do it. I don't agree with this at all, for a manager or any job.
- jadams3 4y agoIn my experience, definitions of managers and what they should be doing varies widely. A lot of developers I meet these days put a pretty narrow scope on what constitutes 'management'. The bar is pretty low, and seems to get hotly debated as marginally useful to redundant on reddit and other places. Frankly it's hostile enough I'll be glad when I retire. I think the better managers have 1:1's were they think about it before and after as opposed to just showing up. They have career plans and objectives on a quarterly basis, and they do it with the employees as partners, not just recipients. Operations, planning to make sure teams work reasonable hours, managing customers, documentation, hiring, budget, procurement, audits & process, salary planning, all of these things are in scope where I learned about management. Managers also lose control of the hours in their schedule, they need to work on other people's schedule in the team more often than not ... urgent issues for people can come up all hours of the days, nights or weekends. If you're a good manager you're there for people when they need it. I don't meet a lot of managers that both do those things & really want to do them. I meet a lot of good team leads who are also coding that don't do the above, which frankly should be ok and rewarded. It's misleading to suggest though that they could also pick up everything else and still have the same time available to code.
- skeeter2020 4y agoI'm an SW Dev manager who still strongly identifies as a developer and the thing I see people miss all the time is that while you don't have to become a manager you don't have a choice about becoming a leader if you want to move up. I'd also argue technical leadership is much harder as you don't have the hierarchy as your ultimate hammer; you need to earn and learn authority the hard way. You want to focus on the code and still guide the organization? Figure out the leverage to increase your sphere of influence; you'll never get there focusing on the individual.
- pmarreck 4y agoOr don't turn your best programmers into managers; turn them into project managers and stop letting your non-technical managers make technical decisions; they should defer to the tech leads.
- TrackerFF 4y agoI always found it interesting that when it comes to sports, mangers are/were rarely - if ever - the best players of their time. Some were woefully mediocre players themselves, and didn't necessarily have a noteworthy career as players. So my theory is that if we're going to borrow anything from the world of professional sports, you don't need to promote your best (whatever best means) employees to managerial positions. You probably need them to be above a certain threshold, but also be able to identify those employees with best leadership and managerial potential.
- thenoblesunfish 4y agoOn the flip side there are many of us "programmers" who are interested in technical problem solving and building things in a more abstract sense - writing code is one tool but not the only one. Promote us instead of the ones who just wanna code :D
- marsven_422 4y ago[dead]
- mradek 4y agoI wanted to become a manager but it seems since I’m pretty good at crushing big technical tickets I keep getting stuck in my role. Tried applying to other jobs as engineering manager but obv people won’t hire me since my resume is mostly IC and team lead type roles. I have had over a dozen managers in my career so far. Only two were good while the rest were terrible or indifferent at best. Now I’m trying to build a KMS and hopefully it can become a company and my way out of this stupid career “progression”.
- sgillen 4y agoIronic that most people I see or talk to have the reverse problems (myself included).
- phoehne 4y agoI recently 'demoted' myself so I could focus on software development instead of talking about software development and managing software developers. I'm much happier.
- rapjr9 4y agoA military contractor I worked for had three different ladders employees could climb: One was the usual engineer/developer-to-manager route. Another was becoming a consultant and later a primary engineer who remained an engineer, but instead of working on one project, consulted across the company (not outside it) and was rewarded with a salary similar to top managers. The third was to do a startup within the company, form or become part of a team, write grant proposals, get money, do the R&D, then start a product line if it worked out. Going into management was not what some engineers/developers wanted and the other two routes were extremely beneficial to the company. Unfortunately the company got bought out by Lockheed Martin and the management route became the only allowed path. I left not long after feeling betrayed and they lost someone they had been educating for many years in a highly specialized knowledge domain.
- deleted 4y ago[deleted]
- kartoolOz 4y agoIt's also rudimentary to think in binary that you can either be a programmer or a manager. Progressing in my career i am finding this duality to be incredibly constricting, I excel best at programming, machine learning & working with business, product teams in finding areas of highest impact and then executing with smallish teams but i am increasingly finding that this doesn't fit into most corporate structures and i find resistance in landing the right role.
- acaloiar 4y agoI agree with the author that "People Who Make Software Happen" can and should fit into more dynamic roles. Although I don't think the content of this post leads one to conclude that they should become managers. Unless by manager they don't mean manager of people. It makes a better case for them being board members, or technical practitioners with more decision making power.
- MonkeyClub 4y agoExactly - in one sense, turning a good programmer into a manager is a sure fire way to lose a good programmer and gain a bad manager. Senior/tech lead should be enough of an upgrade to get valuable voices heard, without swamping programmers with managerial duties. Otherwise, let’s turn the best managers into programmers as well, and see how that goes :)
- deleted 4y ago[deleted]
- xyzelement 4y ago[dead]
- hbrn 4y agoThere's an inherent gap between managers and programmers, which does indeed makes programmers the best managers. As a manager, you don't know what does "better architecture" mean. You don't know which practices of your favorite methodology are bullshit. You're always left guessing. Unlike business, programming has a steep learning curve. Managers cannot understand programming, but programmers can understand business needs. At the same time, people who become programmers, typically lack skills required for managers. They also lack interest into those skills. So most programmers turned managers are a complete disaster. Basically programmer-managers have greater variability: some of them are the best, but most are the worst. Promoting programmer to a manager is a high-risk high-reward gamble. The distribution is inverted bell curve, so examples/counter-examples are pointless, they are just anecdotes.
- bluedino 4y agoMost of the "good" programmers aren't good at being a "people person" which is what a manager should be, right? In most business environments the good programmers are generally ones who stay on task, aren't careless, think ahead... they aren't exactly algorithmic masters or writing the cleanest most extendable code. They aren't writing complete shit shows either, they just get things done. Features implemented, bugs fixed.
- walnutclosefarm 4y agoThere are lots of disciplines where highly skilled persons advance to first line management and continue to perform the skill that launched them. But there are diminishing returns as you move up management. Part-time management of a relatively small team coupled with part-time hands-on engineering for the same team works fine. Management of an engineering team requires being in the team's work, and coordinating between contributors anyway, and taking direct responsibility for some elements can contribute to that. But beyond first-line management, two things are true that argue against having people both be individual contributors, and managers: First, maintaining your skills at full fluency for actual coding and engineering is a major commitment. To be a contributor in any significant system, you need to keep a lot of details fully current, and that's harder, the further away from the day to day building your primary responsibilities demand you be; second, no project, program or product manager wants a part-time senior manager, who is likely to be dragged away from day-to-day concerns at any and every turn, and who can't possibly keep current with the details of the project at the lowest level, responsible for some component in the critical path of their project or product. As an executive, responsible for multiple programs and products, I needed managers who were completely tuned into the bigger picture of their particular program or product family, and how it fit into the overall strategy of the company or division. Without question, you want people in these roles who understanding engineering, deeply and capably enough to be able lead, inspire, and read their teams (the one skill every manager and executive in charge of technical engineering needs is the ability to judge the plausibility of what their teams are telling them, because the roll-up of expectation and promise mismatched with ability is project and product disaster), so former developers are probably a good fit. And if they want to code as part of their development time, somewhere out of the management path, that's great. I did, all the way through the rank of CTO. But I never put my organization in the position of relying on me delivering anything in terms of actual code. (BTW, I don't think the author's comparison to surgeons is at all apt. Every surgery is a stand-alone project, and if you're a capable surgeon for a given surgery, and can arrange your calendar so that you do enough to maintain that edge, then you can do them, and leave them, and not in any way dilute your attention to management. That said, where I worked before retirement, where every leader of a clinical department was an M.D. appropriate to that department, and still practiced medicine, they all also had full-time, dedicated administrative partners who actually did all the "pure management" while the M.D.s provided primarily strategic direction and leadership.)
- derefr 4y agoI feel that we conflate a lot of concepts into the term “manager.” A programmer can almost certainly be a leader, a mentor, and a coach for a team; a force multiplier for others’ work (through tooling, code review, etc); and many other things besides — all without being a “manager” in the project/product/people-management sense. If you make your best programmers into PMs, though, you’re effectively asking them to do an entirely different job; one whose key competencies don’t have much to do with the key competencies of programming. A good programmer isn’t necessarily a good PM. A good lead programmer is more-often complemented by a good PM, with each playing to their strengths. Also note, that this distinction has nothing to do with running the company as a whole — i.e. being an executive or officer. Some of the best CTOs I know aren’t PMs; they’re “just” programmers, but they happen to also be cofounders, and so they participate in all the executive meetings. (In a bigcorp you’re not going to see too many cofounder-programmers, but a “distinguished engineer” is close.)
- Fire-Dragon-DoL 4y agoI suspect there are many definitions of "good software developer". For one of this, making them managers is a horrible idea: they are strong, fast and effective contributors, but terribly chaotic in their day-to-day. For another set of good software devs, they are very organized, care about morale and are good communicators: they become great managers. So my answer is: your great devs could, or not, fit into the role
- erikpukinskis 4y agoAbsolutely. One of the questions I think about often: In an organization where you have excellent coaching staff, excellent tech leads, and excellent project managers, what would a manager focus on? I have the same question for “product managers”… In an organization where you have excellent user experience designers, excellent user researchers, excellent tech leads, and excellent project managers, what would a product manager focus on? I think both of these roles too often seem to become an overarching “I am the Representative of The Business Goals in All Matters” type role. And… do we really want that? Or are there better job descriptions for managers and PMs that would create more clarity around what they are responsible for and where they defer to their colleagues? Genuine question because I am starting a company and I will eventually be hiring for these roles and I would like to have a better job description than the traditional ones.
- hbarka 4y agoBeing an IC or Manager feels like one of those life choices where it always feels greener on the other side. I will not forget this classic from pg: "Maker's Schedule, Manager's Schedule - Paul Graham" http://www.paulgraham.com/makersschedule.html http://www.paulgraham.com/makersschedule.html
- drewcoo 4y agoYou can reduce your company's total programming skill. You can also make untrained, untalented people mangers into management. At the same time. Double-barreled footgun!
- LennyWhiteJr 4y agoThis is precisely why large tech companies generally offer parallel career progression paths for individual contributors who don't wish to go into management. A Senior or Principal engineer at Amazon carries nearly as much weight, sometimes more, in software related decision making as their SDM counterparts.