logoalt Hacker News

xg15yesterday at 10:53 PM1 replyview on HN

There seems to be some general pattern here that you can find pretty often in "dev war stories" contexts:

(1) We're a small startup/new product team/etc, let's just build the MVP and keep everything simple!

(2) Now we're not small anymore and suddenly have all kinds of nonfunctional requirements we never imagined before! But our simple architecture from before is making everything a pain now!

The natural instinct is then to compromise on the "simpleness" of the first prototype and already try to anticipate all the scaling and nonfunctional requirements that might come later - but that rarely seems to work, as you can't really how (and if) the project will grow.

Seems to me, the real question here is why those teams are still using the "MVP" code even after being well inside the "scale up" phase. Shouldn't this be the point where you gradually migrate to a codebase that is more manageable at scale?


Replies

mavelikaratoday at 7:41 AM

> The natural instinct is then to compromise on the "simpleness" of the first prototype and already try to anticipate all the scaling and nonfunctional requirements that might come later

This is a form of Second System Effect Brooks wrote about in 1975.

https://en.wikipedia.org/wiki/Second-system_effect?wprov=sft...