Do I need to change my primary skills to learn the DevOps?
What skills I need to learn?
How to learn and where to start DevOps?
I keep hearing many questions like these. People who spent good amount of time either as Dev or Ops or Tester seems confused and worried with these questions.
I am going to start a People, Process, Product - DevOps post series, I will not explain topics/ concepts in details as it has already been written and discussed in many blogs/ sites.
I will try to provide some basic fundamentals, my learnings and at the end resource references/ links of various tools/ product which you can choose as per your technology area and interest.
First thing first
There is no fixed or standard definition of DevOps.
Microsoft definition of DevOps
DevOps is the union of People, Process, and Products to enable continuous delivery of value to our end customer.
Value is most important word. value can be delivered in any language and on any platform
I always use following definition
DevOps is philosophy and it never recommend any specific tools/ process and products.
It’s about 3 P’s
People: Initially, stakeholders would need to be identified, ensuring that everybody delivering value to the business are working tightly together on the common goal of adding value to the customer. People need to learn and adopt the collaboration and shared responsibility.
Process: DevOps is about improving process because even if you have highly motivated people that are working well together, you may still have several business processes which may get in the way and this could really block innovation. For instance, having to seek approval from long chain advisory boards before implementing changes or being restricted to doing things in a certain way can impede innovation. The process of designing, building and testing software should be well presented to each individual team member, making them aware of all parts of the development process. The implementation of DevOps can be hard work, as it completely changes the company’s structure as a whole.
This is part of the bigger picture of DevOps. Enabling efficient flow of collaboration and making sure that business structure and processes do not get in the way but instead have processes and practices that help improve the value and delivery to your customers.
Products/tools: 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. There are, however, products, tools and services that can help enable different DevOps practices and different teams which can be used to make things easier. From a very high level, these tools include 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 Team Foundation Server (TFS).
Even with the best tools, DevOps is just another buzzword if you don’t have the right culture.
The primary characteristic of DevOps culture is increased collaboration between the roles of development and operations. There are some important cultural shifts, within teams and at an organizational level, that support this collaboration.
An attitude of shared responsibility is an aspect of DevOps culture that encourages closer collaboration. It’s easy for a development team to become disinterested in the operation and maintenance of a system if it is handed over to another team to look after. If a development team shares the responsibility of looking after a system over the course of its lifetime, they are able to share the operations staff’s pain and so identify ways to simplify deployment and maintenance.
There should be no silos between development and operations.
Another valuable organizational shift is to support autonomous teams. In order to collaborate effectively, developers and operations staff need to be able to make decisions and apply changes without convoluted decision making processes. This involves trusting teams, changing the way risk is managed and creating an environment that is free of a fear of failure.
- Common vocabulary
- Consolidated & Consistent Information
- Backlog Management
- Team Mindset
- Requirements feedback
- Iterative Development
- Agile Planning
- Automated Builds
- Capacity Management
- Integrated Team
- Quality Mindset
- Requirements driven
- Stakeholder Feedback
- Daily meetings
- Current information
- Quality Assurance
- Rich communications
- Test Environment Management
- Performance Testing
- Automated Deployment
- Automated Testing
- Continuous Delivery
- Continuous Feedback
- Continuous Improvement
- Dev/Ops Coordination
DevOps enables companies to achieve faster and higher quality software delivery and helps increase customer satisfaction. It focuses on building quality into the supply chain of customer value, and applies the lean/agile methodology into that supply chain, which includes developing, building, testing, deploying, and monitoring of software.
DevOps is no longer just a trend – it’s a well-defined set of practices and organizational patterns that for many enterprises is providing a return on investment.
Please do let me know your thoughts/ suggestions/ question in disqus section.
- VSTS Build and Release Agents
- People, Process, Product - DevOps - Build & Release
- IaC Deployment using VSTS Release and GitRepo
- People, Process, Product - DevOps - 2
About Ajeet Chouksey
- VSTS Extension - SOAP UI Test
- Design VM Scale Sets - 1
- Include Pester Test as part of VSTS Build
- Design solutions using virtual machines - 2
- Design solutions using virtual machines - 1
- IaC Unit Test using Pester Test
- People, Process, Product - DevOps - SonarQube Tool Assessment- 2
- People, Process, Product - DevOps - SonarQube Tool Assessment- 1