Getting Agile And Staying That Way
November 2, 2016 John Gentry
Let’s be honest. Although the old saying “slow and steady wins the race” may be a lesson that helps us get through school, it isn’t a realistic credo for the unrelenting demands of today’s fast-paced businesses. Faster may be better, but only if quality doesn’t suffer – and this puts immense strain on agile organizations that must continually deliver new features and software to their customers.
Meeting these needs, and doing so with efficiency, requires rethinking how we view application development and operations. For organizations embracing and addressing these challenges, the pursuit of DevOps is the new normal, but it is far easier to say DevOps than it is to actually adapt and do it.
DevOps gets its name from the conjoined and interdependent relationship between application development and IT operations teams that are pushing beyond their own silos in pursuit of operational agility. Its goal is to improve the efficiency and pace of development and deployment of applications and the overall relationships between the two often-disparate sides. This requires more communication and collaboration, and with higher speed and higher accuracy needed for both. The expectation beyond the theory is that this will enable companies to innovate more quickly and consistently. We will get into how this happens in practice, but first, it is important to see how previous development methodologies can fall a bit short for today’s needs.
Agile As Attitude
Companies throughout every industry rely on constant innovation, delivering functionality and features to their end user applications and interrelated systems and processes. New versions and entirely new products need to be delivered on time and on budget. This applies equally well to a manufacturer of widgets as to a hyperscaler with a web-facing consumer application.
Pushing innovation is an area where other methodologies can come up short. For example, with agile development, a company doesn’t know exactly how a new software offering will be adopted and stress-tested in the real world before it is actually built and deployed, making it impossible to predict how it will impact operations. This makes it almost impossible to calculate ROI in the project planning, approval, and development phases. Companies basically go in blind, unsure of how much a project will cost, how long it will take, and how much value it will provide. Doing this without a clear understanding of costs and the resources needed to determine which projects will be delivered and when is irresponsible and possibly negligent.
A case in point is the Samsung Galaxy 7 Note recall and how the company handled the crisis following the disclosure that its batteries could cause the devices to explode or burst into flames. Essentially, Samsung rushed development and quality assurance to meet the newest Apple iPhone release. Billions of dollars have been lost and customers may customers may never trust the company again. In addition, all of the talent and time the company dedicated to its product and R&D efforts over the years are forgotten in the wake of this recall.
These potential product unknowns are where DevOps has a clear leg up over other methodologies. DevOps focuses on quick two-day or three-day sprints as part of month-long calendars for projects. These short timeframes help provide a few benefits. First, they allow for frequent rollouts of new features, software, feedback cycles, and fixes. With customer and business needs evolving concurrently, at a daily rate, these short, reliable development times are a necessity. (This quick turn approach is obviously easier with software than with hardware.)
These sprints, rather than marathons, also help in the area of budgeting and expectations. Projects of shorter length, with defined goals, are inherently easier to estimate – both the returns they will deliver and the resources they will cost. Sprints can also be implemented whenever needed, and not on an arbitrary, all-encompassing basis that doesn’t fit the needs of specific customer or business segments that rely heavily on frequency of innovation.
Ultimately, DevOps provides businesses with a framework for producing solutions on budget and on time. Moreover, these solutions fit exactly what the business needs and are developed efficiently and collaboratively.
Changes: Cultural And Technical
Implementing the DevOps methodology is not as easy as flipping a switch or installing an app, any more than shifting from homegrown and disparate applications to enterprise resource planning (ERP) suites was for enterprises in the 1990s. A company must fully commit to changing both the culture of its development and IT teams and in the technology it deploys, and this is as true for DevOps today as it was for ERP two decades ago.
A drastic change for many companies involves culture and technology – moving away from the concept of IT as a utility. Gartner’s bi-modal concept for IT provides a good way to discuss this shift. In basic terms, it divides IT into the more traditional support and security role, and also a role that involves constant innovation and improving business processes.
Clearly there will always be demand for the first role, and service providers can provide value there. But the idea of relying solely on service providers for IT, which may have made sense for many companies in the past, actually limits the capabilities of the IT organization in the second mode. It is this second mode – innovation and improving business processes – where focusing on DevOps provides value. Not surprisingly, it is also the reason for many of the other required changes.
Culturally, DevOps can be disruptive to traditional enterprise personnel alignments. Thinking historically, developers have generally been the “makers” of new software, new customer offerings, and new features. Operations teams have largely been tasked with managing these capabilities in the production environment. As Rudyard Kipling said, “and never the twain shall meet.”
The DevOps framework allows these two historically disparate teams to collaborate closely. While this certainly enables quicker development and deployment of solutions, it also has the potential to create some friction. DevOps requires both developers and operators to change how they view their role. It’s not that easy, though. This change isn’t just a mindset; it needs specific actions to make it effective. It requires a shared understanding and visibility into how application changes will perform on the deployed infrastructure.
Employees on both sides will likely need retraining to educate them on how DevOps works and to get them familiar with new roles. To be clear, people are not losing their jobs, but employees must be trained on a wider range of collaborative skill sets for DevOps to be as effective as possible.
It is also worth noting that while not exactly a cultural change, an internal audit can be very beneficial when implementing DevOps. Internal controls and compliance issues are a major aspect of many businesses. Identifying them and their requirements early in the process can help avoid headaches later. Once the development sprints and 30-day timelines are a reality, an unknown regulation can grind things to a halt.
Enablement: Analytics Driven Decision Support
To fulfill on its charter, DevOps requires changes to existing technologies as well. The benefits at the core of DevOps do not just happen; they require developing, testing, and releasing applications and workloads at a greatly accelerated pace. To fully understand how much a project might cost, how long it might take, and what benefits it will provide requires technology and process improvements.
The collaboration that drives DevOps must be based on accurate, reliable, data-driven insights. From this foundation, quick decisions can be made with confidence. Without this foundation, teams risk putting out code that negatively impacts end-user experience.
Specifically, workload performance simulation, testing, and validation analytics are needed in test environments. These should be integrated with real-time performance monitoring and analysis from production environments. This complete solution covers the entire development cycle, providing all the information required to support decision-making and maximize control.
This real-world, real-time situational data provides complete awareness of how application workload changes will impact the performance of production IT infrastructure, and enables collaborative teams to tune and adjust their infrastructure as changes and shifts occur without affecting end users. The insights and knowledge learned with every new release ultimately enable the assured performance, lower costs, shorter timelines and overall improved IT efficiency that DevOps promises.
It is clear that DevOps can potentially enable companies to evolve with ever-changing business environments. DevOps success requires uniformly adopted, data-driven collaboration between IT and development teams to deliver solutions. When this is achieved, the entire business benefits through decreased costs, improved development times, and – ultimately – a more efficient, agile organization.
John Gentry is chief technology officer at Virtual Instruments, a provider of performance analytics tools for IT infrastructure. Prior to joining the company in 2009, Gentry was senior director of InfiniBand sales and solutions consulting at QLogic (now part of Intel), and has had consulting and marketing roles at McData, NonStopNet, and Borland International before that.