I gave this talk at CodeStock 2018. Some of the slides are (semi) original artwork, inspired by ReverentGeek and Schlock Mercenary.
Watch the video of the talk here, or view the slides here.
If you have suggestions on how I could improve the talk, please contact me! My Twitter handle is @spamagnet.
… and yes, I need to stop saying, “But here’s the thing.”
Managers often have a bad reaction to hearing developers say that they need to throw away or rewrite code. Source code is expensive, taking hours/weeks/months/years of painstaking work to develop and maintain. “Why couldn’t we have done it right the first time?” “Is there any way to salvage the code and reuse it somewhere else?”
This comes from a faulty view of code as the end product; in reality, the end product is the service that the code provides.
To illustrate this, take an extended construction metaphor. When constructing a house or commercial building, the blueprint is a fairly minor part of the cost. You don’t want to scrimp or cut corners on the blueprint because you run the risk of far more expensive problems during the construction phase.
In software, however, the construction (build) phase is nearly free. Not only that, but a newly built “house” can be duplicated and deployed as many times as you like.