The best decision I ever made was moving from a company that acted on the whims of whomever the sales team spoke to last, to a company that had a strong product vision and was happy to say no to their customers on occasion.
It's a lot less exhausting when you're not changing priorities every quarter.
You also avoid the soul crushing experience of working really hard, crunching to get a feature out, only to realise your time was given away free to land a deal. Sometimes a deal that fell through anyway.
This is one of the things I try to suss out when I interview somewhere. Do you have a product team (or at least someone in leadership) with a stable requirements vision, or do you just haphazardly develop based on whoever your sales team last talked to. Having a stable roadmap is an absolute requirement for me. I may not agree with the roadmap or priorities, but I'd rather have them than not have them.
I've worked in both types of companies, and the ones where sales dictated what we worked on this week were universally awful.
Another thing to be wary of is a product where there are a small number of customers, maybe even just one, who contribute the vast majority of the revenue. Because then, even with a good product vision, it's going to be very hard to say "no" to what they ask for.
Even if you weed out the willy nilly stuff, you will bump into Enterprise users that are actually correct.
They will mention something you know you should have added but always wrote off as "bloat" or "not really really really needed". Those things start happening more and more the moment you are doing $100K plus deals.
Are you talking about structural fundamentals or product features?
Because I agree about the fundamentals, the things enterprises tend to care about:
- SSO / SAML / auth integrations
- ISO Certifications
- Regular Pen tests
- Localisation support
- APIs ( that they'll never use )
- Bulk operations
- Self-hosting ( or at least isolated / non-shared application cloud hosting )
Get these and similar right and it's the difference between landing enterprise or not.
But if you're talking about features specific to a product, or custom products for a platform, that's a very different thing, and that's where the great distraction can come in. That's where you'll end up developing features that go unused, and it's these which aren't so consistent across customers.
Imagine you make washing machines and get a request for:
" This Washing machine must have a pre-set button for a 57deg 38.5 minute wash. Without that, I couldn't consider this machine ".
You try to argue that you let users define their own pre-sets, and that they can set up their own pre-set for that cycle. But you're denied by the person in sales who insists that they need exactly that as a first-class button on the front of the machine.
That's the level of petty that some large customers will try. In some way, it can be seen as a good sign that they've engaged with your product, but sometimes you wonder if it's just a trial balloon for seeing if you'll put up with the unreasonable.
You missed some universal ones that are both necessary, and a total pain:
- Teams & Fine-grained Permissions
- Audit logging
- SOC 2/3 compliance
- Data wiping / retention / data policy management
- Reporting
- Cookie law crap (GDPR & CCPA)
- Myriad forms of custom product tiers & billing arrangements
I'd put these above several of the items on your list, and in my mind, they fit into the category of "things a developer calls 'bloat', that are actually necessary for enterprise sales".
It wasn't an exhaustive list, it was to articulate the difference between structural features, which all of those are, and product features, which are specific to your product.
Yeah, I don't really mean it as a criticism -- my list is stuff that I think is incredibly painful to build, ends up taking >80% of dev time, is messy/spidery, and which I've spent a lot of my life explaining the necessity of to (typically junior) engineers.
In short, this is the kind of stuff that I think fits the parent comment's categorization: it drives enterprise sales, engineers hate building it, and it never really ends because the maintenance and detailed feature requirements change with almost every contract.
On top of that, you have to get messaging right. Here’s an example from consumer:
I’m looking for a TV. I buy after careful research, so there’s a 90+% chance I’ll end up with the TV I have in mind before walking into the store.
One device we frequently use (Linux) doesn’t send the “switch to me” hdmi signal when we start using it, so the “switch input” button on the remote is crucial.
The front runner has a One Button (TM) remote. “What fresh hell hast thou wrought?”, I ask.
On page 1, the manual says to change inputs you need to press the gear button, navigate through the settings menu to “inputs”, and then find the right input from there.
Ok, so do I get the crappier panel to avoid the settings menu every time I turn on the TV, or not?
Thankfully, page 10 has a picture of the remote, and it has a quick change input button, so that’s OK.
On top of that, I want the TV to be a dumb TV.
There’s no mention of this in the quickstart guide, but it has “Basic Mode” that which is that, except that calling something “Basic” is right up there with most four letter insults with kids these days.
As a bonus, after reading the manual, I also honestly can’t tell if it’s possible to have four hdmi inputs and also variable volume audio out at the same time.
If you’re going to produce differentiating features (or your competitors are differentiating you via enshuttification) you need to make that clear pre-purchase.
In enterprise it’s at least 10x harder to get this stuff right because you probably don’t use the product on a regular basis, and also, there are many more features.
What a lot of these HN programmers seem to miss, is it's not about what you or your application provides. It's about what your competition is willing to provide. If you don't have much competition then that's great, but the moment your 100k-10m paying user starts testing the other software your C-levels and sales people are going to have the programmers locked out of the building the moment they say they won't write a feature.
Depending on the company's product (and this is a wide range), somewhere between employee 10 and employee 100, the founder needs to decide "Am I CEO of the company? Or CEO of the product?" (As in, that "and" needs to become an "or").
I don’t mind this as long as the sales team and management allow the correct amount of time to build it in a maintainable way.
The reality is I only get paid because of those deals, and the post deal tech-debt sprint never happens.
So the work has to get done and if sales doesn’t give time for it to be done properly then in 3-6 months velocity will drop and the sales pipeline will dry up.
Any company that can’t understand that is not a long term company I want to work at.
HN is largely a US ivory tower forum, lot of good discussions happen here - but many folks are coming from the costal endless “VC” money mindset where company revenue is not much a consideration because they just move on to the next high paying gig when the money dries up.
It really depends on the industry. In a narrow vertical market with only a limited number of large customers, the vendors pretty much have to roll over and do whatever the customers demand regardless of product vision. Give the customers what they want or else they'll find a more pliable competitor. The power dynamics are different in more horizontal markets.
If the customer has people on the other end that knows about their processes and cares, you can push back.
We landed our largest customer by gar a few years back, and we pushed back hard. However we had good arguments why, and explained why changing their workflow would be much better or offered some other approach to solve the problem that didn't involve a new bespoke and brittle feature.
On the other side were a team that knew the processes well and understood our arguments.
After they went live, the management thanked us for helping them improve their organization.
On the other hand there have been cases where decisions is made by leaders so high up they have no idea what's going on by those that need the tool, and aren't interested in spending time or effort on it. Not much you can do then.
edit: Though sometimes they learn. We've had a few customers who we said no to since their wishes were not really feasible, and who selected others and failed, and failed again, before finally ending up with us, on our terms.
It's a lot less exhausting when you're not changing priorities every quarter.
You also avoid the soul crushing experience of working really hard, crunching to get a feature out, only to realise your time was given away free to land a deal. Sometimes a deal that fell through anyway.