Ask HN: How do you 'finish' your projects?
So here's my issue. It's a long standing issue that I've always had, but has never really been an issue until now. I was given a big project for a big company for a big eCommerce platform. The extension I wrote will soon be released to the masses for consumption and use.
Now here's the problem. I keep looking at the code and trying to find bugs, add more little snippets of validation, etc. I keep finding ways that I can make parts of the extension better in some way. All the code is completely commented and I keep finding ways to make the thing better (or at least I think I am).
Does anyone else ever do this kind of thing? When do you say it's "complete" and move on to the next project? This extension works and works well, and has been tested all kinds of ways. I'm not the type of person to half ass a project and this is for a very large company and I really don't feel like making the company I work for nor my self look bad.
8 comments
[ 2.3 ms ] story [ 26.0 ms ] threadIf you wish to continue making changes as you come up with them; that's perfectly fine, but remember the more that codebase changes, the higher the likelihood that something can (and will) go wrong.
It's a good question and this will certainly drum up a good discussion here, I look forward to seeing what everyone else says.
bw
I like the idea of thinking of this as a philosophical question. When asked like that. Is any of the code we write complete? Makes me ponder since I see open source projects go on for years =)
Eventually, there will be a new unit of work for you to tackle with a bigger payoff for your time. The transition is not instantaneous... gradually, that new project will consume more of your energy, until it becomes your main focus.
Successful projects are never finished. You need to keep working with them and making them better to improve your offering so that you can retain your users and keep your competitive edge.
That said, just because adding something makes the product better, does NOT mean it always make sense. There was a story about another company who, because of customer feedback, ended up building a bunch of features into one of their products. Turns out, only a small minority of their userbase even cared to use those features and that the mass majority were fine with the features that were already there. In hindsight, they said it was wasted time and resources and really didn't add much to the bottom line.
Also, rather than believe what you're doing is "better" or an "improvement", things should be split tested and verified as to whether you should spend time and resources. While I don't disagree that you can do more with any given product, the question you really should be asking is are you wasting your own time and that of your employers with these things you want to improve or add. Remember, opinions don't mean shit. Hard data does.