|«« Iron Ring Firmly in Place||In Through the Out Door »»|
I'm Ryan Lowe, a Software Engineering graduate living in Ottawa, Canada. I like agile software development and Ruby on Rails.
I write this blog in Canadian English and don't use a spell checker. Typos happen.
» Full-time Ruby on Rails freelancer
» Full-time with Rails since May 2005
» Former committer for RadRails (now Aptana)
» I also have a few Rails side-projects in development:
1. wheretogoinTO.com Toronto nightlife
2. Hey Heads Up! TODO list and sharing
3. Layered Genealogy family history research
4. foos for foosball scoring
5. fanconcert for music fans (on hold)
Hiring Rails developers? I can telecommute by the hour from Ottawa, Canada
»» Email: rails AT ryanlowe DOT ca
Now hosted on Hey! Heads Up -- check it out!
Derek Lowe's (Ryan's older brother) words at Ryan's funeral
email@example.com no more
Forging Email Headers: Good, Bad or Ugly?
Sarcastic Dictionary (Part 1 of Many)
Twisting Rails is Risky Business
Risky Business? My Take on Early Alphas
Whoa, it's August 2007
A Postscript to "Growth at the grassroots"
»» All Blog Posts
David Heinemeier Hansson
James Duncan Davidson
Signal vs. Noise
Amy Hoy: (24)slash7
Luis de la Rosa
OK I'll Admit It: Software Isn't Perfect
There's an interesting discussion going on over at Mary Hodder's blog, pointed to by Dave Winer. Mary was upset because she paid for a beta version of NetNewsWire that ended up corrupting her data. She also went into what she thought of user-developer relations.
Most of the conversation seems to be around the word 'beta' and how several developers/companies have been using it for different purposes (like Google uses it to get around legal issues), clouding the meaning. As a user this is a completely fair complaint. Mary even paid for this beta version.
But let's look at this from the other end. How much quality does a beta release have? How much quality do you need to have before you can stop calling your software beta?
I look at this problem as a software engineer and the word "beta" seems as insignificant and arbitrary as version numbers. There's no universal quality measuring stick you must satisfy to get out of beta, it's just an arbitrary developer-defined state meaning "less than perfect". Well guess what? The final release will be less than perfect too. All beta means is that it's less than less than perfect.
That's the stumbling block that users need to get over when it comes to software. All software is imperfect and there's nothing software developers can do about it. It would be impractical to make software perfect because it would cost far too much and take too long to release. Just ask NASA how much work it takes to get defect-free software. Even after all of the checks and balances NASA has, they still have disasters caused by software. The solution for software companies is to release less than perfect software that does a pretty good job.
The downside is that occassionally this less than perfect software will have a catastrophic defect that ruins data. The fact that the software is being called beta, or 1.0 or even 5.0 is pretty irrelevant at that point. So is the fact that the user is paying for it. The only thing that matters is that the software screwed up.
I don't think it's the users' fault they have come to the unrealistic expectation that software is perfect, it's years of denial by the software industry. Admitting your software has bugs was bad business! So users have come to expect perfect software even though they were never actually getting it in the first place.
Fortunately things are changing. Software is getting so complex and often has so many changing dependencies these days that updating frequently (and usually for no cost) is becoming the new status quo. Users are getting used to seeing more problems with software and realising that software has defects, especially on web sites (which are software-based). Users are also used to updating products like Windows on a monthly basis but we still have a long way to go.
The only thing users aren't used to is regularly backing up their critical data. Usually they only do this after they've been stung by a bad defect or a power outage, fire or natural disaster. This is where the software companies need to do better: educating the public about the expectations they should have about the quality of their software as well as the need to back up important data.
It's not that easy to back data up either, or keep backups organised. We need to do a much better job here.
Sometimes defects are out of the software developer's hands, like an operating system error, a network error (ie. web pages), a hardware failure or a power outage. We can't expect users to understand all of the technical issues, but their quality expectations need to change and the software industry needs to do it's part to help out.Posted at December 20, 2004 at 06:10 AM EST
Last updated December 20, 2004 at 06:10 AM EST