A Standard for Software Product Design
No Anonymous Windows
For every desktop window or message-box (anything that shows up independently as a window-box) – claim ownership of it. By this I mean say what software product is displaying it, and who created that product. For this purpose, provide text within the title-bar of the (window or message-box, alert, popup, whichever — we will use the term “window”), which we can call the “product identification prefix”. The product identification prefix is defined as text that indicates the author or owner of the software product that the window is associated with, and the name of the product itself, followed by the normal descriptive text. Optionally a colon may be placed immediately after the product-name. Here is an example: “Bigsoft Goodproduct: Settings.” That part that comes before the colon is the product identification prefix, so-called because it identifies this window and is a prefix that comes before other text.
Rational: When you see something pop up on your display, without a product identification prefix (or any identifying text) it may not be obvious why or from whence it came. That makes it sometimes indistinguishable from malware, and harms your company’s reputation. That can be very annoying.
For example, I noticed this little gem on my screen this week:
I hope hope everyone can see how inappropriate that is!
Some of your users take their computer-screen seriously: it can be their livelihood, and no-one wants to be suspecting that some kind of malware is suddenly running amok and ruining their machine. Have some respect, and never ever ever neglect to product the product identification prefix for every window your product displays.
Do Not Ever, EVER Mess With the Others’ Settings
It go without saying, but even with certain of the utilities I used to rely upon – now I cannot install them on my new machines because they violate this principle. It’s one thing to offer to add unneeded toolbars to the user’s browser, or to offer to change the default search-engine. But to go ahead and make changes regardless of the user’s response — is a strict no-no. There should never be extra processes installed other than those that are essential to the product that the user has elected to install, and nothing added to be auto-started other than that product, and only if the user has deliberately elected to auto-start your product.