Progressive elaboration is one technique that can be applied to virtually any aspect of software development. In reality it is a simple analysis technique which revolves around the maxim: start with what you know.
In agile software development, we apply this to several activities: requirements, design, and planning.
Progressive elaboration starts with the notion, that you cannot know enough about a software system to get to “done”, before you start. Progressive elaboration is sort of a continuous bootstrap process for knowledge.
While agile proponents also talk about how they embrace change, that is not what progressive elaboration is for. Progressive elaboration is a means to get started before you know enough to get to done. It is a means to prevent knowledge gaps from impeding progress. It is a means of driving out information through completing work, rather than by theoretical analysis.Continue Reading