In my limited experience, you have a real problem if the dev team hijacks what will be done and how it will be done. There is a good chance your product is going to be over-engineered, difficult to steer and all the minor but important details will never get done/corrected because hey, lets build another mammoth worthless (in business terms) functionality.
To your point, I think a lack of leadership can kill a consensus-building process. Whoever is coordinating needs the authority and will to end the discussion when the time is right (among other things.) Otherwise, it really can become endless debate and drawn out attempts to get some unwilling party onboard.
Making decisions based on consensus is just often not the right choice in this context. If used for the wrong type of decision, it will lead to a "design by committee" type of process and result, driving a lot of people mad along the way.
A better way to make decisions in a software project is to consult with stakeholders (if necessary), identify the appropriate decision maker based on competence and then let that person make a decision.
Holy shit. This is one of the most profound things I've read about management in a long, long time.
If the manager keeps avoiding making decisions and diluting responsibility, they aren't fit to be a manager.
With client projects it’s different, you have a budget and deadline. Miss it or screw up on the way and the client fires you and hires your competitor. My client delivery teams are a much harsher environment but roles and responsibility for decisions are very clear and everyone’s job is at stake so it gets taken pretty seriously. There’s no room or time for consensus building, the flip side being owning a bad decision means working somewhere else.
Making sure everybody has a voice is a task for the people that actually have power there. The other part of that task is cutting those people down and overruling them when needed.
A good film set runs like a well oiled machine with an extremely clear division of responsibilities. Decisions can be made fast, because time is of the essence (the sun only shines so long). This is cool, because if I do the camera I usually don't need to worry about anything else. But usually I also don't have to do anything else: For the duration of the shooting, the film becomes all I need to worry about. I get food, I get a place to stay and most importantly: I chose to be there.
Meanwhile in corpoworld there are X meetings with people who don't even know why they were invited, don't wanna be part of it, are not given the time/resources/mental headspace to be there and then corperate wonders why the project doesn't goes as swimmingly as it could. If your people already do two jobs and the project becomes a third, guess what: they are going to avoid doing too much and maybe if you are lucky some poor sap carries that thing over the finishing line alone. But if that is the outcome, wouldn't it have been better to free that person from their daily duties and put them in charge of the project and whom to talk to? The resoueces of the company would have been better spent, the result would have been better, the thing would get done quicker etc.
If you want to take two things away from this post:
- put someone in charge of the project, make sure they want to do it
- Daily cruft is the enemy of projects. Free people from the rest of their duties, even if it is just a day of the week, e.g. "on Fridays Frida works on project X".
They can’t leave it at “do you want to do this project?” They need to follow up with, “It really is optional, I won’t be hurt if you say no.”
They also can’t do it with a big decision first. They have to frame small decisions that way sometimes, to build trust that when they say you have the ability to decline, they mean it. Then, they can ask that way on big decisions.
If a decision isn’t optional, they should phrase it a different way. I use something like - “I need you to do this project - how does that make you feel?” I want them to tell me if it’s a hardship, but I don’t want to imply that I’m leaving the door open to a different outcome necessarily.
If there's grunt work that no one wants to do, I distribute it fairly among the team. Fairly can be splitting it up evenly among the team (everyone refactors _n_ files) and sometimes it means we round-robin the responsibility (e.g. quarterly compliance reviews with auditors). Obviously this depends on the team size and role in the company, but I think it's only come up a few times over ~4 years.
Then they made the choice themselves and even if the project sucks in the same way, they made the choice themselves.
An important rule of low/no budget film-making is: no mattee who is in your crew/cast, know why they agreed. For an established actor that might be trying out a new or different acting style, a different role, whatever. For the sound guy it might be learning the tools, or going to a certain landscape or some compensation. Know what motivates your people besides the salary and treat that motivation like the most valuable secret intel tou could have ever aquired.
Making a decision based on input from relevant coworkers while being competent in the domain you are making the decision in isn't exactly dictatorship?
Assuming a competence hierarchy, that should equal competence. Unfortunately, oftentimes it's not a competence hierarchy. In those cases, it may take some time to trust in someone's competence.
So what happens in the happy case is a very complex system of figuring out who should be the dictator and when they need to be moved on. If you look at successful open source projects that process is often visible - a brutal communal negotiation (of global scope!) to work out who in the world is the person with the best motivation to control a project.
I'm lucky enough to work in such a team, and it's been fantastic.
I've worked across 18 companies, and about 2-3 times I've been given a person to onboard me, once we had a decent central wiki, and the rest of the times I've basically been left figure it out.
I don't even think these things are overly hard to figure out, but very few people in tech straddle the lines between tech and org, and when they do, they're usually kept at bay by the non-technical tech roles ( deliver manager, etc ).
IMO, the fundamental role of a PM is to make the decisions nobody else wants to (and own the consequences of them). If my team is making progress and decisions are being made, I get the fuck out of the way.
I jokingly refer to myself as the "designated scapegoat", basically meaning it's my job to tank the risk for situations where everyone is nominally in agreement about something, but nobody wants to be the person to put their hand up and own the decision because of the risk if it backfires.
But a LOT of decisions in reality are ones where there is no clear "organic" owner. In that scenario, assuming nobody else is putting their hand up to own it, that's the PM's responsibility.
Nobody will ever tell you this in interviews, it's never part of the job description, but it is one of the most important parts of being an effective PM.
“If things go well, dev team gets the credit. If things go poorly, PM takes the blame”.
This is fundamental to building trust with the dev team and gaining the respect of leadership.
This made it possible to guide the product in directions the dev team wasn’t immediately comfortable with, because they knew it was my ass on the line. And when those decisions led to good outcomes, it further reinforced the trust relationship.
I haven’t countered many PMs who live by this, but it sure makes a big difference.
We’ve hit industry maturity with ever slimming margins but with management still operating like costs don’t mean anything. If management was doing their jobs they would discover the cost of meetings and ultimately the cost of indecision!
PMs shouldn't have to fix organization dysfunction while operating in Hero Mode.
You're expecting to be able to engage with your engineering team around the relative effort and complexities of different technical solutions... You're gonna need to have an understanding of the underlying technical details.
The way I see it, I don't necessarily need to know how to build the thing (as in, all the implementation details). But I absolutely need to know how the thing we're building works, what all the key moving parts are, and how they relate to each other.
Without that, there's no way I can develop any kind of intuition as to what is and isn't possible, which is CRITICAL when managing expections with customers or internal stakeholders.
So many PMs are either over bearing or scared to make decisions; or, the worst, that do both, over bearing and micromanaging all the time and then blames the team when their decisions back fire.
For management more interested in playing politics, this kind of ambiguity is a feature, not a bug. This is how you take credit for successes, and shift blame for failures.
Spot on. If I could have all the years wasted through this back, I would be a young man again. In my experience, these are product managers that have never actually been involved in building anything.
Except every time you add someone new, it slips back to a prior state - and every time the group gets bigger, it takes longer to ‘settle’.
Eventually, roles/ownership/structure. needs to be codified, or the group never ends up actually performing - and if not done right, that won’t happen even with that.
> A critical piece of avoiding endless debate is to know who makes the final decision and how it gets made. Consensus-seeking leads to endless debate.
Every rapidly growing company I’ve worked for has reached a point where we have product managers and program managers and engineers and engineering managers and stakeholders and suddenly nobody can even identify who is the decision maker.
Weak leadership then pushes a “we all have to work together to come up with a solution” angle that clarifies nothing and turns everything into a consensus-building operation. Progress slows to a crawl.
The second most common failure mode I’ve seen is, I hate to say it, similar to what this author is proposing as a solution: Product Managers who view themselves as facilitators of a process where they get others to come up with the answers about what to build. The product managers call meetings where they shuffle context and requirements and suggestions from stakeholders to engineers and customers and back and forth under the idea that their job is to lead others to the conclusion. I’ve worked with some product managers who produced prodigious amounts of meetings and slide decks and Figma charts and process documents and Notion pages and after meeting summary e-mails but can never actually conclude what we should build. They’re so enamored with process and documents and afraid of being prescriptive, so you only get questions and prompts and meetings and frameworks to follow to supposedly arrive at a conclusion about what to build.