Skip to main content

Code is meant to be rewritten

Perfect code is nearly impossible to write. Writing it on the first try even more so. That's why it's better not to even try get it right from the start. There is time to perfect it later.

First iteration of a product should be coded fast, disregarding any best practices or other quality constraints (except security, never skip that!). When you start you have a bunch of known unknowns. Both technical and non-technical. You might not know how to implement some feature or you might not know whether your users even care about such features. You will learn a lot during this process. Most valuable learnings might not be learning those things you knew you need to find out but the things you didn't even knew you didn't know.

Once you know what you are actually building and whether ot is indeed worth building it's time to start over. Now you should have enough information to get it right(ish). At least you know to avoid the dead ends and work around those. The second iteration should focus on stability and maintainability to make it easier to expand beyond the MVP. It's still too early to worry about scalability at this point. That can be left to the third iteration.