Emergent Design

Iterative development lends itself well to emergent design where we start with a single, testable behavior and continue to enhance it until our design emerges. Building software incrementally through test-first development while paying attention to design principles and practices as well as technical debt helps us build and create better designs than trying to do it all up front.

As you pay attention to the challenges you’re having as you’re building software, those challenges are actually whispering in your ear: “Hey, there is a better way to do something. Hey, there is a better option.” So suddenly you can take the things that are the worst—the bugs, the pain, the nagging customer not getting what he wants, all the horrible ...

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.