Reflection week 4

It was a collaboration heavy week and surfaced a few thoughts on the interaction of people and programming. Also introducing Can’t Let It Go to the weekly reflections.

I’m finally fully back in my groove after pleurisy and forgot how much energy is involved in day-to-day living. By Friday, when I normally write my reflection, I was knackered…hence a Sunday post.

Documentation

There are facets of programming which infuriate developers, things we look at in codebases which make us do this:

Alt Text

Some of it’s a shared abhorrence: like code repetition and inadequate naming (my private theory is that behind the SOLID principles or YAGNI is an enraged developer or developers).

However, some of it is unique to each of us. For example, one of my colleagues gets supremely frustrated by TOIL, and rightly so, but it doesn’t make me nearly as apoplectic as it does her.

This week I discovered what enrages me: inadequate documentation.

I’d like to think it’s because I was historian before I was a developer but I think it’s more complex and has more to do with empathy.

Inadequate documentation is empathetic negligence. It can happen for the best of reasons: deadlines, priorities, low capacity on a team – but it’s still empathetic negligence.

What do I mean by that? Empathetic negligence is when we neglect to be empathetic to future developers or users of our codebase and assume either the code speaks for itself or we’ll always be there to explain it. It’s when we don’t create basic READMEs with instructions on how to build or deploy a project, or when we don’t diagram how systems are structured.

Let’s consider the potential impact. Imagine what it would be like for someone just starting on their career to be given a perceived ‘basic’ task of deploying only to fail because of an undocumented quirk in the process.

That failure could be another drop in the bucket convincing them of their ineptitude.

While failing is a step in the learning process I’m not convinced it’s helpful in this case. If that developer is from an under-represented group in tech finding a reason to stay on this career path can be hard – do we really want to be making it harder?

Can’t Let It Go

Can’t Let It Go (CLIG) is a feature of one of my favourite podcasts (the NPR Politics Podcast). It’s the one thing, “politics or otherwise”, which the hosts can’t let go of for that week.

I like the concept and it fits with the feeling I get when a thought, experience, or something I’ve read lingers with me throughout the week.

This week’s CLIG was a Martin Luther King Jr quote from my new commute book Modern Ethics in 77 Arguments, “A Life Beyond ‘Do What You Love’” by Gordon Marino:

Dr. King taught that every life is marked by dimensions of length, breadth, and height. Length refers to self-love, breadth to the community and care of others, and height to the transcendent, to something larger than oneself.*

King’s analysis of a “complete life” loosely parallels research in psychology on self-determination theory made mainstream in Daniel Pink’s Drive as autonomy, mastery, and purpose (minus the religious sentiments in King’s sermon which Marino abstracts to “the transcendent”).

It also echos themes in poet/activist Sarah Kay’s moving 2015 commencement speech on what we choose to build in our lives (it’s incredible, watch it).

What I can’t let go of is that question of breadth and height, a nagging question of service to something more than the ‘lengths’ in my life.

I don’t have answers yet, but I can’t let it go.

* I tracked down the original King sermon, “The Three Dimensions of a Complete Life” for folks who are curious.