Michael Keeling, IBM Watson Group
The concept of design as a way of thinking comes from Herbert Simon in 1969. Companies would empathize with the user and work to solve their problems, but this approach had the unintended side effect of focusing too exclusively on the user interface, and there is more to design in software than the user interface. Software architecture is the perspective that holds all the perspectives together: users, business needs, and more.
Design is a noun, a verb, a sensibility, and a method. Design thinking is a way of thinking about design and a collection of design-focused methods. In this experience report, Keeling introduces the set of design modes that IBM uses: Explore, Understand, Evaluate, and Make. Define the problem in terms of patterns and what might work in terms of engineering approaches. Create something that exists in the real world, and use learning about the results to inform what you do next. This definition aligns with software architecture, as demonstrated by a mapping of architecture-focused design methods to these four design modes. For example, Evaluate maps to Question – Comment – Concern, and Understand maps to Stakeholder Maps and the System Properties Web.
That’s the theory. How do you do it in practice? The modes can be executed in any order, and the intuitive path may not yield the best or most interesting results. You can hold a workshop with an ordered set of methods, such as the Quality Attributes Workshop. You might begin in Make mode by creating a presentation, then Understand stakeholder needs, Evaluate by brainstorming quality attribute scenarios, and then Make/Understand through scenario building and refinement.
Workshops will get better engagement from participants when they follow the three Fs: Fast, eFfective, and Fun. Set ground rules to prepare people to behave the way you want them to behave. Prepare for the workshop with a solid agenda. And have the right people in the room. Use a “stoke,” a brief activity to move participants from passive to active mode and get them ready to engage. The meat of the workshop is the design method, and the main driver is what you want to learn. Lean on the four-method framework to help you decide. Who and how much time is available are also factors for planning a design workshop. During the workshop, use a five-step approach to introduce a method: share the objective, describe the method, show a concrete example, describe the method again, and a set time limit. Have a solid closing that includes reflection, insights, and actions for follow-up.
There is more to architecture and design than workshops, sticky notes, and diagrams, such as experiments, code, and review. Software architects need to become better at design to grow the next generation of architects.