retail-orientedsoftwareaggravation
Retail-Oriented Software Aggravation
>
A Syndrome of Patterns
>
by
Michael Duell
Abstract
The patterns in this paper will help you identify with the experience of run-of-the-mill software users. They capture well-worn examples in personal computer systems, and help to produce hopes of user-friendly redesign. Each pattern presents a specific recurring problem in use of a computer system but no useful advice on solving them.
Archaeological Patterns
The eight archaeological patterns that should have been buried for centuries are as follows:
1.1 Prayers
The Prayers pattern is used to make users feel dependent upon a higher power when installing shrink-wrapped software. By changing the dates (and nothing more) of two or three DLL files, it is possible to render all previously installed software unusable. After one such experience, Prayers will be an integral part of all subsequent software installations.
1.2 Hypes and Fillers
The Hypes and Fillers pattern is also known as bundling. Its intent is to hype the value of a new computer system by filling the hard drive with software that would never sell on its own. Use of Hypes and Fillers enables retailers to claim that new systems come complete with $1,000 worth of free software, and a 10 gigabyte hard drive. Of course, no one has ever paid $1,000 for the free software that fills all but 64 kilobytes of the hard drive.
1.3 Blackscreen
The Blackscreen pattern is often used in conjunction with the Prayers pattern (Section 1.1). When DLL files from various software installations become such a mess that only the Hypes and Fillers software works without the Command Protester (Section 2.4) being invoked, the user will stop using the system. In the absence of power, the monitor will display a Blackscreen.
1.4 Broken
All existing features use the Broken pattern whenever a new feature is introduced. The Broken pattern is often accompanied by the Punish-the-Subscriber pattern (Section 2.8).
1.5 Mono-View-Controller
The Mono-View-Controller pattern was used extensively in personal computer operating systems prior to the current rash of Poly-View based operating systems. Using a command line interface, the Mono-View-Controller allows the user to view one application at a time. When the user is finished with the application, the Mono-View-Controller will display the command-line interface once again. Many poly-view operating systems still offer a Mono-View-Controller option.
1.6 Misrepresentation-Abstraction-Controller
The Misrepresentation-Abstraction-Controller is also known as the minimum system requirements. When shrink-wrap software comes with a statement indicating that the minimum system requirements are a 66 MHz 486 processor (or higher) and 8 Megabytes of RAM, the statement is a misrepresentation of the requirements, since the application will only run in the most abstract sense of the word. Users requiring the application to run without locking up, or crashing the system will require a 350 MHz P2 processor and 128 Megabytes of RAM.
1.7 PsychoKernel
The PsychoKernel is used to force all applications to use an infrastructure that allows the kernel control over them. As a result, applications are likely to lash out at users, and do damage when least expected. PsychoKernel is responsible for all general protection faults occurring before a user can save work.
1.8 Refraction
The Refraction pattern is used in user interfaces. It is named Refraction because designer of the interface was obviously bent.
2 Asinine Patterns
The eight asinine patterns are as follows:
2.1 Hole-Part
The Hole-Part pattern is used for new software releases. The Hole-Part represents the functionality that was omitted to meet a market window. The most successful software companies will use Hole-Part in conjunction with Punish-the-Subscriber (Section 2.8).
2.2 Disaster-Slave
The Disaster-Slave pattern is used in many personal finance applications. Once a user is dependant upon an application to perform simple tasks like balancing a checkbook, another pattern is used to render the application unusable. The disaster only hits after the user has become a slave to the application. Disaster-Slave is most commonly used with Prayers (Section 1.1), Broken (Section 1.4) or PsychoKernel (Section 1.7).
2.3 Poxy
The Poxy pattern (also known as Software Pox) is used to speckle an application with irritating error messages. When a Poxy pattern is encountered, cryptic error messages will breakout all over the computer screen.
2.4 Command Protester
The Command Protester handles commands by throwing an exception, and displaying a cryptic error message. Command Protester is especially effective when coupled with the Poxy pattern (Section 2.3).
2.5 View-Mangler
The View-Mangler pattern is used with print routines. When the View-Mangler is used, the printed version of a document will contain gibberish, even though the print preview option showed the desired format.
2.6 Forwarder-Deciever
The Forwarder-Deceiver is used with dialog boxes. When a dialog box gives the user a choice, the user is deceived into believing that the choice will be forwarded to a routine for processing. Processing for either choice is usually identical.
2.7 Client-Detacher-Sever
The Client-Detacher-Sever pattern is a special case of the Forwarder-Deceiver pattern. Regardless of which choice is selected, the system crashes.
2.8 Punish-the-Subscriber
The Punish-the-Subscriber pattern is used to extort payment from registered users. New software versions promise to fix the bugs of earlier releases. Of course these fixes are not given away, they are sold to the user. Users that buy upgrades find they have a whole new problems to deal with, just when they had figured out how to work around the old ones.
3 Tediums
Tediums are low-level patterns used by customer support engineers.
3.1 Discounted-Banter
Discounted-Banter is what customer support engineers call the advice that they give you. Banter that should be discounted.
4 Summary
These software patterns have been around for a long time, as evidenced by the PC software market. Fortunately, some writers have been exploring how patterns could be used for good, rather than evil.
5 References
- Buschmann F., R. Meunier, H. Rohnert, P. Sommerlad, M. Stahl, Pattern Oriented Software Architecture - A System of Patterns. John Wiley and Sons, Chichester England, 1996
- Gamma, E., R. Helm, R. Johnson, J. Vlissides, Design Patterns-Elements of Resuable Object-Oriented Software, Addison Wesley, Reading, MA, 1995.
- AG Communication Systems Patterns Web Site: http://www.agcs.com/patterns
"RetailOriented Software Aggravation: A Syndrome of Patterns" The Software Practitioner, Vol. 9, No. 2, March-April 1999, p. 15.
© 1999 The Software Practitioner, used by permission.