Hacker News new | ask | show | jobs
by mmcdermott 1923 days ago
A lot of it comes down to being intentional. You can only fit so many features (functional and non-functional) into any given time window. So you are either selecting the features and allowing the time window to expand to accommodate it or removing features to hit the window. There can be some negotiation for sure, but those are your levers.

I think staring this fundamental truth in the face goes a long way. Very few projects can allow the development window to expand indefinitely. A startup needs customers and feedback, even if only for another funding round. An established company generally has deadlines driven directly or indirectly by customers. Both can slip a little, but not indefinitely. Not all features are strictly necessary. So you optimize for time and importance.

The hardest thing to get over is that you will never think it's good enough because it could always be better. But existence is a feature. The ultimate feature. So you'll have to ship an imperfect product and iterate. Experience usually gives better hand-holds on shipping something.

I also tend to find that half-features please no one. You're better off either finishing something or cutting it.