So we've heard the message about Clean Code. And we've been practicing TDD for some time now. But what about architecture and design? Don't we have to worry about that? Or is it enough that we keep our functions small, and write lots of tests? In this talk, Uncle Bob talks about the next level up. What is the goal of architecture and design? What makes a design clean? How can we evolve our systems towards clean architectures and designs in an incremental Agile way.