To create effective user experiences, we are guided by the principles of human centered design and the agile development method. Human centered design is a mindset that adopts the end user’s perspective and needs from the very beginning of the conceptualization process. Whereas a traditional design approach might ask the question, “Which features should we add to our software?”, human centered design asks, “What kinds of problems do our users encounter that we can help solve?”
The agile method is a process and design philosophy that emphasizes tight bursts of productivity, called “sprints”, coupled with immediate end user feedback, followed by iterative cycles of sprinting and evaluation. In contrast, the more traditional “waterfall” method of development entails fully defining every aspect of a product at the outset, and then embarking on a large, singular effort to build it without feedback during the development process. With the agile method, compared to the waterfall approach, projects move at a more predictable pace and evolve to provide features and capabilities that might not become apparent until the middle of the project.