Teamwork, agility and communication set apart the most successful IT teams from the rest. It should come as no surprise: developments in technology and IT are the driving force behind many of the changes in our fast-paced world. The demands on the IT team have never been greater. There is pressure to deliver new features and software to users, added to vast data growth, budget constraints and the ever-present need to do more with less. To get ahead, IT teams have to rethink and reshape application development and IT operations as they need to be able to work together, understand each other and be adaptable and flexible. The DevOps approach is grounded in the belief that development and operations teams work as one, adapting to one another, and learning about the other’s work in order to better grasp the demands of their own role.
I’m a great believer in the saying ‘the whole is greater than the sum of its parts’ and this is how I see DevOps. Its name reflects the interdependent relationship between application development and IT operations teams. Traditionally these teams have been disparate, but in a DevOps operation each member pushes beyond their individual areas of expertise, in pursuit of greater operational agility and that requires more communication and team-work, in a quick and consistent manner. And it demands a much greater insight into the performance and demands of the entire infrastructure. In some organisations that goes against the accepted way of working – but the pay-off can be great. DevOps promises accelerated innovation with much improved results. To understand and implement DevOps, it’s helpful to investigate the failings of other approaches when it comes to today’s needs.
The Agile method and other myths
Successful companies are constantly looking for ways to improve, innovate and expand – and IT systems have a crucial part to play in this quest. Whether it’s by developing new products, adding new features, increasing functionality, or through innovative systems, processes and end-user applications, at lower costs and faster speeds, it isn’t always easy with current project elaboration methods which often see development and operations teams working in their own siloes.
Take the Agile approach for example, where early development and continuous improvement are advocated, but where new software is not always fully tested before it is built and implemented. This software development practice doesn’t involve the development team in the deployment: once the product is deployed, it is up to the operations team to handle it away from the development team. With DevOps, the teams work together at every stage, and the operational team fully understand the software release and its implications so they can properly run the deployment process. The Agile practice produces no solid evidence of how software will react when faced with real-life scenarios, making it impossible to predict its impact on operations. That’s because operations teams are not involved in the development of the product or service despite being the ones with the most insight into the issues faced by users in the real world.
Another example where a DevOps team would have been useful is the Samsung Galaxy 7 Note recall. Instead of carefully testing the product in real-life scenarios and subjecting it to actual stressors, Samsung wanted to meet the new iPhone release and accelerated the development and Q&A phases, only to discover after the release that the phone’s batteries could cause the device to explode or burst into flames. As a result, Samsung lost millions of dollars and customer confidence. In addition, all the years, talent and time the company dedicated to its product and R&D efforts are overlooked in the course of recent events.
The damage to the company’s public image could have been avoided if the DevOps method had been introduced, since it doesn't prioritise speed and rapid development but rather minimal disruption and maximum reliability. Samsung could have mitigated the risk by effectively instigating a process of coordination and cooperation between development and operations teams throughout the project.
In addition to the strong relationship between the teams, the primary strength of DevOps, is to focus on quick two- or three-day sprints as part of 30-day calendars for projects. These short development timeframes allow for frequent rollouts of new features, software, feedback cycles and fixes. There is scope within those timeframes to make changes as soon as a problem – or a new need – is identified which not only speeds up development, but also means the DevOps team is ready to handle any issue that arises quickly and with both development and operational skills.
The benefits of DevOps are two-fold: an organisation is able to adapt to its customers’ needs much more quickly and effectively, and the IT team can ensure the smooth running of the overall day-to-day business. But in order to successfully implement DevOps a company, and its IT team, must be ready for a complete culture shift, and a change in ideas around roles and responsibilities. Think about it: developers have generally been the “makers” of new software, new customer offerings and new features, while operations teams have largely been tasked with managing these capabilities in the production environment.
Implementing a DevOps approach requires both developers and operators to change how they view their roles – and to recognise the vital part they each play. It requires a shared understanding into how and why changes are being made, and the impact they will have on deployed infrastructures and applications. Both teams will need to undertake employee training about DevOps and the effective way to use it to its highest potential.
An internal audit can also 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. Don’t let an unknown regulation bring development to a halt once the sprints and 30-day timelines are a reality.
Insights into success
For DevOps to make a difference, teams must develop, test and release applications and features at a greatly accelerated pace. It relies on quick decision-making that can only take place with precise and dependable data-driven insights. Without this important foundation, teams risk putting out a solution that negatively impacts end-user experience.
Real-world, real-time situational data provides complete awareness of how application workload changes will impact the performance of production IT infrastructure. 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’s clear that DevOps can potentially enable companies to evolve alongside ever-changing business environments. 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 organisation.
John Gentry, CTO, Virtual Instruments