Better Software - April 2008 - (Page 47) The Last Word Software Quality and the Prisoner’s Dilemma by Paco Hope Twice recently I have read the “prisoner’s dilemma” applied to unusual and very different situations. For those of you unfamiliar with it, the explanation of the “classical” dilemma at Wikipedia.org (see the StickyNotes for a link) is sufficient: Two suspects are arrested by the police. The police have insufficient evidence for an outright conviction, so they visit each prisoner to offer the same deal: If one testifies against the other and the other remains silent, the betrayer goes free and the silent accomplice receives the maximum ten-year sentence. If both stay silent, both prisoners are sentenced to only six months in jail for a minor charge. If each betrays the other, each receives a five-year sentence. Each prisoner must make the choice of whether to betray the other or to remain silent. However, neither prisoner knows for sure what choice the other prisoner will make. So this dilemma poses the question: How should the prisoners act? This mental game gives us remarkable insight into why software managers who forego quality in order to reach a short-term market advantage are actually acting rationally. Equally remarkable is how irrational that shortterm sacrifice seems when we realize that we’re not playing the classical dilemma in the software industry. Before we look at the software industry, let’s consider a couple of other ways the prisoner’s dilemma plays out in the world. An article in The Economist [1] discusses how most nation-states are treating climate control as a sort of prisoner’s dilemma. The author writes: “Rational leaders will always neglect the problem, on the grounds that others will either solve it, allowing their country to become a free-rider, or let it fester, making it a doomed cause anyway. So the world is condemned to a slow roasting, even though global warming could be averted if everyone cooperated.” What does climate change have to do with software quality? Vendors and software makers are in positions very similar to nation-states. If you replace “global warming” with “software quality” and replace “nation-states” with “software maker,” you can see the analogy. Consider the state of software quality: It is universally bad. Rational software managers can ignore quality, assuming that something will come along and solve their problems (a new tool, a new methodology, the next manager on the project), or they can recognize poor quality but let it fester— because when compared to their competitors’ software quality, everybody’s products are equally bad. In an unrelated story, Smart Money magazine [2] invokes the prisoner’s dilemma with respect to retail banks. “Forget coffee joints and nail salons. The new scourge of Main Street is … bank branches.” The author reports that in retail banking, if a As long as we view the tradeoffs in software quality to be isolated, individual rounds of the prisoner’s dilemma, we will make the rational choice to emphasize short-term revenue over long-term quality. bank gets a slim majority of branches, say, 51 percent, the bank can experience disproportionately high majorities in deposits, say, 89 percent. If a bank does not open as many new branches as its competitors, it is sure to be squeezed out of the market. If it keeps up with its competitors, however, it only ensures mediocre performance for everyone. In fact, the situation has gotten so bad that many individual branches do not make a profit. Now look at software from the banking perspective. This time replace “bank” with “software maker” and replace “branches” with “features.” Marketing likes to remind us that new features drive new sales. It’s true that a few key features might capture a disproportionately large market share. Since we know “more code means more bugs,” however, we know that this race for features can cost us in quality in the long run. Sacri- ficing quality to get those last few features won’t actually ensure us a disproportionate share of the market, because all of our competitors are sacrificing quality to get their features faster. So, similar to the retail banking situation, this approach to quality ensures uniformly poor quality across the industry. So a rational player will always choose the middle outcome that is bad both for him and all the other players because it is clearly in his best interest. That fact is only true, however, in the classical dilemma where the consequences are meted out just once and the “prisoners” cannot communicate. The Economist points out that game theorists have long known if the same players play an unbounded number of rounds of the dilemma, and if they know what the other players have chosen in prior rounds, justice can be served and cooperation is encouraged. Aggressive play is punished by cooperative players in subsequent rounds. Thus, it can be with software quality. If poor quality is punished through market forces, the manager or company who neglected quality to achieve a perceived short-term market advantage will be punished in subsequent rounds when sales of buggy software lag or schedules lengthen to spend time fixing bugs. As long as we view the tradeoffs in software quality to be isolated, individual rounds of the prisoner’s dilemma, we will make the rational choice to emphasize short-term revenue BETTER SOFTWARE www.StickyMinds.com APRIL 2008 47 http://Wikipedia.org http://www.StickyMinds.com
Table of Contents Feed for the Digital Edition of Better Software - April 2008 Better Software - April 2008 Contents Mark Your Calendar Contributions eLightenment Technology Speaking - A Change Would Do You Good Code Craft - A "D" In Programming, Part 1 Test Connection - Learning the Hardware Lessons Management Chronicles - The Art of Persuading Management Cover Story - Incremental and Iterative Development Developers...Start Your Engines Where Do I Go From Here Product Announcements 10 Things You Might Not Know About... The Last Word - Software Quality and the Prisoner's Dilemma Ad Index Better Software - April 2008 Better Software - April 2008 - (Page Intro) Better Software - April 2008 - Better Software - April 2008 (Page Cover1) Better Software - April 2008 - Better Software - April 2008 (Page Cover2) Better Software - April 2008 - Better Software - April 2008 (Page 1) Better Software - April 2008 - Better Software - April 2008 (Page 2) Better Software - April 2008 - Contents (Page 3) Better Software - April 2008 - Mark Your Calendar (Page 4) Better Software - April 2008 - Mark Your Calendar (Page 5) Better Software - April 2008 - Contributions (Page 6) Better Software - April 2008 - Contributions (Page 7) Better Software - April 2008 - eLightenment (Page 8) Better Software - April 2008 - eLightenment (Page 9) Better Software - April 2008 - eLightenment (Page 10) Better Software - April 2008 - eLightenment (Page 11) Better Software - April 2008 - eLightenment (Page 12) Better Software - April 2008 - Technology Speaking - A Change Would Do You Good (Page 13) Better Software - April 2008 - Code Craft - A "D" In Programming, Part 1 (Page 14) Better Software - April 2008 - Code Craft - A "D" In Programming, Part 1 (Page 15) Better Software - April 2008 - Code Craft - A "D" In Programming, Part 1 (Page 16) Better Software - April 2008 - Code Craft - A "D" In Programming, Part 1 (Page 17) Better Software - April 2008 - Test Connection - Learning the Hardware Lessons (Page 18) Better Software - April 2008 - Test Connection - Learning the Hardware Lessons (Page 19) Better Software - April 2008 - Management Chronicles - The Art of Persuading Management (Page 20) Better Software - April 2008 - Management Chronicles - The Art of Persuading Management (Page 21) Better Software - April 2008 - Management Chronicles - The Art of Persuading Management (Page 22) Better Software - April 2008 - Management Chronicles - The Art of Persuading Management (Page 23) Better Software - April 2008 - Cover Story - Incremental and Iterative Development (Page 24) Better Software - April 2008 - Cover Story - Incremental and Iterative Development (Page 25) Better Software - April 2008 - Cover Story - Incremental and Iterative Development (Page 26) Better Software - April 2008 - Cover Story - Incremental and Iterative Development (Page 27) Better Software - April 2008 - Cover Story - Incremental and Iterative Development (Page 28) Better Software - April 2008 - Cover Story - Incremental and Iterative Development (Page 29) Better Software - April 2008 - Developers...Start Your Engines (Page 30) Better Software - April 2008 - Developers...Start Your Engines (Page 31) Better Software - April 2008 - Developers...Start Your Engines (Page 32) Better Software - April 2008 - Developers...Start Your Engines (Page 33) Better Software - April 2008 - Developers...Start Your Engines (Page 34) Better Software - April 2008 - Developers...Start Your Engines (Page 35) Better Software - April 2008 - Where Do I Go From Here (Page 36) Better Software - April 2008 - Where Do I Go From Here (Page 37) Better Software - April 2008 - Where Do I Go From Here (Page 38) Better Software - April 2008 - Where Do I Go From Here (Page 39) Better Software - April 2008 - Where Do I Go From Here (Page 40) Better Software - April 2008 - Where Do I Go From Here (Page 41) Better Software - April 2008 - Where Do I Go From Here (Page 42) Better Software - April 2008 - Product Announcements (Page 43) Better Software - April 2008 - Product Announcements (Page 44) Better Software - April 2008 - Product Announcements (Page 45) Better Software - April 2008 - 10 Things You Might Not Know About... (Page 46) Better Software - April 2008 - The Last Word - Software Quality and the Prisoner's Dilemma (Page 47) Better Software - April 2008 - Ad Index (Page 48) Better Software - April 2008 - Ad Index (Page Cover3) Better Software - April 2008 - Ad Index (Page Cover4)
For optimal viewing of this digital publication, please enable JavaScript and then refresh the page. If you would like to try to load the digital publication without using Flash Player detection, please click here.