Over the last few years, many organizations have adopted agile development to quickly bring ideas to life. In a matter of days or weeks, a team can develop an application. But what about after the application has been completed? A new innovative idea has been created and now it is time to bring the operations team on board, start the request for a server, talk to the database administrator to request a database, and if everything works out, within a few days or weeks you have a server and a database, for your test environment.
For many larger organizations, this development and operations process is a very familiar experience, with rigid operations and distributed ownership. The focus has been on improving the speed and flexibility between the business and the development side of IT. This is where it seemed we could get the most benefits. But after transforming your organization to support agile development, how can you keep the same agile pace during the maintenance of your application? This is where DevOps can make a difference.
What is DevOps?
According to “The Agile Admin”:
DevOps is the practice of operations and development engineers participating together in the entire service lifecycle, from design through the development process to production support. Characterized by operations staff making use of many of the same techniques as developers for their systems work.”
DevOps is a cultural change that allows you to break down the barrier between the development team and operations team. Instead of having two siloed teams, DevOps focuses on bringing the operations lifecycle into the same agile experience as the development teams. When adopting the DevOps philosophy, a single DevOps team will remain responsible for a product for the entire lifecycle of the product.
DevOps is the catalyst to start this cultural shift and bring the full IT team into the agile mindset. All to improve the deployment frequency, allowing a faster time to market, a lower failure rate of new releases, shortened lead time between fixes, and faster mean time recovery (disaster recovery).
Corporate Advantages of DevOps
There are many reasons why organizations choose to move towards DevOps. These are the six reasons that our customers deem most important for adopting DevOps:
1. The elimination of knowledge transfers between departments
When one DevOps team owns the entire lifecycle, a single team becomes responsible for all aspects. They still rely on the support of other organizational units, but the ownership and work stay within the same team. This results in a better quality of the software and maintenance since the (Dev)Ops teams truly understand the problems and why something has been developed a certain way.
2. Decentralized responsibility [towards the team]
By allowing the team to adapt towards the needs of the products that they maintain, the teams can come up with better ideas for improvement and maintenance due to their previous experience.
3. Agile teams & processes throughout the entire application lifecycle
When the entire application lifecycle is fully agile, organizations can achieve even quicker time to market for new functionality and products.
4. Ops is no longer ‘just’ keeping the lights on
When issues come up, the DevOps team has the ability to listen to the users and implement the needed functionality or fixes.
5. Reduced cost and risk after the deployment
There is no handover between two teams. The same team that developed the functionality is involved in the go-live, and support during the riskiest moments.
6. Continuous Organizational automation by the (Dev)Ops teams who are constantly trying to improve and speed up the most time-consuming processes. This results in faster and more reliable delivery of functionality after every release.
DevOps is About CAMS
As with adopting agile, a change in mindset is key to a successful DevOps adoption. When you are implementing DevOps, it is key that you change your way of thinking and working. A great thing to remember while making the change is CAMS. John Willis and Damon Edwards were the first people to introduce the term CAMS. CAMS is an acronym that represents the core values behind DevOps:
- Culture: People and process ultimately make DevOps successful, and everybody needs to support the vision.
- Automation: Continuously automate the most tedious or time-consuming tasks, and link all used tools together into a single (automated) process.
- Measurement: You need objective measurements to understand where to improve and automate first.
- Sharing: As part of the culture, it is important to share ideas and improvements within the team, but also across other teams.
At Mendix, we recognize these core values to be critical in the transformation, but successful adoption goes beyond just these values. There are more areas to focus on when adopting DevOps. I will discuss common challenges and pitfalls in the next blog posts as I identify four focus areas during the transformation. I’ll explain how these focus areas can impact your organization and how the CAMS values fit in these areas. Later we’ll also provide some tips and tricks when scaling DevOps and how this fits in the start-structure-scale approach recommended by Mendix.
Stay tuned for more blog posts on DevOps!