Why GUIs are built at least 2.5 times
https://patricia.no/2025/05/30/why_lean_software_dev_is_wrong.html
Generalized understanding of programs as factories is how we port the notion of "pipes and filters" around: what any given program produces as output can be used as another program's input.
With the "factory" metaphor we can visualize this in bigger programs (GUIs) as a production line.
Viewing things as "pipes and filters" assumes that the kind of input that is supplied will match the output.
When one thing goes into a factory, the output may be similar in shape to the input, but the output is quite different from the original input.
Example, given an encrypted string, you might put it through a decrypt step, then a trim step, and finally an email step. However, the outputs at each step are distinctly different: unencrypted but raw string, modified string, e-mail that may be HTML-based.