Accepting imperfection

Yesterday I spent about two hours building the tool I said I would build to help me write more. It doesn’t do everything I wanted it to do, and it doesn’t do it in the way I thought it would, but it only took me two hours and I built it in a way that sneakily let me side-step my usual navel-gazing perfectionism, so I’m pretty happy with that.

There’s a pattern I notice a lot in my personal projects where I always want to do things the best way possible, and I end up getting caught up trying to understand the “true nature” of whatever thing I’m thinking about. I spend so much time thinking about the most natural way to solve a problem that I don’t solve the problem at all, or I finally give up and solve it in a way moderately dissatisfied with, which niggles and bugs me every time I pick up the project again. That dissatisfaction ends up colouring the whole project and I often abandon things just because I’m trying to avoid thinking about that dissatisfaction.

I might have chosen to build this writing tool as a de novo blogging platform, because you know it only takes 15 minutes to make a blog these days. Then I would have had complete control over the styling, the database, the post editor, where it’s hosted, every detail of the system. I had some interesting ideas about what I could do differently that were uniquely relevant to me, that other systems don’t provide. But I would have had to choose all of those things. Which would leave me the opportunity to be dissatisfied with my choice.

Instead, I wrote a mess of hacks that just force Medium to do what I want. Medium’s public API has no way to access drafts, so I hijacked Chrome’s cookie store to get access to the endpoint that serves up that data. The result is this total disaster of a piece of code, but it does what I want and is relatively robust and it’s so bad that I actually enjoy how bad it is, rather than agonizing over how much closer to the Platonic Ideal Program it could be. Plus I learned a new trick for dodging holes in APIs.

I think this approach of avoiding the pull of perfection by actively flaunting imperfection and reveling in it has merit. I may end up improving on this system, perhaps even ultimately writing My Own Blogging Platform (god help us all), but I will let these things come later. I will accept this imperfection and find joy in it.

Show Comments