We've got to maintain a certain level of 'street-cred'.

A Look at Process Automation for App Deployment

A software team has just wrapped up a major release. The application has passed tests in both integration and user acceptance environments. Everyone has signed off and its features match requirements to the letter. All the difficult work is done by this point, right?

Not necessarily. The act of making the release available to a user or production environment is a greater challenge than some would expect. A recent survey from XebiaLabs has brought this difficulty into focus - around 30 percent of all software deployments were reported by a wide range of IT professionals to be “failing.” As such, application deployment is a prime candidate for process automation.

What effort does it take to automate deployment? It is a complicated issue given the speed at which the software industry moves. Many software platforms, such as .NET and Java EE, have been developed with the idea of self-contained, easy deployment in mind. However, in practice, there has been less benefit to keeping applications entirely self-contained as there has been to opening them up to external services and interfaces.

Developing scripts to automatically deploy components for such systems is tricky and creates configuration headaches. It is not surprising that the majority of firms use a combination of scripting and manual intervention in order to deploy software. Systems must retain their flexibility, even if it means that a deployment can take an entire day and be left open to manual error. In fact, in many cases teams are simply too busy to create adequate deployment tools. Or in some cases, the deployment tool would have to be so complex that it would require more development effort than the application itself.

Thankfully, viable markets have opened up for deployment process automation, especially in the mobile space. Third party players are stepping up to offer deployment (and testing) for applications. The adoption of platform-as-a-service (PaaS) could also fit into this category as it often streamlines the deployment of applications greatly.

It may also be important for software teams to flesh out a deployment automation process during the design phase. In the past deployment has often been a bit of an afterthought, something the team only approached after it completed the difficult work of design and development. However, the rate at which releases occur these days warrants an upfront investment in deployment methodology and implementation.