Project Turnaround

It is surprising why regularly project scope is not reduced when projects last too long and are too expensive.

The Drama of the Failed Project

  • complexity expands exponentially
  • people add features (expected value ≠ actual value; bonus: they don't verify their feature's assumptions upfront)
  • people incorrectly assume adding their feature adds a linear effort (while complexity drives effort exponentially)
  • effort to completion increases faster than capacity to complete the project
  • people defend their ideas
  • it is harder to remove features than to add (politics)
  • no one wants to take responsibility to remove features in a failing project
  • key architectural decisions are not made (a system's performance optimised for A goes down if it tries to do A and B together, provided A and B conflict in their parameters)
  • time to market = backlog / implementation capacity
  • backlog effort increases exponentially (as more features are added)
  • implementation capacity at best remains constant
  • no overarching data structure
  • the architecture cannot be established (too many conflicting features)
  • if the product had be completed, it would already have been outdated by changed market conditions

TL;DR: people increase effort to completion, time to market prolongs, no overarching architecture.

Operationalization: 25/25 principle

  • terminate 25 % of effort with least expected value
  • terminate 25 % of effort with least expected value of each remaining task

Result: Value per effort goes up at constant working capacity, resulting in faster completion.

The Turnaround

  • A project trying to cover almost everything, does not really know what it really should solve.
  • time to market = backlog / implementation capacity
  • reduce backlog by removing features (recursive 25/25; prioritisation criterion: value/effort)
  • make key architectural decisions to establish overarching data structure
  • realise shorter time to market
  • user value meets market timely
  • increased iteration speed
  • pre-screen feature requests: verify a feature's assumptions upfront (not by implementing the feature directly)