“Fail fast, learn quickly and ending lengthy hand-over procedures between in-house development and testing teams was key to ghTrack®becoming Europe’s largest data sharing service for the supply chain,” says Finn Normann Pedersen, Senior Product Manager, GateHouse Logistics
According to a recent survey from research firm Statistica, only 17% of software companies have fully embraced the so-called “DevOps” culture in their workplaces. By early 2018, a further 22% percent of software firms had started their DevOps journey, and only three percent had never even heard of it.
Industry analysts are united. Research from Gartner, for example, calls for those responsible for application development strategies in digital business initiatives to ensure that quality is a team focus by making use of communities of practice or guilds to discover, share and evolve best practices. Gartner believes that shifting the focus of QA from quality assurance to quality assistance is the way ahead.
The DevOps culture is a perfect example of how ideologies tend to shift very quickly in IT and keeping a software business agile is one of the most important ingredients of a successful company. If a company can adopt, test and release new applications in the shortest timeframe, it gains business advantage.
Let’s dig deeper and look at the underlying reason why DevOps has become much more than just an enterprise buzzword.
A development team finishes building a new application and sends the code to QA. After a period of testing, QA sends the code back to the Dev team with all identified bugs. This is where the hand-over problem and culture begins. Developers get angry claiming that QA didn’t “test” properly or look at “the bigger picture,” while test people insist that “it’s not our process, it’s your code.”
After let’s say another week of going back and forth, the bugs are fixed and the code is shipped to the operations team for deployment. Dev/QA says everything worked great in “their” environment, but when the application is deployed in production, it creates contention with neighbouring workloads in a shared virtualized environment. The production environment is de-stabilized.
This lack of cohesion or trust among various business teams sparked the roots of the joined-up enterprise DevOps culture and heralded a new era of software development.
The DevOps movement was born around 2007 in Europe with the fundamental idea that there needed to be a direct connection between developers and operations and for them to meld into a joined-up connected process flow.
A DevOps program typically involves three groups … developers, operations and test people. With the program, the product “team” has all the needed competences to deliver business value, which explains why it fits “well” with the DevOps concept. Agile and LEAN processes typically focus on efficiency, automating work and building quality into work processes in a cyclic manner.
While DevOps is a friend of Agile, the main reason for adapting Agile for DevOps is to use it for continuous software delivery. At a stroke, developers can fail fast, learn quickly, and deliver more business value in shorter timeframes.
Continuous delivery is a development practice that involves deploying code to a shared repository several times per day. Using an automated build process in combination with automated testing helps to verify each check-in, which produces more stable software. It allows developers to identify problems earlier.
Due to the agile nature of a DevOps environment, DevOps teams can introduce new functionality in smaller, more modular deployments. Because these deployments are more targeted and isolated, bugs are easier to spot and in turn, fixes are often faster and easier to implement.
The team only has to check the latest code changes for errors to be able to fix the issue. This brings considerable benefits to a software business. Being able to implement bug fixes faster, keeps customers happy and frees up valuable resources to concentrate on other tasks, such as designing, developing and deploying new functionality.
The combined use of version control systems, continuous integration, automated deployment tools and test-driven development (TDD) allows DevOps teams to implement smaller incremental change sets.
Because of these more modular implementations, DevOps teams can expose problems in configuration, application code and infrastructure earlier, as responsibility isn’t passed to another team once coding is complete.
With small change sets, problems tend to be less complex and resolution times for issues are faster simply because the responsibility for troubleshooting and fixes remains contained within a single team.
Software companies need to invest heavily in automation of testing and automation of software deployment to customers. By implementing a DevOps approach, they can reduce significantly the costs and demand for resources associated with traditional IT implementations.
Traditionally, IT was seen as a cost center but the implementation of DevOps has shown that this approach provides real business value. When you use continuous delivery and LEAN management practices, you get higher quality results and shorter cycle times, further reducing costs.
There is an enormous amount of waste in traditional IT environments. Time is often spent waiting for others to complete tasks or in solving the same problems time and again, and this causes frustration and costs money.
Standardized production environments and automation tools help make deployments predictable. These processes free up people from routine tasks, allowing them to concentrate on the most creative aspects of their role and adding value to the business and benefiting everyone.
The type or complexity of systems these practices get applied to is not a significant factor. As long as software is architected with testability and deployability in mind, high performance is more than achievable.
Puppet Labs research showed that DevOps IT teams significantly increase performance over non-DevOps teams. Specifically, they:
- deployed 30 times more code
- deployments were 200 times faster
- achieved increased stability
- had 60 percent fewer failures
- the mean time to recover (MTTR) was 168 times faster
By 2020, Gartner believes that DevOps initiatives will cause 50% of enterprises to implement continuous testing using frameworks and open-source tools. DevOps is no longer an enterprise buzzword. If DevOps laggards fully embrace the concept, they too will soon gain business advantage.