I’m writing this for myself, or anyone like me.

A few days ago, I had what I would describe as my worst day in web development for about 15 years. I managed to muddle myself to a level of frustration that was close to having me either break down in tears, or punch a hole through my monitor. Maybe both. But thankfully neither.

But honestly, I was this -><- close.

Anyway, it was just web development so, you’re right — “Get a grip, Ben” but… And this is the important bit, it lead me to the important revelation: I need to stop dicking around.

What I mean by dicking around

I have a natural tendency to try different things out. Where wiser people tend to wait things out, or practically evaluate things, I tend to leap in for no good reason.

Oddly, this doesn’t seem to be the case with work related decisions and choices. When it comes to picking this or that approach, or choosing a framework or not, generally, I have a pretty good sense of what to do.

And perhaps this comes from a history of reviewing products and software for various publications over the years? But I think the tendencies were always there.

I’m talking about the things in the periphery. The things effect just me. The things that in the grand scheme of things don’t matter. And that I’m not being paid to look at. The things I should stop dicking around with.

Let me share with you some prime examples of my dicking around.

OS

I’ve used Mac OS X, now macOS, almost daily, since it first came out. That’s almost 20 years ago! That’s a whole lot of muscle memory.

A few months ago, for no reason other than curiosity, I decided to give Linux a try.

Let me be clear, I like Linux. I’ve been running Fedora for the most part and it’s perfectly fine. However, I HAVE to use macOS in the day job. And I’m choosing to use Linux at home. There’s no real benefit in doing so, other than I thought it was interesting to try something different.

To be fair, it was somewhat motivated by economics. In hardware terms, to get a Linux machine, is far cheaper, but that saving has been eroded multiple times over in time costs as I dicked around trying to accomplish the most basic of tasks. Something as simple as typing an em dash would be a 5 minute detour – something I can do without a thought from my Mac (the fact I couldn’t remember how to do a an em dash just then as I’m writing in Linux kind of proves the point).

The difference in switching systems manifests in a little extra cognitive load day to day. When I go to work, I have to remember to switch my mental model of which system shortcuts let me copy and paste, which system shortcuts go to the end and beginning of a line or jump a word, or bring up the application launcher, or allow me to paste into the terminal or write a sodding em dash or pound sign etc. When I crack on with writing, or a side project in the evening, I have to mentally switch it back again.

Not an epic pain in the ass. But a straw for the Camel’s back.

Text Editor

I’m using Sublime Text to write this. A few months back I was in iTerm2 running Vim. A few months before that I was using VSCode. And on and on. I’m always dicking around, wasting clock cycles switching text editors.

I’m proficient in Vim. I feel productive with it for the most part but I’m just not sure it’s bought me anything. Some things are nice, for sure, but I’m not convinced it gives me anything over any decent text editor. Probably less because of the extra cognitive load. When I’m writing email of writing into GitHub/Gitlab I’m not using Vim, so why am I giving myself the mental burden of using it in my text editor? I don’t SSH into servers, I don’t run TMUX.

The truth is, I’m probably just dicking around. It’s just another straw for the Camel’s back.

Shells

On my Mac I use Zsh and friends, on my Linux box I’ve been trying out Fish. Fish is good, it was easy enough to get up and running with, but every so often I have to jump out to Bash for certain commands.

The truth is, Fish doesn’t give me anything extra. I don’t do serious amounts of work on the CLI. Why am I giving myself the extra burden of figuring how to work around issues in Fish?

You guessed it; I’m just dicking around.

Keyboard

Some folks philander, some drink, I buy mechanical keyboards. That means I’ll waste time looking at new keycaps, or a different keyboard entirely, or for reasons known only to my subconscious, I will do something completely pointless like insist on using a completely different keyboard layout (DVORAK, COLEMAC) for a week. Or switch all my keycaps to blanks. Or try using an ErgoDox EZ at home and a standard QWERTY at work. You know, just because.

Does this actually help me any tangible way? Of course not. It’s textbook dicking around.

Too much cognitive load

One of these detours is fine, perhaps even healthy. But all the time or all at once it’s very probably stopping me actually getting any meaningful stuff done. Or even getting standard stuff to the best of my ability.

I have books to write and applications to build; I need to stop dicking around.

I believe all this dicking around contributed in large part to the fateful day referred to at the outset. Jumping across to my Linux box to create a code reduction, using Vim with a still unfamiliar ErgoDox keyboard (the ErgoDox EZ is a great board though to be sure) trying to figure out issues with an unfamiliar API.

Maybe I would have broke regardless, but I suspect the 2-3 extra unneeded straws on the Camel’s back didn’t help.

My pledge

I need to use my mental energy to solve actual problems. Or, perhaps even more usefully, doing nothing from time to time.

So, if by some chance, you have similar quirks of personality, perhaps we can short-circuit this disruptive behaviour?

Next time you think about trying something new, or changing some key part of your setup ‘just because’, ask yourself – why? Are you actually solving a problem? Or are you just bored and/or being a contrarian? If you can’t easily answer the first question, it’s probably the latter. And that’s not a good reason. Instead…

Choose the weapon you know best, and sharpen it

Hopefully you know what tools and systems you are most comfortable with? Have you always used Windows, and know how to solve all your day to day problems with it and get stuff done? You probably won’t gain much moving to macOS or Linux.

Are you already proficient with Sublime Text? You likely won’t gain anything changing your editor. Always used Vim? Emacs isn’t likely to give you anything extra.

Can you get stuff built fast and effectively with the framework you use? Chances a different one will just give you different problems.

Once you are effective with an operating system, and the tools of your trade, both hardware and software, recognise the huge burden that changing those tools with no good reason places on you.

Instead of changing your weapon, sharpen the one you already know so well.

Let’s look at this another way, I know people that can look at a foreign code base and know what’s going on in minutes. I know others that effortlessly switch between programming languages without skipping a beat. Others that look at designs and instantly understand why they don’t work and what would fix them.

My suspicion is these are people who know their weapon and keep it sharp; they waste little time on needless mental detours. They are not spending mental clock-cycles dicking around.

So yes, stop dicking around

So, here is my commitment to myself.

Unless there is a good reason one of these can no longer be used:

  • I’ll use a Mac.
  • I’ll use Sublime Text as my text editor. With a standard colour scheme (Mariana), and minimal tweaks and packages
  • I won’t use Vim. Not because there is anything wrong with it, just because it doesn’t add anything
  • I’ll use a standard 65%, or 80% US layout Qwerty keyboard. I’ll use the same size and home and work.

If you get a whiff I’m veering off, I’d appreciate you pointing me back here.

I hope I’m not alone in these shortcomings. I hope even more that if I’m not alone, and you find yourself nodding along with this brain fart, you can find the mental fortitude to stop dicking around too.