Iterative Development

In this article we will describe our view on iterative (software) development, which is in line with the Design Thinking methodologies. Additional information is referenced in Resources.

Design Thinking in 5+1

Design Thinking is a methodology that aims to ensure that we build products users love! The product development process is sketched in the image above and described below.

The human-centered focus and iterative approach to product development is what we fell in love with at 1 Iteration. We believe it to be an efficient method to keep learning about the problems we try to solve, while continually improving our solution.

1 | Empathize

The first step of building a product that users love, is to understand the users; we need to empathize with them. To begin empathizing with the users, it is recommended to observe them and their behavior. By watching the users, we get clues on how they perceive the world and what they think when doing a specific task.

Engaging with the users allows us to learn how they perceive the problem we want our product to solve or the experience we want to improve. By talking to users they can reveal their perceptions that can be difficult to observe from a distance.

Finally, it is of great value to immerse oneself in the problem space and experience what the users experience. In this way, we get to experience first hand what the users are currently going through.

2 | Define

It is now time to synthesize the empathy findings into needs and insights. The focus should be on truly understanding the users and the problem space, which is summarized in an actionable problem statement.

This problem statement is denoted your point of view and allows you to easily understand the problem you are trying to solve. It is important that the statement is actionable so that the problem becomes more concrete rather than abstract.

3 | Ideate

After having gained insights in our users' perception of the world and the challenges they face, and synthesized this into an actionable problem statement, we are ready to propose solutions.

The purpose of ideation is to explore as large a solution space as possible. This allows us to come up with innovative solutions. In the end of an ideation phase, the team should have a vast number of innovative, creative, and perhaps ridiculous solutions to evaluate and choose from.

A common ideation tool, brainstorming, can be used. During ideation it is important to embrace ideas and build upon them. It is important not to limit oneself by considering feasibility during ideation, since it is often possible to hack solutions to ideas that seem infeasible.

4 | Prototype

Prototyping is a process of building something tangible that people can interact with. It can be something as simple as a wall of post-it notes or a storyboard or it can be a real working product. For software apps, tools like POP by Marvel can be used for prototyping (easy to use by non-technical people).

Besides being able to test functionality, working on a concrete solution during prototyping allows you to gain a deeper understanding of the problem space (empathy). You also begin to think and come up with alternative solutions and inspire others by being able to showcase your vision.

The process can be a good way to solve disagreements and start conversations around the problem and possible solutions. Lastly, prototyping can be quick, cheap, and a method to break a complex problem into smaller testable parts.

5 | Test

Testing is the process letting users directly interact with, and react to, our proposed solution and it is an opportunity to learn first hand from their experiences in order to refine and improve our solution. It is important to note that testing allows us to empathize with users and it is thus natural to move from the test phase to the empathize phase.

As more and more people use the product, teams tend to test by measuring KPIs; conversion rates, user retention, etc. However, even though they are important, testing against KPIs may lead to local maxima as you cannot empathize with users by only evaluating numbers.

+1 | Iterate

Repeat the process over and over to keep improving your product and do not forget the human-centered approach.

Since one first truly understands user needs when the product (or prototype) is tested, we believe that each iteration of the development cycle should be as short as possible. In that way, developers can adapt to users' needs before spending too much time building a solution or developing functionality that provides little or no value.

Resources


Additional material available from Stanford University d.school: dschool.stanford.edu