The iterative process is one of those words that, like Agile, automatically makes us think of engineering teams. But most teams iterate in one way or another, and using an iterative method can help you reduce risk, manage efficiency, and approach problems in a more flexible and dynamic way.
If you want to give the iterative process a try, this article is for you. We’ll walk you through how to define the iterative process, as well as how to implement this process on your own team.
The iterative process is the practice of building, refining, and improving a project, product, or initiative. Teams that use the iterative development process create, test, and revise until they’re satisfied with the end result. You can think of an iterative process as a trial-and-error methodology that brings your project closer to its end goal.
Iterative processes are a fundamental part of lean methodologies and Agile project management—but these processes can be implemented by any team, not just Agile ones. During the iterative process, you will continually improve your design, product, or project until you and your team are satisfied with the final project deliverable.
In a non-iterative process, you and your team would work together to come up with a final product without necessarily trying new ideas along the way. Typically, non-iterative processes require more time during the conceptualization and creation phase, so that everything works as intended during the testing phase.
Waterfall is the most common non-iterative process. In the waterfall model, you and your team will define project phases before the project starts. Each phase begins once a previous phase is completed in its entirety. Requirements and resources will typically be locked before a project begins, and the team avoids changing the project plan as much as possible.
For example, imagine you’re working with a design agency to create an ebook. You first need to provide all of the copy for the ebook. Then, the design agency will take that copy and create designs. Finally, your internal team will copyedit the designed ebook to make sure everything looks ok. This is an example of the waterfall model because each phase relies on the previous step (i.e. you can’t copyedit the designed ebook until it’s been designed).
Depending on the team you’re on and the type of projects you run, non-iterative processes can be challenging because they don’t build in time for your team to iterate and continuously improve. Because there are so many unknowns and surprises in engineering, engineering teams in particular tend to use iterative processes instead of non-iterative ones, but any team can benefit.
Most teams use incremental design and iterative processes interchangeably, and in practice, they often go hand-in-hand. But there is a difference between the two terms.
In an iterative process, your team works to refine and improve your project based on feedback or new information. The key to the iterative process is trial and error: the project gets better over time as a result of these changes.
In incremental design—sometimes called incremental development—you will add new features and build better things on top of your first version or deliverable. To run an incremental design process, teams will purposefully produce a bare-bones version of their ultimate project deliverable in order to get it out the door as quickly as possible (like Facebook’s old mantra—move fast and break things). Then, the team will iterate and improve upon the initial version by creating increments that include more features than the initial version. They will continue to do so until their deliverable has all of the functionality it needs to have.
Most teams that use iterative processes use incremental design and vice versa. Good iterative processes are also incremental so that you can continuously improve on your original deliverable. Good incremental design is also iterative because you need to be able to respond to customer feedback and pivot if necessary.
Many engineering teams use the iterative process to develop new features, implement bug fixes, or A/B test new strategies. Often, an engineering team will create a few iterations that they think are equally promising, then test them with users. They’ll note pain points and successes, and then continue building out the one that tested the best.
You might be surprised to realize that most product development is very iterative. Think of any personal technology you’ve ever purchased for yourself—there was likely a previous version before the one you bought, and maybe a version afterwards, as well. Think of the development of mobile phones throughout the years, how speakers have gotten smaller and more portable over time, or even the way refrigerators from the same brands have changed to adapt to new family needs. All of these are iterative processes.
Some marketing teams embrace iterative processes, others not so much. But to a certain extent, a lot of marketing is iterative. For example, some marketing teams might test different advertising copy to see which one gets better engagement, or send out two versions of an email newsletter to compare click-through rates. Alternatively, a brand marketing team could use iterative design processes to identify the imagery that works best for their target audience.
Though most of a sales team’s customer-facing work isn’t iterative, some of their tasks can benefit from iterative processes. For example, a sales team might take an iterative approach to sending cold emails. They might have their reps send a few different email subject lines and analyze the results. Then, the team can implement the most successful subject lines moving forward.
The iterative process can help you during the lifecycle of a project. During the steps of the iterative process, your goals and requirements will serve as the project’s starting point. Then, your team will use testing, prototyping, and iteration to achieve the best possible result. Here’s how:
During this step in the iterative process, you will define your project plan and align on your overall project objectives. This is the stage where you will outline any hard requirements—things that must happen in order for your project to succeed. Without this step, you run the risk of iterating but not hitting your goals.
During this step, you and your team will focus on the business needs and technical requirements of your project. If step one was the process of outlining your goals, step two is when you brainstorm a design that will help you ultimately hit those goals.
During the third step, your team will create the first iteration of your project deliverable. This iteration will be informed by your analysis and design, and should work to hit your ultimate project objective. The level of detail and time you spend on this iteration will depend on the project.
Now that you have an iteration, you will test it in whatever way makes the most sense. If you’re working on an improvement to a web page, for example, you might want to A/B test it against your current web page. If you’re creating a new product or feature, consider doing usability testing with a set of potential customers.
In addition to testing, you should also check in with your project stakeholders. Ask them to weigh in on the iteration, and provide any feedback.
After testing, your team will evaluate the success of the iteration and align on anything that needs to change. Does this iteration achieve your project objectives? Why, or why not? If something needs to change, you can restart the iterative process by going back to step two to create the next iteration. Keep in mind that your initial planning and goals should remain the same for all iterations. Continue building upon the previous iteration until you get to a deliverable you’re happy with.
If you restart the iterative process, make sure everyone is still aligned on your project goals. The iterative process can take weeks or months, depending on how many iterations you run through. Centering your iteration on your project objectives every time you restart the iterative process can help you ensure you don't lose track of your north star.
The iterative model isn’t right for every team—or every project. Here are the main pros and cons of the iterative process for your team.
Increased efficiency. Because the iterative process embraces trial and error, it can often help you achieve your desired result faster than a non-iterative process.
Increased collaboration. Instead of working from predetermined plans and specs (which also takes a lot of time to create), your team is actively working together.
Increased adaptability. As you learn new things during the implementation and testing phases, you can tweak your iteration to best hit your goals—even if that means doing something you didn’t expect to be doing at the start of the iterative process.
More cost effective. If you need to change the scope of the project, you’ll only have invested the minimum time and effort into the process.
Ability to work in parallel. Unlike other, non-iterative methodologies like the waterfall method, iterations aren’t necessarily dependent on the work that comes before them. Team members can work on several elements of the project in parallel, which can shorten your overall timeline.
Reduced project-level risk. In the iterative process, risks are identified and addressed during each iteration. Instead of solving for large risks at the beginning and end of the project, you’re consistently working to resolve low-level risks.
More reliable user feedback. When you have an iteration that users can interact with or see, they’re able to give you incremental feedback about what works or doesn’t work for them.
Inflexible planning and requirements. The first step of the iterative process is to define your project requirements. Changing these requirements during the iterative process can break the flow of your work, and cause you to create iterations that don’t serve your project’s purpose.
Vague timelines. Because team members will create, test, and revise iterations until they get to a satisfying solution, the iterative timeline isn’t clearly defined. Additionally, testing for different increments can vary in length, which also impacts the overall iterative process timeline.
Ultimately, every team can learn something from the iterative process. When possible, approach work with a trial-and-error mentality. When in doubt, lean into flexibility and collaboration. And—whether or not you implement the iterative method—always strive for continuous improvement in your work.
For more tips, read our article on 25 essential project management skills.