I've spent some time interacting with product managers as an engineering manager, or head of a functional area. I've also been "acting" PM for an internal product at a medium size tech company.
I think product management entails some of the most important things a company does. But it's really hard work, and many less capable PMs gravitate away from it and more towards either "driving" (i.e. micromanaging) the engineering team or just playing politics. In an organization with separate Engineering and Product functions / org charts this is really hard to deal with. You can complain up the chain of command, but bandwidth in that direction is (for natural reasons) very limited. As an EM the end result is often that these PMs make life miserable for your best engineers, and they leave.
My current view is that the best approach is to embed product management in the form of a "mini-CEO" (i.e. PM) in each team, and if they're not technically competent pairing them with a "mini-CTO". Much less room for politics, and much more for teamwork.
I don't believe in Product Managers or Project Owners as a net good towards building a better product or a better company.
The most successful teams I have been in had no dedicated product role, instead, all decisions were made by the developers.
My current view is best to remove all type of non technical people or even mildly technical people from the developers' way and let them build in peace.
In that scenario, who is driving product requirements?
For example, in an area with strict financial/regulatory compliance laws, are you expecting every engineer to be an expert in those laws? And have contacts at the government agencies implementing those policies?
The developer teams, who else? You build it, you need to know what you are building, right? I find it fascinating that the dev community that gobbled so easily "You build it, you run it", doesn't question why we are not being trusted with knowing and determining what to be built in the first place.
How often do you have a Product Manager who is an expert in regulatory/compliance laws and has contacts with government agencies?
Usually the Product Manager is Josh, who just finished uni, and a two weeks product manager course. They will have to ask experts, and then translate that to the devs. It's much more efficient to let the devs ask the experts, which will let the devs themselves become well versed in the domain over time.
I happen to work in a highly regulated industry, and we have an in house law expert, and an in house medical compliance team.
None of these roles are embedded in the development teams though, they are simply asked for advice rather than manage the engineers (which would be insane).
That is how it should be.
Sounds like you haven’t had a good PM or a job that supports having one.
Saying it’s often some new grad is like saying there’s no point having an on shore dev team because the devs are often fresh out of university. If you continually hire terribly you’re going to have a bad result.
A PM should become the subject matter expert in the product they are developing. They should be able to field questions on most every part of it, and be able to build a roadmap of features. Communicate with all teams associated with it. Having the programmers plan all features is a recipe for disaster if your product isn’t designed for developers. It’s like saying you don’t need a qa team because the developers tested it.
I can most certainly and confidently tell you that a dedicated QA team that only does testing is a total waste of money! A sre/platform team building fuzzy testing tools and mandating better testing practices is money much better spent.
The developers MUST care for the quality, not outsource it to some external team. The desire of large corps to spend huge amount of $$$ to create artificial roles to water down ownership can never cease to astonish me.
If your devs can't think of handling nulls or corner cases, you got a skill problem, and you should ASAP upskill the devs, not outsource thinking to another tea.
Making quality somebody else's problem is the exact opposite of ownership! You want agile? Damn leave the devs alone, stop building walls around them and the product they are building!
As a former quality-focused dev, I can tell you that the industry beats it out of you with a club. There is always somebody above you who cares only about their own career ambitions and has more leverage than you do. This leads to a horde of devs who just do what they're told and not much else.
Businesses are all about risk management. The safest way to de-risk a business is to water down ownership, at the cost of injuring quality-focused devs. You're only a cog. You need to only be a cog to them. They must to be able to replace you with another cog when you leave for greener pastures.
i've seen pr's sent out for review that literally didn't work or crashed immediately on use... as if the expectation is qa will report whatever needs fixing but thats fine cause its "in qa now" so development is "done".
That’s just Goodhart’s law.
"When a measure becomes a target, it ceases to be a good measure".
I don't disagree with you, I've seen the same (a lot) but you can still go to another company that prioritizes quality a little more.
Definitely can take a while to find one though, that much is true.
That seems like a very Bay Area mindset - advocacy is more lauded than doing something.
Fair enough!
I used "advocating" loosely here. I hate the "advocate a lot, build nothing" mindset myself, and I am not a fan of the Bay Area and its practices (to put it mildly), so I edited my post.
What I mean is devs making tools for devs, resulting in better overall quality.
Sorry, that was a bit to snarky. While I don’t agree with not having dedicated QA, I completely agree with devs being responsible for the quality of their area and adjacent areas.
In my experience good test engineering teams can focus on having a more global view of systems while not being biased by implementation details.
You are so right on the QA thing and so wrong on the PM thing. If you have a PM that just came out of uni, your company has no idea what they are doing. Good PM's are really really good at communicating at multiple abstraction levels within multiple levels of the organizational hierarchy. Why? Because they have to build consensus and coalitions to get the things ( money, people, buy-in, details, information ) required to build really good software and build all the ancillary things to sell and support that software. I think what you are calling a PM is what I call a jr. project manager.
Strangely enough, that's happening at a few companies (run by Amazon refugees IIRC) where they think that making devs do QA and removing QA/QE roles will speed delivery. I'm in one of those companies now, and I'm waiting for the #FAFO loop to happen.
That really depends on what does QA entail at these companies. If it's just increasing test coverage and adding integration tests then yes, devs should be doing it.
If it's just clicking UIs all day long then obviously a QA should do it. Or have an UAT environment where a few more enthusiastic customers are willing to test and report bugs.
Absolutely this. And the engineering teams should have visibility of customer support and other functions to understand common pain points, causes of churn and opportunities for additional revenue-generating functionality. That doesn't mean answering run-of-the-mill questions or doing refunds all day, but it does mean talking to prospects, looking at escalated problems and keeping an eye on the wider industry.
This. Most of the developer teams are nothing but feature factories. There will be a point where what developers want to build and what the product needs will diverge. It is very hard to strike a balance IMO.
This tension is why it's a good idea to align everyone's incentives.
Bonus the product team on reliability (as well as velocity), and the ops/sre team on feature velocity (as well as reliability), and it'll balance itself out.
Who is bonusing who?
I think some people simply can't get rid of the idea that there has to be some external paternalistic figure that looks over developers' shoulder and guides the poor hapless saps and their incentives. Do they give candy to the good boys/girls and coal to the bad ones? You might be thinking of Santa.
The developers and sre's incentives are the same as everybody else in the company: have a great, easy to sell, popular and reliable product. Management types insisting to compartmentalize incentives is them trying to have an excuse for their own existence.
We should all drag ourselves kicking and screaming to the reality that we can do much more with much less management layers. Even big companies, which are bloated beyond saving, are waking up to that fact. PMs are the first to go, just look at what Meta, a notoriously inefficient company is doing to their non technical PMs.
Think for a second why nobody has had the idea of letting an engineer be a 'Marketing Project Manager' of the marketing team and be calling the shots what campaigns to run, what marketing materials to produce, and make marketers estimate with poker cards how many of their leads will turn to a sale. Sounds stupid, right? Yet this is exactly what you want us to accept the other way around. Not gonna happen.
There is no excuse to have non engineers embedded in and actually calling the shots on behalf of an engineering team with the patronizing though that the engineers can't decide for themselves what to build and how to prioritize it.
The hard part is how do you design a compensation package for a developer or sre worker bee, to incentivize these? How do you make their bonus depend on something as nebulous and hard to measure as "greatness" or "popular"?
For most employees, the candy/coal model works. You're not going to find low-level individual contributors who work because they just want to make a great product.
I might verging on socialism here, but I think the best way to motivate employees is ownership of the company and direct profit sharing.
Unfortunately, only the first part is practiced in my organization (company shares), but I am actively fighting for the second.
I'm going to part with the accepted dogma to say that I don't think that equity ownership motivates workers towards doing a good job, at least at large companies. If you are engineer number 54,291 moving a protobuf from one layer in the stack to another, nothing you do is going to move the needle on the stock price, either positive or negative. You could write the best, most efficient code, fully unit tested and crash-free, but if Morgan Stanley downgrades the company's stock because of some bad earnings call, it's going to go down.
I have equity as part of my comp package, and I know there is zero link between how good a job I do and which way the Wall Street Wind blows today. So to me it's just like cash but with extra steps.
Maybe it's different in the startup world, I don't know. The only startup I was part of, everyone's equity went to zero when the business failed, regardless of how well anyone did their job, so I'm not much of a believer.
That’s what dividends should be doing, right? Or do you want the holy grail of percentage of gross revenue which is so outrageous to everyone only payment processors charge it because they can?
Being on a team where everyone has a high level of personal ownership and accountability like that is truly wonderful, and I agree, it works great.
You just have to find (or build) a company that explicitly filters out the 99% of people who only want a job for the paycheck and don't care about the customers, the software, or the product.
Every time I’ve worked on financial aid, HR, or financials, the PM has been an expert in those areas. I couldn’t do my job otherwise (or, I have to fill their shoes).
Why does the domain expert have to be the PM versus someone the engineers consult directly?
Why shouldn't engineers consult with a PM? Isn't that a key part of the role - to break down external requirements into engineering needs?
Breaking down requirements and being the domain expert are not the same role. Engineers can break down requirements perfectly well given they have context of the code and systems and possibilities. A even bigger advantage is that there are multiple developers on team which means they can review each other's work. Just like a lone dev tends to go off the rails eventually so does a lone PM and almost all PMs are lone if they're the sole domain expert.
Yes!
But imagine if the developers themselves could break down the external requirements into engineering needs!
Or are developers grug brains that need a bigger, superior brain to simplify scary real world into simple, safe engineering needs? Or developer grug so busy, must write code, no time look at feedback form, no time think client request, need simplified instructions, must slap keyboard, clack, clack?
Context: https://grugbrain.dev/
I work in the medical field which is fairly heavily regulated as well. My teams have been able to do our job without having a dedicated medical compliance expert as their PM.
We just have a medical compliance team and ask them for input, but they most certainly don't tell us what to build nor drive the product direction.
In short, I question the need of a PM, not the need for domain experts (law,financials,etc).
If you've had good results without a PM you probably had someone who was doing that work, but under a different job title. Or the results weren't as good as you thought.
Good PMs are often engineers or ex-engineers themselves. But a good PM will do a much better job than just sticking a bunch of engineers in a room and asking them to manage the product. A lot of developers really hate tasks like:
- Designing UIs
- Thinking through complex workflows to simplify them (unless they're developer workflows)
- Writing documentation
- Often also, identifying and fixing small quality issues like bad error messages
- Figuring out what the customer's actually need vs what they say they need
Some devs are naturally talented and capable of doing all the above, plus banging out the code too. That's great, maybe they don't need a PM or more likely maybe they will become one themselves in future. But left to their own devices a lot of dev teams will rapidly lose the plot and start producing features nobody cares about, or doing endless refactorings, or produce something that's too hard to use.
I kinda like doing those things
I have definitely seen this happen, but as a very senior engineer, now PM, I can tell you this is a management/hiring failure much more so than anything else. I have long advocated that PMs /must/ be technical to be successful and, maybe more importantly, useful.
If you’re in an industry that is compliance encumbered, you should absolutely expect that your PMs are experts or at least professionally competent in the compliance standards you need to meet, or at minimum intellectually and contextually capable of getting there rapidly.
Hiring someone just out of college to be a PM is a huge red flag that your organization doesn’t understand the role of a PM, and that your upper level management is likely incompetent also. Without significant prior experience in some related facet to the product, it is not possible to be successful as a PM, and I wouldn’t expect a new grad to be able to do much more than push papers. PMs should always be former practitioners, if possible, but at least technically competent at minimum.
I agree with your comment and upvoted it, though this part:
Makes me wonder if you're saying that these cases are the exception. In my career they have sadly been the rule. Not 100% literally, i.e. my PMs have never been 22 years old, but they were, 99% of the time, grossly incompetent.
And yes they were a management / hiring failure, absolutely, but it seemed that nobody cared... :(
Devs generally don't want to talk to the experts, they want to build. Talking means more meetings, which takes away from building. Ironic, as without knowing what to build, they can build nothing.
Ah, yes, avoid meetings with experts so you have to wait until a non expert who talked to the experts tells you what to build! Pesky, asocial developers, avoiding talk at any cost!
It's a well established fact developers love building things so much and hate wasting their time with useless meetings! The hero PM saves the developers so much thinking by being brave and talking with the scary outsiders.
The PM's selfless bravery gives the developers the time and space so they can focus on the really important part of building. The really important part of building is, of course, being in a 2 hour meeting where the PM is repeating (badly) what the experts said, and making you play card games where you pick some numbers, very much unlike a nursing home for the old playing bingo.
I love your take! You totally treats engineers as responsible adults who have multiple skills and abilities besides coding, and not at all like autistic children that would flip out as soon as somebody touches their crayons.
It seems like you're arguing that the dev teams should spend some of their time managing the product. In other words, it's a 'hat' to be worn occasionally by some team members.
Nothing wrong with that, except what typically happens at larger scales is that some people enjoy wearing the hat more than others, then the team realises that it's better if those people spend most of their time doing product management, and then they tweak their job titles ever so slighty....
In my (highly regulated) industry, always? They'd be bad at their jobs if they didn't have this.
Edit actually, I walk that last bit back slightly. They don't need to be experts in those things, but they need to know enough about the broad landscape to understand what tradeoffs need to be made and set direction. Similar to a CEO not needing to be an expert in product, marketing, engineering, finance etc. to be effective, but they do need to have enough knowledge to know how to balance competing requirements across these things.
How often do you have a Product Manager who is an expert in regulatory/compliance laws and has contacts with government agencies?
Maybe not an expert, but literally every project I've been involved with where those things are relevant, the PM knew more than most of us, knew who to talk to, and was responsible to make sure we did the right thing. It is pretty much what half the role was about. They were often pretty senior people with long experience working in a relevant field.
In extremely regulated environments you would typically have someone with legal background to boil down the requirements into their absolute essence and give them to the dev team.
So you DO have a product manager. You might not call them that, but that’s exactly what they’re doing.
If I consult a solicitor about data protection regulation and they tell me what I need to build to satisfy the requirements of soft opt-in under PECR, that does not make them a product manager!
No, but it's something a good product manager does for you, and with the economy of comparative and potentially absolute advantages. This let's you focus on the craft of delivery without encumberance of spending research into compliance.
I don't consider the engineering having a deep understanding of the domain and compliance to be a "encumberance". The more engineers get into the domain themselves, the more they can make deep decisions about how to build the most effective solutions.
I don't give a rat's ass about the craft of delivery! What a reductionist thing to think of engineers as "delivery machines". Me and my team mates are not a factory that simply takes input from a task master and produces code to their bidding.
I care only about one thing: solving the problem! That encompasses learning, understanding and, finally: delivery. To do that, I need to speak to stakeholders MYSELF, I need to see how they are using the product MYSELF, and any regulation I am gonna implement, I need to understand in depth. I don't need somebody to summarize findings for me, I can make my own damn conclusions.
Sure, I will ask the domain experts of their opinion, but me and my teams will decide what to build, when, and how, and do we will do it together, based on all our shared learnings, not based on what a PM told us.
Who prioritises the problems?
The developer teams, of course. They are solving the problems, so why should they not prioritize them? They just need to have other parts of the org heard, but if you are solving it, you get to choose how to do it, in what order and with what priority.
If that's not to somebody's liking, they are welcome to prioritize and solve the problems themselves.
> if you are solving it, you get to choose how to do it, in what order and with what priority
In times of plenty, this works, and I think it can have high velocity. Especially with very small teams that all have high levels of direct investment in the result.
There are also times of famine, however, and the work that keeps the lights on is often not work that even invested software developers want to prioritize. When making money is on the line, there's always somebody who's there to make you eat your vegetables. Who, in your conception of the problem, is that?
What kind of work is that? And why are the developers willingly not wanting to prioritize it, if the alternative of not doing it is becoming jobless? Do we need some kind of PM figure to say things like: "If we don't make this feature for the client, we are doomed, so start coding. Chop chop!". And do we need to keep that guy on the payroll for simply relaying a message?
Yes, and yes! I believe you're starting to see. Good management has value. Even if that is to deflect invalid criticism for devs.
Right - like, you'd think it's obvious that of course you'd just do the right thing. But developers are expensive and market research, talking to customers, planning for the future, etc. becomes rivalrous to building things. And that stuff is generally much less interesting, so without compulsions to solve those problems, they frequently then don't get solved.
"But if you don't do these things, the company fails!" Yeah, and look at all those small, engineering-heavy companies that do exactly that! And further--eventually, as you scale you reinvent division of labor because as much as we like to kid ourselves, software developers are not, universally, better at doing everyone else's job. (If you find yourself in a position where you are better at doing everyone else's job, you should probably find a new company to work at.)
What area of insights does the development team need to be able to prioritize for better utilization of their product?
---
Ah, I see. There is a concept known as a separation of concerns that prevents this on most teams.
There is a good saying for complex service delivery that most developers operate with in application development and support. If you want to go fast, go alone. If you want to go far, go together. That "together" brings more skillsets that most small engineering teams have on staff, and is typically not beneficial for them to focus on gaining.
There's two types of problems that developers solve. Problems that they, themselves created (oh no, I wrote a bug), and problems that are given to them.
The second type (traditionally, the "business problems") are being prioritized and solved by the people who care about them. Namely, the CEO and the exco. Those guys set overall strategy, culture etc. and then the delegate the implementation and some of the detail to people with more expertise.
Developers do not run the business. They are delegated to to solve specific problems in the context of running the business. Not all of the business' problems will be solved by developers, but all of the business' problems should be solved in a coherent and harmonious way that accounts for the context of all the other problems in the domain (market, regulatory, finance & tax etc.)
For a specific product, the place where this context is managed is usually by someone wearing a hat with "Product Manager" written on it.
If the PM does that, the developer has no idea what part of the requirements is important, and won't be able to deal with it when the requirements unavoidably break each other or reality. The developer has to be there too.
Until you inevitably have a question and they need to get in touch with the expert again
Middle men only improve transfer of knowledge between people under very specific circumstance. Usually they just make things worse
Let children play Chinese whispers, I don't need that in my life
That's not a product manager. That's a domain expert. You might have to check some regulatory checkboxes:
- financial
- medical
- data protection
and you might need different experts' opinion for that. Do you suggest that they are all product managers?
Good product managers I've worked with are better than me at navigating the domain and compliance worlds as tourists as they are tourists in the engineering side as well. David Ricardo was right, comparative advantage is a good thing.
I work in one of those environments and we do have those people (lawyers). The next question is how should we prioritize solving for potential legal risk vs reliability risk vs new feature work. You’d expect it’s black and white, I promise you it’s not. The PM has to figure that out.
I agree with the point you’re making. I wonder if there’s a disconnect here based on the size and complexity of some of the businesses different commenters are working in.
Probably. My employer has >5000 employees, ~2500 of whom are in the CTO org. We serve an international market, so there’s simply no way for a team of engineers to deeply understand all the regulations that impact their area.
Engineers should ideally be working directly with in-house counsel or external specialists under these circumstances.
This isn't just applicable to some niche organisations working within e.g. finance (though there's likely to be a higher regulatory burden there), engineers need a basic understanding of something like GDPR to do their job because it impacts every organisation handling personal information in any form.
I think a major complaint surfaced about the PM role is: Its rare for even your PM to be an expert in that area. Ideally, they should be. Realistically, there's one guy in another branch of the company with a totally unrelated title that everyone eventually figures out is The Guy on this product domain; and the PM's role becomes "interface with Jim".
I don't generally find myself in the Anti-PM camp; but I think one of the valid criticisms of the role is that high quality hiring for it is so extremely difficult that maybe its existence is an indication of a structural problem. As the article says; if the ratio of PMs to Teams should be less than 1:1, maybe the correct lens to view this role through is more of a higher-level product lead, or a separate product branch who act more like free agents that attach themselves to teams temporarily, splitting time, where needed.
I will say, I've worked in two roles where this was the case; one a very large public tech company everyone reading this would recognize, and another a 30 person startup; giving PMs higher cross-team authority felt, to me, like a really good decision. One small positive byproduct I actively observed: when speaking with our PM, who was shared with four or five other teams, he was constantly aware of all the other work they were doing, and would actively make recommendations about how our little feature could plug-in with their little feature to increase the quality of the overall product. One small negative he communicated: because the company had no entry-level PM roles, which is where he started before they refactored the org chart, its non-obvious how you backfill these roles or create an entryway for new talent to breach the industry. Their current solution to this is "well, we can't really promote internally unless an EM or Engineer wants to switch domains" which they genuinely did try to support.
The best PMs I’ve worked with were HIGHLY technical, either in the same areas as the developers or in adjacent areas, like product design, or the domain of the product
PM for retail company did long stints in merchandising at Costco
PM for spreadsheet company was a former banking analyst
Most companies hire under qualified generalist PMs who have to learn everything about their market from scratch; it’s very challenging and prone to outright failure.
Hire fewer PMs, and make sure they bring a key skill to the table. Let Microsoft and Google train the juniors.
Sounds good in theory, but what if your company decides to reduce investments in the spreadsheet product and instead transfer the product team into a much faster growing product segment, e.g. SAP integrations?
Then the perfectly qualified PMs start from square one again.
IMHO it's an essential skill for a PM to familiarize him/herself with a new domain in short time. It also offers cross-pollination / the chance to do things different. Imagine Steve Jobs coming from a pure IT background instead of liberal arts / calligraphy -> Apple wouldn't have been so different any more.
Note: "were HIGHLY technical".
They had the ability to learn technical things once, then they can do it again. (In a short time? Not so easy to find out until after you've hired them, in any case?)
Exactly the same point holds for programmers: what if (say, by becoming acquired) a company has to switch from being a, say, a Deno/Vue.js shop to becoming a Java shop? Exactly.
So the answer is: don't do such radical changes in the product portfolio and way of doing work if you don't want the employees to more or less to start from square one again.
Spotify, if you’re reading this, hire someone who listens to podcasts for your podcast feed in app.
And someone who has ever used (including caring whether it be off, not just on) to work on shuffle and Smart Shuffle.
I feel Spotify doesn't do anything they don't want to do. Most changes (especially) in the Podcast function are baaaaad. I switched from Podcast Addict to Spotify (already had it for music), and I ended up to stop updating the app, because I dislike more and more every update.
The insult to that is also "no changelog". I hate the generic "we try to make it better, but ain't telling you what". So at this point it's a gamble whether I want to update or not, so I don't.
Also for Spotify, perhaps it's time to allow a pool of 1000 (?) volunteers from each language to help you rewrite titles, names, etc. in the local languages. I'm happy for the latin alphabet, but do make a "local language" field and then let the users see THAT instead of the common if they choose to.
Pffft, they train the juniors? Hahaha, that’s funny.
https://careers.microsoft.com/v2/global/en/students
https://www.google.com/about/careers/applications/students/
1000% this
I spent at least the first half of my career working with non-technical PMs and thought they were useless. I then joined a company where the PM was a former C++ game dev who was on several credits of some of the biggest games of the 2000's. He was an absolute joy to work with. He understood issues that we faced, he warned us of pitfalls to certain approaches, he greased pathways for us in upper management. I consulted with him when I was trying to decide whether to take a PM role.
The worst products I have ever seen were when the developers acted like product managers. What you end up with are a bunch of really cool stuff that no one wants to pay for and only a few people find utility in.
Could you elaborate on what you mean by that? Is it the standard scope creep / premature generalization pattern, or something else?
It's because engineers will build what engineers want rather than what the customer wants. Engineers are more likely to appreciate highly technical details that average customers don't even understand, let alone want to pay for. There is also likely a disconnect between what it should be able to do versus how easy it is to use.
Engineers are likely to solve problems that the customer doesn't care about. If you know engineers that say things like "the customer is an idiot" then you understand what I'm talking about. Even if the customer really is an idiot that is the person who needs to use the product.
I’m not sure you can generalize like this. Do the engineers have RSUs or financial incentives where they do better if the firm does better? I’d argue they’d care more then. Also, a lot of engineers intentionally chose to work in market segments they’re passionate about. I’ve been at the same company for over 13 years. I could likely make more elsewhere but I find the domain I work in quite rewarding and interesting.
They have a larger emotional incentive to work on cool things that they enjoy, as opposed to the relatively small change in company price if their individual product succeeds or fails.
If I had to guess, it's a lack of adequate market research.
Not the OP, but I think my comment here [1] might be a good example of what the OP means
1] https://news.ycombinator.com/item?id=25975417
I don't understand, how do you handle prioritization decisions: if you have a 100+ customers that all want something, how do you create understanding of all needs, how do you distill that to an integrated roadmap, and how do you align the roadmap prioritization decisions across 20+ teams?
How do you organize updating of documentation, training materials, enablement of support, pricing decision, updating of price lists, enablement of sales, presales, and customer success teams? How do you manage the input towards analysts like Gartner, that have a big impact on the decision process of your customers?
How do you evaluate the offering of the competition compared to your offering, how do you determine where you should be in 1,3,5 years to have a competing product in the market?
Most PMs are mostly concerned about what should be built to create a valuable product for customers, that provides healthy stream of revenue for the company. Most developers are concerned about how it should be built. That is a completely different responsibility.
That does seem to require at least a PHD in prioritization or a totally real role like a Product Manager indeed! A naive approach would be to make a spreadsheet with the names of the clients, their current and potential monetary value, group the issues by the corresponding teams and themes, and let the teams ask additional clarification questions to the clients so they can prioritize. But yes, I can see your point, a PM guy called Josh with an bachelor of arts degree indeed seems more qualified to do it than a bunch of software engineers, and make the better decisions. I dunno what I was thinking.
A naive approach would be to have a frequently updated knowledge base. However, I understand that Josh and his arts degree make him the best at producing/updating of documentation, training materials, and enablement of support, so probably...Josh?
Sales + developers + finance sitting together? Shared company view of the important client metrics? Nah, Josh will do it.
Marketing departments? But I have the sneaking suspicion Jake (or was it Josh) is a better candidate.
By analyzing competition, thinking forward and having a vision. Are developers supposed to only think on the benefits of mysql vs postgres?
Let me float a crazy idea out there, I hope it doesn't sound too far out, I am just trying to dream out loud. Because I believe that if we dream big, then everything is possible.
Hear me out... How about, maybe having developers concerned BOTH about what should be built and how? I know this is too radical, and we would probably need first to have that notion reconciled with mainstream physics, mathematics, and fluid dynamics, but it's just a crazy thought I've been having.
Just imagine a universe where engineers not only execute instructions from people with suits, but actively decide what to build themselves. Of course, that's science fiction and can't possibly be achieved, but just imagine!
P.S Sorry for the patronizing tone. I just think the industry got it really wrong as a whole, and that we can build far better things and far easier if we treat engineers as adults who know what they are doing. The existence of a PM (or PO) role for me is the opposite of treating devs like adults.
Almost every PM I've worked with had an engineering degree and/or previously worked as an engineer. This "Josh" sounds like a strawman or you've had bad luck with PMs in the past.
It also sounds like you have a PM on your team, but they actually have the title of SWE or Eng. Mgr. They probably spend > 50% of their time on the above listed responsibilities rather than engineering. Hopefully they don't get docked in their performance reviews for essentially performing the duties of a PM rather than those of an engineer.
I am very much for any SWE or Eng. Mgr taking responsibility and spending as much of their time as they see fit on anything they see fit to build a great product. Not only that, but I will encourage them to continue doing so and give them a great review score and potentially a salary bump!
The duties of an engineer are to know what to build, prioritize it against their other work, and build it, alon with the other engineer in their team. If you consider the "knowing what to build/prioritize" as PM work, so be it. I consider it engineering work.
PM is not a junior type of job for someone called josh. In my experience it’s a full time job, requiring experience in the customer problem domain, and engineering experience.
The state of almost every single open source competitor to commercial software (in terms of UI, usability, effectiveness, and market share) suggests that maybe letting experts at programming software design all other aspects of software is not a panacea.
Ah yes, comparing a well funded company to two enthusiastic nerds coding in their free time, that's a fair take.
You are comparing paid labor to unpaid labor, not a company with PMs vs a company without PMs.
There is no panacea to hiring and retaining good engineers, all I am arguing is that the money spent on a PM is much better spent as Christmas bonus to the engineering teams.
However, if you believe that what takes building great products is an unqualified semi technical person with a made up role and title who doesn't do any work themselves but passing messages back and forth and strutting around like a peacock calling all the shots, be my guest.
Why would experts at programming software necessarily be experts at designing it?
(By “designing” I mean like, designing it in the large, what does it do, not UI design or something. Though of course the same goes for pixel pushing.)
Engineers don't want to talk to the customer, so who will do so to know what to build? In startups, when building MVPs, YC and others will stress that the founders be talking to their customers, but this should not stop just because the company becomes larger.
Product Managers as they have become today (from my experience over the last decade+ in 7 companies) are far too involved in technical decisions (on which they most often have no clue about) and far too little involved in talking to real customers.
In the olden days (the 90s for me) we had people whose job was to track the pulse of customers to see what they needed and provide that feedback in an organized form to engineering leadership. At least in the companies I was in, their title was not PM (can't remember their exact title).
That was very useful, it gave engineering leadership a clear view on what customers like and what they hate and what they want in the next release. And it was not interference, as these people had zero say in engineering decisions.
Today the average PM is just meddling in technical decisions they are not qualified to have an opinion on and most of them don't really spend enough time with customers, their product direction is all based on their personal (largely uninformed) opinion.
Maybe there are still companies that do the PM role right, but I haven't met any.
This mindset is also part of the reason why some products are atrociously bad. Developers build products with the latest tech, whizzes, bells and whistles and totally miss the 'actual' requirements and/or how their users use it. When bugs/issues are raised, dev complains that users aren't using the product the 'correct' way.
At the end of the day, whether you should have a Product Manager or not AND the number of PMs you should have will depend on various factors such as the product itself, team size, size of the company, type of company (B2B, B2C, etc). But saying that PMs are NEVER needed and Developers should just build is wrong. Someone has to wear the hat of a 'Product' person. Whether it's a separate person or the developer is dependent on the factors earlier listed.
My comment here [1] and the discussions for that post is a good example of this mindset of PMs are NEVER needed.
1) https://news.ycombinator.com/item?id=25975417
I wish I could upvote this more. I feel like the people who say that all you need is engineers have worked either exclusively at devtools type startups, or they've only worked at unsuccessful startups but have convinced themselves that the reasons why had nothing to do with lack of people with PM skills.
If you work in pretty much any kind of B2B SaaS and don't have PMs (or someone doing the PM work - if you've got engineers who were formerly PMs who spend half their time managing the roadmap, you can't really claim you're only employing engineers), you're probably doomed.
A good PM might not be that technically knowledgeable at all.
If they're at least very detail-oriented and can effectively lead sprint planning or whatever the equivalent is at your org, much chaos and indecision can be avoided.
They get bonus points if they're good at shielding dev teams from office politics and committing everyone to a firm schedule free of sloppy requirements or loose due dates.
I took a PM role at a company that was "engineering first" company for decades. This is code for engineering with no accountability, and a culture where engineers do nothing but pat themselves on the back.
My product is utter crap. As an example, 2/3 of the code moves data from Oracle to JSON to MySQL back to JSON to PostGres to parquet that just reconstructs the schema of the original Oracle tables. It is fragile as fuck and the "architect's" proposed solution when I joined was to throw Redis in the mix. Customers hate it because it's always breaking down and has massive requirements.
I went to war with him, pointing out how absolutely asinine the whole thing is. Turns out, he was already on an RIF chopping block along with several other engineers that contributed to this mess. I just pushed it over the edge. When he left, I discovered one of them basically came in in the morning, logged in to customer sites, launched four screen sessions at each customer and tailed -f logs all day, manually restarting when their own shit code went down.
This is what happens when you get out of developer's way and let them build in peace.
What kinds of products were those teams building?
What was the product being built.
That may only work if the target group of your product are developers, then it's not a suprise they have a clear understanding what's valuable to them.
If your product targets customers outside of the IT department, it's a whole different picture.
This matches my experience. As a staff engineer I also did a lot of PO work and the fact that I was also an engineer on the team helped me ask customers the right questions. As an EM, I coordinate our Product processes but engineers on the team play a huge role and decisions are always collaborative. On teams I've been on with a dedicated PO/PM, the PO just ends up trying to micromanage the engineering team and pull people into a lot of useless meetings. Don't get me wrong, there are good PO/PM folks out there, but the vast majority I've worked with don't fall into the "good" category.
"most successful teams"
For what definition of success, and at what point in the product lifecycle?
I've been on teams as you describe. They were great - as long as nobody had to deliver a working product and you were just running out runway until the next gig. They were also great when the product was already built and we were just KTLO and deliver some new features once in a while. But I haven't seen such teams deliver a product from initial idea to PMF and sustainability.
I can definitely see how this is appealing for small technically oriented teams that want to move fast. It is likely however that your team will reach an inflection point and at some point having a *good* PM would be a net positive to the company.
What type of product was that successful team working on? I believe this can work wonderfully if the developers are close enough to the user, eg: building a tool for devs like github.
But if the product and the users are alien to the developers then this is a recipe for poor UX and value (eg: building an accounting product)
Not sure that's going to work if one is building a Finance, HR,.. software. You need domain experts to draw up requirements, prioritise etc.
Similarly, if one is building a consumer app where back-end, infra are 'solved problem' but user experience needs to be differentiated, only engg team would not cut it (designers would be needed).
If you don't have product, who is talking to customers on your team?
I don't feel that an organization like that is the best way to run a company. It may be a superior way to the reality of most companies today, but that reality makes achieving an environment like that extraordinarily difficult.
Here's the reality I've seen: PMs and EMs share a very similar domain of responsibility. The "20% work" of both jobs is different; but 80% of it isn't; its communication and defense from the rest of the business, and organizing the work the engineers need to actually do. Who actually does it, in your org, the PM or EM, depends on who has more political capital between the two, which is something of a function of their skill level, experience, and ability to market themselves. Great EMs look like PMs. Bad PMs do all the bad things bad EMs do, like micromanage.
Phrase that paragraph another way: in most orgs, in my experience, the PM role fills a need which arises when the team makes a sub-optimal EM hire, and vice-versa.
That's my reality; but the obvious problem with that reality is, if you look at the scientific, hypothetical definition of what a PM should do, its not that. There's tons of more product-focused "we want to build the best thing" kind of work that feels, to me, rare for even Fantastic PMs to actually get to do because they're compensating for an EM that isn't pulling their weight. Vice-versa, if you have a Bad PM it might not even occur to them that this "we want to build the best thing" class of work is a fundamental part of the role; ZIRP document factories that could basically be replaced with an LLM trained on all the meetings they've attended.
The additional lingering problem is that, part of that 80% work, "defense against the rest of the business", depends significantly on the rest of the business stepping back and creating an environment where this "unit" (the EM, PM, and engineers) can be autonomous; and I've also nearly-never worked anywhere where this was the case, even leadership that says "its y'alls call, you've got authority in this domain" inevitably catch wind of some decision they dislike, for reasons rarely more substantiated then "it feels wrong", and even a small number of torpedoes like that can seriously, seriously harm an entire team's feeling that they're allowed to go on of the offensive, rather than playing defense 24/7.
Point being: The single best characteristic of upper leadership, its not close, there's zero argument of this in my mind, its not technical ability, business experience, good talking skills, domain experience, whatever: Its Hiring. Being able to identify strong talent, keeping a pulse on the performance of that talent, ground-truth, all the time, and being willing to let people go if mistakes are made. But, what I've just described is extremely difficult to execute effectively, because every actor in this game is self-interested and will actively misrepresent the performance of themselves and their unit; politics is the hardest game in the book.
“Politics”
35 years in the semi industry. I must be stupid. I really don’t see politics. I see people trying to argue for their option and get support. But I’ve never seen this politics that people complain about. I’m so lucky I guess.
Is politics just someone making a better argument that is the wrong technical decision? What is “politics”?
Or am I just not at a high enough level (senior principal)?
Politics is what happens when you have limited resources and you need to decide where to allocate them. Politics are everywhere humans are.
That’s the good side of politics, and I agree: it is everywhere humans are trying to accomplish things together.
But when I say gravitate away from hard work towards playing politics it refers to something else of course. Getting others to do your work while still claiming credit is one example.
It’s not the good side of politics, it’s how it’s defined in textbooks.
I don’t think those textbooks attempt to define the concept in this context. Like it or not, “corporate politics” is a well established term.
Consider whether the stuff you’re thinking about is “politics” or merely “stupidity” or “malice” (or some combination of these). I see no need to mix up the words.
Yes to this. Too many people complain about politics as if it is some “outside” force and not simply implicit in the way that human beings organize diversified interests. Since each of us can only embody our own world view, politics is inevitable.
I understand that what people typically mean is people who are “too political” where the pushing for interests stops being in service of some goal and starts to become its own point. But in trying to avoid the appearance of that, too many people fail to engage in any politics and in doing so actually cause more harm than good to what is important to them by missing the important point that it’s incumbent to speak up for things you need and believe in because people who allocate resources may have insufficient knowledge or insufficient time to dedicate to knowing your work that intimately.
Politics would be less of a shit show if people had intro textbook level knowledge about political science and/or didn’t approach it like a sport.
It typically doesn’t stop being in service of some goal, but rather becomes entirely self-serving.
This is the grown-up answer that this thread is clearly lacking
But why then is it used as a pejorative? What you described is "engineering".
Politics is a when a company like Caterpillar spends a year trying to acquire GPU's for their autonomous vehicle teams, because they have 20 security and project managers that want to assert themselves in every conversation to get promoted, to get to senior leadership positions, while the company looses out to Chinese competitors they were ahead of.
Politics is also when middle managers and 2 engineers conspire to steal a coworkers work to get promoted and move up the silicon valley startup ladder, so that the company has to come back a year later to bring back the original engineer, because none of these people were capable.
If you haven't seen politics you might have been either blessed or didn't want to see it, but for every 1 company I worked with that was efficient I worked with 4 that were not.
Politics happens whenever there are more than 2 people :). OP above must be really lucky to have not seen politics at all or one of those beneficiaries of politics who are like "Politics ... wut? nah"
Good examples! :)
It's possible you've never worked with politically minded people but I doubt it. It can be as small as an engineer broadcasting how hard a problem is before solving it. If they do that, they get the kudos for doing it. If they don't, it just gets done unnoticed.
Most people who dislike political people are failing to place the blame on the right actor. Sounds like this engineer has recognized how to get rewarded at their job and has adjusted their behavior to fit. The actual root problem is that this reward system fails to recognize the quiet everyday progress required to make something great.
In other words, in areas of limited resources where politics are innate, the squeaky wheel gets the grease.
You’ve worked for 35 years and you’ve never seen anyone act out of self-interest to the detriment of the project / company? Either you’re incredibly lucky or you’re blind. ;)
I'll take Blind for $1000 Alex. The self-interested people I saw were weeded out unless they made decisions that led to stock increase. In which case their self-interest was aligned with the correct decision. I don't call either one politics.
I think of politics as useless bickering that doesn't advance the project. Usually it is self-correcting for the reason above. I've seen a lot of bad decisions drive company's stock into the shitter, but I think of that as simply the "wrong" decision.
Shit, I think I -AM- blind. Hmm....
The semiconductor industry actually does something. In web development it’s 100% political. Around 2018 it became easy enough to do web development at FAANG companies that there’s really no such thing as merit because even the worst employee is as valuable as the best.
Politics in this type of context is fighting to the death over a single pie versus working together to bake a second pie. Some of this is necessary but when you only do this a company will not grow except through luck.
I'll give you one from personal experience, and it was in an academic setting.
My boss, whom I will call Boss W (who spent a lot of time maneuvering people around) had first worked for my previous boss, Boss F. Boss W, I think, spent more time playing chess than anything else. First he worked out a situation where he was peer to Boss F, then, with another coup, managed to get Boss F working for him.. Still not satisfied, he managed to change to whom the department reported to from Uberboss J to Uberboss C.
Uberboss C, who was peer to another administrative type, Administrator W, was eager to prove the value to the change. And so I was tasked with developing a product rather similar to something that Administrator W had at his previous job. The product itself was politics, in that it presented to a group of stakeholders about a thousand to three thousand items to decide the disposition of. But this was futile, really, because we had about six hundred thousand items to have reviewed, so we would never actually get anywhere with presenting this to the stakeholders. But they wanted it and so ...
And so I was told that this was going to be an Agile thing, and I had until the start of the semester to have it done, and they needed to see a fully-featured prototype (a contradiction) right away. Although promised, I never got to meet with the internal stakeholders who would present this product to the external stakeholders who would do the disposition.
That's quite a tight deadline, but it gets interrupted because to prove value to someone else, I get sent on a week-long conference doing something utterly unrelated. They just wanted to prove to the guy running Dept B that they were going to have someone in the mix for his technology.
Despite this and catching a tremendous cold, I managed to have something developed by the start of the semester, because it was so very very urgent.
And then it was not shown to the internal stakeholders for seven months. All o that hustle! So Agile much wow.
A mini cto is an architect in this position