Yes, We Have No NaNoWriMo: An Exploration on Priority

At this point it may be obvious, but the whole software-version-NaNoWriMo didn’t get out of the “add cards to a Github project” phase. What might not be so obvious is this totally okay. Preferred, even, though I know that’s going to sound counter-intuitive (or even like a cop-out).

So let’s talk a bit about Priority.

Merriam-Webster defines “priority” in part as

“The quality or state of being prior” or “Superiority in rank, position, or privilege”

Merriam-Webster.com

That conjures up images of “priority boarding” or “priority projects” or “making that task a priority.” We’re moving or designating something to the head of the line. Something with or or being given priority is more important than other things, for whatever reason.

“But John–does that mean your BHAG wasn’t important enough to get to the top of your priority list?”

me, impersonating the reader

Hold on just a minute — I’ve got another definition to cover that should address this.

This time, it’s a definition for “economics.”

“Economics is the art of satisfying unlimited wants with limited resources.”

A CSCC Economics Instructor Whose Name I Wish I Could Find

While economics generally uses capital, material, labor, land, and similar such as “resources,” I think of personal resources. Time is a resource. Rest (personal energy level) is a resource. Brain power (cognitive ability) is a resource. And they are absolutely finite, and absolutely limited.

As much as I might wish to, I cannot simply make myself have more energy in a day than I do. I can maximize it with good sleep hygiene, diet, and exercise–but when I’m tired, I’m tired. I only have a certain amount of cognitive cycles in a day. I can be efficient by writing code in small (test-driven) bite-sized pieces, and protect myself from burning through them all by taking frequent breaks–but I’m going to hit a point where it takes me too long to figure out whether 2+2 and 22 are equivalent. There’s only 24 hours in each day–I can be efficient with them, but at some point the the day is going to end regardless of my to-do list.

This means I have to apply economics to my life–I have to apply the lens of Priority.

When I think of Priority, it IS about what’s important, but there’s more to it. What simply can’t go undone lends something a higher Priority score. But then again, if something will increase my personal resource pool, it might gain Priority even though there’s no explicit need to do it sooner. Will something shrink my resource pool, and can I afford to that that hit right now? It’s a loose ranking of “How much this thing helps me be my best self.”

This isn’t a new concept, doing the truly important things first. Franklin Covey talks about putting big rocks a jar; my therapist talks about prioritizing self-care. It’s a pretty fundamental concept in time management–you do what’s most important first, and the rest falls by the wayside.

While most of us are good at this within individual, well-defined buckets–we’re consistently able to put an e-mail to the client ahead of watering our desk plant, putting sleep ahead of being at the bar till close on Tuesday, remembering our spouse’s birthday and celebrating it–sometimes we don’t always apply Priority to those buckets in relation to each other. Or worse, we place items in the wrong bucket–letting us allocate resources incorrectly, leaving us unbalanced and weakened.

All of this to say…

The issue with my little NoNaWriMo challenge is it’s easy to mis-bucket. It’s a project I expressly create for my personal time; a side project. This implies it should have been easy to work in–just watch less TV, or play fewer video games, or cut out that movie with the wife. But the reality of when it needs to happen does not change what bucket of personal resources is allocated to the effort. For all useful intents and purposes, a software developer’s side projects are part of their professional life. Let me say this again, for the young devs in the back who need an answer in some tech bro’s interview:

A software professional’s side projects are non-compensated professional activities, typically undertaken in time that would otherwise be spent on self-care.

This means the personal resources I have available for these projects, no matter how big or hairy, come from the same bucket as my day job. If my day job has eaten up all or more of it’s allotted brain cycles, there are none left for the side project. If I feel drained after pouring hours of energy into sprint planning and code review discussions, there is no more energy leftover for the side project. If I worked overtime to get a functionality in ahead of a deadline, then there is drastically less time available for side projects (because without one’s other activities, one is worthless). If re-engineering a module to satisfy contradicting new and legacy requirements gives me a headache by 2pm, there’s no way there’s any brain power left in the tank for that side project.

Alternately, even if work was easy and I have plenty of excess resources: if I’ve slept poorly and need to prioritize keeping my evenings low key, there’s no room for the side project. If my spouse had a bad day with work and needs extra support, there’s no time or energy for the side project. If therapy dug up some sticky stuff I need to process, there’s no ability to work on the side project. Because balance means nurturing yourself and your support network, not just your professional life.

TL/DR:

Nearly every day in November, applying this Priority lens to my left showed me one of two things: either I’d expended everything allocated for work at the day job, or I’d been presented with an opportunity to invest into myself or my personal relationships. I refuse to view this as a problem.

Configuration is the Real Magic

I talk about writing software being like magic. It’s how I view the craft in a lot of ways–using arcane words and phrases combined with strange tools to conjure amazing things out of a series of 1’s and 0’s on a circuit board. But when I describe my ultimate career goal as “being a wizard” I mean something, or someone, very specific.

I’m not talking David Copperfield or Penn and Teller. They are very skilled magicians, not wizards. That sort of magic is based on memorizing an illusion, of doing a thing in a certain way because of the reaction you know you’ll elicit. One does a very specific thing, or specific set of things, in a well organized way, over and over and while it gets more polished with practice, it will always be the same.

The words “programming is magic” conjure up Gandalf for me, from the Lord of the Rings universe. For the majority of those adventures, it wasn’t actually magic that made Gandalf the go-to guy–it was never “Gandalf has a spell for that.” What made Gandalf the truly formidable foe and an invaluable ally was the fact he knew things. He understood the old lore, the behavior of people and animals, how the elements of the world fit together and how they could either help or hinder a particular goal.

Gandalf knew the configuration of Middle Earth. Maybe not the *exact* configuration for every situation, but he knew what was missing, or what was the blocker. His magic was always a tool to divine knowledge or to force something into place, to adjust the configuration of a situation. Never magic for the sake of magic, happening in isolation.

“Gandalf knew the configuration of Middle Earth.”

Just like the veteran programmer on the team who always seems able to spot the problem

Continue reading “Configuration is the Real Magic”

M*A*S*H and Single Responsibility

If you haven’t heard of the TV show M*A*S*H, it’s based on an equally excellent movie by the same name. It has exactly nothing to do with coding, software development, business, or anything else you might think is germane to this blog. Except that I watch a lot of it (may have even gotten a Hulu subscription JUST to take advantage of their recent acquisition of the show). Like most art you consume a boatload of it will eventually worm its way into the rest of your life.

Most recently, I had to use a Charles Winchester quote to remind myself of the Single Responsibility Principle.

“I do one thing at a time. I do it very well. And then I move on.”

— Major Charles Emerson Winchester, III

You see where this is going, right?

Continue reading “M*A*S*H and Single Responsibility”

It’s Not the Code

I saw an article recently from Code Like a Girl with a headline “Don’t Teach Your Kids to Be Coders.” It’s an excellent piece, and like most people smarter than me Dr. Johnson managed to put words to a feeling that had bothered me in all my classes at CSCC–the code is a tool, not a result.

I pick up skills very well. I’ve been praised (as an adult even) as a quick study. If I can identify a benefit to knowing how to do a thing, especially an immediate benefit, I will learn to do the thing. Most importantly, do it well enough to count. The jobs I’ve excelled at have had simply-defined goals–that type of goals allows me to determine the tasks necessary, and then start practicing the skills.

Continue reading “It’s Not the Code”

Blog at WordPress.com.

Up ↑