You could certainly be forgiven if you didn’t notice that Windows Vista was released the other day and perhaps
appropriately by complete coincidence, there’s been a bit of discussion in the tech community recently about why software continues to suck so much (and yes, that is the technical term we use ).
Actually, not so much why software sucks in itself but more what’s wrong with the way we develop software that we end up with incredibly late and/or underwhelming pieces of software like Vista, or Chandler. For those of you who don’t know, Chandler is a personal information manager project started a few years ago by Mitch Kapor (the guy who brought us Lotus 1-2-3) that is currently spinning its wheels, trying to get out from under the weight of its wildly ambitious goals. Scott Rosenberg was asked to join the team and chronicle their journey and has recently published a book describing how they went. It has been described as a successor to Tracy Kidder’s The Soul of a New Machine, itself a fantastic read, that describes the harrowing saga of the development of a new mini-computer in the 70′s, done under enormous pressure. Scott talks about the book in an interesting podcast here.
More amusing is David Platt’s discussion about why software sucks and what users can do about it. He argues that a lot of the problem can be explained by poor design, often due to a lack of understanding by programmers of what users actually need and how they work. I can certainly agree with that since I’ve been doing a lot of work recently with normal (i.e. non-technical) people and young kids and believe me, it’s been a real eye-opener to see how they use computers. A classic example of the difference between how techies and non-techies use computers is shown in the story behind why “Yahoo” is the most searched-for word in Google: people often don’t understand the difference between a URL box and a search box. They just type in what they’re looking for and a link auto-magically appears that they can click on. Indeed, it actually goes further than that: people often don’t understand the difference between a browser, Windows, a search engine or the internet. There’s a funny E thingy on their desktop that is the internet that they double-click on which takes them to some place (google.com, because someone has set that as their home page) where they type “yahoo” (or even “yahoo.com”! ) in the white box in the middle and click on the first link that comes up. Easy!
And while it’s true that there is a huge divide between good and bad programmers, let alone the great and the truly terrible, a lot of it, IMO, can be explained by attitude. The best developers got that way because they gave a damn. It’s not enough for a piece of software to just work, it has to work well, and on many levels: the way the code was designed, the way the code was written, they way the user interacts with the software (or not ), how it was documented (yes, really! Good documentation is part of it!). And the best developers are always looking for better ways to do things, honing their existing skills and picking up new ones. The worst ones are happy just to shove something out the door, even if it’s built like jello.
But it’s not always down to the programmers, sometimes you’re left scratching your head as to just what the hell your users are thinking. Maybe we should just have a Check computer light on our PC’s, the same way many cars have a Check engine light although that, of course, begs the question: how many people will ignore the Check computer light, the same way they do the Check engine light on their cars? And that’s not even considering some of the other things people have been reported to do. You can say that users shouldn’t have to worry about these kind of things and you’d be right, but that only takes you so far. Sometimes people really do extraordinarily stupid things!
This post has rambled on a bit and to be honest, I can’t quite remember what the original point was but I guess it must’ve been that software development is hard. If you don’t believe me, try explaining some time to someone how to hang up a picture on the wall. It’s not as easy as you might think And when we hit a bump in the road to the next release of Awasu, please forgive us, we’re doing our best!
Oh, hang on, I’ve just remembered why I started writing this. I hate it when people just throw a bunch of links together and call it a blog post. Lazy. I have to write a story (of sorts) around them.
I guess I just can’t stop myself from giving a damn. Sigh…