Is Software Like a Rice Paddy or a Wheat Field?
Does more effort equal more gain?
Outliers
In Malcolm Gladwell’s phenomenal book Outliers, the author highlights many cultural factors as the reason for folks’ ability to stand out from others. One of those factors is countries that historically farmed rice are better at certain education disciplines (namely math) than their wheat farming peers.
What is so different between the two? Rice farming is more labor intensive and more effort equates to more yield.
More is more for the rice farmer.
With wheat farming, leaving fields sit fallow and hibernating the winter away are the better strategies.
Less is more for the wheat farmer.
What does this analogy have to do with software?
Software systems can fall into these categories as well: does more effort equate to more value, more yield?
It depends on a few things.
Think of a system that tells you what time it is. Or a system that tells you the weather. These are necessary systems, but not ones that will remarkably change our lives if they have improved accuracy (how many fractions of a second matter? Or do you need the exact temperature at your location?)
These systems are the wheat fields of the software world; if they’re working just leave them be. We can call these “stable” systems, stable because the requirements don’t change much.
Requirements? Don’t you mean outside factors?
The driving engine of software development is not often outside forces, like vulnerabilities or operating systems changes. Those end up being sporadic but necessary bits of work, like reaping your wheat field at harvest time.
What really is the engine of software development, the rice paddies of the programming world, are systems with unstable requirements.
Take machine learning as one of the best examples. Every leap forward, like text to image that can draw some hands, or the latest version of Chat-GPT that could write just about as intelligible an article as me. These machine learning applications are a requirements arms race, each version begging the question “can we build something better?” And these AI are created by top companies seeking to outcompete each other.
Take the top software companies like Google, Amazon, Netflix, Apple, Meta (Facebook). These companies are in a literal arms race for your attention, a requirement that is constantly in flux, as users grow older, or as new systems arrive like AR and VR either wow us or bore us.
Most of the top companies are trying to figure out what you literally want (your life requirements?) so they can sell you ads and products that will make them the richest companies around. And they use AI in their recommendation arms race.
These systems are for sure the rice paddies of the software world, more work equates to more value. Chasing and fulfilling those requirements means more rice!
But the Layoffs?
The most interesting thing about software is that within the rice paddies there are a lot of wheat fields. Not all engineering roles within a top firm are equal. Some people’s jobs revolve around minutia, things that users could give a dang about.
As an example, consider the icons that power a site like Facebook. Do those increase their bottom line? Possibly, if it gave them a competitive edge. But ask most users and they’d probably shrug. And that’s something actually visible to end users.
There are folks employed in hardening software systems, writing tests, upgrading versions or managing other automation. Necessary work for sure, but certainly they’re on the wheat field side of the equation. Or as some software people say: YAGNI, you ain’t gonna need it.
If you lay off people working on non business-critical things, you’ll let the wheat fields lie fallow, which is just fine. And save on the cost of those $100K+ wheat farmers.
The software world is full of rice paddies and wheat fields. Make sure you spend appropriate time where it counts, and let things like fallow where it doesn’t.