brainbaking/content/post/2023/12/be-a-selfish-programmer.md

2.4 KiB

title date categories
Be A Selfish Programmer 2023-12-20T10:01:00+01:00
programming

Justin Searls over at Test Double gave a talk at RailsConf 2019 that really struck a chord here. I already briefly mentioned the talk at the beginning of December but I feel that it's worth repeating here. Justin's summary perfectly sets the scene:

This presentation is an exploration of the things programmers can learn by building an application by and for themselves—and the surprising number of lessons that might translate to their work on teams and larger organizations. It was based on my experience building the Japanese-learning site KameSame as a companion app to WaniKani.

Watch the talk (36 minutes) on YouTube:

{{< youtube XvQxfMBp50k >}}

In an age of ever-increasing complex and complicated systems, we as enterprise software engineers sometimes simply un-learn how to make something small---and keep it that way. What if you had to build something to Scratch Your Own Itch tomorrow; which technologies and tools would you throw at the problem? The same as you daily use?

Because that would end up in a hopelessly over-engineered disaster.

For example, I want to create a piece of software that tracks our daughter's weight, mood, and days of sickness. Besides the fact that there are ample existing solutions for that problem, how should I approach this? By grabbing the Spring framework, throwing event sourcing on top of it, deploying the whole thing using Docker containers, provisioned by Kubernetes, flung on elastic cloud servers using Terraform scripts? My head hurts. Right, I don't think so either. But what if you simply don't know anything else? What if you never explored a simple path that---gasp---perhaps isn't even web-based?

Justin did precisely that. By being a Selfish Programmer, making all the choices and mistakes himself, he wrote a small app to aid his Japanese learning path. By being selfish, he (re-)discovered the joy of making simple things, and, of course, learned a lot along the way. We software developers have to be continuous learners; it's part of our job. The Selfish Programmer just happens to be exploring the more egocentric path.

I'll let Justin do the talking/convincing here. Go watch the talk. I assure you it'll be worth your precious time.