Hacker News new | past | comments | ask | show | jobs | submit login

In my experience, this is true - but it's also extremely difficult to predict what spec changes the users will surprise you with. If you add unnecessary abstractions, generalisations and configuration, you still spend days fixing later if they weren't added in the right places.

> "An order will only be paid for with one credit card"

Perhaps there will be a request to allow payment in multiple parts for orders, so adding the generality from the start saves time. But perhaps instead the spec change is to allow payment of multiple orders at a time. Or partial payments of multiple orders. Or payment in foreign currencies and bitcoin. Or not paying orders at all, but marking them "completed" for accounting at the end of the year.

Altogether, it's not possible to correctly predict the future feature set of the project to decide on the correct places to add abstractions, unless you are really great at product design and can read the future minds of whoever is coming up with the requirements.




Consider applying for YC's W25 batch! Applications are open till Nov 12.

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

Search: