Make Errors Cheap

8 Aprilie 2020

A couple of weeks ago I was working on a setup to automate creating a VPS for a web app and another VPS running PostgreSQL with backups enabled. That's a mouthful.

Anyway, at some point I realized I was feeling stuck. Not in the sense that I hit a problem I couldn't solve. More in the sense that I didn't see any progress in my work. It felt like I was going in a circle.

The Problem

After some introspection, I realized I was avoiding some tasks. Some more introspection later I realized that fear was making me avoid those tasks.

In this particular case, my code was interacting with the DigitalOcean API. Because DigitalOcean doesn't offer a sandbox, I had to create and destroy real resources. And I was afraid that doing that repeatedly would cost me money or be considered suspicious behavior.

For example, my code created a DigitalOcean Spaces bucket to be used for backups. Because I was afraid to run this code, I couldn't test the code that performed the actual backup.

The Solution

I decided to just create one Spaces bucket and use it for all my tests. Thus, I could continue to test the rest of the setup and not get stuck.

The bigger lesson I learned from this:

Create a space that is safe for experimentation.

For example, rather than creating a DigitalOcean VPS to test my setup against, I find it safer (and cheaper) to use vagrant with Virtualbox. I can create as many machines as I want and destroy them when I want.

Now, I look for fear whenever I'm beating around the bush. I try to see what feels costly and how I can make it cheap and safe to experiment.