pda-ppc.com
 
MENU
Search
 Astronomy
 Business
 Calculator
 Clock/calendar
 Communication
 Database
 Docs
 Educational
 Financial
 Games
 Graphics
 Hobbies
 Medical
 Misc/fun
 Multimedia
 Quiz
 Religion
 Travel
 Utilities




Digg this - Post page to del.icio.us - Post page to Furl



Users Are Human: Stop Expecting Something Else
In response to my last column, reader TimR posted some good points as to why developers have difficulty producing software that users are happy with. I’ll address two of them in this article: that users have difficulty specifying what they really want, and that users have unrealistic ideas about what computers can do. Both of these statements are true, but it doesn’t matter. It’s your job and mine to produce good software despite them.

Consider the case of a primary care physician. It is not the patient’s job to say, “Gosh, I think I need a laparoscopic cholecystectomy” (minimally invasive gall bladder removal). The patient says, “Ow, my belly hurts.” It is the doctor’s job to diagnose the problem by asking questions (“Show me exactly where it hurts. Is the pain dull or sharp? Throbbing or steady? After eating or all the time? When you go like this? Then stop going like this, doofus.”). The doctor may also manually examine the patient (“Turn your head and cough”), or order tests such as X-rays. Further, it is the doctor’s job to explain his diagnosis and proposed solution to the medically ignorant patient (“See these white things on this X-ray? They’re gallstones, and that’s what’s causing your pain. No, it’s not your appendix, that’d be down here on the right”). And the doctor frequently has to deal with the patient’s unrealistic expectations of treatment options (“Sorry, but what you read on the Internet is wrong. Ultrasound shattering works well on kidney stones because they’re brittle, but gallstones are softer so it doesn’t work for them. So unless you can live with this pain, we have to stick a knife in you. Actually three of them, but they’re small, and you’ll be sleeping.”)

The software architect is in a similar position. It’s not the customer’s job to design a solution. It is the customer’s job to describe the business problem that he needs to have solved. For example, it’s reasonable to expect the customer to be able to say, “My family runs a Vietnamese restaurant. My father the chef doesn’t speak much English, and bilingual Vietnamese waiters are hard to come by here in Omaha, Nebraska. Somehow I have to take the orders in English from the diners and get them to the chef in Vietnamese.” (This is the actual case solved by Tu Nguyen in winning Microsoft’s Imagine Cup contest in 2003, which I helped judge. He used it as a catalyst to start his own business, see www.eddsvault.com.). Like the physician, it is the architect’s job to ask questions that further define the problem and narrow its scope. “How many waiters are usually on duty? Usually one, sometimes two? A simple data entry terminal might work. Five? Now they’ll have to queue for the terminal, that won’t work. How often do orders get mixed up, and how much does it cost you when that happens? That much, eh? Maybe your payback period is shorter than you thought, would that increase the initial budget? Are there any other chefs, and what languages do they speak?” And so on, through a number of iterations, until a solution emerges (“Let’s give each waiter a Pocket PC on a wireless network, have a simple translation table on the server and a printer in the kitchen”) And again like the physician, the software architect needs to deal with the customer’s unrealistic expectations (“No, sorry, the Pocket PC batteries won’t last for a whole evening because the network draws too much power. If you don’t want to buy spare Pocket PCs, then you need to at least have spare batteries sitting on a charger. Until someone comes up with wireless power, that’s the best we can do.”)

Most people think of medicine and software development as primarily technical disciplines. And indeed, they both contain a large technical component. A doctor has to know that there’s this thing called a gall bladder that’s useful but sometimes causes trouble; a software architect needs to know that there’s this thing called Wi-Fi that’s useful but sometimes causes trouble. That technical knowledge base of both professions is necessary but not sufficient. Proper practice of both professions require expertise in dealing with human beings, which neither profession performs to anywhere near the quality that they need to. The medical profession is starting to address this shortcoming in its training curricula, through such avenues as role playing exercises. The software industry needs to move in that same direction.

Our customers are human. And they’re going to stay human for the foreseeable future. Instead of saying, “We can’t do a good job because our customers are human,” we need to figure out ways of dealing with humans in the software business. Is that hard to do? Of course it’s hard. But whenever a developer or student says to me that something is too hard, I always reply, “Isn’t that another way of saying that you’re not smart enough? That can’t possibly be so, can it?” That usually ends the conversation. And I’ll let it end this posting as well.


Submitted Date: Sep 08, 2007
Source: NetworkWorld.com

Suggestion about this article. Report this article


  News, Articles and Press Releases
 •  iambic Unveils First iPhone App, SnappySeeker (Dec 19, 2008)
 •  iSkysoft announces iMedia Converter 1.0.0.8 for Mac OS X (Dec 17, 2008)
 •  iDTRONIC will present at RFID Show 2008 in Paris its updated and expanded UHF Range of Products (Dec 17, 2008)
 •  With Mobile Learning technology a simple PDA or SmartPhone can take you away to another place and time. (Dec 16, 2008)
 •  Smartphones Don’t Care Much For Size (Dec 16, 2008)
 •  Sprint hopes to dominate with its Mogul device (Dec 16, 2008)
 •  Cooking in the Mobile Cloud (Dec 13, 2008)
 •  Happy 6th Birthday Mobilitysite/Aximsite (Dec 13, 2008)
 •  CompanionLink for Google Now Compatible with Lotus Notes (Dec 12, 2008)
 •  PenReader Touch, latest invention by Paragon Software Group (Dec 12, 2008)
 •  More News ...
  Latest software update
 •  Timeo for Mobile 2.00 (Nov 24, 2011)
 •  inCall ProxDispOff 1.10 (Nov 24, 2011)
 •  busGuide2 1.2 (Jun 29, 2011)
 •  Trip Reports 1.0 beta (Jun 29, 2011)
 •  LeTour 2011 Mobile 1.0 (Jun 29, 2011)
 •  TrailCompanion 1.9.8.0 (Jun 29, 2011)
 •  PHM Task Manager 0.1 (Jun 27, 2011)
 •  FunnySnake EasyTweak 0.1.2 (Jun 27, 2011)
 •  TI59ce 1.0.342.1 (Jun 27, 2011)
 •  PHM Registry Editor 0.7.0 (Jun 27, 2011)
 •  PicoWebServer 1.0 beta (Jun 24, 2011)
 •  PocketFeed 0.6.0 (Jun 24, 2011)
 •  PocketBlinds 1.0 (Jun 24, 2011)
 •  FreeMine 1.0.1 (Jun 24, 2011)
 •  Pocket Translator 1.0 (Jun 23, 2011)
 •  Silke Four 1.0 (Jun 23, 2011)
 •  vxShortCut 0.9.3 (Jun 23, 2011)
 •  SIManager 1.1 (Jun 23, 2011)
 •  Isitar 1.0 (Jun 20, 2011)
 •  Where is my RAM? 1.2 (Jun 20, 2011)
Add to Favorite Home Submit Freeware Send Mail