This book is divided into three parts. Parts I and II are designed to be read start to finish. Part III is designed for easy reference.
In Part I you’ll learn the basics of software architecture and design thinking needed to become an architect.
In Part II you’ll learn the essential skills and knowledge all software architects possess.
Part III includes a set of practical architecture design methods. There are no silver bullets, but every software engineer has a silver toolbox filled with practices, methods, and techniques that together allow them to ship amazing software. The methods in Part III come from my silver toolbox and it is my privilege to share them with you.
Each chapter in Parts II and III focuses on a different design mindset, which you’ll learn more about in Chapter 2, Design Thinking Fundamentals. Design mindsets are a way of thinking about the world to help us focus our attention on the right details at the right time. There are four design mindsets: understand, explore, make, and evaluate. Look for the icon at the start of each chapter to tell you which mindset you’ll be learning about next.
When you opened this book, you joined a community of software architects who help one another by sharing advice, tips, and good practices. To officially welcome you to the community, I’ve asked some fellow software architects to share tips and advice they think you should know. You’ll find their stories and advice in sidebars throughout the book.
Our extraordinary community contributors are Len Bass, Bett Bollhoefer, Simon Brown, George Fairbanks, Thijmen de Gooijer, Patrick Kua, and Ipek Ozkaya. You can learn more about them in Appendix 1, Community Contributor Bios.
When talking about abstract things, it’s all too easy to stay abstract. To prevent that from happening I’ve included a case study—Project Lionheart—based on real systems I’ve worked on in the past. The case study is introduced in Chapter 1. You’ll see examples from the case study as the book progresses.
Great software architects have dirty hands. To become a great software architect, you have to practice design, not just talk about it. Anytime you see this icon it’s time to think critically and put the theory into practice. Like architecture design in the real world, Get Your Hands Dirty exercises have many right answers. How you arrive at an answer—the journey—is as important as the solution itself.
18.226.186.172