In previous articles, I've pointed out:
All of these are on the basic theme that developers should be aware that many users - possibly even most users - possibly even most of their users - are not going to spend a majority of their time running software written by those developers.
I pick on Apple for this because it's fun to do so, and because their attitude seems to me to be that they know what's best for their users, and the users have no right to choose anything different. That's insulting to power users - hey, it's insulting to many novice users, too.
But it's not just Apple who exhibits this attitude. For instance, on my laptop, I have this icon in my notification area called "HP Digital Imaging Monitor" . Clicking on it does nothing, right-clicking on it does nothing, and I can't say that I remember it ever doing anything other than sit there staring at me.
I can at least disable some of the icons that bother me by their presence in the notification area (but have I disabled the processes they represented?) - but the point is that there is a pile of crap on my machine that I almost never use.
Quite honestly, I've gotten into the habit of downloading a fresh copy of QuickTime, or RealPlayer, whenever I need to play one of their format files, and then uninstalling them again once I'm done.
What does it say about your code that a user would rather install and uninstall your program every time he wants to view your file format, rather than keep your software around?
And how easy is it then for that user to be distracted away from your code to someone else's that does the same job? Never give your users a good excuse to dump you.
But what does this have to do with the title of this blog posting?
I've just noticed that over the last several days, Larry, too, has been spouting off about his battles inside Microsoft to persuade his fellow developers that, quite frankly, your users aren't that into your code, and you shouldn't expect them to think it's as important as you do.
A natural consequence of this is that you should think very carefully when writing software, not to view it as the most important thing (which, being your baby, it quite obviously is), but to view it as something that a user might use once every six months.
Enough of me, then, go look at Larry's articles - he has some even more practical advice on crapplet mitigation:
Larry's one of my favourite bloggers - I almost always learn something from reading his posts.