Ten years from now, if or when I am in another job, no one is going to care whether I ran my production servers with my heart and soul. They will care if I saved money, they will care if I ran it efficiently, but you can do those things while still compromising your values. You can do those things while still taking shortcuts. You can do your work without your heart or soul and still make it appear as if you are successful. That is what people care about. That is what CEOs and Managers care about. But doing work mechanically will hollow out my soul, and that is something I cannot tolerate. My work should reflect my values, and should enrich my life, not be a cold and mechanical cancer that weighs me down and costs me love and sleep. No one will care if my heart and soul was in my job, but I will care. And that is enough for me. It is not enough for a lot of people. And I don’t know why. I’m 30 years old and I still haven’t figured this out about other people. It makes me sad. But I feel in my bones that my values are right.
Dev teams and Ops teams, and their respective egos, live in their own silos. Dev teams start with a mathematically pure solution to a problem statement, and then give it form. They use their scalpels like a hammer, beating it down until something resembling code comes out. They run it on their local environment, and when the errors start flying they beat it down again until it stops moving, making sure it is good and finally dead. Then they fling it over the fence. Once that happens, they wash their hands clean and take no guarantees, and plan their i-finished-my-project party. The Ops team, in the complete absence of documentation, use one of their age old deployment scripts to deploy code, since it worked fine for years, confusing automation scripts with wine. Things explode. Communication and processes are blamed. The word “incompetence” is thrown around in hushed whispers. We fortify, and deploy a moat around our religious sensibilities and self-respect. And then we start pointing our mighty fingers, forever outwards but never the other way.
I have worked on both sides of the fence and made these mistakes, and it always leads me to confusing existential questions. Did the Dev me just screw the Ops me? Did I just screw myself? How is something like that biologically or metaphorically possible?
I deploy code to production routinely that developers do not guarantee. As soon as their “work” is outside their control and over their side of the fence, they take no responsibilities of the values they claim to one day teach their children. Once it is over the fence, they voluntarily blind themselves, and refuse to recognise their “work” when it inevitably explodes. It ran fine on my machine. It ran fine in QA. I do not know what happened. It must be a Infra problem. I have to go home, so I can teach my kids about ownership and responsibility.
The problem is not that our processes are broken. The problem is not that our deadlines are tight. The problem is not that we are taking shortcuts. The problem is not that our managers are fickle prima-donas.
The problem is that we do not take pride in our work. The problem is that it doesn’t make us cringe when we compromise our own principles and build things that we know will break. The problem is that we allow a culture to continue where the goal is to throw things over the fence to another department as quickly as possible, regardless of problems. The problem is that we tolerate actions from people who do not have these values, and when we are up against these people, we fortify but recede into our shell to protect our values, instead of educating others on the right way of doing things. The problem is that we end up compromising, and tell ourselves that in the next company, in my next job, things will be different and right. Our values are right. Our defence mechanisms are wrong.