최대한 늦게 결정

Lean software development 원칙 중 하나

Development practices that provide for late decision making are effective in domains that involve uncertainty, because they provide an options-based approach. In the fac of uncertainty, most economic markets develop options to provide a way for investors to avoid locking in decisions until the future is closer and easier to predict.

Delaying decisions is valueable because better decisions can be made when they are based on fact, not speculation. In an evolving market, keeping design options open is more valuable than committing early. A key strategy for delaying commitments when developing a complex system is to build a capacity for change into the system. —pxxvi, Introduction, Lean software development (book)

Two Cost curves:

There are a few basic architectural decisions that you need to get right at the beginning of development, because they fix the constraints of the system for its life. Examples of these may be choice of language, architectural layering decisions, or the choice to interact with an existing database also used by other applications. … Because these decisions are so crucial, you should focus on minimizing the number of these high-stakes constrains. You also want to take a breadth-first approach to these high-stakes decisions. … Two cost curves.png

A single cost curve is misleading. Instead of a chart showing a single trend for all changes, a more appropriate graph has at least two cost curves. The agile development objective is to move as many changes as possible from the top curve to the bottom curve. —p50-51, Chapter 3, Lean software development (book)

2024 © ak