We Should All Be DevOps Engineers
Some people ask: “Why say DevOps? Why not just say agile, lean, SRE or something like that?”
Because that would be dishonest. DevOps is, of course, part of software engineering — but choosing to use agile or lean approach to blot out the specific and particular problem that DevOps solves is denying the fact that the problem exists. Thus, pretending that other approaches that has been in use is as efficient as the approaches that sprang forth as a result of DevOps methodologies. — Adapted from Chimamanda Ngozi Adichie’s We Should All Be Feminists.
I am imagining Andrew Clay Shafer and Patrick Debois sitting down somewhere in Toronto, talking about the bottlenecks that exists between the likes of Debois, database admin as at that time, and Andrew, who was software Engineer. I really can’t picture their exact concerns, but I know that they were both looking for how to build on Agile methodology; something was missing. Fast forward to a year after they met and we had DevOpsDays event.
At first glance, DevOps, as a result of the words that it was coined from (Developers and Operations), looks like an attempt to increase efficiency by eliminating the walls that exists between the two teams. But a walk in the park reveals that it is, above everything else, a change in cultural approach. To achieve these cultural changes, DevOps methodology leaves us with principles, these principles birth tools. Principles >> Tools.
Having spent the past few years learning and applying these principles in the IT field, I find myself applying them to life in General. I unconsciously look for how not spend time fixing things more than three times within a specified time, I am always writing out my thoughts no matter how insignificant it can seem… These and many more has helped me reach a conclusion that everyone should apply DevOps principles. Below are some of the principles that I find useful for everyone:
1. Continuous Improvement/Learning: This, to me is the most important principle, and it is the building block for every other principle. The ability to adapt continuously to constant changes in life is a basic survival instinct. In one of the very first interview I had for a role of a DevOps Engineer, the interviewer asked me what would happen if in few years time, DevOps methodology goes out of trend. I told him that if for any reason that it goes out of trend, the new trend will be championed by people who are in the DevOps space, and I’ll be among them. Have you heard of GitOps? Anyways… This principle has somewhat gotten me acquainted to experimentation; learning from successes and failures.
2. Take Responsibility: In DevOps, there exist a shared responsibility to identify the issues in a delivery cycle. There is no shift in blame, rather the focus is on solving the problem and making sure it does not happen again. This brings about shared responsibility, which is applicable in real life. Show a society where every individual believes that they share in the responsibility of maintaining a common goal, and I’ll tell you that they are on the path to realising their best years on earth.
3. Team Work (Cross Team): The ability to focus on your specialty, giving other people in their specialty the ability to contribute drives team work and eventually, collaborative culture.
4. Automate Everything That You Can: In real life application, this can mean outsourcing some activities that are not necessarily the basic for survival. Survival as a word can be relative, however I have learnt to delegate tasks, especially firefighting tasks, to people who need them to fulfill their essential tasks. Always look for better ways to get something done, while you still achieve the primary goal.