Rethinking Software Design
How does design thinking apply to software? Until now, most work on software design has focused on the design of the internal structure — not on the design that the user experiences. We’ve made a lot of progress in making software more usable with better design processes and heuristic guidelines, but we still lack a fundamental theory that could provide a more focused and constructive way to design software.
In this talk, I’ll explain the elements of a candidate theory that I’ve been working on. The behavior of a software app is structured as a collection of “concepts”, each of which is a state machine with its own motivating purpose. By examining the mapping between concepts and purposes, subtle design flaws are exposed that can have major impacts on usability.