My musings on...

The grass isn't always greener

Ever heard the saying, "The grass isn't greener on the other side. It's greener where you water it"? This wise proverb teaches us that envy can be misleading. Imagine swapping places with someone, neglecting their patch of land, and expecting the grass to stay lush. It's a powerful metaphor that, with a slight twist, surprisingly applies to the world of building and maintaining software.

In my career, I've witnessed engineers often criticize a particular tool, frequently targeting Jenkins. Personally, I find Jenkins to be a commendable piece of software, a solid choice for CI/CD pipelines, hardly deserving of such disdain.

Yet, in many instances, the discontent stemmed not from Jenkins itself but rather from how it was set up, maintained, or from flaws in the CI/CD process. Sadly, instead of identifying these issues, the discontented voices merely called for Jenkins' demise.

Far too often, I've seen engineers propose alternative tools without addressing the root causes of the problems. Thankfully, decision-makers often resisted these changes. If not, we might have replaced Jenkins, only to encounter the same issues because, as I've learned, patterns and behaviours tend to replicate when transitioning between systems.

I strongly believe that in most cases, improvements could have been made by critically evaluating the current process, planning, designing changes, estimating costs, and presenting a compelling case to the business—analogous to "watering the grass" in the proverb.

Moreover, a thorough analysis might reveal that the proposed changes offer no real benefit, merely trading one set of disadvantages for another.

Another fallacy I've observed is the assumption that a high-performing team should take on tasks from another team simply because they excel in their own domain. This mindset, while tempting, can be undesirable, as the complexity of another team's work is often underestimated.

I'm sure many can relate to the frustration of others assuming your job is easy. In the software engineering industry, this lack of understanding often leads to undervaluing skills and time. It's akin to non-technical individuals expecting engineers to build an app for their business idea on the cheap or for free.

These situations share a similarity—assuming simplicity due to unfamiliarity with the domain. A generous serving of humble pie could benefit many in these scenarios.

As a decision-maker in the software industry, embracing these proverbs and analogies equips you with the tools to pose insightful questions. Why consider replacing a system or taking over tasks? Often, you'll discover that proposals lack in-depth consideration. In the rare instances where well-thought-out plans emerge, you'll be armed with a robust project strategy, comprehensive cost analysis, and compelling benefits to present within your organization.

I'd like to acknowledge my companion while creating this article, ChatGPT. While the content of this story is true to my life as I remember it, ChatGPT helped me in crafting it into an engaging text that I hope you enjoy.