peshkova - Fotolia
Published: 17 Feb 2015
Vendors are busy worrying about delivering cheaper, faster, better software, but IT professionals are more concerned with software quality standards.
Recently I saw a note about a survey of CIOs and cloud technologies. These CIOs said vendors need to move faster to add cloud features.
I also noticed a fan uprising against Apple. They were disgruntled about the quality of Apple software, claiming it felt unfinished, buggy and full of rough edges. Perhaps there is cause for concern, given the recent lawsuit over iOS space consumption.
Last, there's been a lot of talk about VMware missing its annual vSphere release. To some, it's the apocalypse. Others are more forgiving, suggesting that VMware is taking time to fix bugs, or is adding surprise features to vSphere.
So why do I mention these three things? Simply, they're symbols of our unrealistic expectations of software and product development -- especially when it comes to enterprise software vendors and the software development process.
Software vendors have a lot of things going on at once: They're developing new features for future versions of software, diagnosing and triaging bugs in released versions and attempting to do quality assurance (QA) testing on all of the resulting changes, ensuring they fix more things than they break.
Every version and release that a vendor supports makes all of these tasks much harder. Bugs found in one version are often present in others, and must be fixed there, too. The point of new releases is new features. But that means codebases are different. The code to fix the problem in one version might be incorrect for another, even if the same bug is present in both.
Then there's testing. Every change needs to be tested to make sure it does what it needs to and doesn't cause a regression or unexpected change in how the software works. QA testing and fixing bugs are hard for the same reason: too many versions with too many differences between them.
Metcalfe's Law states the value of a network is equivalent to the square of the number of connected users. With software development, we replace "value" with "difficulty of keeping everything in sync."
Pick only one, pick better
CIOs always seem to ask vendors for three things simultaneously: cheaper, faster and better.
Choose only "better." Better quality software is cheaper to install and maintain. Vendors don't have to spend all that time synchronizing communications about bugs if bugs don't exist. IT staffers can devote time to worthwhile problems, rather than spending time on the phone with vendor support. This is cheaper too, because time spent working through IT problems is overhead and wasted money.
"Better" probably means longer release times, but higher code quality, which will set a company apart. Hopefully that's what VMware is doing with its 18-month vSphere release cycle, and it is suggested for Apple too. Allow more time for the ecosystem to stabilize, for bugs to be fixed and for communication. Counterintuitively, it will likely mean faster adoption within organizations too, because users will put more trust in the releases. I wouldn't be surprised if the CIOs asking for "more features," "faster" are actually running ancient versions of software in their data centers, because those versions work.
Bob Plankers is a virtualization and cloud architect at a major Midwestern university.