11 ms·
After 12 years of software development, I've come to the conclusion that software managers are not needed. From what I can tell, they have meetings, try to get
by kbmunchkin 5y ago
After 12 years of software development, I've come to the conclusion that software managers are not needed. From what I can tell, they have meetings, try to get people to work more, and approve time off.
The best team I've been on didn't have a manager. The lead developer handled communication with the IT Director about project status; and that wasn't very often.
We had no meetings, or KPI goals, and other such nonsense. That is, until the company was bought. Everything changed after that and traditional management took over. Most people left within a year.
- Aeolun 5y agoThe best teams I’ve been in have been the ones where there was no filter between the developer and the client. The more filters, the harder everything becomes.
- swader999 5y agoCo-located with your users for the win. If there's such a thing as a silver bullet in this space this is it.
- Mauricebranagh 5y agoYeh Back in 94 I and another developer got flown up to Edinburg and delivered using RAD/DSDM in a month what a another traditional team said would take 2 years. One of the other ideas at the times was a custom BT version of HTML - that got stamped on very had by the Labs thank god.
- alistairSH 5y agoPerhaps, but that doesn't scale well. My previous role, I served 100s of clients, each with 1000s of end-users. If those users had direct access to my development team (5 devs, 2 test engineers, 1 BA) they'd spend the entire day fielding requests and get nothing done. So, to avoid that, you add a product management team. And an SDM, who acts an umbrella over the dev team to prevent shit raining down on them from tech support, product management, sales, etc. I suppose that's the key - if an SDM doesn't see themselves as a shit umbrella, they aren't doing their job. That's not their only role, but from the developers' perspective, it's perhaps the most important. Edit - the team did interact with customers via various channels, but it was more controlled than "unfiltered". We had a forum where both sides could communicate (though the BA typically did the lion's share of that work from our end). We also had periodic beta review meetings with select customers. And of course, when tech support issues got to our level, we were often on the phone, VPNed into their systems, etc. But, between the BA and I, we triaged most inbound communication, and there was zero expectation a developer would respond unless specifically asked by me or BA (though they were free to do so if they wanted - most preferred not to do so).
- andrewclunn 5y agoPerhaps it shouldn't scale well. Perhaps software (being infinitely reproducible) doesn't require economy of scale the way other things might, and thus having a small close nit team of developers is optimal for almost all projects and companies.
- technofiend 5y agoI know agile and scrum and so on carry a lot of baggage these days but what you're describing is Less Agile. You flatten the org back out, create product teams that pull from a single common backlog and developers interface directly with their customers. That's not even the most controversial part! You also do away with pay tied to individual goals: everyone succeeds or fails together and are paid the same way. https://less.works/less/framework/index https://less.works/less/framework/index
- swader999 5y agoYou get what you measure and if you track performance and features individually you get less collaboration and gaming of the points.
- slumdev 5y agoI liked this until everyone got paid the same. That's the fastest way to lose all of the people who can get more elsewhere. And it's not going to be the laggards who jump ship...
- technofiend 5y agoRight? I did mention it's controversial.
- sudeepj 5y agoOne factor I think is span of control. If the director you mentioned starts getting project statuses from 15+ teams then the director might not scale. The director will not be able to scale for things like appraisals, burning issues, hiring.
- jpz 5y agoSounds like your experience is with small organisations. Management is required in large enterprises.
- dbsmith83 5y agoExactly. Once the number of stakeholders crosses a certain threshold, your lead developer will be so busy with them that they will essentially just become the manager because they wouldn't have any time to code.
- valenterry 5y agoWhat if the company hires someone dedicated for this role who... does not report to the lead developer but works with them?
- JohnWhigham 5y agoSoooo...a manager?
- valenterry 5y agoWell, maybe you can call it manager. But it would be a "project manager" and no one would report to them - at least that is what I meant with the alternative that I suggested.
- dorfsmay 5y agoI absolutely hate useless management layers and unnecessary ceremonies but I've been on teams with no hierarchy and it was Lord of the fly until the most power hungry developers became the effective lead/manager.
- alchemism 5y agoI’ve been in the startup scenario where the most power-hungry developers successfully rebelled against the CTO and had him resign; “Lord of the Flies” is exactly how I described the maturity-vacuum period that followed.
- watwut 5y agoI was on such team too. There was cycle of power hungry leader, revolution, everyone for himself which special kind of dysfunction, someone else takes power again, revolution, everyone for himself which special kind of dysfunction, ... .
- vc8f6vVV 5y agoNature abhors a vacuum (c) We are social animals and there is no such thing as "all people are equal" or "flat organization". There is always a structure, only it can be explicit and regulated (and usually more efficient and easy to navigate due to explicit rules), or it can be implicit (aka Wild West).
- abcalphabet 5y agoWe're going through this at the moment, company got bought, original CTO & IT Director left. Now the new bobble-heads try and introduce nonsense processes, much to the dismay of everyone already working productively. I think the problem in large part is that most "managers" are brought in later on and then feel they have to go above and beyond to justify their existence/position/salary. In the end they do things just to be able to talk about all the amazing things they are doing and how their shiny new processes are helping everyone so much. I have yet to see a successful founder introduce nonsense simply for the sake of it.
- ngngngng 5y agoThere are some jobs with a goldilocks element. Such that the job can be done just right, but it is easy to overdo or underdo it. Management is the most common job in this scenario, and we tend to really notice when it is overdone. Toes get stepped on, trust is not felt, everyone is unhappy. Unfortunately it many of the people that get into management try and push themselves to achieve as much as possible, which is what leads them to overdo it and make their teams unhappy.
- fghfghfghfghfgh 5y agoAfter 17 years of development and 8 years of management I've come to the conclusion that developers are delusional about the relative importance of their role. I shall be the first to admit that - I used to be one myself. Your run of the mile non-technical manager sure is not very good at understanding the intricate complexity of all the moving parts of creating software. Developers on the other hand appears blind to the fact that they play only a minor role in the bigger picture. While technology is difficult it pales in comparison to orchestrating people across sales, strategy, business transformation, creative, development, QA, operations and infrastructure. That's just the horizontal alignment. In a single entity. In a single timezone. With a single vendor. A scenario which never happens because in real life you have at least 3 levels of technical management, multiple divisions/departments involved, spread across continents and multiple vendors participating. You need competent people to align, coordinate, communicate and pick up the stuff which falls through the cracks. Developers are not good at this work. You need a manager. And of course they must be competent. EDIT: I don't actually think developers are delusional. I worded the phrase to mirror the absolutism of the statement "I've come to the conclusion that software managers are not needed" which is just plain silly.
- waheoo 5y agoI think you're both right. Management is 100% required. What the ap is missing is that good management is almost invisible to the IC and only shows up when you need them.
- granshaw 5y agoThis is all true, but reads more like a PM-type role, which is absolutely critical. I understood GP's point as more directed towards "pure Eng. manager" type positions, often when there's also already a PM present. And I've witnessed first hand how his criticism rings true in that case.
- swader999 5y agoYeah technical pm or a pm that understands the business deeply are critical.
- deleted 5y ago[deleted]
- marcinzm 5y agoNow imagine that setup with a bad tech lead who didn't know what they were doing. No oversight, no control, no feedback, no communicated goals to keep people accountable, etc. Every single approach works when you have driven, intelligent people who all mean to do the right thing. The validity of an approach is only tested when those things stop being true and you need to notice and recover.
- ketzu 5y ago> who all mean to do the right thing And to some degree agree on what the right thing is.
- marcosdumay 5y agoWell, no approach works when you have incompetent people doing the bare minimum and trying to subvert anything for their gain, so I don't known where you want to test anything. The truth is that not all approaches work on your perfect scenario. Many are known exactly for turning competent cooperative people into incompetent individualists.
- jimbokun 5y agoBut in reality most teams are somewhere in between?
- Mauricebranagh 5y agoThen the lead developer is the manager
- Maascamp 5y agoIf you had no KPIs and no meetings how did you know what to work on and what the company needed? Osmosis?
- jimbokun 5y agoKPIs are generally set on a timeframe where they usually become meaningless by the end of that timeframe. For software, goals set for a year out are almost never going to be meaningful by the end of the year. Pick your flavor of Agile or whatever process your team can agree to, but I doubt the term "KPI" will ever come up when doing real life planning and work.
- Maascamp 5y ago1) It's pretty clear then that you don't have much experience with planning at level beyond a few people if you've never heard the term KPI come up in software 2) Agile still comes with meetings
- jimbokun 5y agoOh, I've heard the term KPI come up many times. Never once have those "KPIs" been actually relevant to real world planning.
- jpseawell 5y agoI’ve only ever heard of managers “working on developer KPIs” and never seen them actually defined and distributed.
- js8 5y agoAlthough I am not completely sure I agree with the thesis, I think it's worth pointing out that one of the largest software projects in existence, Linux kernel, doesn't have software managers either. In any case, when I first read the headline, I thought, well, in a worker cooperative, the developers can fix the bad management. :-)
- npwr 5y agoBut the Linux kernel had Linus Torvalds who acted as a dictator. We can argue he did some kind of technical management there.
- valenterry 5y agoYeah - I think that's good insight. You need someone that has all power and resolves conflict if necessary. But even for something as big as the linux kernel, Linus did the dictator part _and_ continued coding, doing PR reviews etc. So how much management is really necessary?
- jimbokun 5y agoHow much time did he spend on coding as Linux got bigger? And you could argue PR reviews was how Linus performed his management function. Which could be an interesting way to organize technical management in proprietary software projects, too...
- valenterry 5y ago> How much time did he spend on coding as Linux got bigger? Yeah, I don't know. But even just keeping up with PRs seems quite time intense. > And you could argue PR reviews was how Linus performed his management function You certainly can, but just because the word "management" appears in there, it is wholly different from the "management" that the original post is talking about. But yeah, you can call both management. You can also call a software developer a manager of the codebase I suppose.
- 5y ago
- rutthenut 5y agoThat lead developer was effectively the manager then. But you can't just leave all choices to developers, there has to be a commercial point to it all - that isn't something a lot of devs even consider. Technical changes may be great, but the time spent on that has to paid for somehow, not just in 'job satisfaction' for the techies working on it...
- lummm 5y agoI think below a certain threshold of competence, a manager will negatively impact the productivity of a team mostly by eroding any ability to focus on a single task at a time. A good manager should shield the team until it is appropriate from the very things a poor manager would be dumping on the team as they arise.
- redleggedfrog 5y agoI've been programming professionally since 1993, and I can tell you that some of the software managers I've have had been invaluable. When they are good they can be very propulsive. I don't necessarily have time to collect up all the different and sometimes contradictory specs from the product owners and make sense of them. When the manager is technical and can do this for you it's golden.
- kannanvijayan 5y agoI'm coming up on 15 years of professional career in software (development experience being 25 years or so). In small projects, a lack of managers can be pretty effective when there is good team cohesion and lack of conflicts over priorities and expectations. In larger projects and teams, where your team has to interact with other teams and navigate competing pressures within a larger organization, while still delivering on internal goals and keeping turnover reasonable.. managers are crucial. The best managers make you feel like there is no manager. They run interference for you. They talk to you, understand your individual priorities as a developer (project priorities as well as career priorities), and coalesce that information across their entire team to quietly craft a path forward that preserves cohesion and effectiveness and productivity and happiness. They also communicate progress to higher ups, and interpret (to the executives) the day-to-day operations with relation to broader organizational goals. Managers are the interface between larger organizational priorities and a team's individuals. For a company, managers serve the role of both implementing policy top-down, as well as understanding operational dynamics from the bottom up and communicating it to the higher-level positions in the org. They are fundamentally a structural necessity once you step beyond a certain scale of project or product or company. My personal thoughts on managers used to be closer to yours, but it has evolved over time. These days, I'm more inclined to think that _everyone should get an opportunity to be a manager_. Maybe even a structure where management roles are cycled between different people on the team with a willingness to take on the role. I think more developers need to understand how difficult good management is, and to get a personal exposure to that problem space. I think it would make developers into better developers.. who, rather than reacting blindly to their local perception of the symptoms of management (poor or good), get a firsthand view of the other side, and learn to better interact with it in the future.
- bradstewart 5y ago> The best managers make you feel like there is no manager. They run interference for you. This is the most important thing, and its hard to recognize as its invisible to the developers. "Do I need a person running interference so I can focus and get stuff done?" is also a useful metric to decide if/when you need a manager.
- 5y ago
- borvo 5y agoWhen I was younger I wondered what all these other people in the business did with their time. Surely it was all about the code and all these other corporate drones just needed to respect that. Then I guess I started moving over to the dark side and got a bit more empathy for the real jobs that other people have to do - so devs don't have to spend ALL their time talking to customers, paying the bills, handling the marketing etc. Strangely many of these people, even customers, were curious about likely dates for shipping the work. Turned out their jobs depended on it too. I recently interviewed an engineer working at a startup run by engineers. There is no management, which he thought he'd like. Instead they use commitment. After 18 months of very long hours and weekends guess why he wanted to move on? Organizing the work and the people is an art, lots of people get it wrong even when they try hard to get it right - but these articles? I hope my competition is reading them.
- Taylor_OD 5y agoThis can only be true for teams built of mid level to senior engineers, right?
- okprod 5y agoI've come to the conclusion that software managers are not needed I think some layer of management is needed for strategy, business operations, market positioning, etc., but they should get out of the way as much as possible, similar to how Joel has done it at Fog Creek. Many years ago I was visiting a startup being incubated at Stevens Institute in Hoboken, and there was a group of graduate engineer students on-site looking at a demonstration; the CEO asked what the most important factor in building the product was, and the very smart engineers talked about output, efficiency, portability/miniaturization, etc. The CEO stopped the brainstorming and said "whether or not someone will buy the product".
- nine_zeros 5y ago> After 12 years of software development, I've come to the conclusion that software managers are not needed. +1 If devs are doing: - Scoping - Product design - Coding - Debugging - Scaling - Releasing - On call duties - A/B tests - Can't cause outages - Postmortems - Enhancements - Fight bullshit corporate politics - Fight to remove blockers - Fight to remove deadlocks - Ultimately produce something that earns money for the company - Write bullshit promotion docs for themselves - Wait to be Pipped or something. What exactly is the value provided by a manager?
- dagw 5y agoSo the developers take on the responsibility of a manager so they don't need a manager? The value of a good manager is that they can do some of the stuff on that list so the developers don't have to (ideally including all the 'fighting').
- nine_zeros 5y ago> So the developers take on the responsibility of a manager so they don't need a manager? The value of a good manager is that they can do some of the stuff on that list so the developers don't have to (ideally including all the 'fighting'). Incompetent managers fail to unblock their teams and instead push pressure on their reports to "fight". Often blocking career growth, promos, compensation changes with these reasons. I'm sorry. If the dev ultimately does this work, the manager should be fired or made an IC where they can demonstrate their value.
- andrekandre 5y agoWhat exactly is the value provided by a manager? the illusion of a management structure.... ive seen it a few times in very dysfunctional corporate cultures where they value the illusion more than the reality... in those cases the managerial "class" is more like an old-boys club, and its the grunts who do the real work (and the boot when things go south)
- MattGaiser 5y agoIt depends on your company. My manager seems to defend the team from a lot of bureaucracy. I see his schedule and task lists and other paperwork and I am extremely happy to have him.
- pram 5y agoYes I've seen this style described as 'servant leader' My current manager was also my previous manager at my previous company! He is so good I literally followed him lol.
- Jenk 5y ago> The lead developer .. was your manager.
- jimbokun 5y ago> From what I can tell, they have meetings, try to get people to work more, and approve time off. Do not under appreciate the importance of managers attending meetings, because a good manager attends those meetings so the devs don't have to. A good manager of developers seeks to shield her developers from the busywork and politics imposed by the larger organization so they can be as productive as possible.
- cortesoft 5y agoSeems like it depends on how you define ‘manager’. Your lead developer is what I would call a manager. In my experience, most managers have been team leads who set priorities for the group, help arbitrate technical decisions, advocates for more resources for their team, negotiates with other teams over who will do what work and take responsibility for which parts of the system, advocate for promotions for their team members, and deal with underperforming team members. I don’t know how a large company could function without that role. If you have 200 developers working on 100 different projects.... who is deciding what to work on? Who is deciding how many people should work on what? Those people are managers.
- cloverich 5y agoI like how Engineering Manager is defined in "The Managers Path" -- which is what you are describing. They shoud be someone who does an occassional bug fix to maintain a boots on the ground approach, but is spending 95% of their time on the items you listed. I think one issue w/ Managers is that we get manager's who should be at this technical level, but are instead so hands off (or fully non-technical) they can't even reason (or delegate) priorities when architecture or tech debt is involved. To be fair, I have worked with fully non technical managers who had a good understanding of how much time to allot towards architecture, refactoring, etc. But those are rare.
- nickpp 5y agoWell, in my experience I'd say it depends. It depends on the developer. But it takes a good manager to understand if a developer needs management or not... :)
- amarant 5y agoWhile I see your point and get where you're coming from, I think it would be made explicit that "management isn't needed" is a gross oversimplification that is only possibly valid below a certain threshold of company size. I currently work for a very large international company and none of the things we do would be even possible without management. We're also lucky enough to have pretty good management, at least locally in my department, I haven't really been exposed to the higher levels of decision-making (which is a sign of good management IMO, that stuff is mostly irrelevant to me) I have admittedly less experience than you, (~10yrs) but from what I've seen, my conclusion is that really bad management is worse than no management at all, fairly bad management is about as bad as no management at all(and from here can the opinion that management isn't needed really form in developers head) and good management is way better than no management at all. I also think that software/tech management is a different beast from basically all other types of management. Experienced managers from other sectors tend to fall in one of the first two categories above in my experience. Good managers are perceived from the developers point of view as someone who just helps organise tasks, and help you find the right person to talk to if you need something from outside your team. In reality of course they do lots of other stuff too, but those things mostly shouldn't bother the developers IMO. Never should a manager ever act as a go-between. Doing that puts you firmly in the "worse than no management" category of managers
- jollybean 5y agoOf those 12 years, did you spend any time in any other role? Like manager, or director, product, product marketing? The world looks very different from there.
- skeeter2020 5y agoMy first questions would be (1) how big is/was the team? (2) how experienced? (3) how fast were you growing/changing? (4) without any sort of process or documentation how did you handle performance reviews (good and bad), promotions, growth? I'd also bet that your lead was (a) really good and (b) doing 2 jobs. IME smaller organizations with experienced & stable teams can do fine without formal management, especially if the system is small enough to fit entirely in you head. Beyond that you need some form of management. Aside: you come off at best somewhat ignorant or less charitable as kind of a jerk; there's a lot more to running a software company than writing code by yourself. We get it; you think all managers are useless MBA suits, but some of us actually still self-identify as devs that just want to improve the systems that build software. You can only get so far focusing solely on individual improvement.
- roland35 5y agoAren't there a lot of things that need to get done that are annoying to developers? I personally enjoy having someone else in charge of all the manager responsibilities such as planning who works on what wand when, handling expenses, etc
- abeppu 5y ago> The lead developer handled communication with the IT Director about project status; and that wasn't very often. I think depending on the organizational context, and how much external communication a project needs to succeed, this can mean that the lead developer becomes a manager in responsibility but not in resources. This can harm the project and its participants both because the lead developer's attention may be siphoned off towards management-related activities, and because their advocate to upper-management is less equipped. E.g. Can the lead developer recognize that the project needs a person with a skillset not already present, write a JD and oversee the search for a suitable candidate? Or will the organization say "tech leads don't hire; managers hire"? Does the lead developer have the same access to the decision-making process of the larger org that a manager would, or will they be denied access to certain meetings, documents and resources? ("Sorry, we keep that personnel info in the same place we keep compensation info, which only managers should see"). I think the article makes the point that the problems preventing an org from making good products or decisions extends all the way up to the CEO, and I agree. And in the many organizations, software managers are a necessary evil to try to compensate for those broader dysfunctions.
- carbonguy 5y ago> this can mean that the lead developer becomes a manager in responsibility but not in resources. I think you've nailed it here - what's been described is a manager under another title, and one who will be hampered in that role in the exact ways you describe.
- andrekandre 5y agoive seen this happen alot... a lead dev is a manager without a title, and is not recognized or have any true authority, and they arent compensated for it either... its the worst of both worlds...
- oytis 5y agoIf that was true developers would make their living just by sitting in front of their personal laptops and coding. Instead they tend to apply for jobs at companies that have a lot of managers
- codingdave 5y agoBad managers are actively harmful to a team. Great managers will make a team shine with productivity and satisfaction. You'll never accept a bad manager again once you work with a great one. Sadly, they are few and far between. And to truly be great, their managers all the way up to the CEO also need to be great. So a role under such a leadership team is rare. But they do exist. It is worth your time to seek them out.
- mucholove 5y agoWhy dont you see the lead developer as a manager in this instance?
- AtlasBarfed 5y agoDepends on the team experience, morale, complexity of product, organization, and customers. I also agree that a high-performing team tasked with a clear mission don't need more than a glorified secretary. But if any of those start to fail then it starts degrading everything. Without decent managers, development/progress can collapse. Decent managers can paper over the other deficiencies to a surprising degree. Good software devs can also paper over deficiencies in the chain as well to a surprising degree. Bad managers can be part of the problem too. Bad devs will obviously kill the whole thing. And of course everyone in that chain has their own agendas, from selflessly devoted to the macro-organic corporation to machiavellis edging for any economic and power advantage. Capitalism is supposedly about the free market, but organizations strangely don't align themselves to the basics of microeconomics. They are centrally planned top-down pyramids. Incentives will never properly align to maximize organizational productivity because of the totalitarian nature will reward those with power, not productivity.
- hamstergene 5y agoI bet you would hate to spend 4+ hours per day in negotiation meetings, stacking up plans and writing reports, some days not even having time to start working on development tasks. You'd probably give all this to someone who wants and has experience to do it, someone like...a manager? If your lead dev didn't have to spend that much then I'm afraid that experience does not extrapolate on what larger companies do; if they did then I think you're missing the elephant in the room that the lead dev was de-facto the manager at the expense of their direct duties.
- morelisp 5y agoMy experience is about 1/3 of developers are completely lost without a manager checking up on them periodically, between 1-5 times per week. (Varying depending on seniority, while the frequency changes it seems like the percentage does not; junior developers are more likely to get lost but not always in the ways a manager check-in helps.) By this I don't mean a one hour meeting, but something more like a standup, or just an email "hey, last week you were working on X and I didn't any updates about it, how's that going?" If you get a team of purely the of developers that don't need this, it's great! But that means somewhere else there's probably a team that's 2/3 or worse that, and that's hell. If there's a manager, it's luckily just hell for the manager.
- gknoy 5y ago> The best team I've been on didn't have a manager I feel exactly oppositely. The best teams I've been on have been ones where the manager has a strong focus on being a crap-umbrella for the team, sheltering us from anything coming from above, being an advocate for our needs, and a fierce seeker of true requirements for the projects that our team needs to work on. I think I would be very anxious being on a team that didn't have some manager who took seriously the role of sheltering and nurturing the rest of us. It's obviously not an easy job to do well (else we wouldn't have had bad management experiences).
- ipaddr 5y agoAfter 20 years I realize managers are important to keep other managers away. If you have ever worked without a manager in a department you become the manager as other departments will need someone to meet with someone. More importantly secret deals, backstabbing and positioning are going on above you. Your department might be chopped up next, you need someone to fight those battles. Project managers are a different story.
- mason55 5y agoManagers are not needed but management is. There are many ways to fulfill the task of management, one way is to have a manager, one way is to have the developers handle it themselves. If you're lucky you can get a team of devs who are capable of self-managing and communicating with the outside world and handling everything else they need to do to be successful besides just writing code (writing JDs, talking to customers, dealing with budget, etc.) But hiring a team like that is hard. Developers like that cost a lot of money. The law of comparative advantage is a real thing. If you can't hire a team that can manage everything themselves you can at least piece together people who can fulfill the different functions. And that's how you end up with developers and managers.