Extreme Programming (XP) provides options


Posted by Alex Bunardzic on Wed 12 May 2021

What does 'extreme' in Extreme Programming stand for? It stands for extreme interruptability and extreme steerability

One of the issues with traditional waterfall method is that once the project starts rolling, there are no options other than to rush toward the product launch (i.e. the pre-established deadline). Prior to the roll out of the project, the opportunity has been identified and selected for implementation, the budget has been secured, teams have been formed, timelines have been established and now’s the time to execute on the plan. That’s why we’re here, that’s what we get paid to do.

Sounds reasonable, no? So why consider changing the above approach? In other words, why consider options once we’re holding a firm project plan in our hands?

Best laid plans…

The reason why many of the waterfall-based software development projects tend to overpromise and underdeliver lies in the fact that such projects usually take sizeable chunks of time to deliver. It is exceedingly rare that a waterfall project gets done in a matter of few days/weeks. More likely, such projects typically take many months, sometime even years. They consume not only large periods of time but also large amounts of money, and naturally carry with them large levels of risk.

Why is that a problem? Well, we live in a very dynamic world where market, regulatory, climate, health and other pressures rule the roster. And because reliable crystal ball hasn’t been invented yet, the upcoming unavoidable shifts in various pressures seem devilishly difficult to predict. And since they are difficult (read: almost impossible) to predict, it goes without saying that those unplanned shifts are impossible to control.

What is the alternative?

Once we realize that even the best laid plans are susceptible to being invalidated by unpredictable shifts, we are forced to start looking for plan B. What are our alternatives? We don’t want to be caught in the situation where we allocate and burn a lot of funds, time, and resources only to realize it was all in vain.

One alternative that was proposed some 25 years ago is Extreme Programming (XP). Unlike many other methods that have been introduced over the years proposing to improve the delivery of software products, XP has proven to have strong staying power. Its staying power is especially corroborated by the fact that, unlike most other methods which gave undergone numerous revisions, XP today is pretty much the same as it was 25 years ago.

This absence of any significant revisions fortifies the conviction that we are dealing with a truly robust, effective method for delivering quality software.

What options does XP offer?

When it comes to dealing with unplanned/unpredictable changes that affect the project that is underway, XP offers several important options:

Option to wait (defer investment)

Conventional wisdom teaches that we should always build in capabilities early, even if it’s not clear yet whether those capabilities will be needed later. XP explicitly acknowledges that it is better to wait. Premature optimization is the root of all evil, therefore it is better to abstain from rushing in. The sobering fact remains that the projected value of making that early investment may not materialize, so it is potentially wasteful.

XP method explicitly recognizes the value of our option to wait.

Option to switch

XP is based on tightening the feedback loops caused by making a change in the system we are building. Rather than assuming that we have considered all possibilities upfront while we were formulating our plan, XP insists that we should check and re-check our starting assumptions every step of the way.

That posture makes us extremely interruptible. If things for whatever reason start going south, instead of blindly sticking to the original plan, we should utilize the XP method by leveraging the early opportunity to switch.

XP makes us extremely interruptible and steerable.

Option to abandon

This option is a corollary to Option to switch, but in a more drastic fashion. When doing XP, we make ourselves interruptible, so we may discover at some point that the business value we’re pursuing has diminished. It is at that point (or around that point) that we may consider abandoning the pursuit. Ouch!

Good news is that XP provides an explicit abandonment step. Abandonment value is increased by the virtue of having developed and used core skills. Even after we abandon the pursuit, those skills get retained. We learn something from the experience.

In XP, the glass is half-full. And because we have abstained from charging blindly toward the deadline, ignoring any and all signs warning us to abandon the ship, we leave the abandoned initiative with a positive attitude (unlike in other methods where abandonment is viewed as a failure or a disaster).

What are the values of these options?

When evaluating options, we must consider several factors:

  • The cost associated with obtaining an option
  • The payback that the investment in an option brings
  • Time lag between obtaining an option and being able to make a contingent decision
  • The uncertainty offset

Various options come with various investment strategies and promise various paybacks. In general, the biggest potential for considerable payback is with offsetting the uncertainty. In cases where the future is stable and predictable, the value of XP options is negligible. But as soon as the future becomes uncertain, investing in those options becomes very valuable.