Some seem to treat microservices as a sign of good engineering when it's often just premature complexity. You can always split a monolith later, but you're stuck maintaining that complexity from day one
strken 56 minutes ago [-]
Big companies mostly seem to use the microservice(s) per team model. If your whole company is two founders, one account manager, and an engineer, you only have one team.
It can make sense to have more than one service for purely technical reasons. I once worked on a friend's startup where we built a separate ingress microservice so we could scale it independently from our monolith. There's no organisational benefit to doing so, however. The technical founder and the one engineer are hardly going to block each other.
bhouston 2 hours ago [-]
The issue with many critiques like this is that “it depends” and that many of these strategies actually work while often they do not - but given that most startups fail even generally successful strategies will have a high rate of failure.
And the people that study these types of lists to apply it to their own case are then engaging in “analysis paralysis” because the list is so long you are bound to be caught up by it.
So while I think it is useful to critique your idea and business the best thing to do is to try and sell it and make money and keep adjusting and trying new things to maximize your income. There is no magic bullet.
saimiam 3 hours ago [-]
Such anti patterns are like Nostradamus’s prophecies - you see a company flopping then curve fit a narrative to justify the antipatterns.
How do I, as a founder, know that I am falling into an anti pattern? I don’t believe it is possible to know. You can only “know” in hindsight and that makes these anti patterns useless.
Joel_Mckay 3 hours ago [-]
It takes understanding your own impulses and cognitive biases.
Most people start a small business for tax reasons, and the few lucky loud clowns claiming hyper-scaling BS is sustainable simply disappear within 5 years.
Best advice, answer the simple question "will random people buy this when no one is looking?"... if you have to explain/sell a product/service more than 5 seconds, than that business model likely isn't sustainable.
I also see a lot of smart folks that think they will get paid for excuses... only lawyers, PR, and politicians are in that business. =3
enraged_camel 2 hours ago [-]
>> How do I, as a founder, know that I am falling into an anti pattern?
The easiest way is to have outside advisors who can and are willingto adversarially challenge the assumptions you're making. If you don't have those, good cofounders can sometimes play the same role (although that is harder since they are likely to share similar biases as you).
CM30 3 hours ago [-]
Seems like a useful list of things to avoid when running a startup, plus situations where it may not always be a bad thing.
Still, got a few thoughts here:
> if you build it, they will come
This feels like the cause for so many news/media bundling services, akin to Blendle. Loads of people seem to have the thought process "no-one pays for journalism, that's because it's too inconvenient to subscribe seperately, let's bundle it all", but far fewer people actually seem to want such a service.
> Chasing Blue Oceans
This feels like the explanation for the Wii U, despite Nintendo obviously not being a startup of any kind. The Wii was a blue ocean product, and the company clearly thought the same logic could apply to its successor too. Find an idea that didn't have much competition (using a portable screen to control what's going on elsewhere), and use that to attract a new market.
Unfortunately, while the concept worked on a handheld device, it didn't really feel good to use on a larger scale, and the ideas designed for it (usually some sort of asymmetric gameplay experience) just didn't have the appeal that more traditional ones did.
> Boiling the Ocean
This seems really common with crowdfunded products, since if their scope isn't unrealistic as hell beforehand (and if it wants the public's attention and money, it usually is), it certainly is once the stretch goals start being added and the creators start promising everything and the kitchen sink.
Also with video games, as shown by Duke Nukem Forever, Beyond Good & Evil 2, etc.
pdpi 3 hours ago [-]
> This feels like the explanation for the Wii U, despite Nintendo obviously not being a startup of any kind.
This is a particularly interesting example, because they followed up with the Switch, which is, in some ways, the diametric opposite of the Wii U. Arguably, what happened was that they had the right idea that the hybrid TV/handheld format was the right blue ocean play, but the Wii U failed by being TV first and handheld second, instead of handheld first and TV second. You could probably build a whole business strategy course on just this discussion.
CM30 3 hours ago [-]
That's very true, the Switch feels like an improvement on the Wii U concept in many ways.
Though I feel the other big difference is that the Wii U Gamepad was highly limited in its capabilities. You could play games on it while other people watched TV or used that TV for something else, but you couldn't go beyond that. You still had to be close to the TV for it to function, and that usually meant being in the same room.
The Switch being a hybrid console meant you could take the whole thing outside of the room if others needed the space, or bring it with you to events or places outside of the home. So, it solved all the same problems the Wii U did (playing while others used the TV), but also a ton of more pressing ones (taking the game with you while traveling/leaving the house, playing in other rooms/areas, etc).
terribleperson 2 hours ago [-]
I don't think that's the real cause for the Wii U's woes. Consoles from the big players are almost automatic buys for a lot of people, just to get access to the new games. They have to screw up to change that. No one was particularly bothered by what the Wii U offered, even though it wasn't really compelling.
I hold that the Wii U was primarily an advertising problem, with a dash of the Wii itself being an anomaly.
brinepot 2 hours ago [-]
Yep, seen too many startups jump straight to Kubernetes and microservices before they even have a validated product. Ouch.
tikhonj 1 hours ago [-]
I worked at a startup that did this and it was... totally fine? Like, we hired a guy who knew how to set Kubernetes up, he spent like a week or two setting it up, and then it was totally solid and the development experience was great. I was building some of the core product-specific logic and it only made my life easier.
Which really just goes to show that the "legible" aspects matter far less than the illegible aspects. It's easy to say "hey, this startup is using boring technology and deploying a monolith, great!" or "Kubernetes and a bunch of services, over-complicated!". It's hard to say "hey, this startup's codebase is awful and it's an unforced error slowing them down" vs "hey, these guys are taking some shortcuts but it makes sense in context".
But a mess built on "boring", simple tech is going to derail you far more than a needlessly complex but well-executed setup.
e10jc 3 hours ago [-]
Is there an N=1 anti-pattern on the list? I built an enterprise platform on a low 6 figure annual contract for my first customer. It’s looking like there are no other customers who desire the same type of platform.
pdpi 3 hours ago [-]
Seems to be anti-pattern #4: If you build it, they will come. His description matches yours almost word for word.
> The founders automatically assumed that if they had the vision and one customer wanted it, many others would
FWIW I think it is miscategorized. "Build it and they will come" is a different type of problem: it commonly refers to building something thinking that its value and usefulness are self-evident that it will sell itself, and therefore one needs no sales or marketing.
ButlerianJihad 2 hours ago [-]
Look, this quote originated in a 1989 movie about ghosts and baseball.
The quote is from a ghostly, disembodied voice which encourages the protagonist to rip out their farm's corn crops and build a useless, pointless baseball field, in the middle of nowhere, so that the ghosts of dead players can come back to entertain people. The farm and the family are in financial trouble, and the bank wants to foreclose on the land, and so what has he got to lose?
The film has a happy ending, of course: the guy builds the field, and all the ghosts come, and the human fans come as well, and his new baseball field is a rousing financial success. Our protagonist has honored his father, a lifelong baseball fan, and he's provided for his family, in the most unlikely of business ventures, counseled by voices of the undead.
It seems weirdly missing the point to apply this to any real-world situations. You are essentially invoking a weird ghost story of baseball and utterly implausible fiction. This is not business advice, this is superstition. Field of Dreams protagonist in real life would've been hauled before a psychiatrist and medicated, and promptly served divorce papers along with the foreclosure.
ghiculescu 3 hours ago [-]
It’s the first item on the list.
Ozzie-D 13 minutes ago [-]
[flagged]
exabrial 6 hours ago [-]
"Pretending you are Google" Needs to be on there.
Scalability is not a problem: you have, you will have, you should plan for, you should build for, nor allow anyone to utter the S word. Simplicity is the correct word to use.
exabrial 6 hours ago [-]
This falls into a broader category of disillusionment: "Pretend problems are the funnnest ones to solve", meaning, when the problem doesn't actually exist, any solution can be leveraged as the "right" one because there is no real world backpressure to test if it's effective.
Software Devs love solving pretend problems, and the state of modern web development reflects this.
CM30 4 hours ago [-]
I suspect part of this (at least where software devs are concerned) is resume driven development. It's a lot easier to get hired at a top company if you've worked on similarly difficult problems before, while working with 'boring', simple technology makes your CV look uninteresting to a potential recruiter.
It also gives you a lot more free time if you can persuade your employer to let you use cutting edge technology rather than needing to save it for your side projects after hours.
Plus, given how many startups fail, you do kinda need a backup plan...
So, I suspect a lot of companies are... encouraged to aim for scale and encouraged to tackle problems in the most overcomplicated way possible so that the people working there can take their experience to Alphabet/Meta/Apple/whatever if things go south.
csallen 3 hours ago [-]
I don't think that people are attracted to pretend problems for the sake of pretending.
I think it's more that people are attracted to tractable problems. We like to follow certain paths that are well-worn, where the next step is visible and easy to see. And whether those paths lead to a pretend/pointless destination is, surprisingly, irrelevant. They're easier to follow than whacking our way through the brush.
wredcoll 4 hours ago [-]
> Software Devs love solving pretend problems, and the state of modern web development reflects this.
Are you kidding, have you seen the C programming language?!
anthonj 4 hours ago [-]
The ridiculous things I was asked to do, and observed other people doing, all because "one day we will gave thousands of clients" while at the same time struggling to push out just a few units.
Gibbon1 5 hours ago [-]
Up the Organization by Robert Townsend had this gem, not the exact quote but: big companies didn't get big by acting like big companies.
Wren_ops 2 hours ago [-]
Obsessing over microservices before product market fit is a common, expensive trap. Just use a monolith, please.
threethirtytwo 4 hours ago [-]
Python is an anti pattern.
Nodejs + typescript is superior across almost every dimension other than data science and familiarity.
People think it’s apples and oranges but it’s not. Also don’t forget golang too.
If your app is Python in the beginning then you’re pretty much locked in. It’s doable, but you’re going to be dealing with a lot of Python specific warts.
awithrow 3 hours ago [-]
Python is a perfectly fine choice for a tech stack. Just because you don't like something doesn't make it an anti-pattern. NodeJs + TypeScript have tons of warts of their own that you have to deal with as well. Every language does.
jagged-chisel 35 minutes ago [-]
There are two types of programming languages: those people complain about, and those no one uses.
threethirtytwo 21 minutes ago [-]
There’s a third type of language: Python. Actual poor choice for a startup, independent of complaints.
You’ll note my complaint here is actually remarkably unique. You will rarely hear a person who is an expert in both TS and Python say definitively TS is better.
Many people who know both stacks well always maintains some kind of apples and oranges opinion about it. It’s like agnosticism.
threethirtytwo 24 minutes ago [-]
Nah but the warts are minor compared with other languages. Python is guaranteed to hold you back.
First it’s the worst performing language for the application stack (only among the most languages for that area). Second type checking on Python is raw garbage.
Third you’re going to have to use TS for the frontend anyway. You can’t escape ts. Choosing Python(or any other language) forces you to have redundant code in two languages. Ts is the overall best startup stack and a huge part of it is because the frontend requires ts anyway.
Also sqlalchemy is pretty garbage.
nojs 3 hours ago [-]
No, caring too much about the language and not the problem is the anti pattern
threethirtytwo 19 minutes ago [-]
Thinking that the stack/language is not intrinsically tied to the problem and smart ass quotations define reality is the bigger problem.
Go use Python for your triple A next gen game rendering engine.
dtnm 54 minutes ago [-]
>locked in
Every tech choice is a lock in.
threethirtytwo 18 minutes ago [-]
This is true. I guess I’m saying if you locked yourself into Python you’re locking yourself into a lot of pain. Much more pain than other choices.
It’s like php. Facebook got locked into php and had to develop a whole new language around it.
barapa 3 hours ago [-]
A startup is not the code
q8zd3 3 hours ago [-]
Any stack has its own warts.
threethirtytwo 28 minutes ago [-]
The Python stack is a huge wart. First performance is shit. Second type checking is shit.
The only benefit is familiarity and data science. That’s literally it. No one in this thread has stated any benefit Python brings to the table on top of other popular web application languages.
I guess ruby is a worse choice.
elendilm 1 hours ago [-]
Validation is shorthand for saying "I don't have deterministic skills or knowledge hence I will rely on user behaviour to drive the product".
Works out for many people and usually ideal for beginners. But post a couple of years, if validation is still your primary model, your model tells you how clueless you are in your domain.
Make logical derivations. Build. Determinism is a luxury only affordable for the ones who put in the effort. Others are doomed to chase validation for eternity.
sergq 6 hours ago [-]
[flagged]
Rendered at 01:44:20 GMT+0000 (Coordinated Universal Time) with Vercel.
It can make sense to have more than one service for purely technical reasons. I once worked on a friend's startup where we built a separate ingress microservice so we could scale it independently from our monolith. There's no organisational benefit to doing so, however. The technical founder and the one engineer are hardly going to block each other.
And the people that study these types of lists to apply it to their own case are then engaging in “analysis paralysis” because the list is so long you are bound to be caught up by it.
So while I think it is useful to critique your idea and business the best thing to do is to try and sell it and make money and keep adjusting and trying new things to maximize your income. There is no magic bullet.
How do I, as a founder, know that I am falling into an anti pattern? I don’t believe it is possible to know. You can only “know” in hindsight and that makes these anti patterns useless.
https://en.wikipedia.org/wiki/List_of_cognitive_biases
Most people start a small business for tax reasons, and the few lucky loud clowns claiming hyper-scaling BS is sustainable simply disappear within 5 years.
Best advice, answer the simple question "will random people buy this when no one is looking?"... if you have to explain/sell a product/service more than 5 seconds, than that business model likely isn't sustainable.
I also see a lot of smart folks that think they will get paid for excuses... only lawyers, PR, and politicians are in that business. =3
The easiest way is to have outside advisors who can and are willingto adversarially challenge the assumptions you're making. If you don't have those, good cofounders can sometimes play the same role (although that is harder since they are likely to share similar biases as you).
Still, got a few thoughts here:
> if you build it, they will come
This feels like the cause for so many news/media bundling services, akin to Blendle. Loads of people seem to have the thought process "no-one pays for journalism, that's because it's too inconvenient to subscribe seperately, let's bundle it all", but far fewer people actually seem to want such a service.
> Chasing Blue Oceans
This feels like the explanation for the Wii U, despite Nintendo obviously not being a startup of any kind. The Wii was a blue ocean product, and the company clearly thought the same logic could apply to its successor too. Find an idea that didn't have much competition (using a portable screen to control what's going on elsewhere), and use that to attract a new market.
Unfortunately, while the concept worked on a handheld device, it didn't really feel good to use on a larger scale, and the ideas designed for it (usually some sort of asymmetric gameplay experience) just didn't have the appeal that more traditional ones did.
> Boiling the Ocean
This seems really common with crowdfunded products, since if their scope isn't unrealistic as hell beforehand (and if it wants the public's attention and money, it usually is), it certainly is once the stretch goals start being added and the creators start promising everything and the kitchen sink.
Also with video games, as shown by Duke Nukem Forever, Beyond Good & Evil 2, etc.
This is a particularly interesting example, because they followed up with the Switch, which is, in some ways, the diametric opposite of the Wii U. Arguably, what happened was that they had the right idea that the hybrid TV/handheld format was the right blue ocean play, but the Wii U failed by being TV first and handheld second, instead of handheld first and TV second. You could probably build a whole business strategy course on just this discussion.
Though I feel the other big difference is that the Wii U Gamepad was highly limited in its capabilities. You could play games on it while other people watched TV or used that TV for something else, but you couldn't go beyond that. You still had to be close to the TV for it to function, and that usually meant being in the same room.
The Switch being a hybrid console meant you could take the whole thing outside of the room if others needed the space, or bring it with you to events or places outside of the home. So, it solved all the same problems the Wii U did (playing while others used the TV), but also a ton of more pressing ones (taking the game with you while traveling/leaving the house, playing in other rooms/areas, etc).
I hold that the Wii U was primarily an advertising problem, with a dash of the Wii itself being an anomaly.
Which really just goes to show that the "legible" aspects matter far less than the illegible aspects. It's easy to say "hey, this startup is using boring technology and deploying a monolith, great!" or "Kubernetes and a bunch of services, over-complicated!". It's hard to say "hey, this startup's codebase is awful and it's an unforced error slowing them down" vs "hey, these guys are taking some shortcuts but it makes sense in context".
But a mess built on "boring", simple tech is going to derail you far more than a needlessly complex but well-executed setup.
> The founders automatically assumed that if they had the vision and one customer wanted it, many others would
https://www.itamarnovick.com/startup-anti-pattern-4-if-you-b...
https://en.wikipedia.org/wiki/Field_of_Dreams
The quote is from a ghostly, disembodied voice which encourages the protagonist to rip out their farm's corn crops and build a useless, pointless baseball field, in the middle of nowhere, so that the ghosts of dead players can come back to entertain people. The farm and the family are in financial trouble, and the bank wants to foreclose on the land, and so what has he got to lose?
The film has a happy ending, of course: the guy builds the field, and all the ghosts come, and the human fans come as well, and his new baseball field is a rousing financial success. Our protagonist has honored his father, a lifelong baseball fan, and he's provided for his family, in the most unlikely of business ventures, counseled by voices of the undead.
It seems weirdly missing the point to apply this to any real-world situations. You are essentially invoking a weird ghost story of baseball and utterly implausible fiction. This is not business advice, this is superstition. Field of Dreams protagonist in real life would've been hauled before a psychiatrist and medicated, and promptly served divorce papers along with the foreclosure.
Scalability is not a problem: you have, you will have, you should plan for, you should build for, nor allow anyone to utter the S word. Simplicity is the correct word to use.
Software Devs love solving pretend problems, and the state of modern web development reflects this.
It also gives you a lot more free time if you can persuade your employer to let you use cutting edge technology rather than needing to save it for your side projects after hours.
Plus, given how many startups fail, you do kinda need a backup plan...
So, I suspect a lot of companies are... encouraged to aim for scale and encouraged to tackle problems in the most overcomplicated way possible so that the people working there can take their experience to Alphabet/Meta/Apple/whatever if things go south.
I think it's more that people are attracted to tractable problems. We like to follow certain paths that are well-worn, where the next step is visible and easy to see. And whether those paths lead to a pretend/pointless destination is, surprisingly, irrelevant. They're easier to follow than whacking our way through the brush.
Are you kidding, have you seen the C programming language?!
Nodejs + typescript is superior across almost every dimension other than data science and familiarity.
People think it’s apples and oranges but it’s not. Also don’t forget golang too.
If your app is Python in the beginning then you’re pretty much locked in. It’s doable, but you’re going to be dealing with a lot of Python specific warts.
You’ll note my complaint here is actually remarkably unique. You will rarely hear a person who is an expert in both TS and Python say definitively TS is better.
Many people who know both stacks well always maintains some kind of apples and oranges opinion about it. It’s like agnosticism.
First it’s the worst performing language for the application stack (only among the most languages for that area). Second type checking on Python is raw garbage.
Third you’re going to have to use TS for the frontend anyway. You can’t escape ts. Choosing Python(or any other language) forces you to have redundant code in two languages. Ts is the overall best startup stack and a huge part of it is because the frontend requires ts anyway.
Also sqlalchemy is pretty garbage.
Go use Python for your triple A next gen game rendering engine.
Every tech choice is a lock in.
It’s like php. Facebook got locked into php and had to develop a whole new language around it.
The only benefit is familiarity and data science. That’s literally it. No one in this thread has stated any benefit Python brings to the table on top of other popular web application languages.
I guess ruby is a worse choice.
Works out for many people and usually ideal for beginners. But post a couple of years, if validation is still your primary model, your model tells you how clueless you are in your domain.
Make logical derivations. Build. Determinism is a luxury only affordable for the ones who put in the effort. Others are doomed to chase validation for eternity.