Hacker news

  • Top
  • New
  • Past
  • Ask
  • Show
  • Jobs

The most important product decision is what you don't build (https://liamnugent.me)

152 points by ChrisArchitect 2 days ago | 52 comments | View on ycombinator

alentred 1 day ago |

I have visited quite a bit of small towns that were actively built I suppose in the 60-s, and often see abandoned ambitious or even grandiose projects like a park here, or a community center there - fully built but totally deserted now, often in ruins.

Every time I see those I also see the lesson - count your maintenance costs. It is a nice artificial water channel, yes, but will the city have the money to run it, clean it, supply water, etc.?

Of course I know that the original (real estate) developers did the cost analysis, but when you see those abandoned places - very much objectively you can conclude that they made an error. A miscalculation, or an error in judgement.

--

Back to software I think scope creep causes many problems: the team loses focus, can be demotivated by delivering the features no one needs, etc. - all real and serious problems. But ultimately it is the ever growing maintenance cost that has a real ability to annihilate all team capacity.

Everything we build, however high-quality it is, needs to be maintained and all projects should include this into their "run" phase budget. And growing maintenance costs only aggravate other scope creep issues.

--

And that's the tragedy of being the engineer/engineering manager/CTO even. Exactly like the post says, you don't get "promoted" for stuff you reject to do. I had countless occasions of successfully convincing product teams and boards to abandon or rescope the project, and although I am convinced it did good for the companies in the end - the engineering department ends up being a buzzkill :shrug: . I cope with it, but it never really settled with me. If anyone has the answer to how to approach this in a healthy way I am very much interested in your experience.

mmonaghan 2 days ago |

I see posts pop up with this sentiment often and I'm of two minds:

- llms let us build exactly what we want fairly quickly nowadays, or at least a prototype and

- being able to build these features (or separate products) quickly is exactly the trap

> It’s the same test I keep applying when picking the right problems to solve — does it make the boat go faster?

Who knows this though? It's rarely engineers. Product often has a good sense within their lane. Leadership usually (at good companies) is mostly aligned, with some nuance depending on who's speaking.

It's a good sentiment but rarely a single person's decision.

As I said, I see these pop up and I'm usually annoyed because what new take could someone bring at this point, but I read them every single time :p

djtriptych 2 days ago |

Or as I like to say “the best way to launch is to cut features”.

As an engineering leader you’ve got to advocate for it against product/design all the time.

jillesvangurp 1 day ago |

I look at product features through a lens of value adding features, commodity/basic non value adding features, and negative value adding features (commodity features done poorly).

A good example is sign up and sign in functionality. You have to have it. It doesn't do anything valuable. But if you do it poorly it removes value from your product.

I like this as an example because lots of product owners try to innovate with this and then somehow botch the job and create needless onboarding friction or otherwise annoy their users.

And other product owners try to play it safe and simply copy what others do without wasting much energy on the topic. Which is why in 2026, you still see companies insisting on good old email+password based signup processes. Because it is what everybody else does.

Both are creating negative value for their products by either over or under engineering something that is pretty important but essentially a commodity thing. Worst case, this can result in a lot of potential users abandoning an attempt to use the product before they ever even experience the amazing feature set it has to offer.

You see this a lot in product design. Most projects are 90% copy paste jobs with a lot of common, non differentiating and completely bland/unremarkable stuff. LLMs are very good at copy pasting. But there are a lot of decisions that when you challenge them a little bit would result in a very different and arguably better product. A good onboarding experience can make all the difference.

And then there's the simple notion of what is the quickest way to validate that your value adding features are good enough. Which mostly boils down to finding a way where you get those in the hands of users without wasting most of your time on the non value adding stuff that is nice to have but otherwise won't make a difference. LLMs kind of allow you to compress the time you waste on this stuff and do a better job of it. Which is a different way of saying that you will create negative value if you don't use LLMs or otherwise botch the job.

bob1029 1 day ago |

I sometimes have a hard time figuring out what shouldn't be built.

The next best thing is to rapidly build the crappiest thing that kind of works. Being a little bit bad on purpose usually helps. Getting trapped in clean code and test coverage ideological hell is precisely what we want to avoid.

I've found that the more aggressive you make your time constraint, the less likely you will wind up committing to some kind of engineering decision that ruins the whole pie.

If the 90 minute rapid prototype doesn't make sense, you didn't waste that much time. It's a lot easier to prove things to stakeholders this way too.

I've turned multi-month product roadmap expansion packs into single day tasks by building the right things at the right times in order to discover what not to build.

swader999 2 days ago |

The one I get constantly is we want "custom reporting". Well what the hell is that really? Why, why, why do you need that? Then I just build a new feature they will actually use and defer "custom reporting" for another month.

_the_inflator 1 day ago |

Sometimes, sometimes not. It depends.

My mantra is still "Don't give users what they want, but what they need."

Product Design is a one to many relationship, while users are one to one tightly knit into their app. It isn't to discredit their input, it just needs to make sense in the whole picture:

What if the one guy who reports 70% of all the features that would be cool and necessary to have, but 99% aren't using the product like he does? Is there another way to achieve that he wants even better, easier, faster, more reliably etc.?

What if a a/b test showed, that they outright ignore or complain about such new features?

