Subscribe

Drive time for the app economy

If the application economy is the fuel that drives innovation, DevOps is the crucial component of that fuel.

Jaco Greyling
By Jaco Greyling, Chief technical officer, DevOps, at CA Southern Africa.
Johannesburg, 04 Nov 2015

No matter how daunting it may seem, the reality is that for any company to survive and thrive in the new application economy, it needs to become a technology company. That means every business is a digital business. From CEOs to CMOs, to the new roles of chief digital officer and chief experience officer, companies are refocusing and reorganising teams to modernise, optimise, and integrate digital touchpoints.

As companies change the way they view and manage IT from the traditional role of being a cost centre to that of a being competitive differentiator - the need for digital transformation strategies has arisen.

This is why DevOps is quickly becoming one of the most valuable disciplines in every business to achieve this goal. DevOps focuses on improving the quality and speed of delivering new applications to the market.

What is DevOps?

Before deciding whether DevOps can be used, what it is and what it is not must be defined.

DevOps is not a product, or even a particular technology. It is a methodology that unites the often separate functions of software development (Dev) and operations (Ops) into a single, integrated and continuous process.

DevOps is all about breaking down the barriers between Dev and Ops. It leverages people, processes and technology to stimulate collaboration and innovation across the entire software development and release process. It is important, however, to understand that any attempt to implement DevOps needs to be aligned to a digital transformation strategy, which includes executive buy-in. Select a strategic business initiative or customer-facing application to showcase the benefits of DevOps and drive adoption across the organisation.

Planting the seed

Improving education, collaboration and cross-skilling are key elements in any DevOps strategy. Continuous education is a simple way of starting the cultural change within a company. Teaching all involved parties is important in order to really gain from the advantages of DevOps.

A large technology company in the US drove cultural change by starting small and using the results as a catalyst for building momentum. It pulled resources from different divisions to create a virtual DevOps team. Afterwards, these individuals would return to their departments, taking the message of DevOps back like a seed, and planting it. This in turn created cultural excitement, dynamic team volunteers (cross-skilling) and anticipation of real results throughout the company.

In traditional companies, developers tend to be focused on faster innovation and doing new things. But the mandate to operations is about: stability, control and predictability. Also, often Dev and Ops report to different areas within a company. It's as though they are on two parallel train tracks, but no matter how fast they go, they never meet. Left to themselves, Dev and Ops will often struggle to talk to each other, much less collaborate, and will remain mired in manual processes.

The result is employees who don't work well together, software that doesn't work reliably, and customers who are thinking about moving to competitors.

The difficult part - change

Companies must re-evaluate and rebuild their service delivery cycle in order to promote and facilitate change and bring about a cultural shift. One example of this is a current state workshop for reviewing company processes. It is important to get all the relevant stakeholders, from development to testing, release managers and operations, into the same room to discuss their roles (a day in the life of...) and key challenges.

This is important for fostering collaboration and exposing inefficiencies in the software development life cycle.

Continuous education is a simple way of starting the cultural change within a company.

For instance, developers might be asked to review the architecture and, where possible, refactor code to create smaller and more manageable components. This will result in more frequent releases, which in turn will lead to higher quality applications. For testers, re-evaluating the process could mean automating regression, integration or performance testing to improve speed and quality. For release managers, automating the release and promotion process can bring about huge cost savings.

Addressing people and processes alone will not help, especially if systems are working at cross-purposes. Firstly, it is essential to ensure the systems that development, testing and operations use to manage their workflow and address problems are interoperable, so development has visibility into testing and operations. This can be done by integrating existing systems, but often it makes more sense to implement something that is designed purposely to create an integrated workflow across the entire process of development, test, and release.

It also makes sense to put testing environments in place that duplicate the conditions found in the production environment - such as service virtualisation, backed by the detailed performance scenarios uncovered by data mining the logs of the production environment. This guarantees testing is more predictive in terms of the application's real-world performance. For one credit card company, it meant a 30% increase in sprint velocity (productivity), which in turn reduced time to market and generated $8 000 000 in savings in one year alone.

Continuous delivery crucial

Tools are also needed that automate the release of new code into production, which include internal documentation so, especially with big teams, it actually enforces the DevOps mind-set of collaboration, integration and communication.

This release automation ensures a configuration that works properly during testing will be translated faithfully into something that will work in production. It eliminates human error while simultaneously speeding up the whole software development life cycle. This increases a company's readiness for continuous delivery, where apps are updated every few minutes, not in days, weeks or months.

It doesn't really matter in what order these issues are addressed - the important thing is for businesses to get started if they don't want to be left behind in this competitive environment.

Share