DI Refactoring
Tipping Point
There is a psychological tipping point that affects DI Refactoring1.
At some point, there is too much code and the solution becomes “too big to re-engineer”.
At that point, coding overrides solving. We retain the code and throw away possible improvements.
What is that “tipping point”?
I haven’t measured it.
I know that if I use Lisp, I am more likely to throw my code away when I think of design changes.
I know that if I use towers of data structures in just about any PL2 I am more likely to ignore late architectural changes, or, suffer horribly.
I know that if I draw my solution on a whiteboard, I am more likely to accept and implement design changes.3
I know that if I can see my whole solution - say in one eye-full (a window, a page) - then I am more likely to accept and implement design changes.
See Also
-
DI means Design Intent. Often, the term Software Architecture is overloaded to mean DI. ↩
-
PL == Programming Language. ↩
-
In fact, I have figured out how to automate drawings. I can make drawings that can be automatically compiled to code. I favour the use of a minimal subset of SVG as the atomic syntactic element (intead of single characters) - rects, ellipses, lines, text. ↩