What is Iterative Development?
Historically, a majority of projects fail because they haven’t been tested with the actual target user and often go over budget.
Traditional Development Process
Image source: UX Research within an Agile Design and Development Sprint Cycle, from UXPA
A team performs some early research, then develops a set of requirements. Sometimes no research is performed and these requirements are created based on assumptions. Then, the product is only put in front of users at the end of development, often leaving users unsatisfied. This is why iterative development is so important.
Iterative Development Process
Iterative development refers to a method of project management, used especially for software development, that uses research throughout the project with incremental phases of work.
Image source: UX Research within an Agile Design and Development Sprint Cycle, from UXPA
Iterative development will allow us to develop and build products for residents with their needs at the forefront of everything we do, and ensure that we are really serving them and not just ourselves.
Let’s explain this further using food trucks.
Since iterative development involves the process of creating a new product, we’ll use a metaphor of developing a new vegan item and show how that process would go in traditional development vs. iterative development.
Traditional
1. Define the problem
A customer comes to your food truck and ask what vegan items you have. You don’t currently offer anything vegan on your menu.
- You promise to add something to the menu by next week. They say they will return then.
- You don’t ask them any further questions, and they leave.
- You are not knowledgeable about vegan dietary needs.
2. Define a set requirements based on assumptions
Based on your assumptions, you decide a vegan sandwich will be best. You determine that it should have avocado, tomato, pinto beans and cheddar cheese.
3. Provide the requirements to the team
You hire and pay for chefs to make the sandwich. Unfortunately, you don’t have much time for hiring, so none of the chefs have a vegan speciality. You give them the list of requirements:
- avocado
- wheat bread
- pinto beans
- tomato
- cheddar cheese
4. Purchase new tools or software needed
You purchase the ingredients, supplies, and a new stove to produce your new menu item faster. You sign a 5-year contract with the vendors.
5. Team develops a product based on the requirements and deadline
The chefs now have two days to prepare a vegan sandwich with all of the ingredients in the requirement list. In a rush to meet the deadline, one of the chefs makes a mistake and uses butter on the bread.
6. Put the fully-developed, final product in front of the user
The customer returns a week later. You’ve added “vegan sandwich” to your menu. You give the sandwich to the customer.
Result
The customer hates the sandwich.
“I don’t like pinto beans. I like black beans.” “I’m vegan. I don’t eat butter or cheese!” “I would have preferred a vegan salad, taco or wrap instead.” “I’m never coming back here. This was a terrible experience!”
Try Again?
If you decide to try again, you’ve wasted valuable time and money. Now, you may be stuck with staff, supplies, equipment, processes, and contracts that you don’t need.
While you were able to produce an unsatisfactory sandwich quickly, the development process used is requiring you to start all over and leaving you with some negative long-term effects.
This is the problem with the traditional product development process. It requires time and financial investments to build a fully-finished product that often doesn’t consider the user’s needs or feedback until the very end, essentially failing and wasting valuable business dollars.
Iterative
1. Define the problem
A customer comes to your food truck and ask what vegan items you have. You don’t currently offer anything vegan on your menu.
2. Focus on your user
You get to know your customer. You ask them about themselves. You ask what type of vegan dishes they like. You get to know them and understand their needs.
You find out that they are a 33-year old Austinite, who is vegan, loves black beans and is an architect who works in a building nearby your food truck. They need a good place to get vegan food for lunch regularly.
3. Develop a clear goal
You let them know that you don’t currently offer vegan food, but you would love to work with them to develop something other customers would enjoy, too. They agree!
You write a clear goal that you will create a vegan wrap with a variety of topping options to best meet your customers’ needs and will include your customers’ feedback.
You’ll add the wrap within approximately 3 months, keeping that deadline flexible for adjustments if major findings are found and the development roadmap needs to be changed.
4. Test your assumptions with your user
- You research common vegan wrap recipes, and look at what vegan items other local food trucks are offering.
- You develop a list of necessary ingredients. You understand the importance of user research so you ask the customer to look at your requirements list and give you input.
- Almond flour tortillas and whole wheat tortillas
- Black beans and pinto beans
- Tofu
- Pickled cabbage
- Kale
- Onions
- Carrots
- The customer says: “This looks great, but I’d add coconut wraps and vegan cheese.”
5. Build in increments
- You hire a chef with a vegan specialty. You don’t have them rush to make the whole wrap at once.
- You research the best vegan cheeses. You purchase a small sample of the top two cheeses and test them with customers for two weeks.
- After evaluating all customer feedback over the next week, you select one cheese to use.
- You get customer feedback on other ingredients to add.
- You repeat the user research process for all the other ingredients, and develop a “prototype wrap” to test with more customers, not yet adding it to your full menu.
- While this may take longer than putting out a fast, but likely failing, final wrap, incremental development allows your customers to be repeatedly engaged so they know the proper solution is coming: Buy-in!
6. Measure success
- Customers try the prototype wrap.
- You measure success using qualitative metrics, such as interviews and surveys, where most customers say they love it. A few have suggested changes in how the tofu is cooked. Others have recommended an even better vegan cheese.
- You measure success using quantitative metrics, such as increased sales and customer repeat visits.
7. Reflect, adjust and iterate
- You have the chefs cook the tofu softer. You purchase the recommended vegan cheese. You test again with customers with these new changes. You repeat until fully meeting your success metrics.
- You add the vegan wrap to your menu.
- You keep a feedback mechanism open so that customers can continue to provide their comments on the wrap.
- You avoid establishing any long-term vendor contracts with the ingredient providers so that you can change your offerings as your customers’ needs change.
Result
Your customers are happy, and their needs are being met.
“I feel heard.” “I love the new vegan wrap!” “I appreciate my feedback being incorporated.” “I’m coming here for lunch all the time.”
The iterative development process allows you to incrementally develop, test your assumptions with users, and get feedback so that you can iterate without investing a large amount of money in contracts, tools and solutions that may not even meet user needs and that you could end up stuck with.
As we test a new platform for City of Austin digital services, we are using an iterative development process. While it is a shift from traditional development processes used in government, it is a process used by the largest, most successful private companies around the world, and the direction we must go if we are to best serve our residents and provide them the digital services they expect.