Not building sounds so cool and rebellious, but it isn't about the not to build but overall product strategy and product itself that is the decision maker so to say. Because, you build a product in the first place, didn't you?

Product Design and improvement is brutally hard. Backwards compatibility is the one thing you have to take into account all times. This can create the greatest friction there is and kill products.

So how do you introduce a better way, that breaks with old traditions? Don't build it or use brainpower to solve the puzzle?

Heads up to all the Platform Leads, Founders, Product Designers - tough world, but if it works it is heaven on earth. :D

Prydown 2 days ago |

Saved countless sprints by killing features that sounded cool but didn't solve core problems. Less code, less maintenance.

ungreased0675 1 day ago |

A problem I haven’t cleanly solved as a PM is permanently killing feature ideas. A coder or maybe even the CEO has a light bulb moment, and they want to add something that doesn’t fit with what the product is. I can say no, and explain why, but the idea will keep coming back. Brainstorming session? They raise it again. Sales call? They float the idea to the potential new customer. I take a two week vacation? It ends up in the sprint. How do other product leaders nicely say “No, we are never ever building that?”

stevoski 1 day ago |

A chapter in my book features a company that attacks this problem with a “add a button; remove a button” mantra.

Before they add any new UI element, they first look for something they can remove.

Self-promotional link: https://killthehippo.com/

lampcord 2 days ago |

Been there. Wasted months building features nobody wanted, all because we didn't prune the roadmap aggressively enough.

SophiaVela 1 day ago |

For me, the hard part is knowing when to stop. There’s always one more thing to improve before it feels ready.

pedalpete 2 days ago |

Part of the question may be how do you change the users expectations.

If you are building a product the user already knows, that might not be difficult.

We work in the sleep space, where everyone expects a hypnogram and a sleep score. Even though these things don't actually tell you anything real. They are of little value to most people, but that is the expectation.

daitangio 1 day ago |

And I add, when to say no to customers, from a consultant perspective.

When you are flooded by requests, predicting the right priorities and managing the Gantt is crucial.

Customer satisfaction is your priority as consultant, but wisdom is even more valuable, if you can apply it.

jmathai 2 days ago |

I would go one step further. Instead of 5 low impact features, build the one high impact one. Instead of a cheap notifications hub, fix the need for why you need one.

SP3269 2 days ago |

It’s hard decision, but it has to be made.

I’m not building space elevator.

jmaw 1 day ago |

There are few things nicer than seeing a PR with a lot of red!

CoolestBeans 1 day ago |

I agree with the sentiment here but if you are building anything that relates to finance for the love of god please have a page that's just a list of PDFs of every document that is considered formal communication from the institution. It should have the name of the document, the date it was "sent", and a download link. It should be append only, persistent, and be sorted from most recent to oldest. Like for every party involved we ought to have that.

andsoitis 2 days ago |

Yes. Don't succumb to featuritis. Destroy the barnacles.

Pxtl 2 days ago |

I feel this in my bones. I've literally had to fix outages in products where the failure was a "document store" or a "notification system" haphazardly slapped on by a student under direct supervision of a PM with no experienced technical leadership.

One time it was user profile avatars that took a site down. I work in line of business software, nobody needs avatars.

j45 2 days ago |

Building the right thing > building/not building anything

jongjong 2 days ago |

I would say that 'what not to build' is the second most important decision.

The most important decision is what limitations and constraints you are prepared to accept. There are always limitations and constraints but they are rarely identified up-front.

The most difficult, hard-to-revert decisions are those related to hard constraints imposed by the systems and/or data you have to rely on. Maybe it's not physically possible to obtain the data you need to solve the problem you need to solve for the price you need for it to be viable. Maybe you need to be able to process large files which may take many hours to complete. Or your input data grows father than you can process on a single CPU core. Or the security requirements of a particular piece of data means that you can't efficiently connect it to some external piece of data as you need.

p32929 2 days ago |

[flagged]

JoDev 1 day ago |

[dead]

szamski 1 day ago |

[dead]

dude_ilands 2 days ago |

[flagged]

vivzkestrel 2 days ago |

- one thing i also started doing is indirectly ask about the idea on expert subreddits on reddit and see what people have to say

- one of my latest ideas was to handle spam calls on my android phone

- the way i wanted to do this is to have an app pick up the phone call automatically everytime and ask a bunch of user defined questions

- for example, caller: hi i am angel from XYZ spam company

- audio streams through the app with an LLM processing every word and it asks back "who are you trying to reach?"

- caller doesnt answer in 30 seconds or wrong answer. call dropped automatically and the phone is not even ringing yet

- caller says ABC and the autoresponder immediately asks the next question

- "what is the password to reach abc"

- caller doesnt answer or gives incorrect answer within 30 seconds and call is dropped immediately

- caller gives correct answer and now the phone starts ringing

- obviously the questions are set by the user and it ll change from user to user

- imagine by biggest disappointment when I found out from the r/androiddev group that the permission to actually audio process a phone call is simply not available unless you root your android phone. Its a no-go even on the iphone

- Even if you do root the phone, I haven't gotten a conclusive answer from anyone either on reddit or even here on HN so far on the feasibility of implementing such a feature

- Thank god I did not burn 100 hrs into this