Tuesday, February 2, 2010

Silver-Bullet Syndrome

Once upon a time, there was a poor widow who lived with her son.Jack. One day when they had no money for food. Jack's mother sent him to market to sell their cow. On the way to the market, Jack encountered an old man who offered him five brightly colored beans and a plastic square for the cow. Jack was a good boy and at first he refused, but the man said that the bright beans and the plastic square were magic and were really worth 10 cows. Jack gave him the cow. The man put the beans and the plastic square into a cardboard box and said to call it a "CASE tool." Jack ran home to find his mother. "I gave the cow to a man I met," Jack said, "and he gave me this. It's a 'CASE tool.' It's magic." He opened the cardboard box and showed his mother the magic beans and the plastic square. "Beans!" his mother cried. "Oh, Jack, there is no such thing as magic. You stupid boy! We're ruined!" She took the CASE tool and threw it out the window. She sent Jack to bed without any supper.

What happened after Jack traded the cow for a CASE tool? Did the CASE tool grow into a magic beanstalk? Or did Jack just lose his mother's cow? The biggest risk associated with software tool use is undoubtedly silver-bullet syndrome—the naive belief that a single tool or technology will by itself dramatically reduce development time. Switching to a new programming language, trying out a CASE tool, moving to object-oriented programming, adopting Total Quality Management—these have become classic exercises in wishful thinking. The desire to believe in silver bullets on rapid-development projects is especially strong.

Most of us are software developers because we think there is something inherently exciting about computer software. When we see a new software tool, we can't help but find it mesmerizing. Who cares if it's practical! It's got 3-D scroll bars! And customizable menus! Look! It even emulates Brief and vi and EMACS! New tools are seductive to software developers, and I believe that silver-bullet syndrome is an occupational hazard. We wouldn't be in this business if we -weren't prone to believe that software tools could solve our problems. I hope that Abraham Lincoln was right when he said that you couldn't fool all of the people all of the time, but sometimes our industry seems determined to prove otherwise. Software developers are bombarded with extravagant productivity claims—"Reduce your development time by a factor of 10!" (Or 100!! Or 1000!!!) Capers Jones estimates that there have been false productivity claims in about 75 percent of the marketing materials published by CASE, language, methodology, and software tool vendors in recent years. CASE tool vendors are the worst, followed by information engineering, RAD, 4GLs, and object-oriented methods (Jones 1994). On average, the tools for which silver-bullet claims have been made produce no visible improvement or only marginal improvement. Some people have indeed been fooled. Even when software developers succeed in overcoming their natural gullibility and reject silver-bullet claims, their managers goad them on. After reviewing more than 4000 projects, Jones concluded that at least 70 percent of all US software managers naively believe that a single factor can produce large productivity and quality gains. What's worse, he noted hat organizations that succumb to the silver-bullet syndrome tend never to improve at
all; indeed, they often go backwards (Jones 1994). He notes that the silverbullet
syndrome is especially common among lagging-edge organizations. Unfortunately the effects of this naivete are far from benign. Silver-bullet syndrome poses a risk to software schedules in the same way that Laetrile poses a risk to cancer patients: pursuit of false cures diverts attention from other cures or sets of cures that would be more effective. Exaggerated productivity claims have encouraged the adoption of ineffective tools and slowed down and reduced the adoption of other tools that would have been more effective. Because we buy magic beans instead of real ones, we go to bed hungry. The naive belief that a single tool can dramatically reduce development time leads us to try new tools one at a time rather than to take a more systematic approach. We adopt beneficial tools in serial rather than in parallel.We plan for short-term improvements and neglect long-term planning altogether.In the end, silver-bullet syndrome is a causative factor for canceled
projects and cost overruns as well as for excessive development times. The only bright side to this sorry tale is that there's little chance of a giant shouting
"Fee Fi Fo Fum" and eating us on toast for breakfast.

adopt from Steve McConnell - Rapid Development - Taming Wild Software Schedules

No comments :

Post a Comment