Join the discussion

Write your take first — we'll ask for email only when you're ready to publish.

  • Hacker News
  • Very useful list. "If you build it, they will come" is one anti-pattern I try to avoid as a tech founder.
  • Useful list. Going through this list, I felt it would difficult to not fall for many of them. For example, you want to build enough to go to market early and gain customer validation and confidence but at the same time not build too much!!

    Having a good experienced team generally helps in mitigating some of them, especially in tough situations.

  • Platform risk is real. long back we decided to build a review management platform with Google as main. After building and getting early customers, we changed our office location that triggered to re apply for google business reviews account that ultimately blocked access to the API. They just sent an email saying we are not eligible for accessing Google Business profile API access.
  • 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.
  • It’s the first item on the list.
  • 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

    https://www.itamarnovick.com/startup-anti-pattern-4-if-you-b...

    by pdpi
  • "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.

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

  • I have done the startup thing as a failed founder and I myself call these startup patterns or antipatten mostly useless. One who enjoyed them (myself included) are destined to fail and then would concluded the same.

    The so-called pattern and antipatten are useless for startup, is just like parenting guides are useless for new parents. The complexity and novel problems are so large in volume that only basic instinct function. And if you are the successful one, you would guide by whatever success brings you, if you are the failed one, well, you can fail and learned that these patterns are useless and rant here like myself.

    In the end, don't destroy your health.

  • Sorry but I don't think you read any of the linked articles. Just one example of an anti-pattern that is very common and is undeniably harmful: Bad Revenue.

    It comes down to deceiving or annoying your customers. E.g. making cancellation difficult or confusing, tricking the users into buying yearly subscription by showing them the monthly price of the yearly subscription (explicitly prohibited by Apple in mobile apps btw) and many others which can boost your revenue short-term but do a lot more harm in the long term, or eventually even kill your company.

    These sales anti-patterns can work for bigger companies that are long past their growth stage and are now looking for ways to squeeze pennies out of every customer. Early stage or growth stage startups should not copy these practices: growth is a very fragile thing that can be destroyed by negative word of mouth easily.

  • That and luck plays a much bigger role than most would like to admit
  • Yep, seen too many startups jump straight to Kubernetes and microservices before they even have a validated product. Ouch.
  • Kubernetes is pretty ok if you keep things simple. The project I worked on had kubernetes set up years ago and from there on it just worked.
  • 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.

  • 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
  • You can have microservices inside a monolith. It has the advantage of always deploying in a synced state.
  • Yes start with a monolith but split it sooner than later ( was at a company where they realized it too late, after being in business for 8+ years) .

    It was a nightmare at that point. We pretty much gave up.

  • With microservices they're obviously complicated, and that's better. There's a complexity in monoliths as well, but it's hidden complexity. That gives developers a false impression that things are simpler.

    For example, in microservices if you want some data that another service owns you have to define what it is, write an API, and handle all the fun of network problems. But once it's done you have a nice contract for getting that data.

    In a monolith you can just reach over and take what you want. If you know there's a function for getting something you can use it. If you know the instantiated db connection has permission to view a row, just query the db directly. If you want to pipe some data somewhere just add it to the session object and it magically appears where you need it. And so on. You can go so fast! But then someone else does the same thing, and over time your monolith gets slower and slower, and needs more memory, and you find yourself having things on a god object that really shouldn't be there but it's hard to change because the behavior is threaded through everything.

    Both of these problems are relatively simpler architectural issues, but it's always preferable to have well-defined complexity over accidental complexity. If you can define how code goes into a monolith and stick with those rules then a monolith is great. Most people can't, and I've never seen a company with multiple teams manage it.

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

  • well... no, splitting a monolith once it has grown past the point where services make sense is incredibly difficult. My last employer spent a couple of years doing it and ultimately gave up. There is just way too much interdependency to split it up cleanly.

    So the key here is good engineering leadership to recognize when that point arrives, and push the company to start the transition.

    And indeed, microservices solve a organization problem not an engineering problem. When I taught the architecture to new hires, I always say: a service is the largest piece of system that stays together in a reorg :)

  • I have been building a SaaS for a business. One of the decisions I took is "as monolithic as possible" (though you cannot just use that).

    One reason is that microservice architecture requires much more operational overhead. So any server we have (except for the database) should be self-contained as a rule, so that it can be autonomous and horizontally scalable.

    So far, it is working quite well. You do not need suddenly a Redis for one thing, a ZooKeeper for the next one, and 3 or 4 things to just run the damn binaries. The binaries will start, do whatever migrations need to be done if it applies, and start running. They only need the database. They land health checks, api calls and all the logic needed, in one binary with zero dependencies that is containerized.

    This has saved me a lot of pain compared to other architectures where I worked, but those were massive and it was justified (and there was budget for it). But you just need a bunch of teams to be able to do that.

    I think going the microservices way for a small team not only does not pay off. I think it can be a suicide.

    At the same time, I keep the servers internally modular (enable/disable feature).

  • Hiring middle-management from large companies has to be the biggest startup killer.

    Doubly so if they are mediocre to start with and triple so if they bring with them their legion of yes-men.

  • With hiring from management consulting companies coming in a close second place.
  • 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.

    by CM30
  • 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.

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

    by pdpi
  • 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.

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