Software Evolves: An Anology
Joel pointed out this blog which has a JavaScript app that builds an image by starting with a clean slate. Gradually it tries to add different types and sizes of polygons of different colors. Joel pointed out that the way this app builds the image reminds him of how we build software. You start with a vague idea of what you want to build and gradually as you start developing the product clarity emerges. In the process you might try various different things letting the software product evolve.