Hacker News new | ask | show | jobs
by alistairSH 922 days ago
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?

5 comments

> In that scenario, who is driving product requirements?

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.

> For example, in an area with strict financial/regulatory compliance laws...

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!

>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.

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 can tell you that the industry beats it out of you with a club.
yep, i can say i've seen this over and over; more than anything incentives are for the next okr or whatever to be completed so they can move on to the next one asap.

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.

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.
> advocating for better <topic of choice> is money much better spent

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.

>It’s like saying you don’t need a qa team because the developers tested it.

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.

It's more than that. In an org with an architecture of silo'd teams that all work on their own independent federated services, you'll need people to test out all of the variations on content, timing and error handling for the software as a whole. Depending on automated testing to handle all of that, in a live environment, is a fool's errand no matter how much it makes the development cycle seem to go faster.
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....

> How often do you have a Product Manager who is an expert in regulatory/compliance laws and has contacts with government agencies?

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?

> 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 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:

> 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

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... :(

> 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.

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 developers and sre's incentives are the same as everybody else in the company: have a great, easy to sell, popular and reliable product.

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.

> 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.

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.

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).
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
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?
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/

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.
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.

The assertiveness of your replies implies to me that you never worked in big companies
> It's a fact developers love building things so much and not wasting their time with useless meetings!

Correct. Most engineers dislike meetings, so much that they complain that they don't get enough focus time in the day and are constantly interrupted.

> like autistic children that would flip out as soon as somebody touches their crayons

No one said this, you're arguing against a strawman. But even still, how many devs do you know that willingly want to talk to customers?

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.

The PMs I’ve worked with have had many decades of experience in the area of their product and knew much more than our dev team about the business domain
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.

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.
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.
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.
So you DO have a product manager. You might not call them that, but that’s exactly what they’re doing.
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.
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.

> This let's you focus on the craft of delivery

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.

> I care only about one thing: solving the problem!

Who prioritises the problems?

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

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.
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.