이터레이션
Lean software development
LSD의 원칙 중 하나인 Amplify learning의 도구.
Three fundamental principles:
First, as we will see in Chapter 4, Queuing theory, small batches moving rapidly through a system lead to all manner of good things. Small batches enforce quality and worker-level communication while allowing for greater resource utilization. They provide short Feedback loops, which enhances control. For this reason, short, complete Iterations are fundamental to Lean Software Development as small batches are to Lean manufacturing.
Second, short Iterations are an options-based approach to software development. They allow the system to respond to facts rather than forecasts. There are few endeavors in which it is more important to keep options open than in software development. In Chapter 3, Decide as late as possible, we see that options-based approaches are fundamentally risk-reduction strategies, and as counterintuitive as it may sound, you actually reduce your risk by keeping options open rather than freezing design early.
Finally, Iterations are points of Synchronization across individual and multiple teams and with the customer. Iterations are the points when feature sets are completed and the system is brought as close as possible to a releasable or shippable state - even if it will not actually be released. Thus, Iterations force decisions to be made. Frequent points of Synchronization allow teams to work independently yet never stray far from the work of other teams of the interests of customers and users. —p28, Lean software development (book)
Can Iterative development process converge on a solution?
Consider a thermostat. It does not turn on the furnace the moment the room temperature falls below the setpoint, and then turn it off the moment the temperature rises to the setpoint. If this happended, the furnace would cycle on and off constantly, something that is not good for furnaces. Instead, the thermostat turns on heat when the temperature falls a couple of degrees below the setpoint and leaves the furnace on until the temperature is a degree or two above the setpoint.
An iterative development process achieves this same effect by limiting customer requests for feature changes to the beginning of each Iteration. During the Iteration, the team concentrates on delivering the features it ommitted to at the beginning of the Iteration. If the Iterations are short - 2 to 4 weeks - the Feedback loop is still quite short. —p31, Lean software development (book)