- or - I'm so happy that I will always be employed.
I just read an article on "craplets" - the software that comes preinstalled when you buy a computer from Dell, IBM, or any of the big computer manufacturers. I hate these apps - they are buggy, intrusive, slow, and they typically make the taskbar notification area extend halfway across the screen. Regular readers may recall that I have a Lenovo (IBM) thinkpad that I love - but the first thing I did when I got it was wipe the hard drive and install a clean build of xpsp2. As it turns out, some of the lenovo apps are actually useful (fingerprint logon for example), so I selectively installed the latest versions of these apps from the lenovo support site. Life is good...for me, but I'm pissed off that it sucks for so many others.
A few weeks ago, my mother in laws Dell laptop had a hard drive die. Unmountable boot partition bsod on boot - boot from installation cd to repair mode failed also (yes I know, this is a hw problem). Fortunately, my wininternals (or whatever it's called now that it's been assimilated) emergency repair disk could boot and see the disk (the disk was messed up enough it couldn't be mounted, but the files could mostly be read). btw - does anyone know if it's possible to run chkdsk on a device name - i.e. Device\harddisk1, or does chkdsk only work on mounted partitions?.
Anyway - I plugged in a firewire drive and started getting what files I could off of the drive. Of course, nothing goes perfectly in situations like this, and I discovered that the disk recover utility would crash if I simply tried to copy the entire hard drive. In a way, this is good - why should she need the entire hard drive anyway. The 'documents and settings' folder should be enough. Of course, this crashed too (more on that in a second), so I had to break it into chunks...before finding that some programs were keeping data files in 'program files' (stupid, stupid). At this point, thinking that the drive could combust at any moment, I systematically took everything off of the old drive just to be safe.
While I was backing up the user files (docs and settings), I noticed that a certain major commercial image editing application thought it would be good to store about 2 gig of "cached" files in various places (I'm sure, for a very, very good reason!). Other apps (including msft apps) seem to think it's perfectly ok to litter little program turdlets wherever seems best at the time. In the end, things like this lead at best to confusion, and at worst to a tangled web of backward compatibility that is rarely solved. Raymond has ranted dozens of times about some of the things I saw over on his blog (no link, because you should know who I'm talking about and I'm lazy)
The problem is, is that for every developer like Raymond who cares about stuff like this, there are at least a dozen more who just hack together a solution that "works on my machine". Sometimes I wonder if programming languages should be made more difficult - just to keep people not capable of writing good software out of the business. Testers can be just as bad. Testers who are content to "play around" with an app, find hundreds of these bugs then move on aren't going to solve any quality problems. Of course these bugs need to be found, but in the end, a good tester is going to find a way to prevent many of these bugs from ever happening in the applications they test. Unless an engineering team has a culture of quality - where developers strive to write bug free code, and are embarrassed when a bug is filed against their code - and until testers see "found" bugs as a flaw in their prevention techniques, software will continue to suck.
Oh well - I guess I'll still get a paycheck.