Sign up for early access for MySQL for Developers, a video course I'm working on.

Is Making Software Sisyphean?

January 14, 2021

Sisyphus, a character of Greek Mythology, was exceedingly crafty, deceitful, and made a pattern of tricking the gods. As a punishment for his deceitfulness, Zeus cursed Sisyphus in the afterlife. His punishment?

To push a boulder up a hill.

That doesn't seem so bad! But there is one little catch: every time the boulder got close to the top of the hill, it would roll back down. Every time. For all of eternity.

Sisyphus was cursed to eternally repeat a task that couldn't be finished.

I thought this article was about software development? Well...

Pushing the Boulder Up The Hill

Software is never finished.

Even if a piece of software is feature complete and totally bug-free (ha!), you can't simply leave it alone forever. Software rots.

Everything continues to move along, even when your software doesn't. The underlying OS needs upgrades, your programming language version will eventually be EOL'ed, your dependencies will need upgrades, external APIs you rely on will change or go away completely.

Don't even get me started on browsers.

And those are just things that are not your code. We haven't even started talking about all the code directly under your control. There are always more features to add, more bugs to fix, sections that need to be refactored, emergent concepts that need to be formalized, bad abstractions that need to be undone.

Monoliths! → Microservices! → Monoliths! → Heat Death of the Universe

The Top of the Hill is a Myth

Are we Sisyphus? Are we doomed to meaningless labor for all eternity?

Absolutely not. For software developers, we have to know that the top of the hill is a myth. Sisyphus was continually trying to reach the top to complete his task, for us there is no finished. There is only the journey along the way.

We're not doomed, tragic figures. We're gardeners tending to an ever-changing landscape. Carefully pruning, planting, and weeding.

A gardener is never finished, only finished for today.

Setting your focus on being completely done will make your work along the way will feel a lot like fruitless toil.

Setting your focus on the work at hand will bring you the joy of a gardener — crafting order from chaos, even if only for today.

Join my newsletter

I'll send you emails. Not too many. Anytime I post a new article, or make a new video, or do something else I think you might like. No spam, obviously.

Thanks for reading! My name is Aaron and I'm a Developer Educator at PlanetScale — a serverless MySQL database company.

My main project focus is Hammerstone, where we build components for your Laravel and Rails applications. My business partner and I do a podcast where we talk about building a software company.

I do another podcast about web frameworks called Framework Friends.

If you ever have any questions or want to chat, I'm always on Twitter
Copyright 2013 - 2023, Aaron Francis.