Change: Ally or Enemy?Kent Beck, during a workshop on XP for capitalists, provoked the audience by proposing that XP could create ten times more value than a heavyweight process. How can this ever be possible? Consider the two fundamental premises of XP.
Premise B is more controversial. We don't know whether it's true or whether it is universally true. We don't know whether it is a consequence of the 12 XP practices or of the advancements in software practice and technology in general. Thus, we will condition our conclusions and insight on the truth (or falsity) of premise B. For the time being, let's take it as a given as well. Consider the following XP principles and practices.
How does one get from the premises A and B to the principles and practices 1 through 6? At a gut level, if change is inevitable, naturally the best way to manage it would be to embrace it. It all seems to make sense, but the cause-effect relationships between the premises and the resulting principles and practices of XP, as well as among the principles and practices themselves, are more subtle and complex than they first appear. True, a flattened cost curve would make 1 through 6 possible. But why would it also ultimately make XP more profitable? True, investing in a complex design would not make sense under highly volatile and vague requirements. But wouldn't this argument hold under an exponential cost-of-change curve even more strongly than it does under a flat cost-of-change curve? So again, how does XP create more value here? The answer lies behind a crucial characteristic of XP: flexibility. Change is driven by uncertainty. At the heart of any process designed to cope with uncertainty is flexibility. Embracing change means treating uncertainty as an ally rather than viewing it as an enemy. Embracing change means embracing flexibility. Most of the principles and practices, indeed most things that are fundamental to XP, can be in one way or another traced back to flexibility. And flexibility creates value under uncertainty. The more uncertainty there is, the more value it creates. What Is It with Flexibility, Anyway?
This simple yet provocative statement, made during the conferral of the most prestigious prize in economics, forms the point of departure for the discussion of the economics of XP. Let's begin by considering a simple example of flexibility: a fully refundable plane ticket. Such a ticket gives its holder the flexibility to recover the full cost of the ticket in case of an unexpected event. In other words, the customer has the option to exchange the ticket for its cost on or before the travel date should such an event occur. The flexibility provided by the option is desirable if the future is uncertain the more uncertain the future is, the more desirable the flexibility is. The customer can think of the ticket as a risky asset: If such an event occurs, without the flexibility, the ticket will be worthless; if everything goes well, the ticket will preserve its value. A refundable ticket costs more than a nonrefundable ticket. Why? Because customers are willing to pay for the additional flexibility, which protects them in case of a negative development, or if they simply change their mind. The airline company demands a premium for this option over the price of a nonrefundable ticket because by offering a full refund, it risks flying with an empty seat and incurring a loss as a result. Customers, by agreeing to pay for the additional flexibility provided by the refundable ticket, implicitly believe that the value of the option, with respect to the amount of uncertainty they are facing, is comparable or superior to the premium demanded by the airline. Options, Options EverywhereOptions arise everywhere in the business world. Here are some more concrete examples from software development.
These strategic options, both technical and business-driven, commonly arise in the general software industry, but the topic of the discussion is Extreme Programming. What is the relationship of XP to the concept of such options? |