Simone Ragusa
2024-07-18

Perfectionism slows me down, but it is also useful

I do things a lot more slowly due to perfectionism, but I also get more satisfaction from the end results (when I'm strong enough not to give up on projects). I will try to learn to drive my desire for perfectionism to make the most of its power.

Past

About 8 years ago, I clumped together a Telegram bot for group moderation in PHP on a single file more than a thousand lines long. That code was disorganized and filled with patches. I won't even call that spaghetti code, just ugly code. However, it worked serving more than 300 users, and on top of that, I had fun writing it.

After that, I experimented with Processing for a few months. Interacting with so many geometric shapes so easily was a lot of fun! Some years later I also started implementing a Go package to interface with p5.js (a JavaScript library that brings the power of Processing to the web), which I abandoned quite early.

Over the years I have also developed a number of random websites, many of which never went online. Some others did.

The point I want to make here is that for many years I just wrote code, without worrying too much about style, organization, or the amount of features. During that period of my life, I learned a lot of things very quickly, and I produced a lot of “stuff that works”. On the negative side, however, the quality of that stuff was usually quite low, and often not worth publishing.

Recent

I recently rewrote my website and restyled it completely. I spent several hours working on the design and other behind-the-scenes aspects. It has been a long process, but I am very satisfied with the final result. Nevertheless, the amount of effort has been significant and going through lots of design iterations was especially stressful at times.

At the beginning of July 2023, I started working on the color palette for what is now the Perpetua theme. Before that, I had actually composed more than four other palettes (starting around March 2023), all of which I discarded since they didn't work. Moreover, I've gone through three iterations for the palette of Perpetua before settling on the current one. The amount of research about color spaces, color contrast, various accessibility properties, and so on has been both fascinating and challenging. Working on this project has been interesting, but equally hard at the same time. (Also, the project is alive, and I've been using the theme every day for more than six months. Updates will come.)

So in the recent times I've been learning less, in terms of diversity of areas, and much more slowly, while increasing the quality of what I produce. This may seem good, but I'm not convinced it is. The problem is that slow learning requires a much stronger prior interest, so all those topics I'm "just curious about" get cut out somewhat.

Perfectionism

Striving for perfection inevitably leads to a slower process. You always feel like something is wrong, missing, or misplaced. I personally find this attitude hard to fight. But should I (or you) fight it? I don't think so. When I'm able to drive my desire for perfection, I always get to a satisfying result and I feel great for achieving it.

Every time I'm unable to satisfy my need for perfection, I feel bad, and it often happens that I abandon the project I'm working on or lose much interest in it. I don't like this at all.

In practice, the two aspects that are most impactful for me when I'm aiming for perfection are the general shape of the thing I'm working on and its completion status. The latter in particular, completionism, has been especially strong in me lately and is slowing me down a lot. I always feel like something is missing and that if I don't find what it is and fix it, I must absolutely not publish the project, and that's very annoying.

What's wrong with perfectionism? Well, you always try to avoid mistakes and reach for the correct solution first try. Is that bad? In general, I think it is. Not allowing themselves to make mistakes is not allowing themselves to learn.

What is right about perfectionism? If you are aware of it and able to direct it, it will naturally guide you to produce quality results. It is certainly not easy to steer your desire for perfection, and it should be practiced to allow ourselves to learn how to do it.

Re-learning to make mistakes

As a result of all this, I think I need to relearn to make mistakes, or better yet, to allow myself to make mistakes without feeling too bad about it.

My plan is to interleave two approaches to coding. I'll code small utilities and other things from start to finish, not worrying about their quality, just making them work as fast as possible; I will keep them private. At the same time, I'll also dedicate some time to larger, higher-quality, time-consuming projects, which I will publish instead (no promises on maintenance though, I'll decide on a case-by-case basis).

The idea is to alleviate my need for perfectionism on the bigger projects to let myself make mistakes on the smaller ones, and, hopefully, I will learn to accept my mistakes regardless with time.

Writing

Everything I said above applies to writing as well. It's hard for me to be satisfied with how I express myself with words. It has been many years since I wanted to write something, and I'm finally doing it. (Actually, I wrote a blog post once, three years ago, but it's no longer online. I may re-publish it in the future.)

I often have many ideas, both when I'm coding and when I'm doing other things, or nothing at all. The problem is: I don't write them down immediately, thus I forget them. For this reason, alongside my plan above, I will try to collect notes about what I do and think, about every step and every challenge I face; then, I'll take some time to draft notes to publish. I will try to avoid completionism by writing in small chunks, about individual challenges, and not waiting for the end of the project, for example.


Things might have changed since the note was published. If anything seems wrong or confusing, feel free to reach out.