Getting out of the rabbit hole
Lately I’ve been finding myself often lost in Wonderland.
It all starts with a ticket/issue. Whether we choose to take it or get assigned to it. We may break the job into sub-task and start to tackle the first on the list. Divide and conquer, like the good engineers we’ve learned to be. All this in the hope of chipping down our ever-growing backlog. In my day to day job I work as a DevOps Engineer, or Platform/Infrastructure Engineer for people screaming “DevOps is a culture” (not calling out any of my colleagues :P) and this mostly means creating and maintaining infrastructure resources code, debugging application build and deploy errors thrown by the pipeline etc. I do enjoy it a lot, as it permits me to touch different technologies, cycle them and never get bored.
All seems good, until I find a piece that doesn’t look right. In my case this can happen in the form of an unexpected behaviour or inconsistency, because of some code that I wrote in the past with less experience and it was depending on a module that needed to be refactored to accept a new functionality, which required to refactor all the components that depended on that module. So, in order to reduce complexity, I’d think a way to decoupled the scope and responsibilities of the module, unless there was a better design pattern that I could use and I decide to do more research instead… Wait… What was I doing again?
When I read this, it looks so comically exaggerated that reminds me a scene of Malcolm in the Middle, where the father, Hal, tries to fix a broken light bulb.
This unfortunately happens all the time. It may be in our nature, as beings guided by curiosity and that get excited at novelty. I get lured by these fireflies, jump to catch them, fail, I become so focused on understanding their behaviour to improve my success rates, wader off a while. Only to find myself in the depths of a rabbit hole. I love the iconic characters, the setting and the themes in Alice’s Adventures in Wonderland. Although, if I have to be completely honest, I never read the original work by L. Carroll, but I digress…
Back to our previous rabbit hole. While the learning outcomes will probably help me in other aspects of my life, it is often worth it to stop. Step back. Take a deep breath and ask to myself. Will this ever end? I suppose not. Even when I thought I “fixed” the root issue, I can totally imagine a future me reading the same line of code and thinking “who is the illiterate that wrote this?” With time comes experience, experience may change the opinions I used to stand by and my idea of perfection. For this same reason I am publishing this stream of consciousness. Not only, trying to achieve my current idea of perfection is a misuse of resources, perfect is the enemy of done and code not shipped is not generating value. I am not trying to say that the value of profits should be above everything else, but I believe that in the real world I should put the shared goals above my own pride and thirst of knowledge.
I am going to revisit this page some time in the future, while leaving some link that was resonating with me.