What Is Meant by the “Iterative Process”?
The iterative process is an approach that designers, developers, educators, and others use to continually improve a design or product. People create a prototype and test it, then tweak and test the revised prototype, and repeat this cycle until they reach a solution. In some research fields, these repeated rounds of analysis help scientists, mathematicians, or other professionals arrive at a final answer. The process also can be used to continuously improve a concept, design, software system, or product.
The goal of iteration is to get closer to the answer, solution, or discovery with each repetition. The concept and the solution eventually converge, such as in a math function or a scientific discovery, because you progress toward your desired result each time you iterate or tweak the product.
The iterative process is widespread across many industries. Most Agile projects use an iterative approach, incrementally improving the product with each cycle or sprint. The end of one iteration becomes the starting point for the next round.
For example, think of Microsoft or Apple products. Using an iterative approach, these products are regularly updated with new features or benefits, minus some of the problems of previous editions. Even writers, musicians, and cooks use the iterative process to refine their creative work.
You can also use the iterative process when the final output or decision cannot be easily revoked (such as a jury verdict when many votes have to be taken to reach agreement) or if the consequences of revoking the outcome could be emotionally and financially costly (such as a marriage) or have long-term implications (such as war).
Simple, powerful project management with Smartsheet. See for yourself.
Smartsheet is a cloud-based platform that allows teams and organizations to plan, manage, and report on projects, helping you move faster and achieve more. See Smartsheet in action.
What Is an Iterative Procedure?
The basic iterative process relies on repeated cycles of adjustments to refine a product. In math, however, an iterative procedure is used to find a solution to the problem. It requires an initial guess at one of the variables in a problem, and then introduces a sequence of algorithms to find the answer.
You can adapt this math procedure for any problem that requires a specific solution. While you may not have the right answer initially, you can start with a guess, review your solution, refine your guess, review the revised solution, and repeat until you get the correct answer.
Imagine you are trying to duplicate a dessert you enjoyed at a restaurant. You know it contains chocolate, but can’t identify the secret ingredient that makes it taste unique. You take a guess, cook the dish, and taste it to see how close you are to the original. Then, you adjust the ingredients and the quantities, and try again. Each iteration gets you closer to your goal: the perfect dessert.
Why Use an Iterative Process?
The iterative model was developed as an alternative to the Waterfall approach. Because the Waterfall model relies on a sequence of steps that flow toward a result, it can't quickly address development or design inefficiencies, nor can it adjust to changes in the marketplace. Iteration gives designers and developers more flexibility to incorporate changes quickly.
NASA adopted the iterative model in the 1960s with Project Mercury and has continued its use through the Space Shuttle project, as well as for working with the U.S. Air Force to develop the X-15 hypersonic aircraft. The approach has also spread to other industries.
In the 1970s, IBM began using the iterative model in computer system design. And, in the 1990s Canada developed its air traffic control system with an iterative approach. Today, businesses ranging from software applications and engineering to design, marketing, and education use an iterative approach for developing products and meeting market needs.
The iterative process gives you the ability to refine and revise a product quickly, especially if you have an initial version of a product but still need to identify detailed features and functions. This approach assumes that you don't already have all the answers or that the environment for your product, as well as the needs of your customers, will change during the development timeline. An iterative model takes into account the changing landscape, allows you to plan for changes as you create your product, and helps you produce deliverables that are tailored to your market. Here are some of the specific benefits:
- It's efficient. You can build your product step-by-step, rather than having to rework an entire plan as changes occur. In addition, the workload of the team is spread out more effectively throughout the project's development lifecycle.
- It's timely. The first iteration allows you to develop the top priority in functionality. Each iteration is based on any improvements identified in the past cycle, and continual testing gives you a clear picture of the status of your project. You can see the results early and often because each iteration is a managed milestone.
- It's cost-effective. Any changes to the project's scope or requirements, which are common in most projects, are less costly than with a Waterfall approach.
- It's collaborative. You can present the results of each iteration to stakeholders and clients. They can see the evolution of the project and ensure that you are meeting their requirements.
- It improves usability. Testing and debugging are easier with smaller iterations, as you can identify defects early in the process and users and customers are involved with each iteration.
- It eliminates confusion. You can detect inconsistencies or flaws in requirements, design, code, and other implementations with each iteration, so you can avoid misunderstandings.
- It's easier to manage risk. You tackle the high-risk portions of a project first, and every iteration lets you identify and resolve risks.
- It offers continual improvement. Each iteration allows the team to easily incorporate any lessons learned from previous runs and continually improve the development process.
What Is the Iterative Process Model?
The iterative process model is a cyclical process in which you make and test incremental adjustments. The iterative model is popular in technology, engineering, software development, design, qualitative research, project management (especially in Agile and Scrum), and more. Here are how some companies use the iterative process model:
- Website Wikis: These types of websites allow users to aggregate, update, or improve on content. For example, Wikipedia relies on user-generated content that allows reviewers to add relevant information or delete content that is outdated or no longer useful. A wiki is never finished. In the iterative process model, the site continually evolves with new information.
- Human-Computer Interfaces: Many consumers had difficulties using early computers. Programmers had a specific set of skills and knowledge, but they did not represent everyday consumers. Using the iterative process model, designers gathered feedback, adjusted the interface based on that feedback, and released an updated version. These refinements continue today. Computer interfaces and software continue to evolve based on consumers’ feedback and needs. The process of improving usability now extends to a range of mobile devices and smartphones.
- Computing and Computer Programming: Iteration is a key computer science technique for creating algorithms and developing software. With the iterative process model, a computer program runs a sequence of instructions or math operations over and over. The program loops to repeat some part of the program or code until it reaches a predetermined event or completes the desired number of repetitions. For example, a website could use code that repeatedly refreshes a page until the user clicks a button. Or, a computer program could run an algorithm to rearrange letters in a word (or the entire alphabet) until it forms all the possible combinations. Iteration is similar to recursion in computer programming. Both repeatedly follow a set of instructions and can be used for the same effect.
- Project Management: The iterative approach helps organizations (and project managers) handle the uncertainty inherent in many projects. Rather than assuming that all requirements, use cases, and business needs can be identified before the project starts (typical in a Waterfall approach), the iterative model assumes that user expectations and business needs will change during the development timeframe. By creating a product in chunks that are refined and adapted in subsequent cycles, the iterative process responds to the unpredictable nature of projects, as well as customer needs and engagement.
- Education: The iterative process model focuses on students learning from their mistakes as they solve problems. Think of this approach as “practice makes perfect.” Students reflect, refine, and revise their work as part of the learning process. Unlike computing and math, educational iterations are not focused on a single, predetermined “right” solution. The iterative approach in education creates a culture that fosters a continual cycle of learning.
- Legal Systems: The foundation of common law is stare decisis, the concept that rulings are based on previous legal decisions. Stare decisis is Latin for “to stand by things decided.” Following the iterative process model, this means that any legal precedent builds and rests upon previous decisions.
- Evolution Science: The fossil record shows the iterative process record. Repeated evolution over generations shows a change in characteristics of biological species. Some characteristics become more common or rarer as parents pass genes to offspring.
How Does the Iterative Process Work?
At the most basic level, the process relies on a continual cycle of planning, analysis, implementation, testing, and evaluation. Unlike a Waterfall approach, the iterative process starts with initial planning and overall requirements. Then the first, prioritized portion of the project becomes the initial cycle of development. That segment is refined by trial and error. Once finished, it forms the basis for the next chunk of the project. Each cycle improves on the overall product or project. The pace of this process is related to how effectively you work through the cycle. Here are the five steps in the basic iterative process.
Step One: Planning and Requirements: In this stage, map out the initial requirements, gather the related documents, and create a plan and timeline for the first iterative cycle.
Step Two: Analysis and Design: Finalize the business needs, database models, and technical requirements based on the plan. Create a working architecture, schematic, or algorithm that satisfies your requirements.
Step Three: Implementation: Develop the functionality and design required to meet the specifications.
Step Four: Testing: Identify and locate what’s not working or performing to expectations. Stakeholders, users, and product testers weigh in with their experience.
Step Five: Evaluation and Review: Compare this iteration with the requirements and expectations.
After you complete these steps, it’s time to tackle the next cycle. In the iterative process, the product goes back to step one to build on what’s working. Identify what you learned from the previous iteration. This iterative development, sometimes called circular or evolutionary development, is based on refining the first version through subsequent cycles, especially as you gather and include requirements. It allows you to remain flexible as you identify new needs or unexpected business issues.
What’s the Difference Between Iterative and Incremental Development?
Iterative development relies on a series of repetitive or cyclical loops in which you revise and improve a product based on feedback from users and stakeholders. While the term can be used interchangeably with incremental development, there’s a fine difference.
With incremental development, you layer in new functionality in small sections with each iteration. But it’s more than simply improving the product through iteration. You methodically add new features with each cycle in a step-by-step process, develop different sections of the product or system at various times and rates, and add them to the full product as you complete them.
Many projects use both approaches at the same time to complete a project. For example, Agile and Scrum methodologies are based on an iterative and incremental approach. They are iterative because one version is refined in subsequent runs. They are incremental because sections of work are delivered throughout the project.
What Is the Iterative Development Process?
A range of software and web applications, even gaming systems, rely on the iterative development process because it gives developers more flexibility for changes. In most cases, the software or system development life cycle (SDLC) uses iterative development along with incremental development. SDLC focuses on an initial software implementation that becomes increasingly complex with more features as the system is developed.
This approach offers several benefits. It allows project managers to divide the overall project into smaller chunks that build upon one another, and start with the issues or components that are most critical to the project. It also allows the development team to focus on one part of the project at a time, shielding them from business issues that could divert or distract them. And stakeholders can see concrete progress through the lifecycle of the software application or system.
In the iterative model, development starts with a small set of requirements for a small section of the project, rather than a complete list for the entire project. The team designs, develops, tests, and refines the code in repeated cycles. They can add more features in subsequent cycles until the complete software application is ready to go to market.
Step One: Requirements. Because you are working on one section — or iteration — of the product, you need to identify the software or hardware requirements for this section. Be clear about who is going to use the system and how will they use it. Identify the objective or task of the product you’re developing, especially if you are working from a project control list. Define what qualifies as a successful outcome for this new section of software.
Step Two: Analysis. Review the requirements to identify and resolve any incomplete, ambiguous, or contradictory expectations. Know what data you should include to produce the software and what data the software will output.
Step Three: Design. Use the final requirement specifications to design the software. Construct the schematics that describe the software behavior, business process, interface layout, and functionality.
Step Four: Coding. Using the software design documents, produce the code that creates the output you identified in the requirements and analysis.
Once you complete the first section, seek user feedback to identify any bugs, glitches, or deficiencies. Each cycle (or iteration) relies on feedback and, in some ways, failure — learning from your mistakes. This heuristic planning, or trial-and-error learning, lets you tweak the results until you get the performance you want. Then you can move to the next iteration to add features and functions. Follow this process until the software, application, or system is completed.
The key to success in iterative software development is to be rigorous in validating the requirements and testing. As you develop new iterations, conduct a systematic review to ensure the new versions are compatible with previous iterations. Be prepared for any backward engineering to integrate new iterations with previous versions.
What Is the Iterative Process in Scrum?
The iterative process is used in a range of project management methodologies, including Agile, Kanban, Lean, and the Scrum approach. Scrum is driven by the goal of delivering maximum business value in minimum time. The iterative process fuels the success of the Scrum approach. Scrum breaks down the development of a product into repeated cycles.
In Scrum, each iteration is called a sprint and typically lasts 2-4 weeks. Each sprint starts with a planning meeting that evaluates the list of tasks, prioritizes them, and identifies the work to be done in the iteration. Then the team finalizes requirements, analysis, and design. They implement and test the work. The iteration ends with a sprint review and retrospective that form the foundation for the next sprint. Scrum blends all the iterative process steps into each iteration.
Like all iterative approaches, Scrum recognizes that the goals and scope of a project evolve, because customers may not be able to fully identify what they need at the beginning of the project and the team will face challenges that they could not predict at the start of the project. Scrum acknowledges that you cannot identify the full scope at the beginning and offers a framework that allows the team to nimbly adapt to changes.
What Is the Iterative Design Process?
The iterative design process allows designers to create, test, analyze, and refine ideas quickly at any phase of the design process. In this variation of the iterative model, designers can start with a solution for their product (from a website to a marketing campaign) that makes assumptions about what the customer wants based on initial observation and research. Designers can then explore and validate their assumptions through the process of ideation, prototyping, testing, analyzing, and refining. This process, often called rapid prototyping or spiral prototyping, allows designers to find success more quickly and involve stakeholders and clients more effectively.
Step One: User Observation and Research. The first question designers ask: "What is the problem we are trying to solve?" You must understand users and analyze their habits to know what you will design and develop. User research, such as focus groups, interviews, or A/B testing, will help you identify user needs and behavior, as well as offer insight into the emotional reactions to your product. This provides the user context you need to begin brainstorming solutions.
You'll learn more about how the customer engages with the product, environmental information (such as where and with whom they use it), and other resources they might have around them. You might consider creating flowcharts, diagrams, or other visual helpers to capture information. Words may not be able to describe the problem the way a picture can.
Step Two: Ideate. In this phase, you and your team can start generating ideas that address the problem you identified through your research. Armed with information about users, their emotional approaches to your product, and the context in which they use it, try brainstorming to explore solutions that delight your users. As you develop ideas, make sure you are thinking about the meaning — the "why” — of your product. What will speak to users? What will delight them? You want to articulate the soul of your product using thoughtful, strategic design.
Step Three: Prototype. In this "build" phase, your team creates an early example of your product. You will use this to test concepts or systems that you are considering for the final design. The prototype should outline how the product will be used, whether it's basic software functionality, wireframes, or even paper mock-ups of your visual design. These are easier and cheaper to produce than an entire system, and they allow you to test and refine your design quickly.
Step Four: Analyze. It's time to gather feedback about your design. Ask users to test the prototype, gather feedback on what works and what doesn't, and evaluate how well your assumptions met their needs. Usability testing will help validate your assumptions about your design and guide the next iteration. Take what you've learned, amend your design, and start the next design cycle.
Research proves the iterative design process works. Peter Skillman, of Palm, Inc., invented the Marshmallow Challenge, which started as a team-building exercise to offer lessons in collaboration and creativity. In the challenge, teams are give 20 sticks of spaghetti, one yard of string, one yard of tape, and one marshmallow. They have 18 minutes to build a tower that will hold the marshmallow on top. The team that builds the tallest tower wins.
A group of kindergarteners and a group of business school graduates faced off in the first challenge. The kindergarteners won. Time after time, numerous teams have repeated this challenge. he kindergarteners continue to win. It seems they are more inclined to start with a simple design, test the prototype, and iterate until they find a solution that works. The adults tend to spend their time competing for leadership of the project, arguing about the right plan, and then running out of time to build the tower. Tom Wujec from Autodesk talks about the research in this TED talk.
By focusing on how users think and behave, iterative design helps design teams reduce usability issues, especially in the early stages of a project when the cost of eliminating mistakes is modest. You can improve your effectiveness when you clearly organize assets, protocols, and documentation for each iteration. But the iterative design process has some limitations, and product development should include other skill sets.
Iterative design focuses on incremental or cyclical improvement. If you are looking for true innovation, consider using the strategic design process to help you discover the unmet needs of users.
The user feedback you gather in the iterative design process can help you identify usability problems. But users rarely can tell you how to fix those issues because they may not know the answer. Iteration based on user feedback will help you tweak, but may not solve the problem. As you iterate, include interaction design experts to help you create products that feel intuitive.
Some aspects of product design, such as color, form, typography, and wording create an emotional connection with users. Designers who specialize in these features know how to create a delightful product experience. This is a unique skill that cannot be duplicated through the iterative design process.
Many companies experiment with design Darwinism, the idea that products, like evolution, will cycle through a series of incremental changes and nearly design themselves. Iterative design supports rapid and responsive design. But without other layers in the process, such as strategic design and interaction design, these products may fail because they don’t address the real needs of users. Companies such as Google and Microsoft experiment with creating new products solely through design Darwinism. Your company will benefit if product planning includes strategic design to create something that is meaningful to users.
What Is a Non-iterative Process?
The non-iterative process takes an unmodified Waterfall approach to product design and development. Progress flows from the top to the bottom in order to deliver one complete product at the end of the project. This process requires a manufacturing mindset: All the planning, requirements, specifications, and documentation are highly controlled. The process also assumes requirements can be locked down, making it difficult (and costly) to handle changes. It doesn’t contain a feedback loop that uses testing and feedback to refine the product. Progress is measured by the completion of intermediate work products. By comparison, the iterative approach produces smaller cycles or iterations, is highly flexible and adaptable, and regularly delivers work products.
For example, most construction and architectural projects rely on a non-iterative process. First, you gather requirements, and then plan the design and break it up into phases. After you complete construction, you review the structure for safety and maintain it. The plan is fully mapped out at the beginning of the project, and most changes are costly, either in time or money.
Iterative Architecture Process
One of the major challenges of architecture is that you must create the complete plan at the beginning. Yet the business need or market forces may change during implementation, and project plans cannot shift easily. Even architecture can use the iterative process. Rather than focusing on a final, completed project in the planning phase, build in iterations that focus on completed subparts. Each subpart is a building block that contributes to the overall project. You can apply the lessons learned in each building block to subsequent iterations, and the overall architecture becomes more nimble and able to respond to changes.
What Does an Iterative Process Mean in Research?
Research methods are inherently iterative or cyclical. A scientist might design a hypothesis, try to prove it, and then share her conclusions. Those insights are used to frame the next hypothesis, and so on. Another researcher might start with an observation that requires verification. The findings lead to new research questions, followed by another cycle of observations and verification.
What Is the Iterative Process in Qualitative Research?
Qualitative research is a process that gathers data through observations, interviews, surveys, and documents to find the "human" side of a topic. It's typically used in social sciences, health care, education, and business. Because this approach involves people's opinions, values, and behaviors, it requires the flexibility that the iterative process provides. The researcher adjusts their methodology, data collection, and questions during the project based on what they learn. For example, the researcher may revise interview questions based on the responses of previous subjects. The researcher may categorize responses using one framework early on, but may adjust the categories as data reveal more context or shades of meaning.
What Does the Iterative Process Mean in Psychology?
In psychology, iterative processes are used in several ways. Psychological assessments are iterative. Information is gathered and evaluated, signs and symptoms are identified, and then outcomes or treatments are suggested. The process iterates at later assessments. The clinician evaluates the changes in signs and symptoms and suggests changes as needed in treatment. Iteration occurs by reviewing the data and connecting it to emerging insights and refined understanding.
The iterative reprocessing model hypothesizes that emotional episodes (such as anger or joy) are created as information flows through certain centers of the brain. The brain integrates a person’s goals, values, desires, and intentions to shape an emotional instance. Different patterns of neural activity can create different emotional events.
At the heart of all science is the iterative process, with the goal of getting closer to the truth through research over time. Research relies on the credibility of previous findings so that iteration can occur. According to recent article in Nature, psychology faces a replicability crisis. Researchers tried to reproduce the findings of 21 experiments, but had limited success. Other factors may be at work, however. Because it involves human emotion, psychology is extremely complicated and experiments can be difficult to duplicate.
Challenges of the Iterative Process
Iterative development has its challenges. The first is scope or feature creep. Because each iteration gets closer to a solution, creep occurs if there is no firm deadline or defined solution. In addition, team members may disagree about which revisions or details need to be included in any development cycle. To avoid scope creep, project managers can maintain a list of priorities or benchmarks to keep the team on track.
Timelines can also be a challenge. Team members want to keep tweaking to improve a product. This can make stakeholders and clients restless. Project managers may need to pay more attention to the team, be firm about the requirements that need to be addressed in the iteration, or be willing to say a product is good enough for testing and evaluation.
If you are working with vendors on any project, you need to be clear about the requirements and timeline. In the iterative model, clear contracts and expectations are essential. At the beginning of any contract, ensure that you have a hourly or market rate if the project veers too far off scope or time. Even if the project changes for good reasons, both you and the vendor must be willing to be flexible rather than stick to a schedule or scope that defeats the whole point of iterating.
Improve the Iterative Design Process with Smartsheet for Project Management
To succeed at iterative design, you need to track each phase of your work and the results. That way, you know how to proceed with the next revision and can build on your progress. In order to do so, however, you’ll need a powerful organizational tool to stay on top of these changes and developments tasks.
Smartsheet is a work execution platform that enables enterprises and teams to get from idea to impact — fast. Top project management leaders rely on Smartsheet to help align the right people, resources, and schedules to get work done.
Use Smartsheet to create consistent project elements, increase speed, and improve collaboration with scalable options that fit individual work preferences. Hold yourself and your team accountable, improve visibility into team priorities, and ensure nothing slips through the cracks.
Discover how Smartsheet can help maximize your project management efforts, today.