Forty years ago, we had cake and asked for icing on top of it. Today, all we have left is the icing, and we’ve forgotten that the cake was ever there. If code isn’t licensed as “free,” you’d best leave it alone.~ Cory Doctorow from, https://locusmag.com/2020/09/cory-doctorow-ip/
This is a sweeping tour of software, and licenses and litigation and … well, it’s a sweeping tour of 40 years as software evolved into what people made of it. Humans move at human speeds. The best of us type north of a 100-words-per-minute, and we’re writing code that actually writes lower code that writes… about 5 layers deep. And day after day we invent new things and new ways to combine those things. We imagine great things and build great things and some of us imagine stupid shit and try to take advantage of others. But most of us just follow our “hey, that’s interesting…”
What’s going to happen in 40 years?
Hah, you thought I was going to end, as usual, on a question. No, I want to say clearly: I have not idea what’s going to happen in 40 years. I know that 30 years ago, I had not the slightest, tiniest, sliver, of an inkling of a clue what any of what we were scotch-taping together would become. A whole bunch of people, whom I had/continue-to-have, the distinct pleasure of exchanging ideas with… Well there’s a whole bunch of people building cool stuff, solving hard problems, and just generally moving the human race forward. Pretty durn happy to be tinkering away in my little corner of The Bazaar.
I maintain that, while the number of bugs and problems users experience is linear, their understandable frustration is exponential. It’s no wonder they have learned to tolerate poor-quality work.~ Nick Heer from, https://pxlnv.com/linklog/tech-is-confusing/
I maintain that this is a symptom of the rise of “good enough.” The rise of, “just ship it and fail faster,” has created a culture where “shipping it” is valued over doing something well. The only thing harder than the first 90% of a project is the second 90% of the project. To create something that is a delight to use requires an enormous effort.
Our culture is currently being reshaped by companies who are training us via the fast dopamine hit. In that arena, creating things is a vicious competition. It feels as if there is no time to do something well and bring it to market. In the time it takes to do it well (for example, create 85 episodes of a podcast, write 2,500 blog posts, fill a bookshelf with journals) you will expend an enormous amount of time, energy and money. Sometimes, what you create will be so perfectly in time with the culture that the capriciousness of the market will reward you. Sometimes it will not.
But you must do the hard work. Not because you will necessarily be rewarded, but because other people need to see you doing the hard work. That will encourage and inspire them to try something harder than their current efforts. And that ratchets the culture up, rather than down.
What does it mean to be a software craftsman? You can read the Manifesto for Software Craftsmanship and draw conclusions; but if you posed that question to different people across the software industry, you’d hear any number of different responses. And to some degree, they’re all true. Descriptions are ultimately bound to perspective, and there appear to be divergent perspectives on the software craftsmanship movement. What follows are three descriptions that are commonly wielded against the software craftsmanship community, accompanied by an explanation of the craftsman’s perspective on the same issue.
~ Paul Pagel
As aspiring Software Craftsmen we are raising the bar of professional software development by practicing it and helping others learn the craft. Through this work we have come to value…
~ Manifesto for Software Craftsmanship
Over time, the ideal of craftsmanship was cordoned off to just the technical arts. Physicians and legislators no longer thought of themselves as craftsmen, but as philosophers and natural scientists who were more concerned with the theoretical as opposed to the practical. Such a shift is a shame, for the principles of craftsmanship truly do apply to every man, whether he makes furniture or crunches numbers.
~ Brett McKay
Try to ask a doctor or any engineer to do a crappy job in order to reduce costs. Engineers can change product’s materials to cheaper ones, they can change product’s final characteristics, but they don’t change their level of attention and their process of doing things the way they think it’s right. Doctors can perform simpler or different procedures by patient request, impacting somehow on the final result, but the attention, caring and cleanliness will be the same.
~ Caio Fernando Bertoldi Paes de Andrade
In fact it is so difficult to argue against simplicity that this post won’t even attempt to. Let’s state emphatically that software should always do only what you need it to do, with the fewest number of steps, and least potential for errors due to complex choices and options.
On the other hand, good luck with that.
~ Steven Sinofsky