Chapter 12Practice 8: Implement the Design Last

While I’m not advocating putting off all design until the end, some design activities in software are actually more effectively and efficiently done toward the end of the development cycle. The kind of design I’m talking about here doesn’t happen on whiteboards; it happens in code when the code is already working and fully supported by tests. This is the ideal time to design supportability into software.

Tests support safely cleaning up code, so it often makes sense to wait until tests are in place and code is working before shaping the design of the code. I find more opportunities toward the end of a project to discover design patterns and better understand what the system is supposed to do than ...

Get Beyond Legacy Code now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.