A simple version of the mirror test (self recognition test) is performed on an Octopus vulgaris in Cape Verde.

Octopuses in captivity have puzzle boxes to keep them happy and occupied. A bored octopus, like the german octopus Otto, might cause the electricity to short circuit, throw rocks at the glass, juggle hermit crabs or start moving things around in the aquarium. When lacking stimuli, an octopus might even die from it.

I believe that software developers are a lot like octopuses. To thrive, we need problems to solve, or we will create new problems, and in some cases, problems for others.

Most software development can be done quite simply today. We have high level languages, frameworks and libraries for technical advanced things that used to be done by each team. Now the work consists of using existing tools to express the domain and adapt them for the product. Most software today is developed where the programming part does not require you to be very clever. (In a proper, modern, environment. Unless you are doing something totally new, most are not. I am not even going into AI.)

Implementing a solution, screen by screen, or api-call by api-call, that someone else designed, is not enough of a puzzle.

So, what options are there for a developer who loves problems?

My suggestion is that programmers should be a part of product development. Give software developers business problems to solve, as part of a team. Then we can safely aim to make our codebase easy to work with, even boring, because we know that we will never run out of problems to solve. The cognitive ability will be put to use where it is most needed, to solve hard technical problems when they arise, and to support the business at all time. And that is only one of the benefits!

Related texts

Water colours in a box

IT-stress, part 2 — change

A cracked monitor outdoors

IT-stress, part 1 — coping