Sometimes, the best code to write is no code.
This statement is not a confession by someone late to the “No-code” party that is blazing a path through the Software Development community.
When I say “no code,” I mean none/nada.
I often find myself forced to embrace the constraints of time, money, and resources as a solo developer working on Cassava, and it is in these moments I seek out the principle of no code.
The best code to write is no code
So, Michael, you take the easy way out?
Not at all!
If you have been following my blog, you will invariably notice that I am an avid fan of the “Roll Your Own” movement, and some would say probably to a fault.
Indeed, the very blog you are reading is a testament to this philosophical principle. It may seem contradictory to roll your own code when faced with the aforementioned constraints, but this approach does not invalidate my “no code” argument.
So what do you mean by no code?
No code is the principle of crafting messaging to avoid what would otherwise be complex solutions characterized by many paths.
Ah, I got you now. What Pub/Sub messaging framework do you use?
By messaging, I mean using clear, concise language to inform customers of the expectations that will unfold with a given workflow.
Let us consider a reservation problem where a customer must acquire limited resources from a pool. You could attempt to write a locking implementation to reserve these items in real-time as you answer the customer’s request, or you could use a form of the Hollywood Principle (don’t call us, we will call you) in your messaging.
Instead of solving the problem in real time, you inform the customer that items will be reserved that best match their criteria and that they will be notified when the process is complete.
A concise statement is very often the difference between an intricate solution with many moving parts versus a simpler one that is easy to reason. After all, the real cost of Software development is not in the writing but in the maintenance of what you write.
When you change the way you look at things, the things you look at change. — Dr. Wayne Dyer
By the way, this axiom applies equally to life as to coding. Often it is not what happens to you in life but how you respond that makes all the difference.
OK, back to the topic at hand.
Complexity in software development often arises from the false sense to answer a customer’s request in real-time, as seen in the example above.
When you find yourself in this situation, it can help to pause and reflect on whether this urgency is genuine or manufactured. As the developer, do you feel compelled to address the problem with more and more code, or can you frame expectations with a crafty message?
While I concede that the No-code movement is all the rage, we can use a play on words to argue for a more fundamental mindset shift that genuinely favors the code not written.
As always, I welcome your feedback.
You no doubt have an opinion bubbling to the surface.