“If something is worth doing, it’s worth doing poorly.” – G.K. Chesterton
Here is the link to understand what is a badly abused phrase. It will suffice to say that Chesterton argues that amateurism should be protected from specialists or “professionals” who would say to the amateur, “You’re not a professional. Stop doing what you are doing.” On the other hand, certain risky activities like leading an expedition to the North Pole and playing the organ should only be attempted only by those highly trained experts. If you’re wondering, yes that is a Victorian era joke by my man G.K.
The question for us developers is this:
When is it OK to write amateur code and when is it necessary to be a professional?
Ask yourself some questions:
- If I screw up, will someone:
- Lose money or possessions?
- Lose the trust of others?
- Lose market share?
- Lose their job?
- Lose their life?
If you answered ‘yes’ to any number of them, an amateur effort is very likely the wrong choice. Hire a professional or spend the effort to become one yourself in whatever technique or technology is required.
If you answered ‘no’ to all of them, argue with whoever would keep you from working as you see fit. I say argue and not ignore or rebuke because the above list is not comprehensive; if someone tries to shut your efforts down, it is possible there is a valid reason you shouldn’t be writing that code or teaching that lesson or mentoring that person. Don’t just complacently abandon your pursuit, but rather argue as one who could stand to be corrected.
The passion of the amateur matures into the prowess of the professional not by getting good at avoiding failure, but by mastering the practice of mitigating the cost of failure, failing anyway, and learning failure’s lessons.
Perhaps we could add to Chesterton’s quote in this way:
If something is worth doing, it’s worth doing poorly at first so long as there is commitment to improve and the cost of failure can be mitigated sufficiently.