Continuous delivery is a software-development paradigm that aims to put business requirements in control of the process. It thus recognises the fact that businesses rely on software for competitive advantage, and thus that software development has to be achieved in such a way as to enable business strategy.
However, says Ziaan Hattingh, MD at IndigoCube, most South African businesses are not yet ready for continuous delivery.
Continuous delivery describes a development discipline in terms of which software can be deployed throughout its life cycle. This means that instead of development teams focusing on new features, they focus on ensuring that software is deployable. It’s a change of emphasis that aims to make the decision about when an application becomes available a business one, and not something that is constrained by IT.
“Today’s customers are increasingly demanding, and they want their desires met rapidly – and competition is fierce. This means that the window of opportunity for any new application is correspondingly small: companies that can get innovative products or services to market fast are at an advantage, and that’s what continuous delivery aims to enable,” Hattingh says. “It means moving away from thinking of changes in terms of batches.”
It’s a very real problem. The average time to complete a project using traditional, batch-oriented approaches can take up to 1 000 days to complete – a time lag that is simply not acceptable in today’s highly competitive and fast-moving business environments.
However, Hattingh goes on, the continuous delivery approach represents a new way of thinking and working for most companies, both here and overseas. Software development teams themselves are typically best placed to make the transition, but the traditional business functions still tend to be thinking in terms of discrete projects, delivered in batches. “Batch thinking” permeates most business processes, from finance to marketing.
Hattingh argues that business should use Agile as a way to begin changing mind-sets and preparing the ground for continuous delivery. Agile emphasizes the collective and collaborative power of the team with a focus on outcomes, rather than on defined roles.
Another key development in the Agile world is the emergence of DevOps, which aims to overcome structural challenges in the typical application life cycle, improving the speed and efficiency at which applications can be developed, deployed and managed, by bridging the divide between software development teams and operations/ infrastructure teams.
In fact, Agile ways of thinking are starting to be applied beyond software development to the business as a whole, all in the name of creating enterprises that are Agile/ agile, able to respond with the speed necessary to remain competitive in today’s environments.
“Companies are still struggling to realise the immense benefits to be had from implementing Agile across their software development functions and then more widely into the organisation,” says Hattingh. “By getting that right, I believe they will have made a good start in preparing themselves for continuous delivery.”