No Man’s Land
The idea of order and chaos is deeply embedded within each and every one of us. Even a child has some semblance of order and chaos in his/her mind. Scattered Lego pieces all over the floor are chaotic enough to drive a child to discover that order can be created by assembling them together.
The theme of order and chaos is very old. It is recurrent in almost every major culture, religion and worldview. Ouroboros, the ancient glyph with its roots in Egyptian iconology, is a serpent eating its own tail, signifying the cycle of creation and annihilation, birth and death, order and chaos. And turning to the east we find Ying Yang, the famous symbol for ‘the good in the bad and bad in the good’ can also be interpreted as ‘order and chaos’ only to go further to include the ‘chaos in order and the order in chaos’. This isn’t all that strange to us software developers. Source code is chaotic, period. It’s chaotic enough that evenwe don’t understand it sometimes. It is the black serpent in the Ying Yang. Yet there is order within it. The seemingly messy code consists of structural intricacies, grammatical semantics and it plays a function that we value, hence it has order. But, this order isn’t pure. We cannot ever be sure that our code is free from bugs; this is the chaos within the order.
Well, if you zoom out a bit, this is not so different from life. In life, we always see-saw between order and chaos. Even though ‘get out of your comfort zone’ has become a famous line of thought in modern times, we rarely ever get out of our comfort zones, because the comfort zone is made up of those things that we either know or can predict, calculate, determine and attack with precision. The vastness outside of our comfort zone is no man’s land, it is unexplored territory, the unknown, or simply chaos. Therefore the order is something that keeps us sane and comfortable. But chaos is the force of creation, it is the land of opportunity, it is the various tests the universe throws at us to see how fit we are. Oftentimes chaos visits us uninvited: losing a job, going out of business, facing roadblocks in a creative process, or even the loss of a loved one. Going through a chaotic phase in life can teach us immensely, much more than being within the confines of our comfortable box. If one dares to venture into the land of chaos, they bring back with them the jewels of new skills/ideas, innovations, wisdom and new order(s). One could say that order is traded from chaos with how adventurous one is willing to become, or how much one is willing to endure. Therefore it is important to not be complacent and willingly venture into the unknown.
Coming back to our world, the software world, it seems to me that the Agile methodology is successful because it sits in the middle of order and chaos. Order isn’t forced upon it like in the waterfall method, and neither is it uncontrollably out of hand. Agile puts us into a mindset of being comfortable about not knowing the precise details of the final deliverable. It is an iterative process similar to other iterative processes in nature. Imagine if evolution by natural selection happened like a waterfall process. Whatever the force that creates would not even get past the design phase, let alone an end product, and even if it’s successful it would come up with some dumb animal who’ll be stuck in ‘maintenance’ for the rest of its life, and with hostile changing
environments the lineage of the dumb animal would die a miserable death. Evolution by natural selection happens iteratively, constantly placing its creations in chaotic environments to see who survives.
Einstein said, “God does not play dice”, in our industry this translates to “God does not gather requirements”. The ability to ‘see’ is not a grand specification for living things, it progressively came up via natural selection in the iterative process. The thin sheet of photosensitive cells created by mere random accidents offered an advantage over others who didn’t have it; it gave us an upper hand to evade predators and procreate. The blind ones would die, and the ones who could see even the faintest image would survive. The next generation would consist of only those with photosensitive cells and a portion of them would have tiny incremental improvements due to randomness and they would thrive. This iteration would continue on and on and millions of years later here we are with the ‘2020’ vision (pun would’ve worked last year).
Nature is the ultimate tinkerer. It does not have an end goal, it does not have a predefined set of requirements to design a creature, and it does not plan beforehand. It is a beautiful messy process that ends up in beautiful elegant results. Looking back at recent history, almost all major discoveries and breakthroughs were not the results of strategic, nit-picked planning. The invention of the light bulb, the discovery of X-Rays, penicillin, vaseline and even viagra.
So it seems to me that we must embrace iterative, spontaneous, messy processes over well thought out linear plans. Due to the nature of reality, it is often impractical to envision clear end goals. Many perfectly planned things never see the light of accomplishment. The strategy for discoverers and entrepreneurs is to rely less on planning and focus on tinkering and aggressive trial and error while being open-minded to recognize opportunities when they present themselves.
Captured Image Link: https://upload.wikimedia.org/wikipedia/commons/7/71/Serpiente_alquimica.jpg