Stop Validating Your Experience and Start Questioning Authority
Reading books and attending talks where your experience, opinions, and beliefs are validated is pretty powerful. Validation can be a wonderful thing, as it can let you know that you are not alone in how you feel. Like when you saw a sixteen-level indented series of callbacks on the NodeJS home page and thought maybe, just maybe, this was not the future of web development.
But it can also blind you to the truth. By default, you are misinformed (everyone is). If all you are exposed to is information re-affirming that misinformed thinking, you’ll miss out on a lot. You might stop critically thinking about what you are told. And if you don’t get any sort of feedback, you won’t even realize it.
Building and maintaining software is difficult, primarily because there is no feedback available for how well you’ve done your job. Working in software always feels painful, slow, and annoying (even when it’s not really that bad). What this means is that it’s really hard to know if the advice you’ve been given about how to do it actually worked.
And programming is such a unique experience that there really is no analogy for it that we can look to for guidance. It’s not engineering, it’s not a craft, it’s not science, and it’s definitely not art. But it’s damn fun!
One thing that’s great about programming is that it has a pretty low barrier to entry. Anyone who has access to a computer can learn to program. Despite that, the field has always been rife with gatekeepers who try to describe what real programming is. But, those gates slowly are coming down and it turns out that lots of people are good at programming. Even computer science majors. This has a downside, though.
That downside is opinions, hot takes, thought leaders, conference speakers, and book authors all giving their opinions about their experience and trying to generalize those into rules about how to be a good programmer…all without any real evidence other than survivorship bias.
Literally Anyone Can Lead Thoughts
Do you know what I had to do to write and publish this? The hardest part was figuring out how to change fonts in LaTeX. 20 years ago the hardest part would’ve been to find a publisher and decide to be OK with a 10% royalty rate. Today, I don’t need anyone’s permission to make a book. On paper!
It turns out that almost everything you’ve been told about how to design software went through the same vetting process (by which I mean learning LaTeX).
What this should tell you is that everything you were told was someone trying to convey their experience in a way that made sense and that validates their worldview. This is not bad or evil, but it is also why science exists. Science is less susceptible to biases like survivorship bias. But software development is not based on science. At all.
So this brings us to SOLID.