How does this keep us Agile?

Software design isn't something we do before we start writing code, it's something we do as we write it. When patterns emerge, we can begin to take advantage of them, creating abstractions for reuse.

This helps us avoid being caught by the You Ain't Gonna Need It (YAGNI) principle of software design. YAGNI happens when we design software features for some perceived future need and not the actual needs we have now.

It doesn't mean that we just start programming. Having some understanding of the problem and formulating a strategy regarding how we're going to solve the problem is necessary to get us started on the right path. It does mean that we shouldn't try to solve problems we don't have yet.

Get The Agile Developer's Handbook 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.