Part II: Design Thinking
It’s time to move on to the meat and taters of this book. Changing gears a bit, the next few chapters explore the nitty-gritty of designing software (and any type of design for that matter). I elaborate on specific techniques and methods that are commonly found in most traditional forms of design but that are largely absent from the technology world. I share the specific techniques I use on my personal projects and examples of how to incorporate these tactics into the software design process. I consider these techniques to be of high importance in the design process, and for advocates of user experience, I’m obliged to say they’re required. You will probably be familiar with some of the content, but given the digital context, the contents should provide a fresh perspective on how to incorporate specific tools and techniques into your day-to-day work.
In my office, I often see folks wrestling with wire harnesses, soldering irons, Arduino controllers, and RFID chips. Most of the time, I find an engineer hacking these things together and my piqued interest prompts me to ask, “What’s this crazy mess all about?” And the usual conversation begins with, “I have this awesome idea; I want to build [insert nerdy idea here].” To be honest, the idea is usually quite insightful and clever. However, these brainy concepts are seldom accompanied by a design direction or a rough sketch of how they will actually be used. When I check in a couple of weeks later to see how things are going, more times than not I hear, “It didn’t turn out to be such a good idea” or “I got everything working, but then I hit a wall. . . .
Most of the time, the reason these ideas don’t pan out is not because of technical limitations, but a lack of getting the initial design right. When I say “get the design right,” I mean really understanding what it is that you’re building, not how you’re going to build it. Getting the design right upfront can be intimidating; after all, if it were easy to predict a successful design, we’d all be retired at 30 and sitting on a beach somewhere. And without the aid of a design resource it might feel like you’re wasting time shooting in the dark. However, you guessed it: Many techniques and methods are available that can help you quickly arrive at a good design. Best of all, everything discussed in the upcoming chapters requires almost no formal artistic ability. “Wait!” you ask, “The meat and potatoes of design doesn’t require any formal design training?” Right. Your ability to be organized and use good logic is all you need to consistently create intuitive, elegant designs.
The goal of the next few chapters is to help you become reasonably fluent at the following activities:
• Vetting out an idea before you write any code
• Creating clear application designs
• Developing predictable and consistent interactions
• Presenting your content in the best way possible
• Getting buy-in from stakeholders early-on
• Prototyping your way to a good design