posted 8 years ago
Hi Arvi,
I'm not sure that I understand your distinction between design and build, so please correct me if I get it wrong.
My take is that it's virtually impossible to separate design from coding. I have a discussion on this topic in the book. To summarize, basically programming is problem solving. And problem solving requires a large degree of experimentation. That means programming is inherently iterative, just like all human problem solving is. We learn by doing and that learning results in better designs.
The only way I know to get early feedback on a proposed design is to prototype it. The analyses in the book will help your learning by pointing out the areas of the system where the design would need to improve. However, they do that by analyzing the evolution of the actual code.
Author of Software Design X-Rays: Fix Technical Debt with Behavioral Code Analysis (2018).