The Psychology of Building Software During a Crisis
I haven't lived through too many crises. Mostly, it's been hurricanes, and I was a child during the ones that actually affected my day-to-day life. COVID-19's effect is quite unprecendented, both in my life and the lives of others. Today marks two weeks since I started self-isolation with my wife. We've done well so far, cooking a lot, spending time in our backyard with our animals and the birds, keeping up with friends and family through video chats, and trying to enjoy all our hobbies that can be done at home. We've been very fortunate especially since we both can work from home and keep a paycheck whereas others have not.
Business (not) as usual
Even though we're both big introverts, we're still going a little stir crazy. Not only that, but the weight and severity of the current pandemic is affecting our moods and energy. Certain things feel more important now, much more than ever, and other things that might have felt somewhat important before, now feel meaningless.
For example, minor things like keeping a particular sleep schedule, cutting grass, washing the car, etc. start feel a little meaningless. Side projects that I might have picked up to work on after work don't quite call my name like they used to. So maybe a small boon of this time is that it shows us what really matters.
And yet, this hasn't quite seemed to have hit my company's psyche yet. We're still mostly business as usual (besides now all working from home and taking precautions), building the same software for the same projects that we were working on before. With mostly the same deadlines. It feels wrong or at the least off. It feels like we should be contributing to the problem at hand, the pandemic. If not that, it feels like we should be working on cleaning up and bolstering the core software. But we aren't. We're building for new features, like we always are.
Before this crisis, we operated as a feature factory for the large ecommerce site we run, at one of the world's largest jewelery manufacturers. The feature factory pace/prioritization has been written about many times before. The business comes up with a new feature to offer users in an attempt to get more sales, and then we build it. Repeat.
The effects of this style can be seen everywhere. Complicated UI that appeases the 1% of users who actually use it while confusing the 99% who don't need it. Tons of code that hasn't been touched in years. Over burdened teams with ever depreciating code bases and little to no time for maintenance of the core features.
What's missing?
A mindset. A mindset that keeps the essence of our business and the majority of users top of mind. We're like magpies. Every customer with a shiny new problem or every teammate with a new brilliant feature stops us in our tracks. It's easy to forget that 95% of our customers go through the same five pages of our site nearly every day. If our gemstones deptartment is looking to improve their numbers, and we start building a new experience to make it easier, maybe we'll improve the numbers by 3-10%. But gemstones might only be 5% of our total web revenue. So, globally this nets us a 0.5% increase in revenue. If we instead make a change like improving checkout flow, or globally decreasing page load by 1s, we might see a total web revenue improvement by 1% or more while also improving all of our customer's experiences.
That's not as glamorous as making a new feature and not nearly as marketable, but it's more helpful overall. It also puts us in a stronger position over the long run, because our core is resilient, forged to perfection over time. If we continually choose working on what's essential, our customers won't want to leave, and they'll have more confidence we're invested in what they actually came for. Sometimes you have to build the glam to attract people or innovate to find unreached markets. And I think that's perfectly fine some of the time, but you need the right mix.
Getting back to crisis time, what can we even be certain of right now? This could all last much longer than we thought. A new program or feature we wanted to release might get lost in the malaise of the time, a waste. People aren't seeking novelty right now. They want security and certainty. Which is why it feels wrong. What can we build to shore up weaknesses during times like this? If we have to shut down for weeks, what can we focus on that saves us money or cleans up something really messy? Our customers won't be expecting new and fresh.
Everyone's huddling in place or courageously fighting. By trying to run business as usual, I feel out of place, almost guilty. And definitely mentally and emotionally low on energy. When I normally would be working on side projects, I find myself just wanting to relax and spend time with friends and family. The universe is shoving the essential in my face. I've been wanting to consistently write for a long time, and this might be the only way to feel like I'm contributing to the larger problems at hand.
If you just feel like chatting with someone, you can email me at hunter@hmiller.dev or schedule something on my calendly and we can video chat. Stay safe out there and keep connected with those you love.
- Hunter ✌