A normal project for me goes through three stages. I will summarize and review them because I’m waiting for a very slow script to finish and have nothing better to do! 😀
Ah! A new idea! I think I know how I could do an awesome thing, or there’s a new aspect I want to try with an existing feature. Development speed is amazingly high and new ideas get thrown around. Some of it might not be perfect, and there’s a significant risk of abandoning the project at this stage.
After the initial stage of inspiration, the project moves into the motivation driven phase. Features get tweaked and polished, and the overall design gets a final overhaul. Some boring things get pushed up until later, if possible.
Suddenly I realize I need to finish the feature! Doubt sets in, and some deadline starts looming. Is it good enough? Is it even usable? Productivity drops suddenly, and the major motivator becomes just getting it done before the deadline. This usually leads to last minute work. Despite this, much of the work ends up being actually very good.
Eventually, the project is considered “good enough”, or the deadline passes, and whatever is there will just have to serve as the final version. Sure, I could spend infinitely more time working on it, but new projects are either deemed more important, or some new inspiration sets in. The project is wrapped up and released.
Yes, I’m talking about the ender dragon fight. 😉