Maybe it's because I live near the center of the technology universe in Silicon Valley that I notice how things are programmed. I am constantly amazed at how, generally speaking, the programming involved in simple, everyday devices, services, web sites and software is done so poorly; and does not seem to be getting any better. Because bad programming pops up in many forms, I have decided to create a series, which periodically will discuss this sad reality.
Before you discount my comments as those of “techie troglodyte”, I should tell you that I started out my career as a programmer. I programmed in many of the original computer languages including Fortran, BASIC, COBOL and PASCAL. While things have certainly progressed from the dark days of PASCAL, one wonders why programmers have not.
Because of this proximity to Stanford University , University of California at Berkeley and the Silicon Valley , the opportunity for excellent programmer development exits and it maybe reasonable to assume that there are many excellent programmers out there. What I do not understand is, given that assumption, how poor programming continues to get to the market place. By poor programming I am including such simple things as using grammatically correct words when designing the interface with the user, to more pronounced break downs in programming like freeze-ups, faulty functionality and software crashes.
Let’s begin with the simple. Let’s discuss programmer grammar, or the sorry lack thereof. While I understand programmers use numbers to communicate with computers, they apparently forget that they are using words to communicate with the people for whom they ultimately create these programs. My favorite example of this version of bad programming may be explained by pure old-fashion laziness. The postage machine at my office, as with many credit card machines and other devices designed for regular use by consumers, asks the user if they are “DONE” immediately proceeding the execution command that will complete the transaction for which the query was made. The difference between having the interface screen display the question “DONE” and to display the correct English word for this purpose, “FINISHED”, which is what the programmer meant to ask, is four keystrokes- hardly a justifiable savings in energy and or expense for this easily corrected problem.
Rather than have a grammatically correct interface, the lazy, at best, or ignorant, at worst, programmer, saves a whopping four keystrokes and turns what might have been an elegant program into an uneducated six-grader’s mess. In addition to irritating those of us that speak English, by not paying attention to these details a programmer lowers the overall quality of his product and leaves one to wonder what other short cuts he or she may have taken. In programming as with any other profession one must take a certain amount of pride in his or her work – or else go get job at the Post Office (where such pride is not required, indeed, apparently, frowned upon).
Another surprisingly common and no less irritating example of bad programming occurs when visiting a website or using a piece of software that requires certain pieces of information in order to proceed to the next step in its use. At this point one expects a place in which to enter the required information. Such a place is usually in the form of a box or a line appropriately labeled. Yet, incomprehensively, no place to actually enter the required information is provided. I wish I were making this up. The result of this complete lack of programming sophistication is that the user is stuck on this page and cannot proceed. The program requires an input and yet the input cannot be made. Have these people never heard of a “dry run”? Do these programmers not ever think to actually visit the website for which they supplied their programming “talents” or to use the software they developed? This is mind boggling to me. I often try to imagine what my business would be like if I performed my job with a similar lack of competence. It is difficult to imagine that I would have a single customer left. And with all the programmers available, I am to assume that this is the cream of the American programming crop? We all may need to quickly start learning Chinese.
Finally, before closing this installment of the WalMarting of programming, I have to comment on one more of these vexing bad programming examples. When I open a website or a piece of software and I am moving to the next page, for example, and I am being asked to enter information (and the programmers actually supplied a place for me to do so), why isn’t the default location of the cursor at the beginning of the place where the information being sought is to be entered? The purpose of program at this point is to gather the requested information (at least according to the program). Nothing else can be done, no other movement can be made, no progress can be gained until this information is entered. Yet, nine times out of ten, the cursor is elsewhere. In order to enter the information the user has to move the curser into the box or onto the line using the mouse before any information can be entered. Really? Is that subprogram simply too hard to create? Did you sleep through the customer interface lecture at your on-line community college programming class? Or did you just give up? The Post Office may be hiring.

No comments:
Post a Comment