Agile for personal projects: a perfectionist's remedy
2,647 days after purchasing his domain, Tobias still hadn’t hosted his personal website.
Being, in my humble opinion, a perfectionist regularly puts me in a state of analysis paralysis as I am caught over-obsessing details, especially ones I am not yet expert in. For example, in the making of this site, I’ve spent weeks researching the perfect font pairing to set the right tone, even going on to buy three books on typography thinking that would help me make a decision. I still don’t know which fonts to go for, could you tell?
Showing great attention to detail can be a good thing, but when doing so prevents you from ever finishing your work, then maybe it’s time to adopt a new strategy.
A perfectionist’s workflow is akin to the waterfall model: perfecting each aspect of a project, and only once every aspect is perfect, release. As felt in 1990s software development, waterfall carries the risk of a project being cancelled partway or made redundant because business needs would change before project completion. If you’ve ever worked on a personal project and never finished it, ask yourself what needs changed for you between starting and stopping?
In 2001, the Agile Manifesto would define an alternate approach starting with the early release of an MVP which would then be frequently updated in real-time. Developers would develop based on the best knowledge they had at the time, and it was future iterations that would benefit from improvements learnt along the way, like using different fonts to better convey tone. In this way, companies like Facebook, Pied Piper and Tobias Edwards (who has a website) could get their software to market quickly, improve their chances of success, and not get bogged down on achieving perfection.
Agile removes the expectation of perfection because issues are anticipated and fixed in upcoming releases. Even in waterfall, did you seriously think you’d be able to produce something that was perfect out-of-the-box? The biggest software in the world all suffer from bugs, whether it be Google, macOS or even Pac-Man (kill screen bug) - it’s OK to not be perfect.
When working from a release, my productivity increases as I find it trivial to critique and improve existing work, but nigh impossible to even start when building from scratch. Especially when reviewing my own work, a quote that comes to mind:
“I’ve found the best way to revise your own work is to pretend that somebody else wrote it and then to rip the living s*** out of it.”
— Don Roff
Note to self: try not to be pedantic when critiquing other people’s work. Be constructive.
So whatever project you’re working on, if you’re struggling to get started, finish or be productive, try Agile and just get it out there, or risk never releasing it at all.