Explore the intricacies of software design in this conference talk from Devoxx Poland 2022. Delve into the debate between upfront and evolutionary design approaches, examining their strengths and weaknesses. Discover the importance of diagrams in the design process and learn about the C4 model for visualizing software architecture. Investigate the role of UML and how to create meaningful system context and container diagrams. Address common pitfalls such as superficial views and overly complicated diagrams. Gain insights into agile architecture, risk storming, and threat modeling. Understand how to balance upfront design with evolutionary approaches and determine the appropriate amount of design for your project. Equip yourself with valuable knowledge to enhance your software design skills and make informed decisions in your development process.