- set a clear time boundary and a date, typically by estimating chunks of the work, it's better to make wrong estimations than to yak shave the crap out of something for way too long
- write down the goals and non-goals.
- make a clear, simple high-level design, including trade-offs and cutting corners to meet the goals
- implement vertically, get something going fast
Stuff like that...
Basically with an open ended, creative endeavor I absolutely need to restrict myself much as I can stomach. At least in cases where I actually _want_ to finish a project and know what its goals are. In many cases exploration and playing with code and techniques is the goal itself and that's OK.
Comments
This happens to me with _any_ project if I don't:
- set a clear time boundary and a date, typically by estimating chunks of the work, it's better to make wrong estimations than to yak shave the crap out of something for way too long
- write down the goals and non-goals.
- make a clear, simple high-level design, including trade-offs and cutting corners to meet the goals
- implement vertically, get something going fast
Stuff like that...
Basically with an open ended, creative endeavor I absolutely need to restrict myself much as I can stomach. At least in cases where I actually _want_ to finish a project and know what its goals are. In many cases exploration and playing with code and techniques is the goal itself and that's OK.