Part III: Maintaining the Codebase
Writing a first draft is very much like watching a Polaroid develop. You can't – and, in fact, you're not supposed to – know exactly what the picture is going to look like until it has finished developing.
– Anne Lamott Brown (BIBLIO: Bird by Bird)
People think of building software like they think of building buildings or writing songs. But they are wrong.
Software represents ideas. Ideas are dynamic, and ever changing. And so the software must change with it. This is what it means to "maintain" a codebase: you must keep it up with the flow of ideas. Part III provides the strategies you need to do this in a cost-effective, harmonious way. This is the most overlooked aspect of Software Development, but it's the most important. Most code you work on will be in codebases that you originally did not author. Most of what you will be doing will consist of reading existing code vs. writing new code. Therefore, maintainability is paramount because it will enable others to do their jobs effectively.
This section will give you strategies to help deal with change, that corrosive agent of entropy that affects every product and every codebase. Whether it's changing ideas, changing people, changing external dependencies, changing company missions, or changing frameworks, these tips will help ensure your codebase sees longevity.