To summarize once again, DevOps is a methodology that interacts between Development and Operations. It's all about improving the joint effort between functions of Development and Operations. The DevOps methodology in a software world is often also referred as a methodology that overcomes the gap between Agile software development and operations, as it enables a fluent process for Continuous Development and Continuous Integration.
It’s also very important to highlight that usage of DevOps methodology reduces the stress in communication, helps improve communication between teams, increases collaboration between all participants, and increases integration between developers and operations teams.
In delivering valuable software to customers, too often Development and Operations are in conflict with each other. When Development implements changes such as new features, bugs, or fixes, they want to quickly roll out this changes to production. However, once the software is already delivered, the Operations department wants to avoid to make the changes on the software. Here is where DevOps help to overcome the gap between both teams.
Initially, there was Agile development, in which the agility aspect was applied to Operations. It became Agile administration, and thus, DevOps was formed. (Here's a must-read article by Visual Studio Magzine called Taking DevOps to the Next Level: It’s All About Continuous Delivery.)
In this post, I’m going to describe in a bit of a deeper view three important stages of conversation, which are people, process, and products.
The Three Stage Conversation: People, Process, Products
DevOps is the correlation of people, process, and products to enable Continuous Delivery of value to end users. The outcomes are tightly connected to the ability for frequent releases to occur and at the same time to the ability to keep the same level of quality.
Thinking of DevOps at a really high level, it’s first all about people. DevOps business, everybody that is involved who needs to deliver value to the business is working very tightly together on a common goal of adding value to the customer. The latest study by Gartner, which involved 367 IT and leading companies (113 of which were using DevOps) showed that the people issue is the biggest concern in the share of interviewed participants. This study also revealed that the share of process and IT issues is on a lower level than the people issue. So, we can think that having highly motivated people with good collaboration between teams is very important.
DevOps is about process because even if you have people who are good working together, you can have a business process that blocks innovation (for instance, having long chain advisory boards before your people can do something or restricting people to doing things in a certain way). The process of designing, building, and testing software should be well-presented to each individual team member to make every team member aware of all parts of the development process. The implementation of a DevOps process into a company is a hard work, as it completely changes the company’s structure as a whole.
This is part of a bigger picture of DevOps: enabling the efficient flow of people working together and not having processes get in the way, but having processes and practices that help enable value to deliver to your customers.
DevOps is not a tool or product. You can’t buy DevOps, as DevOps is not a software, tool, process, company, or person; it’s a methodology used especially by IT professionals. However, there are products, tools, and services that really help enable different DevOps practices that teams can use to make things easier. From the very high level, one of these tools is Microsoft Azure, which offers a lot of different products and services such as Microsoft Azure Stack and Microsoft Azure. Besides Microsoft Azure, there are also other products related to DevOps practices such as Visual Studio Team Services (VSTS) and Team Foundation Server (TFS).
DevOps works like a mediator between Development and Operations and is helping businesses in a tremendous way that need continuous change to thrive in the competitive market. DevOps is not a software, tool, person, or process; it’s way more than that. It is a philosophy that is changing the work practices in IT so that it requires tight collaboration between everyone involved to enable Continuous Delivery to the end users.