One of the secrets to being a productive developer is the ability to break tasks down into small little atomic units…and to be aware that everything doesn’t have to be done in the first pass through.
You can do step one, tweak it, do it again, fix it, and so on and so forth.
The important thing is that when you’ve got step one to an ‘acceptable’ level, you release it for now, and go on to step two and repeat the process.
If the project is a success, you can always go back and work on 'getting to perfect’ later…but if you’re stuck making it perfect the first time through, you’ll never get it out or users in…and you’ll end up with a perfectly worthless thing.
The hard truth is:
It’s *way* more important and productive to almost every tech. project to be moving forward than it is to have everything just right and perfect.
…and to really drive the point home, I’ll leave you with a bit of dialogue related to this from the movie Ender’s game. They were talking about war, but really it applies to so many situations in life (dev. included)…It goes something like:
Person X: “He’s not ready”
Person Y: “You don’t go when you are ready, you go when you are ready enough”.
This post has received 44 loves.
Kevin has a day job as CTO of Veritonic and is spending nights & weekends hacking on Share Game Tape. You can also check out some of his open source code on GitHub or connect with him on Twitter @falicon or via email at kevin at falicon.com.
If you have comments, thoughts, or want to respond to something you see here I would encourage you to respond via a post on your own blog (and then let me know about the link via one of the routes mentioned above).