TechWorkRamblings

by Mike Kalvas

202107291950 Optimizing rate of change between requirements and implementation

There's a saying that says

A small change in requirements should only result in correspondingly small change in implementation.

I believe this is false or — perhaps more precisely — misleading

If we describe the act of implementing requirements as a function f(reqs)=implementation, then the key thing to remember is that we know nothing about how this function works and therefore it's our job as developers to choose the characteristics of f. We have control over whether we should minimize its rate of change (its derivative δiδr) or whether we should minimize or maximize understandability, maintenance, simplicity or any other number of characteristics of f.

A correlated concept is the 202110111901 Run to change ratio of a program. This note is about the optimization of that change rate, and the other one uses this change rate to build a meaningful metric about the value in making changes relative to its frequency of use.