I recently watched (and highly recommend) the documentary “Indie Game.” I felt I could relate with Phil Fish’s attention to detail (and perhaps his OCD). The part that really resonated with my recent programming hobby was when he started talking about pixel art. Fish discusses that when he started making his eternally-delayed yet masterfully designed game Fez, he really had not worked much with pixel art. About half way through the creation of the game, he realizes that his pixel art skills had improved and discovered a clear gradient between his first few levels and later progress.
So what does Fish do? He scrapes all the earlier art and starts over to ensure consistency across the board. If I’m understanding his personality at all, I think it is safe to assume that it’s likely this happened on numerous occasions.
I’m not directly concerned with this yet; and in fact find it to be a great way to learn. Re-writing and cleaning up my own code seems to be the best way to improve my skill set, right? But if programming is all about efficiency, at what point is the most beautiful code worthless because it took so long to perfect?
I’m sure I have plenty of room for learning and growth before I need to worry about wasting time debating the X/Y graph of efficiency and perfection, but I am curious how others have dealt with this. I know for Phil Fish, it was a major problem that resulted in a handful of delays and a fan base that essentially turned rabid against him (ignoring for a moment his sometimes abrasive personality). Another example being Valve; that has become the butt of countless jokes for delayed releases due to their perfectionist mentality (but one that I still greatly appreciate).
Any suggestions or thoughts from seasoned code-perfectionists? Would love to get your input below in the comments or directly on Twitter — @stentontoledo