Building great software, Cooper argues, requires embracing a new approach to design, one that distinguishes between three challenges: conceptual design, interaction design, and interface design. Conceptual design shapes what a product does. Interaction design determines how it behaves by examining what users are trying to do with it. Interface design affects how it looks and feels.