|Home » Resources » Rants
The Bad Bad Programmer
Week of April 15, 2002
- All programs are procedural, even event-driven programs (see below). They should have one entry point and one exit point, separated by at most three lines of code.
- Even event-driven programs should be procedural. Write everything in terms of yes-no message boxes such as 'Do you want a print-out?' or 'Do you want to do a test run first?' and so forth. Do not let the user out. If the user tries to close a message box, issue a new one saying that the response was unclear (only an OK button), then go back to the first message box again.
- If possible, make all default buttons in dialogs and message boxes the wrong ones and/or the most dangerous ones. That way the users will screw up a lot and you can tell them how dumb they are. They will start to feel insecure and you will have them where you want them.
- The 'Where am I?' Principle: If you are nevertheless forced to use an ordinary application window, make as much as possible backwards so as to confuse the user. Put the buttons on the left and the bottom, and if you have to have a menu, put Help on the far left and File on the far right. List everything on the popup menus upside down. For example, put Undo at the bottom of the Edit menu and Select All at the top, and put Exit at the top of the File menu and New at the bottom.
- Make sure you have a lot of commands for which there is no implementation so you can issue message boxes that say 'Incorrect command.' Nothing unsettles a user more than to know he has done something wrong. If you need to issue diagnostics to the user, never preface them with 'I am sorry' or something equally wimpy. Always begin with 'You idiot, don't you know that'. This really pisses them off and gets them in a real bad mood.
- If your company hires on a Linux admin, walk up to him smiling and introduce yourself, then ask him if he's ever worked with REAL Unix or Ultrix or AIX (make up a lot of words here all ending in 'IX' - he won't know any better). When he starts to get pale, ask him - still smiling - if he intends to stay on once he's got his high school diploma.
- When clients call you for support, always make them talk as long as possible. Do this by always making things as kindergarten level as possible. For example, always begin with something like 'Ok, now right click on My Computer.' When you have wasted as much time as you can, wait for an opening so the user can finally tell you what the issue is, then tell him, 'Oh yeah that - we're aware of that, that will be fixed in the next release.' Then hang up.
- If the same user ever calls you back, make him start all over again by right clicking on My Computer.
- Any programmer using the word 'PASCAL' should be shot.
- Any programmer caught looking at Delphi or Visual Basic or MFC or ActiveX or any of that prissy junk should be shot.