Traditionally, software development has used a “waterfall” method which follows a rigid process working through required steps. These include gathering, design, implementation, verification, and finally a long-lived maintenance phase. Each phase must be completed before the next phase may begin.
The waterfall approach comes with various disadvantages including “interminable up-front planning” [Loukides] and rigidity that even with extensive planning still “does not cater for the possibility of requirements changing” [Hughey].
Additionally, vendors in some clients’ experience may have been unclear with their development plans and/or unwilling to develop test plans to ensure all project requirements are met. Fresh iterations of software have had slow turn-around time due to non-standard deployment processes.
The DevOps methodology is the best approach to deliver software that meets market needs. DevOps is a team culture that “seeks to improve collaboration between operations and development teams” [Gartner]. The use of DevOps improves client satisfaction at all stages of software development, increasing communication and transparency while, decreasing turn-around time for deliverable iterations of code. Developed test plans for acceptance criteria ensure client needs are met and potential areas of improvement are continuously monitored.
There are multiple definitions for the steps involved in the DevOps cycle as the concept is flexible depending on the needs of a development team and project. The core steps common to any DevOps practicing group which together form a prosperous cycle are:
The "State of DevOps 2021" survey [Google] of over 32,000 software development professionals shows the stark differences between vendors using DevOps practices and those who don’t. In the table below (partially reproduced from the report) we see:
Software Delivery Performance Metric | Elite Expertise | Low Expertise |
---|---|---|
Deployment Frequency | Multiple deploys daily | Less than 1 every 6 months |
Lead Time for Changes | Under 1 hour | Greater than 6 months |
Time to Restore Services | Under 1 hour | Greater than 6 months |
Change Failure Rate | 0%-15% | 16%-30% |
Vee Healthtek, DevOps Elite Expertise
Clients and end users expect that software will be shipped frequently and on time. In 1991 when Linus Torvalds started development of a computer operating system, the Linux kernel, he chose to implement rapid release cycles and gather feedback often. This was against the norm of the time where typically only large, long development window deliverables were shipped in a practice called "cathedral building" [Raymond] and feedback was sparsely collected.
With small and frequent releases enabling rapid gathering of feedback (which in turn helped plan future development direction), the Linux kernel grew rapidly into an in-demand operating system. Today, billions of devices use the Linux kernel and Torvalds’ early insight into the power of rapid development has become mainstream and a core tenant of DevOps.
Project documentation is another important part of a successful DevOps strategy. Strong documentation helps onboarding new development team members to a project and aids in tracking the myriad of intricate details the team needs to continue progressing. Transparency in testing procedure documentation also helps ensure client satisfaction with the delivered software and, in turn, reinforces project security, reliability, and better utilization of cloud resources [Google, page 21]. The impact of good documentation is felt throughout the entire DevOps cycle and is a great place for everyone to contribute.
Software development is an ever-changing art form. Thousands of combined years of professional engineering have brought us to the evolving DevOps cycle which itself is refined and tailored to the needs of each practitioner. The question is no longer why use DevOps? But why aren’t you?
All efficiencies gained by Vee Healthtek’s use of DevOps are enjoyed by our clients with fast iterations, feedback acknowledged and implemented, with transparency into the process.
The success of a DevOps implementation is meeting the client’s needs and together we will achieve extraordinary outcomes.
Gartner – Information Technology Glossary
https://www.gartner.com/en/information-technology/glossary/devops
Google - “State of DevOps 2021”. Chart partially reproduced from page 9.
https://services.google.com/fh/files/misc/state-of-devops-2021.pdf
Hughey – “Comparing Traditional Systems Analysis and Design with Agile Methodologies”
https://www.umsl.edu/~hugheyd/is6840/waterfall.html
Loukides – “What is DevOps? What we mean by "operations," and how it's changed over the years.”
http://radar.oreilly.com/2012/06/what-is-devops.html
Raymond – “Release Early, Release Often”
http://www.catb.org/~esr/writings/cathedral-bazaar/cathedral-bazaar/ar01s04.html
Wikipedia – Devops-toolchain.svg, Creative Commons Attribution-Share Alike 4.0 International license. Step terms edited from original graphic.
https://commons.wikimedia.org/wiki/File:Devops-toolchain.svg