In the explore mindset, we work to discovery multiple design concepts and engineering approaches we think will solve specific problems. Architecture exploration focuses on the part of the world architects control—the software. We don’t always get to choose the problem, but solutions are bound only by our knowledge, creativity, and skills.
Exploration may seem without bounds, but according to the redesign rule, introduced in The Four Principles of Design Thinking, we rarely create new architectures completely from scratch. Since all design is redesign, exploration starts by considering solutions we already know, such as the patterns outlined in Chapter 7, Create a Foundation with Patterns. We’ll also explore knowledge codified in frameworks and experiences woven into our cultural fabric as rules of thumb.
Since architects are equal parts designer and engineer, there are a few other areas we’ll want to explore. Construction methods enable real software to be built and can influence the architecture. Domain concepts from the problem space are a great starting point for solution ideation. Of course, we’ll explore elements, relations, and their responsibilities too.
As we explore solutions, we’ll gain a deeper understanding of the problem. Learning as we go is normal. In Notes on the Synthesis of Form [Ale64], Christopher Alexander explains that we can only define a problem with a solution in mind. A problem will lead to a solution which in turn will redefine the problem. This is all part of the fun of design.
The activities in this chapter will help you generate options for the architecture. Use them to explore the structures that will become your architecture and figure out engineering approaches for making them real.
3.149.26.31