The Software Conspiracy:
Why Companies Put Out Faulty Software,
How They Can Hurt You, and What You Can Do About It,
by Mark Minasi (2000)
Review by Timothy Bilash
These are snippets about poor quality and shady practices by Software Companies from the book by Mark Minasi. What are YOUR experiences?
- "...fully 15 percent- one in seven- software firms surveyed about software quality said they regularly shipped out software that they'd never even tested." [p6]
- my note: if consumers can't assess quality, then it is more profitable to ship cheaper defective products than bring it up to a standard that is invisible. it is to their benefit, because they can get away with it.
- firestone, gm automakers as an example
- truck side gas tanks
- rear gas tank
- antilock brakes
- "So you work and work to make the problem an easily reproducible one (which can take quite a bit of time and effort), basically proving the existence of the bug in detail, but once the support person hears that you're well informed about the bug, he cuts you off. "That's a known bug." you're told. "We hope to fix it in the next release." This don't-admit-bugs-until-you-must strategy is commonplace in the software business. According to Cem Kaner, software quality and testing expert, 90 percent of the bugs consumers report to software vendors are already known to the vendors. [T]he vendors had full knowledge of those defects when they decided to ship the product... fully 15 percent... said that they regularly shipped out software that they'd never even tested." [p6]
- "Companies don't get incentives for taking their time and turning out good stuff," says John Horch, a software quality consultant with over forty years of experience ...." [p10]
- my note: there is some justification for this- cant start developing with the product if don't have it, so an imperfect product allows a head start.
- "Every software executive I interviewed for this book agreed on two things: first, that writing software with very few bugs would be simple, and second, that they believed that no one would buy it, as buyers focus almost entirely on features and very little on quality. Brad Chase, Vice President of Internet and Tools Marketing for Microsoft's Internet Platform, states, "the market demands features [not fewer bugs.] [p11]
- Marc Sokol, senior Vice-President at Computer Associates, states, " The market [for consumer and desktop software] is not quality sensitive." You cannot charge more for higher quality. [p 12]
- "Programmers are craft workers... I've never met a programmer who would get up in the morning saying, "Boy, I'm really gonna go turn out some lousy code today!"... But, because the software industry has convinced itself that consumers respond to features and not quality, bottom-line-conscious mangers in that industry define a product as finished when it is only half-baked, move the programmers to other tasks, and then ship the half-baked products." [p12]
- Minasi was sometimes asked, "Why don't YOU tell us how to write code with fewer bugs?... Around the turn of the century, a similar discussion was going on in the meat packing industry. The industrialization of the beef industry had led to the growth of huge slaughterhouses, and the sanitary conditions in those plants was terrible- packers would open the slaughterhouse in the morning and literally have to sweep a layer of bugs and rat dung off the meat before getting to work. Early consumer advocates were told that sanitation measures would, "raise the price of beef so high that the consumer would not accept it." In 1905, Upton Sinclair wrote about the conditions in The Jungle, and the next year the federal government passed the Meat Inspection Act of 1906. "Somehow, the beef industry got "debugged." [p19]
- "Many 'modern' programs consist of layer upon layer of progressively older code leading to problems like the Y2K bugs. [p33]
- Watts Humphrey of Carnegie- Mellon's Software Engineering Institute, used the following strategy to improve quality. "I told [the project managers], you will have on my desk a signed document with your detailed plans for what you are doing, approved by all the people who are participating in your project, or you will not be allowed to announce ship dates for products; In fact, I won't fund your development projects until I get those plans." Adopting similar type strategies produced better code in less time- some as much as a fivefold improvement [p48]
- From mark minasi, "the software conspiracy" [p53]
"when asked why [companies] don't exploit methods that would greatly improve quality at low or no cost, [Frank] Ackerman says, "It's more a matter of religion than of practicality. They don't believe it. What's ingrained in the managers is, this is the way we've been successful, so this is the way we do business... There's been no professional discipline, and everybody kind of learns it on the job. The environment that the manager has grown up in sets [his or her] mind. The speed of the industry is such that mangers don't have time to find out about software quality innovations. If someone just down the street does it, then they're more likely to look into the process."
- they copy!
- medicine is following the same practices now
- Debugging code.
- Two approaches were compared:
- the traditional method- they'd type in the code and see what it did.
- code reviews- the code was reviewed "by hand", reading it for design implementation and syntax corrections.
- Code reviews were found to be far more efficient, but 90 percent of the participants said that the traditional testing methods were more effective.
- my note: i suspect that it satisfies feeling of efficiency, not acutal efficiency
- "Study habits are nothing more than a process for acquiring and using knowledge." These help our rate of learning... "Why didn't I develop good study habits in the first place? Partly because I didn't need them, but mostly because they took time. Studying is boring... Doing homework takes time, and seemed less productive then doing something else- at first, anyway. Eventually, however, I had to choose a "less productive" method of knowledge acquisition, or I would have failed in school. Studying is a process that assists a faulty brain in the task of learning." [p68]
- "Software is a very intellectual business, and brains are faulty. The only away that I know of to build reliability into a system composed of faulty components is with redundancy. That's why different people should work on different parts of the software development process." [p70]
- my note: doesn't work in medicine, because need to know so much information to function at all. it used a different system, a system of fewer, "less faulty (i.e., well trained" components to improve reliability).
- "... programmers would prefer to be seen as software heroes... I don't know that we need heroes writing word processors, spreadsheets, drivers, and the like. Perhaps what we need in those jobs are just ordinary people, people whose goal it is to just get the code working right. The people who turn out quality cars and televisions and houses aren't geniuses, they're just regular people ... The way they turn out quality is by following a manufacturing procedure, a process. Perhaps [they should be designing the operating systems of the future, ... an area that needs a lot of thought and inspiration." [p72]
- my note: this artifically divides the activities into parts, we got into trouble by not allowing assembly-line workers to think, and not requiring managers to do it either.
- Cem Kaner, a prominent lawyer, consultant, and consumer advocate in software license and quality issues, explained that, "a software's company wanting to control what you do with their software after buying it is nothing new; other industries have made similar attempts to control their products after sale. In the early part of the twentieth century, for example, books were sold with a "license" that said, "This book cannot be sold for less than $1." [This effectively killed the used book market, since the regular book price was $1.] "The United States Supreme Court threw out this clause and several other attempts to limit use or resale of mass- marketed products." But it "has been tried by so many industry's that it's like a rerun on TV." [p95]
- Professor Ray Nimmer of the University of Houston wrote: [p95]
- "ownership of a copy should be determined based on the actual character, rather than the label, of the transaction by which the user obtained possession. Merely labeling a transaction as a lease or license does not control. If a transaction involves a single payment giving the buyer an unlimited period of time in which [he] has a right to possession, the transaction is a sale. In this situation, the buyer owns the copy regardless of the label the parties use for the contract... The pertinent issue is whether, as in a lease, the user may be required to return the copy to the vendor after the expiration of a particular period. If not, the transaction conveyed not only possession, but also transferred ownership of the copy."
- "The first time you install ... software, the license pops up, telling you that you can only install this on one and only one computer... This is silly. Can you imagine buying a screwdriver and being told you can use it to tighten only one screw?"[p98]