A team must choose a solution, but another team is still developing a library that might be useful. Committing now could rule out a better choice; waiting indefinitely could rule out the library anyway. Real options means preserving a choice while you gather information, then committing when you know enough—or before that choice expires. section 5.3.3
An option has value because it creates a possibility without an obligation. A buyer who may need steel can pay for the right to buy it later at today’s price rather than purchasing it immediately. The option has a cost, but it limits the risk of committing before the need is clear. Software decisions involve a similar trade-off between the value of waiting and the cost of keeping choices open. section 5.3
Use the principle when planning features or choosing an implementation:
- Identify what you do not yet know and which choices remain available. section 5.3
- Find out when each choice expires. Leave enough time to discuss detailed requirements with stakeholders before a feature is due. section 5.3.3 section 5.2.3
- Learn what matters—for example, test alternative solutions experimentally—then implement the chosen solution promptly once you have enough information. Do not wait merely for the sake of waiting. section 5.3.3
When to detail a User Story
Specifying configurable notification messages too early could produce functionality with little business value or miss stakeholders’ expectations. Leaving the story until too late, however, would leave insufficient time to discuss its requirements. Keep the detail open while useful information may emerge, but resolve it before that discussion becomes impossible. section 5.2.3
Real options complements Deliberate Discovery: preserve useful choices while actively reducing uncertainty. The goal is not to postpone every decision until the last possible moment; it is to avoid committing to a particular solution before you understand why it is appropriate. section 5.3.3 section 5.6
