The term DevOps is still relatively new to the technology industry. The definition of DevOps isn’t really as clear as is for Agile Development Methodology. For many teams and organizations DevOps is a sort of unobtainable mythical beast; a unicorn if you will. Although, DevOps is obtainable for any team so long as the necessary pieces are put into place within the organization. This article will discuss the What and the Why of DevOps in an effort to clear things up.
What DevOps Is NOT
There are many definitions (or myths) as to what DevOps is. To start, let’s talk a little bit of what is NOT DevOps, and clear up some common misconceptions you may have heard.
Here’s a short list of things that are NOT DevOps:
- a tool that can be adopted
- a single process to be implemented
- a task that can be outsources
- the sole responsibility of a single team
- the sole responsibility of a single team member
Of the many possible incorrect or incomplete definitions of DevOps you’ve heard, they all likely overlap one or many of the items listed above.
Here are some examples that I’ve seen over the years that organizations or teams have used to incorrectly attempt to describe what DevOps is:
- “We use DevOps, we use TDD.”
- “We use DevOps, we have an IT Operations guy attend our daily Developer standups.”
- “We use DevOps, our Developers have implemented a Continuous Delivery strategy.”
- “We use DevOps, we have a dedicated DevOps team.”
- “We use DevOps, we hired a DevOps expert.”
- “We use DevOps, our QA team also handles that.”
No you don’t!
The biggest single misconception is that DevOps is not a single thing that can be implemented. DevOps is a culture that must be achieved by and is the responsibility of EVERY person within an IT organization.
DevOps is a Cultural Mindset
Application Modernization Industry Quick Guides
Application modernization enables you to optimize business processes and transform the way you do business today, and in the future. Our industry experts have collected the latest application modernization trends impacting the automotive, financial services, healthcare, and manufacturing verticals.
In extremely simple terms, DevOps is a cultural mindset of a team or even entire organization. DevOps is everyone’s responsibility. As a result the implementation of DevOps within an organization requires a cultural shift. It requires breaking down walls, removing silos, eliminating egos, asking for help, and recognizing there is no I in Team.
What’s the most difficult part of building software?
The first thing that comes to mind for most people is some piece of Technology. This is wrong. The most difficult part of building software is really People. This is the entire reason a DevOps Culture is necessary!
At the core of DevOps Culture is Communication. For any project to success, every team member needs to affectively communicate with each other. There are many methods of clear and concise communication. Some of these are Email and IM, while others can take the form of Automated Deployments, Builds or many other practices.
DevOps is the responsibility of every member within an organization or team. It’s not the duty of any single individual or team. You can’t buy a product to do DevOps for you, like you can buy a Source Control system.
Being a Culture, DevOps can not be implemented with only a single process change. To successfully adopt DevOps and a DevOps Culture, your team or organization must fully embrace the necessary communication and cooperation necessary from Developers, QA, Operations, and any other possible member of the team.
Common DevOps Practices
Since DevOps isn’t the result of the implementation of any single process or tool, there really is an almost infinite number of possibilities to implement DevOps. However, there are a number of really common practices used throughout the industry.
- Continuous Integration
- Continuous Delivery
- Automated Testing
- Release Management
- Application Performance Monitoring
- Load Testing and Auto Scaling
- Availability Monitoring
- Automated Environment Provisioning / De-Provisioning
- Usage Monitoring
There are 2 things the above items have in common. The first isn’t technology related, it’s Communication. The second is Automation.
Communication is key!
When it comes to Communication, a team can’t over do it. There are so many problems that stem from miscommunication or a lack of it entirely. When teams don’t communicate affectively they are unable to perform at peak efficiency. Lack of communication results in a lack of cooperation and ultimately wasted time figuring things out or explaining them a 3rd, 4th or more time that necessary.
If everyone knows what steps to perform they’ll never need to ask for clarification again. Right? Wrong! People make mistakes. People forget things. They don’t just forget steps, even worse, they can forget to update the document that outlines the steps for others to take.
Automate all the things!
Automation is really the ultimate form of communication. Automation allows for the proper utilization of computers to do what they do best. Computers are best at performing repetitive, multi-step processes. When people do anything, they can make mistakes. When something is automated, the computer will perform the exact task over and over again the exact same way every single time. Guaranteed!
DevOps is about everyone within a team to affectively Communicate either directly or through automation technologies. With every member of the team taking responsibility to helping the team achieve the best possible level of success you will have a team that acts like a team. As a result the team will perform much more highly than you may think is currently possible before implementing the necessary changes.
Remember that DevOps is NOT a single process or tool. DevOps is a cultural mindset. As with any cultural shift, it can be changed slowly over time if necessary, however, it’s much easier if you can get full support of upper management or top executives within an organization.
The Puppet Labs DevOps Report contains a few statistics that can help with convincing others of the benefits of DevOps.
High-performing IT organizations experience 60 times fewer failures and recover from failure 168 times faster than their lower-performing peers. They also deploy 30 times more frequently with 200 times shorter lead times.