Categories
Programming

The Software Punk Revolution

Let’s be honest. Our planet is churning out supercodemonsters at an alarming rate. These pinnacles of virtuosity are idols to the false gods of development ego. The pattern has always been there, but in the past it was misdirected enthusiasm. On day one you’d learn how to extend prototypes in JavaScript. On day two, everything you needed to do in code seemed to be solved by extending prototypes in JavaScript.

Side-anecdote. Some time ago, I worked on a team that kept seeing strange commits to the codebase that used unusual features of the C# language in obscure ways. It made no sense at all and we were all scratching our heads. That is, until someone realised that the commits chronologically followed the chapter order of C# in Depth. It’s a great book, but care must be taken to avoid the over-enthusiastic application of a novice. But this is beside the point. Eagerness is one thing, but what we have right now is pure hubris.

If I were in a forgiving mood, I might consider that there is a signal imbalance in the software development world. There are some really-massive-scale programs out there in really-massive-organisations that solve really-massive-problems. These organisations tend to get a lot of newspaper inches as there is a lot of esteem granted to the individuals who talk about what they are doing. If you aren’t following, consider this… if you keep up-to-date with technology at all you will have read books and articles from people who work for Microsoft, Google, Spotify, Facebook, Twitter, Stack Overflow, and other similar thought-giants. For the problem they are solving, they need to do some strange stuff. However, due to the level of respect and adoration these organisations get, their solutions are being redeployed in damaging ways where the strange stuff is not needed and not beneficial. Software teams end up trying to swat a fly with a Challenger tank. You may or may not kill the fly, but you definitely will blow holes in the walls.

So, many problems might be caused by the availability heuristic. If you are feeling generous. A swarm of articles on microservices might make you think everyone needs to use microservices.

But I’m not feeling generous. The following might offend musicians or music lovers. Don’t @ me.

Prog

Back in the latter-half of the sixties, something happened to music; it got pretentious. Under the moniker of art-rock, progressive, or the short-form, “prog”, we lost all sense of the song and scratched the itch of virtuosity. Wow! That massive instrumental section with the technically brilliant solo was such wow. Yawn. It was almost as if the musicians were entirely preoccupied with showing everyone how proficient they were. There’s no denying it – they were amazing musicians. They could do things that you wouldn’t believe at speeds you couldn’t comprehend. It was, however, dreadful.

Flocking in their droves to witness this self-congratulatory brilliance were scores of other musicians. It was less like a gig. More like a masterclass. A musical conference, perhaps. Someone who was good on the drums would watch someone who was stunning on drums and marvel at their skill. The songs, though, were awful. A guitarist who was reasonable might attend to see the guitar played phenomenally. The actual tunes, however, were appalling. You get the idea, repeated across the suite of musical instruments. To further elevate themselves, these artsy bands would – purely for cultural reasons, you understand – show that they had mastered several instruments including some that they had discovered in small huts up a mountain that hadn’t been seen in the Western world before. But the music was bad.

The only way to stamp out this plague of virtuosity was a revolution.

That revolution was punk.

Punk

Though it was never as bad as the “they only know two chords” moans of its detractors, punk was undoubtedly not the territory of master musicians. There was no doubt that these bands did not grow up listening to Baroque composers. They were noisy, simple, and necessarily had an attitude of visceral defiance. Looking at their safety-pin encrusted trousers, you might not realise they were here to save us all from double a-side 12″ prog compositions (two songs and forty-four minutes of your life).

By throwing away all claims of mastery, they gave us back the song. No more “Supper’s Ready” (23:06), “Echoes” (23:31), or “2112” (20:33). Instead we had “Suspect Device” (2:40), “Pretty Vacant” (3:18), and “London Calling” (3:19). There might have been the flicker of a solo here or there, but nothing to make another guitarist weep with envy.

That’s not to say there wasn’t an abundance of talent. Look through those bands and listen carefully and you’ll see that there is plenty. However, the talent was never more important than the song.

Software

This is what we need right now in software development. An uprising. A revolution. Punk. Nothing should be more important than the problem at hand. No complex architecture. No amazing framework. No cool new tech. Nothing is more important that providing something useful to your users.

Don’t be one of those pretentious prog bands. Be a punk revolutionary. Make useful software, not keynote-worthy architecture.