How Much Tech Debt is OK?
How much tech debt is OK? The question of when to refactor, what to refactor, how big to refactor just keeps coming up. Of course everyone wants and likes tidy code, and that ugly piece of tech debt sitting there right in the midst of it is just icky. So let’s remove it … or should we?
This article has some interesting answers, and I appreciate its pragmatism: if it’s not broken, don’t fix it; and have a measurement for the level of brokenness, as well as a threshold that pushes an artifact to “too much debt land”. Instead of attempting to fix all tech debt, the question should be “can we sustain our debt?”
Tags: work
Smalltalk, Anyone?
The Smalltalk programming language is a wonderful tool for “pure” object-oriented programming. It goes back to the 1970s; the first official release was in 1980. Smalltalk came with a full-fledged graphical user interface, and an integrated development environment. Its debugger allowed for changing code of the running system on the spot, without having to restart everything, even in the middle of running a test suite. (If that makes you shrug, remember this was in 1980.)
There are multiple implementations of the language and environment still. The one I’d recommend - and that helped me earn my doctorate and subsequent postdoc position - is Squeak. It was written by a team around the original inventors of Smalltalk.
In case you’re interested in getting a different idea of what object-oriented programming in a live environment can be, check out Squeak, and the free book Squeak by Example. The latest release PDF is here.
Tags: hacking
Bring Your Whole Self?
“Bring your whole self to work.” This is a popular one. So what about it? Let’s take a look.
What does it mean to literally bring your whole self to work? Making every aspect of you extremely present in the workplace, even those that are unrelated to work? This is often how it’s interpreted. Unfortunately, that interpretation, unquestioned, is a blank cheque for narcissism.
The point is, the workplace is the workplace, and what it needs from you is your skills and attitude towards work. It’s OK to bring your whole self (what else could you possibly do?), but keep in mind the workplace isn’t your stage for everything there is about you. It’s not for political activism, pushing a personal agenda, or putting up a me-show.
You deserve to be respected for who you are, and you deserve a harassment-free workplace. But it’s not all about you, or about all of you.
Tags: work
Electronics
For everyone who’s interested in learning basic (and more advanced) electronics, The Art of Electronics by Horowitz/Hill is a treasure trove. The explanations in the book, starting from first principles, are lucid and instructive.
Tags: the-nerdy-bit, books
Know Your Tools!
Mastery of a craft comes from understanding deeply the mechanisms at work in it, and the tools used to wield those mechanisms. This is true for any craft. A master carpenter will have to understand the different kinds of wood, and various techniques for how to cut and connect pieces. That’s all theoretical knowledge, and of no use, if it’s not combined with a deep knowledge and understanding of the tools used to handle the materials, and to transform them into something usable. Knowing what a tool does, in principle, is not enough; wielding it well means understanding how it, too, works.
This is true for software engineering as well. Knowledge of algorithms, and principles of design and architecture, is necessary, but bears little value if it’s not combined with a deep enough understanding of the tools - programming languages, compilers, runtime environments, libraries - that support building something.
Software engineering relies on abstraction to a considerable degree. This can be dangerous: superficial knowledge of a library or framework can easily be mistaken for a sufficient understanding of the same, leading to all kinds of problems when naïvely applied.
Know your tools!
Tags: work
More Brahms
As admitted previously, Johannes Brahms’ music was a bit of an acquired taste for me; it took me a while to get the hang of it. Now I can’t imagine how I got along without this. One experience that helped me change my mind was a performance I partook in back in the Nineties, delivered by Bach-Chor Siegen, of Brahms’ four “songs for choir and orchestra”. That’s not the official title, it’s basically four independent pieces revolving around topoi from classical antiquity (gods, heroes, fate, … and so forth), three of which involve full choir and orchestra, and one of which involves male choir and alto solo.
The latter piece, Altrhapsodie, is melancholic and a bit anchoretic (perhaps misanthropic). The poem is by Goethe. The text has always reminded me a bit of Shakespeare’s Timon of Athens, who ended up as a proper misanthropos himself. Here’s a performance.
Set to another text by Goethe, Gesang der Parzen is a vastly more dramatic piece, contemplating the futility of human endeavour against the (antique) gods. It features a six-part choir and is thus a bit more interesting than the usual four-part settings. Et voilà.
Schicksalslied is based on a poem by Friedrich Hölderlin. It ponders the fact that the gods live in eternal bliss, while us mere mortals are cast out into the wilderness that is the world. Brahms has found the perfect music for this contrast.
Finally, Nänie - the saddest of the four - is based on a poem by Schiller. It is one large and stunningly beautiful lament whose subject is the depressing truth that beauty, too, must die, but that there is solace in remaining in the world in the form of an elegy. Whoa. The way the sopranos start the singing after the orchestral prelude gives me goose bumps to this day.
So there I was, thinking not much of Brahms, suddenly being confronted with this sacred bunch of notes (to paraphrase Leonard Bernstein). I changed my mind almost on the spot. These four pieces have accompanied me since. I keep coming back to them. They represent the pinnacle of late romantic choral music.
Tags: music
Peaky Blinders
Here’s an unpaid ad for a series I came across on Netflix: Peaky Blinders. It’s a well made look at post-World-War-I Birmingham working class gang culture. The series tells the story of one family scrambling its way out of that milieu, repeatedly reaching new peaks (pun not intended) before the past catches up with them.
I found all six seasons consistently entertaining, with well-built story arcs, and excellent acting. The series finale is outright beautiful.
Tags: movies
Beware Amygdala Hijacks
Emotions are an inherent part of being human. No one should ever apologise for having emotions, in general or in particular. They simply belong to us. What may occasionally give reason for an apology is how we deal with emotions: how we show them, how we react to them, how much we allow them to control our actions.
Letting all emotions out, unfiltered, means they control our actions, instead of us. That may be inappropriate. More interesting yet, an internal emotional spike may be based on the misinterpretation of a situation or someone else’s actions. If we allow that to express itself as an emotional outburst, it can escalate a situation unfavourably.
We are in charge of our actions. Not our amygdala.
Tags: work