This post originally appeared on HighScalability.com
Have you ever read a book and wondered how any human could have written something so brilliant? For me it was Lord of the Rings. I despaired that in a hundred lifetimes I could never write a book so rich, so deep, so beautiful. Since then I’ve learned a few things about about how LoTr was created that has made me reconsider. The kick-in-the-head is that it’s the same lesson I learned long ago about writing software.
I’ve always been amazed how a program can start as a single source file and after years of continued effort turn into a working system that is so large no human can come close to understanding it. If you had tried from the start to build the system you ended up with you would have never ever got there. That’s just not how it works. Software is path dependent.
I’ve experienced this growth from a single cell to a Cambrian explosion many times so I know it’s a thing. What I hadn’t considered is how it’s also a thing for writing books too.
Creating good software is a process of evolution through the mechanism of constant iteration for the purpose of survival. This is also how good stories are made. What both have in common is creation through thought.
Thought needs an object to contemplate. Each intermediate state of a project is that object. By linking together a series of state inspired creative jumps something wonderful can be created that may contain only the faintest trace of its beginnings.
Here’s how Lord of the Rings is a good example of this process…