The world of independent software vendors, and enterprise developers and operations engineers has changed drastically in recent years. Once a stable domain with a well-understood development cycle that proceeded on a cadence of months or even years, enterprise software development is now expected to proceed at a pace that involves multiple daily code integrations.
The expertise of operations engineers on the physical layer — however impressive — is often insufficient to manage the fluid requirements of developers for development, testing, staging and production environments. To support an agile workflow with continuous integration, infrastructure must move at the speed of code.
Ops has always involved automation of some type. Not so long ago, automation was relatively rudimentary — the domain of the expert ops engineer and their carefully cultivated collection of scripts. Empowered by virtualization, the cloud, and cloud APIs, automation has become second nature in an IT landscape that combines the virtues of ops expertise and coding. With tools like Puppet and Chef, the line between code and infrastructure is largely elided. We code both the software and the infrastructure on which it will run.
The benefits to independent software vendors and their enterprise clients are obvious. Cloud-based code review, testing, and deployment coupled with continuous integration workflows allow large and small developer teams to code, integrate, and deploy changes to software on a timeframe that could only have been dreamed of a few years ago.
The ability to quickly and consistently deploy new code is a competitive goldmine for ISVs. Because the bulk of testing, integration, and deployment is automated, including on the infrastructure level, ISVs can be radically responsive to client needs. Software advances on tight cycles, and the automation of most of the non-coding work allows vendors to extract the maximum value from coders — more time is spent designing software and coding it, less time managing infrastructure and code integration.
No one would argue that traditional enterprise software provides the best experience for end users. There are a variety of social and business factors that influence the state of enterprise applications, as we’ve discussed on this blog before. The power of cloud-based development workflows is that enterprise software can be responsive to end user requirements — we aren’t stuck with the features that seemed like a good idea three years ago during last upgrade cycle. Development can be responsive to real-world data and client input, enabling ISVs to build solutions that empower users to maximize productivity.
“Automation and intensive collaboration support the business to make small changes safely, thoroughly validate the safety of each change before rolling it out, immediately evaluate its impact once live, and rapidly decide and implement new changes in response to this information. The goal is to maximize both business value and operational quality.”
Automation and real-time infrastructure deployment isn’t just about getting more work done in less time; it’s about doing better work, more secure work, work that safely brings clients the features, tools, and experiences they need, when they need them.
Image: Flickr/Filter Forge