December, 2009
Have you ever noticed how grotesque people look in videos when you press pause. The most beautiful move star looks odd and unattractive when frozen mid facial expression. To be alive requires that you change and move. Art, film, music, culture, fashion, ideas all rely on this flux. Yet change and growth are difficult - it is a constant fight against entropy. Sometimes it’s joyful, sometime it’s painful.
Great software requires change and growth as well. Sometimes that means more features. Sometimes that means less. Sometimes it means taking the same ideas and implementing them in a new technology or applying them to a different space. Sometimes that means starting from scratch. Sometimes that means evolving what you already have. As people and culture change, so must software change to keep pace. And to support this entropy fighting back and forth our software must be designed in a way that allows iteration. Rapid prototypical development creates a natural selection pipeline for the truly ingenious ideas to be brought forth. Interestingly, but not surprisingly this idea hints that along that line of evolutionary change are 10,000 ideas that failed for one reason or another. This is the reason why you must have a way to iterate quickly.
And if your software isn’t growing (or isn’t changing fast enough) then you become like those actors frozen in a single frame or like a poorly streamed video that starts and stops: showing a static image every few seconds. And unlike the eons afforded to natural selection your time is a little bit more limited.