CASE STUDY

The man in the machine: Incorporating DevOps through people, processes and technology

The man in the machine: Incorporating DevOps through people, processes and technology

Posted by Hans Ashlock April 13, 2016

Organizations continue to adopt DevOps as the primary way they develop, test and deploy applications. However, some are still shackled by the burden of legacy and on-premises infrastructure, making it more difficult for teams to delivery infrastructure to end users. In fact, a Quali survey from late last year found that most organizations take over a week to deliver this infrastructure, and 75 percent take more than a typical workday. Some of this is due to the fact that application workloads are becoming more complex – the survey reported that 40 percent of application environments have a mix of physical and virtual requirements.

All of these reasons – the inability to deliver applications and infrastructure in a short amount of time and the growing complexity of these workloads – show why organizations are moving toward implementing DevOps strategies. By making software development a more collaborative process and keeping teams in the loop throughout the development lifecycle, organizations can better support innovative endeavors and handle workloads more effectively.

With the continued adoption of DevOps methodologies, it's going to be critical for teams to understand the ins and outs of the DevOps lifecycle. But first, let's answer a critical question: Why do organizations need agile development in the first place?

Why agile? Why DevOps?

In many ways, waterfall development methods are antiquities. They are an anachronism in today's high-tech, fast-paced software development landscape. The waterfall model includes a sequential and linear approach to development: Every step happens at its own pace, one thing at a time. While this seems like a good way to avoid pitfalls and make sure software is bug-free, it doesn't lend itself very well to fast processes or deploying applications with any sort of speed or consistency.

Enter agile processes. Agile software development is a set of methodologies that are more focused on decreasing time to market and delivering a product that has been tested throughout the development lifecycle. Following best practices for continuous integration, teams can detect issues with their code and make changes before anything is pushed to deployment.

In 2015, according to Gartner, the total revenue for DevOps tools reached a staggering $2.3 billion, growing at a compound annual rate of more than 21 percent from 2014. The tech research firm predicted that in 2016, DevOps methodologies would begin to see widespread use, being employed by 25 percent of Global 2000 organizations. This is a clear indication that waterfall methodologies are going the way of the dodo, and companies are going to need to know how to incorporate DevOps into their IT strategies if they don't want to be left behind.

"Who is the man in the machine? What is his job?"

The "how" of DevOps

In order to transition away from waterfall development methods, teams have to combine processes, people and technology to create a model that fulfills client and business expectations. This is where DevOps is becoming an essential part of the app development paradigm. Another way of looking at DevOps is that these strategies are what make agile software development a possibility.

What makes DevOps tick? People, processes and technology are all essential pieces to the DevOps puzzle:

1. People
DevOps engenders a new mindset in the application development department: Namely, that in order for the best app to be created in the shortest time frame, all hands have to be on deck. This requires a concentrated level of collaboration between all teams involved in the development, testing and deployment of software, including non-IT personnel. Without the right kind of collaborative environment, application quality can fall by the wayside. This in turn could lead to disgruntled customers and unfulfilled expectations.

A question to ask when it comes to DevOps and dev teams is: Who is the man in the machine? What is his job? It's said that it takes a village to raise a child; well, it takes a whole team working together to facilitate agile and DevOps. Making sure team members are on the same page is critical – and asking the question of who, exactly, is the man in the machine reveals that, in fact, it's the entire team.

2. Processes
Agile processes, as previously mentioned, are more focused on decreasing time to market and emphasizing application success through the use of continual integration and testing. With agile, it's about step-by-step processes, where teams work on each part of the project with client approval. In other words, instead of delivering one large application at the end of the project, teams will incorporate customer feedback throughout the development lifecycle so that they can be sure to deploy a product that fits both business and customer expectations.

"At the heart of DevOps are the applications, as each owns a vital role in how businesses fulfill their requirements," wrote DevOps Digest contributor David Hurwitz. "Improving communications and integrating processes between these divided groups is something the entire IT industry should be working towards, as the speed we need to deliver software today is ever increasing and at the same time the tolerance for application errors is decreasing."

"Cloud sandboxes allow testers to play around and build whatever they like."

3. Technology
Having the right DevOps tools can make all the difference when it comes to creating, testing and deploying new applications. Especially in the new world of DevOps and agile methodologies, it's critical to have the right tools for the job. In its predictions for 2016, Gartner noted that DevOps emphasizes people and culture over tools and processes, but didn't fail to mention that without the right technologies, implementation is only a dream. The five key characteristics of DevOps, according to Gartner, are iterative, collaborative, automated, continuous and systemic. There is an inherent understanding that, if organizations use DevOps, the computing environment is always on demand – in other words, it's like the private cloud.

This is where solutions like the ones offered by Quali come into play. Quali's cloud sandboxing platform, CloudShell, allows developers and testers to create production-like environments in which to create and test their code. These sandboxes are just like their namesake - they allow testers to play around and build whatever they like, and at the end of the day, the resources can be broken down to make room for other projects to be created and tested.

In an interview with App Developer Magazine, Quali CTO Joan Wrabetz stressed the importance of giving testers this kind of freedom - both creatively and architecturally. Teams can configure sandboxes to respond in a similar manner to their internal IT environment, and then reconfigure them to mimic external cloud environments, all while performing important stress tests on the code to see if it holds water.

"This is a lot like a child's sandbox because you can bring all your toys into the sandbox and make anything you want in the sand," Wrabetz said. "Then, if you don't like it, you can just stomp it out and start over. The bottom line for developers is that they can develop more software faster with higher quality."

It's important that people, processes and technology are all on the same page in order to create a successful app.

So with this combination of people, processes and technology, organizations can hit the ground running with DevOps and make sure their development and testing teams have been given the right environment for success.

The takeaway: DevOps has been growing in popularity among application developers. As 2016 progresses, it's going to be interesting to watch the growth of these methodologies. In implementing DevOps, organizations need to use a combination of processes, people and technology to ensure the success of their deployments. The Quali CloudShell sandboxing platform provides a space for devs and testers to create their code without tying up critical resources, facilitating DevOps adoption - turning the man in the machine into an active participant in the automated world of app development.