Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I agree with everything but your last point. Having worked on software projects where nobody was thinking about how things are done and they were only thinking about deliveries, I can say that you don't need more than 6 months to make the solution a completely unmaintainable mess.


What are the things that you think other devs would label over engineering but was instrumental in your project not becoming an unmaintainable mess?


An example I often see is database normalization. Why use 5NF when we can simply do with 3NF? Fast forward this a few months later and you end up doing pattern matching on blocks of text instead of querying indexed columns.


Ahh, it's far more uncommon for me to feel like a database is over engineered. It's much more common to find a codebase has 7 levels of indirection but the database fails to accurately and completely represent their business domain.

When I do feel a database is over engineered it is almost exclusively adding complexities to the database to handle a contrived or rare examples. With the most common being "splitting one table into 2 because a one to one relationship is actually a one to many once every 5 years", or "adding a join table because in Joe's 30 year career there was that one time multiple companies jointly sold us a single product"




Consider applying for YC's Fall 2026 batch! Applications are open till July 27.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: