In this fast paced world and cut throat competition, customers have tremendous expectations especially in the software industry. They want fast development & deployment, easy to operate, quality assured product at nominal cost. The software industry on its part is notorious for blowing deadlines. The result is, software industry finds itself at crossroads. It has to make a choice between providing quality software and customer dissatisfaction. However much paradoxical it may seem, there is only one viable option here and it is self-evident.
After carefully examining the development & operations process, one can say that the choice, though seems paradoxical, is not so. In majority of cases, the reason for deadlines not being met doesn’t involve the ability of engineers, nor is time constraint a factor, as reasonable amount of time is bought beforehand. The problem effectively boils down to ineffective collaboration. This is how DevOps solves the problem. DevOps calls for two-way collaboration process between developers and operators. If the developers understand the operations’ side of things and operators understand what is happening on the developers’ side, the two can work together to make things smooth.
Why such an outlook and ideology needs to be cultivated? The answer is rooted in history. Traditionally, teams were formed based on the ‘likenesses of work done. Similarly, in software industry this siloed approach was adopted, with developers, operators and testers all formed their individual teams. Consequently, following scenario started to take shape- the developer (Dev) team would work for 6-9 months and throw the code over the wall to operator (Ops) team and say- “We’re done! Make it run”. The Ops team would try to figure out how to make it run, meanwhile the Dev team starts working on version 2.0. When the Dev team is finished with the newer version, they again throw their code over the wall to the Ops side without giving a thought to their concerns. Ops would then panic. They would have built the operations side with certain assumptions looking into version 1.0, and the latest version breaks down everything. This essentially means that they would have to start all over again. This ultimately results in clashes. The Dev side accuses the Ops team of unstable platform while the Ops team convicts the Dev team of unreliable code.
DevOps aims at breaking this vicious cycle which results in decreased efficiency and productivity. It brings a refreshing change in approach where operations people who are comfortable with infrastructure and configuration are also happy to roll up their sleeves and write tests, debug & ship features. And the same is true for developers; they can help in installation and configuration too, if need be. DevOps further aims to create a mixed team of developers and operators. Such a multidisciplinary approach breeds communication. Proper communication is essential for removing an “us and them” mentality. This ensure effective collaboration to provide a quality software on time.
Described by Kendall Miller on Quora here- https://www.quora.com/What-is-DevOps-What-are-the-duties-of-a-DevOps-Engineer/answer/Kendall-Miller-15
DevOps can have tremendous impact on business as it can lead to better reliability and availability, happier clients and faster time to market. The change in mindset ushered in by DevOps, enables the software team to focus on core business rather than wasteful administration. Moreover, it creates a harmonious and happy working environment. Every person goes beyond his/her competencies to ensure creation of quality product. DevOps, hence, clearly helps a software team realize its true potential.
Stephen, N. (2010), ‘What is this DevOps Thing, Anyway?’ http://www.jedi.be/blog/2010/02/12/what-is-this-devops-thing-anyway/