|Think about Loose Coupling|
Re: Proposed WTF Databaseby chunlou (Curate)
|on Aug 02, 2003 at 06:53 UTC||Need Help??|
As a problem solver or a programmer, to be able to solve a problem or fix an error effectively, it's more important to have, among other skills,
I believe in a decision support system as opposed to a decision making system. It's a common design and education issue when designing, implementing and deploying such support systems as WTF database.
A user should be educated (which is hard) to expect to use the system to help him make a decision, not to make a decision for him--an all too common real life fallacy. A study reported on the news "Spell-Check Can Make Writing Worse" in March is a classic example. Apparently, many people let the word processor completely make grammatical and writing decision for them.
Technical support service is a common example where people (both the user and the tech support) fail to have an open perspective on the possible causes of a problem.
Once, an office worker working on payroll found himself unable to access the VMS mainframe payroll system via his terminal emulator on his PC. He called tech support who walked him through on checking various things on his PC and on the mainframe--to no avail as everything seemed working. Then he was referred to the hardware vendor who asked him to check on this and that on the hardware--again to no avail as again everything seemed working.
That went on the whole day.
So I helped. First, I tried to see if it was hardware or software problem. It's not software because I took my laptop to test on various locations in the office. The terminal emulator could access the payroll system at some location but not a few the others. As for the hardware, it seemed to be the problem of a few jacks through which the PCs were connected to mainframe.
So I traced the jacks and their cables to look for physical damages. It led all the way back to the computer room where all the hubs, telephone switches and the mainframe located. Found nothing.
Then I noticed a few lights on a hub were off. I traced the power cable to eventually a power extension cord buried under a pile of wires, which was accidentally switched off! That was the problem! A power cord was turned off by accident (probably by the cleaning crew).
In retrospect, silly, huh? Why didn't the tech supports locate the problem, given they're sitting in front of a WTF database system as well? It's because they only sought for the causes directly generated by their products--a narrow perspective.
A best thing a support system can do is to help make the user smarter, not dumber and lazier.
During the 80s "quality" craze in the business world, many executives believed control charts, statistical and quality control software helped them improve productivity but failed to realize that it's the knowledge of the users behind those tools that helps improve productivity.
In tech world, the technology-first mentality (as opposed to knowledge, education and leadership first) manifests itself as situations where a management jumps from technology to technology (such as FastCGI to ASP to JSP to CORBA, etc.) believing it will somehow magically make their software smarter, better, faster and easier to use.
There's also a real implementation issue--the search strategy, so to speak.
Perlmonks is a best piece of WTF database system powered by real human being. Still, very so often the respondents have to ask a poster to clarify his question before they could give him a sensible answer--something very hard or next to impossible to be done by a machine.
Another issue is common case versus special case fine-tuning, which is very doable but just needs continuous attention from the designer and creator of the system. What did I mean by that? Let's consider a few examples.
A candidate selection system that picks a potential successful candidate based on his/her academic achievements could do consistently pretty well on average on "common" cases but fail completely on "special" cases (such as Albert Einstein or Evariste Galois). But a competent interviewer could pick out a special case easily.
Same situation with financial trading system, it does well on "normal" situation but not on special situation, such as market crashes.
Fine-tuning between common and special cases in every algorithm is a tradeoff problem. Either you make the algorithm favors and includes the common cases more often at the expense of the special cases or vice versa--but not both--just as you can't convict and acquit someone at the same time.
That might be also partly why the tech supports failed to locate the problem in the power cable incident above. Their WTF database probably wouldn't have shown a power cable as a likely cause even had such an information been in the system.
Many knowledge system implemented a rating system where users rate the on answers they receive, presumably, to help the system to better the correlation between questions and answers. Again, the fine-tuning of such correlation automatically by the system requires careful intervention by the system designer or maintainer. A setting leading to too frequent an adjustment on the correlation can result in the system returning the answers seemingly in a random manner. An overadjustment issue, so to speak.
All in all, any system that helps a user to solve problems is only as good as the problem solving skill of the user himself. But of course, a good database is always welcome and helpful.