Introduction
In some of my previous posts; DevOps Framework and Practices and What is DevOps, I've described in detail what DevOps actually is. Just to summarize once again, DevOps is a methodology interacting between Development and Operations. It is all about improving the joint effort between functions of Development and Operations. The DevOps methodology in the software world is often also referred to 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 to improve the communication between teams. Collaboration between all participants and integration between developers and operations teams.
You can find more information about DevOps in the following post: DevOps: The Three Stage Conversation - People, Process, Products which describes the basic principles of DevOps. This post will be especially helpful to those for whom DevOps is still a new concept. If you prefer a deeper view on this topic, have a look at the following guide: quick guide about Basic Principles of DevOps, which presents an overview of DevOps process and practices, describing “the big picture,” while still maintaining the high level of detail.
In delivering valuable software to customers, too often development and operations are in conflict with each other. When Development implements the changes, such as new features, bugs, or fixes, they want to quickly roll out these changes to production. But once software is already delivered, the operations departments want to avoid making changes to the software. Here is where DevOps helps to overcome the gap between both teams. Initially, there was ‘Agile Development’, when the agility aspect was applied to operations it became ‘Agile Administration’, thus DevOps was formed. Here is a must-read article by Visual Studio Magazine - Taking DevOps to the next level: It's all about continuous delivery. In this post, I'm going to describe a bit deeper view about three important stages of Conversation, which are People, Process, and Products.
If you want to know more about maintaining the backlog in a proper way, you can visit the following post: Key Tips For Maintaining Good Product Backlog in Agile and Scrum. The post describes a way to efficiently organize the backlog items allowing you to understand the requirements better, and providing you with a higher level of detail of what is actually expected from the work or delivery perspective.
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 and at the same time to keep the same level of quality.
People:
Thinking of DevOps at a really high level, it's first all about people. DevOps business, everybody that is involved, that 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, from which 113 companies were using DevOps, showed that 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.
Process:
The post User stories in Agile world focuses on an important unit of Agile software development process, which is User Story. The post also describes some basic rules and recommendations you have to follow before adding the descriptions of PBI.
Next - DevOps is about process because even if you have those people that are good working together, you have got business processes in a way that is really blocking innovation. For instance, long chain advisory boards before they can do something or they are restricted to doing things in a certain way that really impedes that kind of innovation. 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 DevOps process into a company is hard work as it completely changes the company's structure as a whole. That's part of a bigger picture of DevOps. Enabling efficient flow of people working together and not having processes get in the way but having processes and practices that help enable that value to be delivered to your customers.
Products:
DevOps is not a tool or product. You can't buy the DevOps, as DevOps is not a software, tool, process, company, or person, it's a methodology used especially by IT professionals. But there are products, tools, and services that really help enable different DevOps practices and different teams can use to make things easier. From a very high level, those tools are Microsoft Azure, which is offering 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).
Conclusion
So, DevOps is working 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 much more than that. It is a philosophy, which is changing the work practices in IT. In the way which requires tight collaboration between everyone involved to enable continuous delivery to the end users. To keep yourself aware of the latest information, you can also go through the 10 Must Read DevOps Articles to stay in the know for 2016:
- A Quick Refresher: DevOps by David Auslander
- From Teams to Tribes: Creating a one-team culture in DevOps by Em Campbell-Pretty
- The DevOps Dilemma by Martin Cooper
- How Can DevOps Accelerate Innovation? by Dan Kobialka
- DevOps Tips: IT Managers Reveal How to Get the Best From DevOps by Matthew Finnegan
- High Performance Teams in DevOps by Kris Bliesner
- 7 Signs You're Doing DevOps Wrong by Adam Bertram
- The State of DevOps in 2016 by Ben Rossi
- Piecing Together the Elements of DevOps by Aruna Ravichandran
- Setting a DevOps Mindset for 2016 by Derek Langone
You can see this video, If you would like to find more information about how to get started with Release Management and its advantages. See how to create a build definition using CI/CD Tools for VSTS Extensions (I will be using Package Extension and Publish Artifact tasks), and also using DevOps-VSTS-POC trigger in order to enable CI. All of that in order to be able to publish, share, install, and query versions. You will see how to create release definition. Choose an artifact and configure source for the artifact and default version. See how to create different environments or clone the existing one, in my case I am going to create QA, Preproduction, and Production environment each with one phrase and one task. See also how to configure Publish Extension task for each environment. See an end-to-end continuous delivery pipeline using VSTS extension with Build and Release Management.