Special guest James Shore returns for another episode of JavaScript Jabber. Today the panel discusses the idea of evolutionary design. Evolutionary design comes from Agile development. It is based on the principles of continuous integration and delivery and test driven
...See More development. In short, evolutionary design is designing your code as you go rather than in advance.

The panelists discuss the difficulties of evolutionary design and how to keep the code manageable. James Shore introduces the three types of design that make up evolutionary design, namely simple design, incremental design, and continuous design. They talk about the differences between evolutionary design and intelligent design and the correlations between evolutionary design increasing in popularity and the usage of Cloud services. They talk about environments that are and are not conducive to evolutionary design and the financial ramifications of utilizing evolutionary design.

The panelists talk about the difficulties of planning what is needed in code and how it could benefit from evolutionary design. James enumerates the steps for implementing evolutionary design, which are upfront design, reflective design, and refactoring . The team ends by discussing the value of frameworks and how they fit with evolutionary design.