My current work project started last summer, as a bit of experimentation. A few of us sat together in a room and started writing down a hypothetical piece of configuration. Within less than a week, we had actually written a prototype-quality piece of software accepting exactly the configuration we had brainstormed. A few months later however, this project went through a difficult phase where we realized that we actually needed to write down a plan for bringing the software to a stable, usable...