CIO

Software quality sucks – what are you going to do about it?

As software companies become slaves to speedy releases, and QA testers have been left in the dust, consumers are the ones left dealing with the crappy code that gets delivered.

Are you getting fed up with software quality these days? To be more specific, the lack of any software quality? The giants in the industry are feeding us steaming piles of untested shoddy bits and it’s about time something was done about it.

We’ve all heard a lot of noise about agile development methods and super quick iterations and moving at the speed of business. But when you stop and take a look at the software you actually use today, there’s no other conclusion than we can do far, far better – if only the industry as a whole would slow down and stop slaving to the Goddess of Speed.

Vendors seem obsessed about releasing things in intervals that can easily be measured in weeks. Apple is crowing today as I write this about iOS 9 being the fastest adopted software update in history. Windows 10 is on to its first post RTM preview build even though most people consider the Windows 10 RTM build to be a decent release candidate style build, but certainly not a baseline, especially for enterprise. Microsoft has laid off thousands of testers. “Iterate, iterate, iterate” seems to have been replaced by “check, move, check, move!” Check one feature or goal off the list when it works and then move on, and forget about testing.

"The premise is that by iterating faster, users get better features faster, and greater technological advances are thrown in, but left unsaid is software quality," says John Obeto II, CEO at Logikworx, a managed services provider based in Marina Del Rey, Calif. "Frankly, it sucks bilge water."

Several anecdata demonstrate this point: 

OneDrive? More like DoneDrive...

The OneDrive sync client absolutely sucks. On a brand new computer, OneDrive takes hours to sync up a simple folder structure and then sits for an hour or more trying to “upload data” when there is nothing to upload. Remember, it’s a new computer, so I want all of my data downloaded. The OneDrive for Business service itself sucks. It regularly refuses to sync documents saved to a local OneDrive for Business folder. When using the Web interface, you can upload documents, but see if you don’t get an “unknown error” when you try to rename them.

Sometimes this clears up after a while – assuming, of course, you can actually log into Office 365 to get to the Web interface. Because it’s far too common to get sucked into the log in/get signed out loop six or seven times a day, perhaps once every business hour), getting 400 Bad Request error messages that force you to close the browser and all of your open tabs, reopen the browser, and then log in again. All. Of. The. Time. This is a service that is on a $1 billion+ a year revenue run rate? Really?

[Related: How peer review leads to quality code]

Skype? All hype...

Also as I write this, the Skype service is still down and not recovered after a multi-hour outage. Now before you say that Skype isn’t a business service and therefore shouldn’t count, Skype generates plenty of revenue for Microsoft, and it’s a shame that one of the largest software companies in the world can create such a pathetically useless piece of client software. I will not mince words: the Skype client is terrible. It regularly freezes and exits on a Windows 10 laptop. It stays running on other devices, so credit where it’s due, but continuing to run is only first in a series of battles useful software must fight and win. Skype does not. When someone calls me, it rings on all of my devices, but when I pick up the call on one device, the others continue ringing. Syncing of instant message texts is completely inconsistent between one machine and another. Presence information is rarely up to date or accurate. Trying to use the interconnectivity between Skype and Lync and Skype of Business is no more than a crapshoot – you’re lucky to get about a 20 percent success rate with it. Microsoft has owned Skype for over four years now, which is an eternity in today’s software world, and yet we are just supposed to accept that the client is going to be this terrible for this long? Do we accept that? Do you? I don’t.

One bad Apple...

Microsoft is far from the company worthy of blame here, either. Ask someone who’s decided to take the plunge and update an iPad mini purchased earlier this year to iOS 9, which is recommended because iOS 8 on that device was decidedly subpar. Let me share a couple of examples. I travel frequently and usually listen to music on my iPad using Bose headphones when I’m on an airplane. The Bose headphones have a little button on the cord that lets you double-press to skip tracks. This worked flawlessly with an older iPad I had for three years, but with the new iOS 8, I could skip five or six songs before the music app would pseudo-freeze – it would continue playing music and doing its shuffle but it would not respond to any input from me either via the iPad screen or from my headphone button. Then it would crash and dump me to the home screen. I consistently failed at getting Twitter to even open on that iPad running iOS 8 – I would see the splash screen and then bam! Right back to the home screen. This is the company that invented the iPod over a decade ago and I can’t play music on a $600 device? Seriously?

I could go on and on, but you surely now see a pattern. I’m not just whining and ranting. I am pointing out a serious systemic flaw in the industry. As Obeto puts it, "Users, in the name of faster iteration, are permanent guinea pigs, even for software or services they are actually paying for."

[Related: Are you over-testing your software?]

Are CIOs part of the problem? Why are they not holding feet to the fire? Why are they accepting this as the status quo? It is the CIOs job to deliver technology to their organization in ways that are practical, consistent and available. When they bet on the kind of software the industry has been putting out recently, they put our own credibility on the line: just as when email went down a decade ago it was the CIO’s fault, when a company’s cloud instant message system goes on the blink, it’s their fault, too. CIO’s accede control without acceding responsibility. This is not to say that they should eschew the cloud; in fact, far from it.  But part of a CIO's new responsibility is to ensure the barest minimums of quality from software and services they chose to "delegate" their enterprise to on a regular, consistent basis.

Whose fault is all of this? It's easy to blame agile software, when the death march of sprints and new features means pushing fixes and polish to the next release is often the default answer. But there's more to it than agile, argues Obeto. "I think the ‘app economy’ is very much to blame," says Obeto. "We have become used to, and desensitized by, these little snippets of productivity applications that focus on just one thing, oftentimes poorly, because it is mobile, and can almost always perform that task somewhat sufficiently. The fact that it is mobile, and therefore returns results instantly inures us to the glaring deficiencies in the apps." 

Other tips from Obeto at arresting this uncomfortable and problematic trends:

  • Demand SLAs for software packages.
  • Create clear lines of support and responsibility for functional faults, and make sure security failures are also part of SLA.

What are you going to do to be a part of the solution?