Disclaimer: this cross-section of theology and software development will be weird to most people. Too bad, it’s my blog 😛.
A scripture of the Church of Jesus Christ of Latter-Day Saints reads
For I, the Lord God, created all things, of which I have spoken, spiritually, before they were naturally upon the face of the earth.Moses 3:5
That is, before God created things physically, there was some sort of spiritual creation. What exactly that was I don’t really know. But the takeaway is this: before anything visible happened, something intangible needed to happen first.
I’ve found a similar principle when making software: before coding, and even before concrete planning, there’s a type of “spiritual” creation that needs to occur. Without this first spiritual creation, the following stages of creation are fruitless and frustrating.
This spiritual creation is where my mind synthesizes the requirements, explores the implementation, and visualizes the outcomes. It happens best when I’m away from the computer, preferably outside getting some fresh air, doing some exercise.
During spiritual creation, I wonder about things like:
- What is the end goal of what we need to accomplish?
- What are the most important aspects of the project (and which are less important time wasters)?
- What are related projects that might serve as inspiration?
- What could the finished product look like?
This happens in my head, before talking to anyone else. The answers don’t come immediately. They sorta distill in my mind until they eventually form into concrete thoughts.
If I were to have a meeting with others to try to do this “spiritual creation” we wouldn’t write anything down. We’d just chat and explore.
What I’m calling “spiritual creation” isn’t coming up with a concrete plan. Spiritual creation happens before formal planning. Without this time of reflection, formal planning lacks direction and goes nowhere.
Spiritual creation isn’t just helpful at the start. It also helps once you’ve come to an impass (like some bug, or some difficult-to-implement feature). I often find when I step back (from the situation), and step away (from the computer), I have many “aha!” moments. I realize an easier way, or I realize a way that’s already been done, or I even realize this is a problem that doesn’t need to solved right now.
Before productive planning or coding, there must be unhurried spiritual creation. Here are some of the symptoms that it’s lacking:
- Staring off into space with a blank mind, not sure what to do next and sometimes not even sure what the problem is
- digressing for hours into unimportant details of a project
- hacking and trying everything to fix a bug without much of an idea what you’re doing
- unproductive scouring of the internet to find a solution
Basically, when spiritual creation is lacking, focus will also be lacking. You get inundated with other information and other ideas that you don’t have a chance to really think about what information applies to you and what ideas you have about it.
In contrast, these are the effects of having done the spiritual creation:
- A clear idea and goal for what you want to accomplish right now
- An understanding that what you’re doing right now is the most important thing right now, everything else are distractions
- A clear idea for how something should be accomplished
- Plans form naturally and smoothly
Here’s the big catch: it happens off the clock. It doesn’t happen at work or under a pressing deadline. A pressing deadline activates the “fight or flight” part of your brain that turns off basically everything else. This careful consideration can’t happen like that.
There’s a story from my college days, where the author was working at a big software company, sitting in his office, pondering on a problem, when his manager barges in.
“Stu, what are you doing?!”
“Oh. I’m thinking.”
“I don’t pay you to think, I pay you to code!”
The author was spiritually creating and reflecting, but this boss wanted to skip that and go straight to its outcome: well-planned, well-executes code.
I find spiritual creation happens best:
- On a jog, pruning trees or getting some other exercise
- Chatting with a friend
- Having time to just learn stuff generally
Usually, these aren’t activities employers pay for. And as a result, they often don’t get them. Instead, when employees are off the clock doing those things, they’re thinking about anything but work. And so the spiritual creation doesn’t happen.
One of my professors at school celebrated what you do in your spare time. This is where the revolutionary ideas materialize. Instead of looking for a “10x” developer who could optimize something, he wanted a regular developer who could see the bigger issue and fix the underlying problem.
The most valuable thing an employee can give their employer is their thoughts during these moments for spiritual creation. The most discouraging thing an employer can do is to devalue or skip the time for their employees to spiritually create.
Usually, employers want to have all the ideas and plans themselves, and have employees just implement them— replace their thinking humans with cogs who do as instructed.
Should employers pay for employees to exercise, socialize, and learn about whatever they want? If they value the step of spiritual creation, absolutely.
So, I think before effective coding, and even before effective planning, there must first be unhurried, time to reflect: what I’m calling “spiritual creation.”
What do you think? I’d like to hear others’ thoughts.