[ [home] ](/) # Code as Evolving Scaffolding Every program is just scaffolding for your next understanding. Been thinking about this scaffolding metaphor. It works on multiple levels: Immediate level: - Code = temporary structure - Real value = data collected + the collected test suites - Don't over-invest in the scaffolding Deeper level: Each program is scaffolding for understanding the next version of the problem: - V1: Build something simple that works - V2: Realize the real problem through using V1 - V3: Rebuild for the actual problem - V4: Discover even deeper patterns - Repeat The code isn't just temporary because we'll rewrite it. It's temporary because our understanding keeps evolving: - Initial code = scaffolding to start collecting data - That data = reveals deeper patterns - Those patterns = lead to better data models - Better models = enable next evolution Your current understanding is probably wrong. Build simple scaffolding that lets you discover why.