Skip to main content

Software Release Management - A Problem Overlooked (Part 1)

(Originally published by me on www.servicevirtualization.com)

This is the first of two parts discussing the problem of software release management and how automation can be properly used to alleviate these problems.
 
ITIL has Release Management. There are also Six Sigma and CMM. These are all process-oriented "libraries" that deal with the development and release of tangible products or business services.  Yet ask any application development professional if any of these deal with the actual problems of software release and they will unanimously answer "no."

After CA Technologies announced that it had acquired Nolio, the leader in software release automation, I started taking a closer look at the actual problem that Nolio addresses.  And what I found is this: current literature on software release addresses the process-related problems but none has yet discussed how to address the realities of the actual movement of software from one environment to the next.

Remember: Environments Vary

For example, take a look at this excellent case study written about a British telecommunications provider. In the article, the authors describe seven steps they took to turn around the Release Management process at their client. And even though they give a nod to automating the deployment of the software (step 5, entitled Automate and standardize as much as you can), they gloss over one important point in software release.

That point is this: environments vary. A single server might be fine to house a web server, application server, and database server for a single developer, but it'll never do for QA, Performance Testing, and Integration Testing, much less UAT or a Disaster Recovery environment or even Production. And so the process of deployment requires uniquely designed scripts that are unto themselves applications that must be tested and validated for correctness. Ultimately, they are complex enough to require maintenance, and in the event that the infrastructure architecture changes beyond the trivial, changes must be coded, tested and validated again.

Do you want fault tolerance, i.e. rollback capabilities? You need to code that. Do you want auto-configuration of your WebSphere environment? You need to code that too. In fact, for most operations beyond simple file transfers, administrative programs need to be invoked with complex configuration parameters that vary from environment to environment.

Survey: Most Respondents Unhappy With Release Processes

How bad is the problem?  According to a 2008 study by IDC, 30 percent of all defects are caused by incorrectly configured application environments. For the remaining 70 percent, things don't look much better. Forrester's Q4 2010 Global Release Management Online Survey suggested that the time needed to roll out a single change to an application was between a day and a week for 39 percent of respondents. For 11 percent of respondents, the time was between a week and two weeks. For 18 percent, it was two weeks to a month.

Here are some other eye-opening statistics from the Forrester survey:
  • 64 percent of respondents were dissatisfied with the level of automation in their software release processes.
  • 54 percent of respondents were dissatisfied with their ability to recover in the event of a problem either during release or with the application.
  • 50 percent of respondents were dissatisfied with the speed of each iteration of the release process.
With the need to code individualized and highly tailored scripts for each application per environment, it should be no surprise that the numbers are so high. In fact, when you consider that it takes a developer-class professional to author and test these release scripts, you have one of two problems that ultimately need to be considered:
  1. You are forced to split the time of a developer on the application team so that part of their time is dedicated to creating and maintaining these scripts, or;
  2. You are forced to hire someone, paying them the same FTE rate for the sole purpose of release management.
With operating budgets as tight as they have been since the global meltdown in 2008, it is my suspicion that option 1 is the more common choice. This detracts from application quality as the time the developer should be spending writing new code or fixing defects discovered during test is spent instead doing operational work.

In Part 2 of our discussion, I'll cover how Nolio addresses the problem.

Popular posts from this blog

"Ni jiang yi yang de hua ma?"

Last week, I wrote about the necessity of having a clear message . Because this topic is so important I decided to follow-up with another entry on this general subject. This week we will approach it from another angle. (For the curious, the title says " Do you speak the same language? " in pinyin, which is a transliterated Mandarin Chinese.) Recently, a good friend of mine (who is Chinese, ironically) and I were playing pool. He had to bank the 8-ball in the pocket to win the game, and since it was an informal game and bank shots are my area of expertise, he asked me for advice. I told him, "you just need to strike the cue ball with medium speed so that it hits the 8-ball right in the middle." He didn't believe me so we marked the positions of the balls, and then he took his shot only to watch the 8-ball sail past the pocket. "A-ha!" he exclaimed. "I told you it wasn't that easy." But when we reset the positions and I made an attemp

It's Easier to Fail at DevOps than it is to Succeed

Slippery when wet Since the term DevOps was coined in Belgium back in 2009, it is impossible to avoid the term whether in discussions with colleagues or in professional trade magazines.  And during the years while this movement has gained momentum, many things have been written to describe what elements of a DevOps strategy are required for it to be successful. Yet in spite of this, there is an interesting data point worth noting: not many organizations feel there is a need for DevOps.  In a Gartner report entitled DevOps Adoption Survey Results (published in September 2015),  40%  of respondents said they had no plans to implement DevOps and 31% of respondents said they hadn't implemented it but planned to start in the 12 months after the survey was conducted. That left only 29% who had implemented DevOps in a pilot project or in production systems, which isn't a lot. "Maybe it's because there truly isn't a need for DevOps," you say.  While that

Is No/Low-Code the Key to IT Nirvana?

 Unless you've had your head in the sand for the past year or so, you've seen the phrases low-code  and no-code  bandied about quite frequently everywhere you look.  You've probably wondered if this is something new that's here to stay or just a "flash in the pan."  Although the terms have been in the fore of the IT trade publications recently, Low Code Development Platforms (LCDP) (and the corresponding No Code Development Platforms) have been in existence since 2011.  Their roots can be traced to the 90's with 4th generation programming languages and GUI-assisted programming paradigms, e.g. IBM VisualAge for Basic, which was discontinued in 1998. For those of you who aren't familiar with either, the premise is that these platforms allow someone to quickly build applications using a WYSIWYG interface and a "click and configure" paradigm to Isn't this the source code to Roblox? rapidly build full applications with little or no coding requ