Years ago, during my first years as a software architect at a large company, my primary responsibility was assisting our customers in seamlessly integrating our application into their environments. I relished this role because it often involved traveling to diverse locations and collaborating with brilliant software architects and engaging individuals, all while tackling the complexities of integration.
One particular visit stands out in my memory. I found myself sharing a cramped cubicle with a remarkably robust software architect. These were the days before “open office” policies, and we embarked on our work from his modest desk. Prior to diving into our tasks, I couldn't help but notice a small poster "adorning" the back of his cubicle. It bore the following inscription:
"In science, nothing works, but they know why; in engineering, everything works, but nobody knows why; in our company, nothing works, and nobody knows why."
As I perused these lines, a smile crept across my face, for I had encountered this sentiment before. However, what truly piqued my interest was the additional line he had added, presumably in a moment of frustration:
"Now we know why, where is our scripting man?"
This seemingly innocuous line unveiled a tale of its own.
Over the years, this team, like many others, had become overwhelmed with requests from their business stakeholders to rapidly implement various use cases. Typically, projects would involve dealing with bulk data files, ETL processing, databases, customer service information and business logic. Amidst this complexity, there was a lone individual responsible for crafting scripts. These scripts meticulously scraped data sets and produced the desired outcomes.
What began as a hobby project for one scripting guru gradually evolved into a full-fledged production application, serving numerous business units and eventually customers. In a Darwinian twist, this small-scale venture metamorphosed into an unwieldy, spaghetti-like codebase that sprawled throughout the organization. Unfortunately, the sole custodian of this labyrinthine creation was our scripting guru from the project's inception.
As fate would have it, this individual departed the company, leaving the remaining engineers bewildered about how the system functioned. They were confronted with an enigma; no one knew where to unearth critical information or dared to make adjustments or configurations in the production environment. Over time, this scripting labyrinth transformed from a mild inconvenience into a formidable obstacle that hindered integrations, eventually fading into obscurity.
I found myself tasked with salvaging this situation, assisting their engineers in implementing new business logic. This experience imparted a crucial lesson: regardless of an individual's brilliance or their capacity to rapidly implement novel ideas, an organization's ability to replicate that business logic, effect change, and deploy innovations at scale is paramount. All of this must transpire at a velocity that doesn't disrupt business operations.
This experience sparked my deep interest in automation. While current solutions allow for coding everything and leveraging scripts for speed, what truly defines success in larger organizations is what we call "zero-touch logic provisioning." It's the ability to implement complex automation logic swiftly at scale and disseminate that knowledge across the organization. This is a critical consideration before evaluating any new tool for your application suite.
We often joke that the only problem with engineers is that by the time you understand what they do, it's already too late. This isn't a commentary on engineers' intelligence or their intention to make things complex. Rather, it underscores that in today's fast-paced business landscape, characterized by intricate demands set by business units, product managers, and customers, business agility is paramount.
Therefore, when contemplating the implementation of complex automation logic, the most critical aspect is selecting an appropriate tool capable of handling that complexity. Otherwise, one day, you might find yourself wondering, "Where is our scripting man?"