The concept of iteration is based on the understanding that large problems can be broken down into pieces and that each of these pieces can solved incrementally through a process of discovery.
In the language of Agile, we talk about "rock crushing" a problem – breaking it down to its components – and then developing Sprints to incrementally develop a new solution.
One doesn’t have to fully understand the true nature of the problem before attempting a solution to solve it.
The solution to each piece is attempted, recognizing that, as only one piece is being focused on, the risk of failure is manageable. Further, in any failure, there will be a deeper understanding of the problem. As the true nature of the problem is revealed, a better solution can be developed.
DOT FROM preview-next-diagram