The details that take to turn something into perfection are often irrelevant to the final goal. Perfectionists of irrelevancy, what they are, and how to avoid or stop turning into one.
This term I created myself, as there is a usual behavior on tech, be you a game developer or in any coding-related field, and this probably spreads to other fields as well.
There is an absolute need to reach perfection in irrelevant things, to follow this or that concept as an unbreakable rule, even if it is bad for that system you're working on, it quickly becomes a waste of time.
Make your choice from below:
- A game with bad graphics, good gameplay, the decent community around it
- No game at all, but 2% of a perfect AAA game
Which one you would like to have or be part of?
There aren't two choices there, there is only one, time is a resource, getting it done takes everything it takes but also time, always time.
Is it relevant or irrelevant?
Suppose you're working on a new website, and you decide you will work on a beautiful header with some menu options, and your work goes as follows:
- First day: You get 80% of the work done, header working, menus working on mobile
- The second day: You get 10% of things done, working on colors, accessibility, and so on
- The third day: You feel like you contributed almost nothing compared to the other days
There is something wrong there, or is there?
Most of the work was already done, the impact was done, and it is ready to work, it does the job, so everything you work on from now is cool but... irrelevant.
"But this functionality will be good for..." Irrelevant!
Unless everything else is done, working, and that is your bottleneck, which is 99% of the situations it is not, it's irrelevant.
If you had to sculpt a statue, you make a block placeholder for all parts of the body, and then start working on one finger, will you keep working just on that finger even after it looks great, and leave the rest looking like Minecraft?
Done > perfect
Well, I must endure the presence of a few caterpillars if I wish to become acquainted with the butterflies.
― Antoine de Saint-Exupéry, The Little Prince
Keeping game development as an example, using placeholders can greatly boost a project to see how it works and get a lot of systems working before putting any time-consuming work into it.
But still, skipping this is tempting, to see things flowing as close to the final product as possible is a haunting thought following you.
This can happen in game development, but also in web design, art, and other areas, there is always an okay point that gets the job done, and everything after it is a plus, not a must-have.
Placeholders, of course, do not get the job done, as they must be replaced for the final product, be it some starter asset in a game engine or basic style in web design, but by being able to accept their imperfection, you can move forward, and then just come back after many things are done, to polish everything else and replace them.
Perfection is not always bad
Yes, it can slow progress, but nothing stops you from keeping on improving your game, code, art, or whatever project you make, but managing when it is done and if it is just not draining your time away is important.
Have fun, and forget little details which never seem to get finished!