If I had to make a prediction about the future of software delivery, I would say that it will look a lot like it does now—but closer to perfection. Over the next five years or so, I expect the process of software development and delivery to be much smarter, faster and better because enterprises will continue to learn from their mistakes and refine the ways they do things. Increasingly, enterprises will need to smoothly align their business objectives and operations with their software objectives and operations.
Ultimately, all enterprises will practice some variation of Continuous Delivery (CD) if they want to compete against nimble and aggressive rivals with little or no legacy baggage weighing on their software. Nowadays, CD is being embraced piecemeal and judiciously by savvy enterprises seeking to deliver software with minimum lag between the creation of ideas and the creation of production-ready software.
I don’t think it takes much of a crystal ball to claim that the average enterprise will be very strongly defined by its software strategy. The writing is on the wall in big capital letters. Most businesses, whether they want to admit it or not, are now effectively IT companies.
It doesn’t matter whether a company is really an IT business, such as Google or LinkedIn, or is providing IT services in the cloud, or other services such as banking. This is the reality: IT services are no longer something you have in your back office that just keep the lights on. IT services have become an essential part of your customer-facing image or your customer-facing service offering.
The customer is king
Customers are calling the shots like never before. They (and we) all want the best software features accessible from every kind of device they own—and they want them 24×7. Such neediness puts tremendous pressure on businesses just to survive.
Here’s some anecdotal evidence to support my observation about the supreme power of the customer. Over the past year or so, I’ve been in meetings with CIOs from huge corporations, and have repeatedly heard statements all echoing this basic thought: “If we don’t quickly figure out how to revamp the way we deliver our applications to our customers in the next four or five years, we run the risk of disappearing.”
Of course, enterprises aren’t standing still. There are very smart people there who are well aware of these existential challenges. To address these, organizations have embraced a series of initiatives, methodologies and innovations at multiple levels—think agile, cloud, Continuous Delivery, DevOps, microservices and virtualization to name just the most pervasive developments.
These developments, spanning technical, architectural and business issues, have been tested or implemented in many enterprises. For example, more than 50% of companies claim to do some form of agile, now the most widespread software development methodology.
The influence of agile can’t be underestimated. The principles of the Manifesto for Agile Software Development are as relevant now as they were when they were written in 2001. Here are just the first four principles:
- Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.
- Welcome changing requirements, even late in development. Agile processes harness change for the customer’s competitive advantage.
- Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.
- Businesspeople and developers must work together daily throughout the project.
The way forward will involve an iterative approach
Obviously, the typical enterprise cannot do agile overnight and throughout the organization if it is burdened with enormous monolithic applications, which require hours just for compiling. On the other hand, those legacy applications cannot just be dumped because they are deemed to be too old. They are still critical to the business.
On an operational level, enterprises cannot simply change their entire software development life cycle, replace their methodologies, and revamp their data centers overnight. The smart play for enterprises is to make incremental changes to one or two key business areas that allow them to make changes more rapidly, and to more quickly check whether these have the desired outcomes on their software development culture and business.
The future of software delivery in the enterprise will need to follow an evolutionary path, not a revolutionary one. The key approach will be iterative, customer-focused, and likely agile-based. Enterprises will take smart, incremental steps to accelerate and improve the ways they develop and deliver software. Vive l’Evolution!