Code Purification Rituals
How would the quality of life of Software Engineers improve by periodically taking time to cleanse and detox our coding environments?
We acknowledge the value of rest, the need to take a break, to reset, to detox. Our bodies force us to rest and recharge at regular nightly intervals and there's a good reason why sleep deprivation is such an effective tool of torture and brainwashing.
Rest is also built into religious rituals, from the sanctity of the Sabbath, fasting during Islamic Ramadan, the Christian observance of Lent, and Jewish Yom Kippur. There is the Japanese Shinto practice of Misogi, a ritual purification in sacred cold waters, as well as the purifying powers of the Ganges river in Indian traditions.
From a religious perspective, fasting and purification rituals are moral and spiritual acts creating harmony within the mind, body, and soul.
Fasting has also been adopted as a practice among health advocates and there is sound medical support for fasting as a health protocol. Biologically the body undergoes its own clean-up, enhanced autophagy to remove dysfunctional cell components, a regenerative effect on the immune system, reduced insulin resistance, reduced inflammation, secretion of growth hormones, and due to increased BDNF (brain-derived neurotrophic factor) in nerve cells, prolonged fasting is even said to improve cognitive function.
In agriculture, the concept of fallow leaves a field unplanted for one or more seasons which lets the land recover, promoting soil restoration, replenishment of potassium, phosphates, and nitrates, and ensuring its long-term sustainability for crop yields.
So what the heck does this have to do with Software Engineering and the quality of life for Software Engineers?
“We may pay for our neglect in the long-term rather than next Sprint, just as we don't suffer immediately from binging on junk food and neglecting to exercise.”
There are many demands on Software Engineers. The relentless world of commerce requires the continual throughput of new features and functionality for customers. Under never-ending pressure to deliver, even the most craftsmanlike Software Engineer may be forced to cut corners, neglect code hygiene, skip tets and error logging, or worst of all, comprise in the architectural design structure. While it is quite natural to prioritise the business leverage of new functionality for customers, the hidden cost of not attending to code hygiene is more nebulous and hard to account for. We may pay for our neglect in the long-term rather than next Sprint, just as we don't suffer immediately from binging on junk food and neglecting to exercise.
So just as we have ritualised practices of purification and abstinence in our religious traditions, could we not invent the same for our Software Engineering environments?
Could we not create periodic festivals of purging code bloat, refactoring, system, and tooling improvements, improving tests, attend to error logging, eliminating bottlenecks and waste, resetting our standards, correcting documentation, cleansing data, defragging, and decluttering our machines?
Detoxing is for cleansing, sorting out the niggles, fixing bugs, righting the small wrongs. When it comes to mistakes in Architectural Design Structures you’ll need a much more strategic approach, but maybe your purification exercise could include time to reassess and reevaluate those major architectural mistakes you all pay for every day.
So why not adopt something like a quarterly detox? At least one week every quarter, perhaps harmonised with our cyclical orbit of the sun, aligning with the solstices and the equinoxes. Reconnecting with the rhythms of nature as we reconnect with our codebases. Or up the cadence to 8 times a year in line with pagan Wheel of the Year, coinciding with 4 main solar events of the year and the midway intervals between them. Pagan festivals had many themes including renewal, rebirth, fertility, flourishing, giving thanks, reconnection, and celebration. It may sound silly to our modern rational brains but in our hyperconnected world we are more disconnected from nature and meaning than ever, and just maybe a contrived ritualistic reconnection to our ancestral rituals may actually bring us closer to meaning and to one another.
Your Systems Purification rituals may prevent downstream disasters, may reduce long-run costs, may improve operational efficiency and feature throughput, but these benefits shouldn't be the only justification. Perhaps the justification is as simple as improving the quality of life of Engineers or improving the Software Engineer Experience. It's about thinking of the effects on people, resetting our perspectives, giving us more autonomy and self-responsibility within our software development lifecycles. Taking proper care of ourselves and our codebase. Allowing us to take pride in the health of our systems, and celebrating with a sense of reverence for the brilliant work we've contributed to our codebase. It's about looking after ourselves and each other, symbiosis, and collaboration.
“Shared rituals are important in human societies. They give us meaning and allow us to reconnect to one another.”
Shared rituals are important in human societies. They give us meaning and allow us to reconnect to one another. They give us the opportunity to care and be cared for. We're in a dark age of a meaning crisis, we've lost our compass and don't know where we're going. As humans, we need periodic rituals of abstinence, restraint, and reconnection to reset our direction, rejuvenate our systems, recalibrate our processes, and re-establish our foundations together.
Perhaps Code Fasting, Systems Purification, or Code Detoxing could become a rutualised cleansing practice in 'People First' Engineering environments?