| «« Iron Ring Firmly in Place | In Through the Out Door »» |
|
About
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.
Projects
» 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
BulletBlog
Now hosted on Hey! Heads Up -- check it out!
Syndication
Pings
Recent
Derek Lowe's (Ryan's older brother) words at Ryan's funeral
blog@ryanlowe.ca no more Forging Email Headers: Good, Bad or Ugly? Sarcastic Dictionary (Part 1 of Many) Tags Hierarchies Twisting Rails is Risky Business Risky Business? My Take on Early Alphas Whoa, it's August 2007 Closing Comments A Postscript to "Growth at the grassroots" »» All Blog Posts
Linkage
del.icio.us/ryanlowe
technorati/ryanlowe.ca/blog Aurora Roy Jim Andrew Trasker Travis Kibbee Karen Dr. Unk Ayana Van Bloggers Joel Spolsky Robert Scoble Tim Bray Dave Winer Raymond Chen James Robertson Ruby/Rails Bloggers rubyonrails.org weblog David Heinemeier Hansson Dave Thomas James Duncan Davidson Mike Clark Jamis Buck Signal vs. Noise Tobias Luetke Amy Hoy: (24)slash7 Jeremy Voorhis Eclipse Bloggers Planet Eclipse EclipseZone Luis de la Rosa Eclipse Foundation Kim Horne Billy Biggs Ian Skerrett Mike Milinkovich Bjorn Freeman-Benson Denis Roy
Archives
|
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 ESTLast updated December 20, 2004 at 06:10 AM EST Comments
I think the problem with software is that we've come so far, so fast. Everybody likes to compare building software to building bridges, because bridges have a habit of not falling down, being perfect in design. The thing is, to make an analogy, is that we've come from tipping trees over across a river, to building the Golden Gate bridge in about 50 years. Whereas, bridges took a lot longer to get to their current state. With software, instead of replacing that old tree lying across the river, we often build off it, using that as a main building block. We can't exist in the software business without using some old piece of unreliable technology, rebuilding everything from scratch would take forever. Instead, every software project is not a single project at all, but a piece of a bigger project. If some other piece of software that it has to coexist with isn't perfect, then it will fail to be perfect. Even at the operating system level. Some may think that the OS is the base level, and that it should be made perfect. The problem is that they can't just go around making all these changes to everything, because that might have effects on all the software and hardware that depends on it. If the software doens't run on the operating system, the operating system has lost it's primary function. To allow other software to run. So, the whole point of this is, people better get used to their software not being perfect, and having a good backup solution for their crucial data. Things are going to change anytime in our lifetime. If we wanted to rewrite windows from scratch, trying to make it bug free, we'd probably be at it until 2135. But then, there'd be a bug in the motherboard bios of some popular computer, and we'd be back to the starting point again. » Posted by: Kibbee at December 20, 2004 07:25 AM |