If you're seeing this message, it means we're having trouble loading external resources on our website.

If you're behind a web filter, please make sure that the domains *.kastatic.org and *.kasandbox.org are unblocked.

To log in and use all the features of Khan Academy, please enable JavaScript in your browser.

AP®︎/College Computer Science Principles

Course: ap®︎/college computer science principles   >   unit 4, the building blocks of algorithms.

  • Expressing an algorithm

what is iterative problem solving

Want to join the conversation?

  • Upvote Button navigates to signup page
  • Downvote Button navigates to signup page
  • Flag Button navigates to signup page

Good Answer

❤ Learn how Nifty inspires productivity!

  • Discussions
  • Milestones (Gantt Chart)
  • Docs & Files
  • Time Tracking
  • Project Home
  • Project Portfolios

❤ Nifty is very flexible. Here are a few examples of how you can use it.

  • Agile Development
  • Client Management
  • Digital Agencies
  • Legal Case Management
  • Marketing Teams
  • Product Teams
  • Integrations
  • Help Center
  • Got Clients?
  • [siq_searchbox type="search-bar" placeholder="Search" post-types="post,page" width="150" placement="left"]
  • Try for Free
  • Log in arrow_right_alt

#ezw_tco-3 .ez-toc-widget-container ul.ez-toc-list li.active{ background-color: #ffffff; } Table of Contents

Understanding the iterative process: 5 steps to success.

Updated on March 17, 2024 by Luke Henderson

Published on August 10, 2022 by Luke Henderson

what is iterative problem solving

Whether you are starting your project management career or are a seasoned pro, it is essential to  understand the iterative process . This process is commonly used in software development but can be applied to any project – sometimes even a personal one.

What does the iterative process mean? (a.k.a. iterative process definition)

An iterative process is an approach to problem-solving that involves breaking down a significant problem into smaller, more manageable pieces. Each piece is then worked on separately, combining and iterating the results to form a final solution.

This article will take a closer look at the iterative process and how one can use it to improve your  project management skills .

iterative process

How to Implement the Iterative Process

You need to take the following five key steps to implement the iterative process.

It all starts with a plan. It would help if you had a clear idea of what you want to achieve with your project. What are your goals? What are your objectives?

You also need to consider the resources required to complete the project, including time, money, and workforce.

And finally, you need to decide on the timeline for the project. How long do you have to complete the project? What are the  milestones  that you need to reach?

Knowing the correct answers to these questions will allow you to understand what resources you’re working with at the various stages of the project.

After you’ve planned the project, it’s time to start designing it. This is where you’ll start putting your ideas down on paper (or in a digital format as an interactive PDF ).

You’ll need to think about the different components of the project and how they’ll fit together. This includes things like the user interface, the database, and the code.

And you’ll also need to consider the different steps users will take when interacting with your project. What will they see? What will they do?

3. Implement.

Once you’ve designed the project, it’s time to implement it. This is where you’ll start coding (or building) the project.

You’ll need to write (or build) the code for the project’s different components. And you’ll also need to put everything together so that it works as a cohesive whole.

After implementing the project, it’s time to start testing it. This is where you’ll put the project through its paces to ensure it works as intended.

You’ll need to test all of the different components of the project. And you’ll also need to test the project as a whole.

5. Evaluate and Review.

After you’ve tested the project, it’s time to evaluate and review it. This is where you’ll take a step back and look at the project.

What worked well? What didn’t work well? What could be improved?

And based on your evaluation, you can decide whether or not to continue with the project. You can move on to the next iteration if everything goes well. But if some areas need improvement, you can make the necessary changes.

The power of iterative design and process

An iterative process is a cycle of repeated steps until a desired goal or result is achieved. In design, iteration is often used to explore multiple solutions to a problem and gradually refine them based on feedback from users or other stakeholders.

One of the benefits of using an iterative process model is that it allows for course corrections along the way. This can be especially helpful when working on complex issues where problems are challenging to anticipate upfront.

Iterative processes are also well suited for  Agile development  environments where requirements may change over time. Revisiting and revising designs regularly makes accommodating new insights or feedback easier.

If you’re new to using an iterative process, there are a few basics to remember. First, starting with a clear understanding of the problem you’re trying to solve is essential. Once you have a good sense of the problem, you can begin exploring potential solutions.

As you explore different solutions, it’s helpful to keep track of the pros and cons of each one. This will make it easier to compare and contrast different approaches and eventually choose the best option.

Once you’ve selected a solution, it’s time to implement it. This is where the iterative process model comes in handy, as you can make small changes and test them out before making more significant changes.

Through this complete cycle, you can gradually improve your solution until it meets your needs. Regarding the iterative model, the key is to be patient and flexible, as the best solutions often come from unexpected places.

How does the Agile methodology relate to the iterative process?

The Agile workflow  is a popular methodology that many developers follow. It’s similar to the iterative process in that it focuses on delivering working software in short cycles, usually two to four weeks. The main difference is that Agile focuses more on customer feedback and  collaboration , while the iterative process focuses more on the technical aspects of development.

Agile Lifecycle

The main benefits of using an Agile workflow are that it helps to ensure that features are being built that customers want, and it helps to avoid scope creep, which happens when stakeholders change key requirements. However, long-term projects might get incremental deliveries, which is only sometimes ideal.

The main benefits of using the iterative process are that it helps to ensure that the software is of high quality and that it’s easy to track progress. The main downside of the iterative process is that it can be time-consuming since each iteration must be planned.

An Agile team can use the iterative process to build software incrementally. And a team that follows the iterative process can use Agile techniques to get customer feedback and avoid scope creep.

So, while there are some differences between Agile and iterative processes, they are not mutually exclusive. Many teams use both approaches to build software incrementally.

Examples of the iterative process in various industries

Let’s now consider multiple industries that can use the iterative process.

Engineering

Engineering is one of the most common fields to use the iterative process. For example, engineers will often build a small prototype when building a structure, say a bridge. They will then test the prototype to see if it can support the weight of the traffic crossing the bridge. If the prototype fails, they will make changes and try again. This process is repeated until the engineers are confident that the final product can support the required load.

Web Development

Web development is another field where the iterative design process can be beneficial. Development teams often start with a basic site version when building a website . They will then add features and make changes based on feedback from users. This process is repeated until the site is complete.

Product Development

The iterative process can also be used in product development. When developing a new product, companies will often start with a prototype. They will then test the prototype with potential customers. Based on feedback from these tests, they will make changes to the design and try again. This process is repeated until the company is confident that the final product will be successful.

The iterative design process also works if someone else has already built a product you want to improve. In this case, you can use the iterative process to make incremental improvements. For example, let’s say you are building a word unscrambler. You could take a product someone has already created and start with that as the basic idea. You could test your new product with different words and see how well it works. Based on this feedback, you could make changes to the algorithm and try again. This iterative approach is repeated until the word unscrambler is as good as it can be.

This is similar to what  Unscrambled Words  have done on their site. With the premise that anyone that likes playing games such as Text Twist, Scrabble, and Words With Friends, will be able to enjoy their take on word unscrambling, the site gives a brief description of why you should go for their unscrambler over their competitors. They do this by saying that their algorithm uses the official tournament dictionaries as the foundation for their word choices. This gives you the right words when using this site.

From an iterative design process point of view, the word unscrambler is an excellent example of how a process can be improved in relation to an existing product. By starting with a basic algorithm and then making incremental improvements, the team created a word unscrambler that is better at what it does when compared to its competitors.

The  iterative process can also be used in marketing. For example, when companies plan to hire a new link building agency or a new vendor, they often start with a small test campaign. They will then use the feedback from this test market to make changes to their marketing strategy . This process is repeated until the product is launched in all markets.

As opposed to just going all out and finalizing an agency based on conversations and case studies, the iterative process allows companies to ensure that the vendor they are going for will help them succeed. It is because you can always change the agency or vendor based on the performance of your test campaigns. 

The iterative process can also be used in education. Educators often start with a basic outline when developing a new curriculum. They will then test the curriculum with their students, noting what works well and what doesn’t. Based on feedback from these tests, they will make changes to the curriculum and try again. This process is repeated until the educators are confident that the final product will be successful.

Resume creation tools

The iterative process can also be used when  creating a resume . When developing a new resume , one can start with a basic template. The person can then add information and make changes based on feedback from potential employers. This process is repeated until the candidate has a final product that makes them confident and will help them get the desired job.

One such tool that can be used in this situation is the  Preschool Teacher Resume  tool, which helps with resume writing for those in the preschool education field. You fill out a form with relevant experience and skills, and the tool generates a resume template. You can then get back to this tool and update your resume as you gain more knowledge about what works (and what doesn’t).

CV Maker

By starting with a basic template and making changes based on feedback, you can create a resume that will help you get the job you want.

To further enhance the effectiveness of your resume, particularly in navigating the complexities of modern job application processes, consider utilizing an ATS resume template . Such templates are specifically designed to ensure compatibility with Applicant Tracking Systems, thereby maximizing your visibility to potential employers.

People search

The working of the iterative process discussed above can be seen in tools that help with people searches. Here, the user enters information about the person they are looking for, and the tool generates a list of potential matches. Users can refine their search by adding more information or making changes to the initial search criteria.

One such tool is  Truthfinder , which helps find someone fast. You can find detailed records about a person using a name, phone number, or address. You can then refine your search by adding more information.

truthfinder app home page

By starting with essential information and refining your search, you can quickly understand the critical information you need to enter to find the person you want. This also means that on the next iteration, you will have a better idea of what to search for, making the process even more efficient.

Scrum projects

Following the  Scrum principles , software development also uses the iterative process. In Scrum, a product is developed in short cycles called sprints. Each sprint starts with a planning phase, where the team decides what features to work on. The team then works on implementing these features and tests them at the end of the sprint. Based on feedback from testing, the team makes changes and continues to the next sprint.

Scrum Principle

Psychology research

Finally, in psychology, the iterative process is often used in research. When conducting experiments, psychologists may start with a small number of subjects and then gradually increase the sample size. This allows them to test their hypotheses and ensure their results are reliable.

Benefits of using the iterative process

Let’s consider some benefits of using the iterative process.

Flexibility and efficiency

Gone are the days when you would work on a project for months or even years without knowing whether it would be successful. With the iterative process, you can get feedback early and often, which means that you can make changes as needed. This makes the iterative process much more efficient and flexible than other methods.

Avoiding overwhelm

It can be easy to feel overwhelmed when starting a large project. But by breaking the project down into smaller tasks, you can take things one step at a time and avoid feeling like you’re taking on too much.

Improved communication

The iterative process can also improve communication between team members. By getting feedback throughout the project, team members can stay on the same page and avoid misunderstandings.

Increased engagement

The iterative process can also increase engagement among team members. When team members see that their ideas are being implemented and start forming part of the project, they are more likely to be engaged.

Cost-effectiveness

The iterative process can also be cost-effective. By starting with a small-scale project, you can save money on a project that may not be successful.

With money being one of the resources often limited in project management (especially when an idea is untested), the iterative process can help you make the most of your given budget.

Reduced risk

Another benefit of the iterative process is that it can help to reduce risk. Risk management is an integral part of any project, and by  breaking down a project into smaller pieces , you can identify and manage risks more effectively.

When not to use the iterative process

While the iterative process is a great tool, it’s only right for some situations. Here are a few cases when you might want to avoid using the iterative process.

When time is of the essence

There may be better choices than the iterative process if you’re working on a project with a tight deadline. Each iteration takes time, and you may need more time on larger projects to complete all of the iterations.

When there is no room for error

The iterative process is all about testing and making changes based on feedback. But if there is no room for error in your project, the iterative process may not suit you.

When you’re working alone

The iterative approach relies on team input and feedback. So if you’re working on a project yourself, there may be better choices than the iterative process.

What’s the difference between iterative and incremental development?

The terms “iterative” and “incremental” are often used interchangeably, but there is a subtle distinction between the two. Iterative development is a technique in which the development process is repeated multiple times, with each iteration building upon the previous one. Incremental development, however, breaks down the development process into smaller pieces, each adding functionality to the overall project.

Both iterative and incremental development share some common characteristics. They are both incremental (i.e., they add new functionality in small steps), they are both based on feedback loops (i.e., they allow for constant revision and refinement), and they are both flexible (i.e., they can accommodate changes in requirements).

However, there are some critical differences between the two approaches. Iterative development is typically used for more complex projects, while incremental development is more suited for more straightforward projects. Iterative development focuses more on the project’s overall architecture, while gradual development is more concerned with adding individual features and functionality to a project.

What is a non-iterative process?

The opposite of an iterative process is a non-iterative – traditionally known as a Waterfall process. In a Waterfall process, the development process is linear and proceeds sequentially from one stage to the next. There is no feedback loop, which means that once a decision is made, it cannot be changed. Waterfall processes are typically used for projects with well-defined requirements.

One of the main advantages of Waterfall processes is that they are relatively simple and easy to understand. They are also easy to document and track since each stage has a clearly defined start and end point.

However, Waterfall processes also have several disadvantages. One of the most significant drawbacks is that they need to allow for changes in requirements. Once the development process has started, any modifications to the conditions will require a complete restart. This can be both costly and time-consuming.

Another disadvantage of waterfall processes is that they can be inflexible. Since each stage of the process depends on completing the previous step, it can be challenging to make changes or adapt to new circumstances. This can lead to delays and frustration for both developers and clients.

The role of Kaizen in Continuous improvement in business

Kaizen, a Japanese word for “improvement” or “change for the better,” combines two words: Kai (改), meaning “change” or “to correct,” and Zen (善), meaning “good” or “better.”

When used in business, kaizen refers to activities that continuously improve all business functions, from manufacturing to management and from the CEO to the assembly line workers.

Part of Iterative Process, Kaizen Cycle

There are two critical components to kaizen: 1) focusing on continuous improvement and 2) involving everyone in the organization in the improvement process.

Continuous improvement

The core meaning of kaizen is a focus on continuous improvement. Every aspect of the business is always open to scrutiny and improvement. There is no such thing as “good enough” – there is always room for improvement. As such, performance analysis is a vital part of continuous improvement as it allows businesses to identify areas that need improvement and track the results of their improvement efforts.

Involving everyone

Another critical component of Kaizen is involving everyone in the organization in the improvement process. Improvement cannot be achieved if only a few people are working on it. Everyone must be committed to making minor improvements every day.

Kaizen is often associated with Lean Manufacturing or the Toyota Production System . However, it is essential to note that Kaizen is a philosophy or mindset that can be applied to any business area, not just manufacturing. It also happens that Kaizen and the iterative process are very compatible, so it is common to see Kaizen being used as part of an iterative development process.

An iterative process is an essential tool that one can use to manage the development of a product or service. It is a flexible process that allows for changes and adaptation as needed. The iterative process is also continuous, which means there is always room for improvement.

The iterative process has something to offer everyone, ranging from businesses specializing in software development to those in manufacturing. It’s a fundamental tool that can help organizations develop products and services more effectively.

With a better understanding of the iterative process, you’ll be able to apply it to your work and improve your product development skills.

Recent Articles:

how to create a Gantt Chart

Alternatives

Wait before you go, do you really want to lose 5 productive hours a week, teams waste 5 hours a week on average juggling between tools. nifty is one app for chat, tasks, docs, and more. try it for free and see for yourself. we promise you’ll love it..

  • Product overview
  • All features
  • App integrations

CAPABILITIES

  • project icon Project management
  • Project views
  • Custom fields
  • Status updates
  • goal icon Goals and reporting
  • Reporting dashboards
  • workflow icon Workflows and automation
  • portfolio icon Resource management
  • Time tracking
  • my-task icon Admin and security
  • Admin console
  • asana-intelligence icon Asana Intelligence
  • list icon Personal
  • premium icon Starter
  • briefcase icon Advanced
  • Goal management
  • Organizational planning
  • Campaign management
  • Creative production
  • Content calendars
  • Marketing strategic planning
  • Resource planning
  • Project intake
  • Product launches
  • Employee onboarding
  • View all uses arrow-right icon
  • Project plans
  • Team goals & objectives
  • Team continuity
  • Meeting agenda
  • View all templates arrow-right icon
  • Work management resources Discover best practices, watch webinars, get insights
  • What's new Learn about the latest and greatest from Asana
  • Customer stories See how the world's best organizations drive work innovation with Asana
  • Help Center Get lots of tips, tricks, and advice to get the most from Asana
  • Asana Academy Sign up for interactive courses and webinars to learn Asana
  • Developers Learn more about building apps on the Asana platform
  • Community programs Connect with and learn from Asana customers around the world
  • Events Find out about upcoming events near you
  • Partners Learn more about our partner programs
  • Support Need help? Contact the Asana support team
  • Asana for nonprofits Get more information on our nonprofit discount program, and apply.

Featured Reads

what is iterative problem solving

  • Understanding the iterative process, wi ...

Understanding the iterative process, with examples

Julia Martins contributor headshot

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. 

What is the iterative process? 

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 .

So what is a non-iterative process? 

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. 

Is incremental design the same thing as iterative processes? 

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.

Example iterative processes

Engineering.

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.

Product development

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 5 steps of the iterative process

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:

1. Planning and requirements

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. 

2. Analysis and design

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. 

3. Implementation

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 . 

5. Evaluation and review 

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 benefits and challenges of the iterative process

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.

Increased risk of scope creep . Because of the trial-and-error nature of the iterative process, your project could develop in ways you didn’t expect and exceed your original project scope . 

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. 

Try, trial, and try again

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 .

Related resources

what is iterative problem solving

Burndown chart: What it is and how to use it (with example)

what is iterative problem solving

What are story points? Six easy steps to estimate work in Agile

what is iterative problem solving

Smooth product launches are simpler than you think

what is iterative problem solving

How Asana uses work management to streamline project intake processes

Kermit Kordell Blog

Iterative problem solving.

When it comes to solving problems, there are two main lines of thoughts:

  • Plan, plan, do
  • Do, learn (repeat)

I’ve found during my life experience that the second method is almost always the best one. It arrives at the solution quicker, and it solves the problem better.

In this post, I’ll explore why that is – how iterative problem solving actually works.

Solving math problems iteratively

During homework one day when I was a kid, I discovered that I could more easily solve my math problems by just testing and seeing what would happen. Even if I had no idea what would happen, I simply started jotting down a solution – with no idea as to whether it would hold or not.

What I discovered was that the problem of “just trying something” would yield a solution far quicker than thinking ahead.

I proudly announced my discovery to my teacher. I don’t know if she really understood what I was talking about, but she applauded me nevertheless, encouraging me to keep doing what I did.

This approach to problem solving has stuck with me ever since. Now, I’m at a point where I will explore the mechanisms behind this type of problem solving to understand when and where it can be applied. In order to do that, we have to look at the mechanisms that makes this work.

How iterative problem solving works

In the situations where iterative learning works, what happens is as follows:

You have no clue what the solution is, but you do have some (far from correct) ideas or guesses or assumptions.

So based on these ideas/guesses/assumptions, you test a quick and dirty solution. What you arrive at is probably very wrong, but you will have gained something immensely valuable: Learning.

By testing your ideas, guesses and assumptions very quickly, you will see the actual results they yield. This is feedback, which gives you learning.

This, during the process of trying and learning, the amount of additional learning you will have gained will probably be far more than what you would have concluded/learned if you tried to figure out the “correct” solution without getting your hands dirty to actually try immediately.

Using those new learnings, you will have revised your guesses, assumptions and ideas, and you can try again. This time, from a higher level of understanding.

By repeating this process, you will continuously increase your learning until you are at a point where your assumptions, guesses and ideas are correct enough to bring you to the solution.

A formalized iterative learning process

Actually, learning IS making an assumption (read: guess) based on what you do know, then testing those assumptions to see if they hold.

So in your original “try and learn” approach, you might have tried to solve the problem by assuming (read: guessing) three things: Assumption 1, Assumption 2 and Assumption 3 (A1, A2 and A3).

If the assumptions produce the correct answer, great! You have verified that all three assumptions are correct.

If you get the wrong result, at least one of the above assumptions must be wrong. This, in itself, is valuable knowledge, because it presents you with two choices:

  • If you have other ideas (for example A4 and A5) which you think are likely to produce the correct answer, simply try to solve a problem again using these.
  • If you don’t have any more ideas, or if you have too many possible ideas to test, then you might want to drill down to A1-A3 to draw additional learnings about why they failed.

Number 1 is easy: Simply repeat the process.

Number 2 will create a “recursive iterative learning” cycle.

Recursive iterative learning

Pick one of your original assumptions to drill deeper into, for example A1.

Formulate sub-assumptions that underlie A1. For example, you might have some ideas (assumptions) about why A1 can’t be correct: Let’s call these A1.1, A1.2 and A1.3.

Pick one of these sub-assumptions, preferably one that would lead to some “chain reactions” in terms of your original solution (i.e. if any of them are correct, then it would also eliminate or strengthen some of your other assumptions). Then test it.

If it succeeds, great: You have learned something new. This new learning will have consequences for at least A1 (striking it from your list of possibly correct assumptions), and possibly more.

If it fails, repeat the process by testing the other assumptions in this level (A1.2, A1.3 and so on), or create new sub-sub-assumptions and test the sub-sub-assumptions (for example A1.1.1, A1.1.2 and so on). Do this until you can draw a definitive learning, and go back in your recursive learning chain and let all the recursive learnings fall into place.

You have now drawn a set of learnings from your original guess. From these new set of learnings, you can make new assumptions that are closer to the truth, test them, and repeat the process. With each iteration, you will come closer to the truth until you finally arrive at it.

What it looks like in real life

In reality, nobody (I hope..?) thinks like the above. Instead, the process happens unconsciously when we just “try something”.

For example, let’s take the math problem I was trying to solve as a kid described above. Here’s what actually happened:

I was sitting and looking at the problem, with no clue as to how I was supposed to solve it.

So instead of sitting there, stuck in my own thoughts, I decided to simply jot something down. I started by drawing a character, and then the next character. Before I started the process of jotting down each character, I had no idea which character would actually be “jotted down”. Instead, the actual character came to me as I started jotting.

A couple of times, I realized that the character or formula I jotted down didn’t make sense (=> my first iterative learning, happening organically). So I erased, and tried again (using the learning from the previous step to try something new, i.e. realizing that A1 didn’t work and trying A2 instead).

At some point, I thought I had arrived at the correct solution (using A2). But I realized everything I had done had been garbage, because it didn’t turn out the way I wanted it. I started wondering why the heck it didn’t work. I had an idea (A1.1). So I started experimenting at the side trying to answer the question in my mind as to why my original solution didn’t work (testing A1.1). Suddenly, I got an interesting result (proven A1.1) which gave me a new idea (A3) which I used when starting with the original question from scratch (testing A3), which arrived at the correct conclusion.

In reality, the process is even messier than this. But the actual process is the same, only more complicated (more branches, more assumptions and sub-assumptions), not different.

A couple of scenarios in which you can apply iterative learning

So where can you actually apply “iterative learning”? Well, as it turns out, in a lot of places:

Programming: Trying a solution and seeing where it leads you, drawing learnings from that destination and trying again ( Agile Software Development )

Starting companies:  Start from where you are, using the knowledge you have, make a quick and dirty roadmap, start the journey, and learn and adjust as you go ( Lean Startup ).

Building rockets: Build a rocket as quickly as you can, using what you know (A1, A2 etc.). When the rocket crashes , analyze why it crashed, draw a new conclusion (A1.1), make a new assumption (A3) and build another one. ( Elon Musk’s methodology as described in this biography )

And probably much more 🙂

Summary of iterative learning

So in summary, when you have a problem, even though you know that you don’t know the answer, simply assume things and get started. Then learn from the results you get, and start again with the higher level of knowledge you have. And so on, until you have ruled out all but the correct solution.

Share on facebook

Share this:

Kermit Kordell

One response to “Iterative Problem Solving”

Based on a conversation with a friend, I’ll add the following points to the post:

You can see the solution to a problem as a tree structure where each node is a way down towards the solution (hopefully) – but you don’t know before testing which way down will produce the results you are hoping for.

The road you choose to take is based on your assumptions (A1, A2, …). You always have a list of active assumptions (probably just intuitively, not explicitly), and a list of falsified assumptions (which may well be forgotten, not held in memory). The falsified ones are falsified because you tried a road down from a node based on some assumptions you had made, and when the road failed to produce the results you expected you assumed that your assumption was wrong. You then either create sub-assumptions (A1.1, …) to learn why A1 didn’t work, or you simply tried another node based on new/revised assumptions.

The fastest way to find the goal is NOT to try to build the entire tree or all assumptions at once, but to simply build/refine both the tree and your assumptions as you go. Make a very quick “best guess” based on your current knowledge and intuition and start executing any node that fits reasonably well. As described in the blog post, this makes you learn quickly and find the correct assumptions (and thereby the correct road – or even the opposite way around) quickly.

The mistake people make is that they try to draw a complete tree stucture before even trying to execute a single node. What happens then is that either they never finish (hence never start executing and thus never reach the goal, because drawing the “perfect” tree is very time consuming or even impossible), or if they finish they have to revise the entire tree after the first attempt at execution since the first things they will learn will invalidate their entire tree since reality is almost always different than you imagined.

I also think that another very important factor for success (aside from testing early) is: have the courage to make definitive conclusions even based on limited proof. In other words, dare to strike nodes that don’t work quickly, and dare to draw up new nodes that you believe in early.

I made the mistake for a long time in my life that I was too careful about making definitive conclusions. Instead, held too many nodes open for too long, thinking things such as “perhaps what I did didn’t work because I didn’t do it well enough / need more training / missed a detail that will make it work / …”. Rather than simply “It didn’t work, it probably doesn’t work, I’m going to try something else”.

The result of such reasoning is that progress will halt. In reality, there are so many nodes, and so many of them leading to the goal even though they are completely different and even contradict each other, than there is no “perfect way” – there are just multitudes of “good enough” ways. If you are slow with “closing off” ways that didn’t work, you will also be slow to find a way that works. The fastest way to find a way that works is to test many ways quickly rather than to try to “prove with high significance” that a way doesn’t work before you move on.

Leave a Reply Cancel reply

How to master the seven-step problem-solving process

In this episode of the McKinsey Podcast , Simon London speaks with Charles Conn, CEO of venture-capital firm Oxford Sciences Innovation, and McKinsey senior partner Hugo Sarrazin about the complexities of different problem-solving strategies.

Podcast transcript

Simon London: Hello, and welcome to this episode of the McKinsey Podcast , with me, Simon London. What’s the number-one skill you need to succeed professionally? Salesmanship, perhaps? Or a facility with statistics? Or maybe the ability to communicate crisply and clearly? Many would argue that at the very top of the list comes problem solving: that is, the ability to think through and come up with an optimal course of action to address any complex challenge—in business, in public policy, or indeed in life.

Looked at this way, it’s no surprise that McKinsey takes problem solving very seriously, testing for it during the recruiting process and then honing it, in McKinsey consultants, through immersion in a structured seven-step method. To discuss the art of problem solving, I sat down in California with McKinsey senior partner Hugo Sarrazin and also with Charles Conn. Charles is a former McKinsey partner, entrepreneur, executive, and coauthor of the book Bulletproof Problem Solving: The One Skill That Changes Everything [John Wiley & Sons, 2018].

Charles and Hugo, welcome to the podcast. Thank you for being here.

Hugo Sarrazin: Our pleasure.

Charles Conn: It’s terrific to be here.

Simon London: Problem solving is a really interesting piece of terminology. It could mean so many different things. I have a son who’s a teenage climber. They talk about solving problems. Climbing is problem solving. Charles, when you talk about problem solving, what are you talking about?

Charles Conn: For me, problem solving is the answer to the question “What should I do?” It’s interesting when there’s uncertainty and complexity, and when it’s meaningful because there are consequences. Your son’s climbing is a perfect example. There are consequences, and it’s complicated, and there’s uncertainty—can he make that grab? I think we can apply that same frame almost at any level. You can think about questions like “What town would I like to live in?” or “Should I put solar panels on my roof?”

You might think that’s a funny thing to apply problem solving to, but in my mind it’s not fundamentally different from business problem solving, which answers the question “What should my strategy be?” Or problem solving at the policy level: “How do we combat climate change?” “Should I support the local school bond?” I think these are all part and parcel of the same type of question, “What should I do?”

I’m a big fan of structured problem solving. By following steps, we can more clearly understand what problem it is we’re solving, what are the components of the problem that we’re solving, which components are the most important ones for us to pay attention to, which analytic techniques we should apply to those, and how we can synthesize what we’ve learned back into a compelling story. That’s all it is, at its heart.

I think sometimes when people think about seven steps, they assume that there’s a rigidity to this. That’s not it at all. It’s actually to give you the scope for creativity, which often doesn’t exist when your problem solving is muddled.

Simon London: You were just talking about the seven-step process. That’s what’s written down in the book, but it’s a very McKinsey process as well. Without getting too deep into the weeds, let’s go through the steps, one by one. You were just talking about problem definition as being a particularly important thing to get right first. That’s the first step. Hugo, tell us about that.

Hugo Sarrazin: It is surprising how often people jump past this step and make a bunch of assumptions. The most powerful thing is to step back and ask the basic questions—“What are we trying to solve? What are the constraints that exist? What are the dependencies?” Let’s make those explicit and really push the thinking and defining. At McKinsey, we spend an enormous amount of time in writing that little statement, and the statement, if you’re a logic purist, is great. You debate. “Is it an ‘or’? Is it an ‘and’? What’s the action verb?” Because all these specific words help you get to the heart of what matters.

Want to subscribe to The McKinsey Podcast ?

Simon London: So this is a concise problem statement.

Hugo Sarrazin: Yeah. It’s not like “Can we grow in Japan?” That’s interesting, but it is “What, specifically, are we trying to uncover in the growth of a product in Japan? Or a segment in Japan? Or a channel in Japan?” When you spend an enormous amount of time, in the first meeting of the different stakeholders, debating this and having different people put forward what they think the problem definition is, you realize that people have completely different views of why they’re here. That, to me, is the most important step.

Charles Conn: I would agree with that. For me, the problem context is critical. When we understand “What are the forces acting upon your decision maker? How quickly is the answer needed? With what precision is the answer needed? Are there areas that are off limits or areas where we would particularly like to find our solution? Is the decision maker open to exploring other areas?” then you not only become more efficient, and move toward what we call the critical path in problem solving, but you also make it so much more likely that you’re not going to waste your time or your decision maker’s time.

How often do especially bright young people run off with half of the idea about what the problem is and start collecting data and start building models—only to discover that they’ve really gone off half-cocked.

Hugo Sarrazin: Yeah.

Charles Conn: And in the wrong direction.

Simon London: OK. So step one—and there is a real art and a structure to it—is define the problem. Step two, Charles?

Charles Conn: My favorite step is step two, which is to use logic trees to disaggregate the problem. Every problem we’re solving has some complexity and some uncertainty in it. The only way that we can really get our team working on the problem is to take the problem apart into logical pieces.

What we find, of course, is that the way to disaggregate the problem often gives you an insight into the answer to the problem quite quickly. I love to do two or three different cuts at it, each one giving a bit of a different insight into what might be going wrong. By doing sensible disaggregations, using logic trees, we can figure out which parts of the problem we should be looking at, and we can assign those different parts to team members.

Simon London: What’s a good example of a logic tree on a sort of ratable problem?

Charles Conn: Maybe the easiest one is the classic profit tree. Almost in every business that I would take a look at, I would start with a profit or return-on-assets tree. In its simplest form, you have the components of revenue, which are price and quantity, and the components of cost, which are cost and quantity. Each of those can be broken out. Cost can be broken into variable cost and fixed cost. The components of price can be broken into what your pricing scheme is. That simple tree often provides insight into what’s going on in a business or what the difference is between that business and the competitors.

If we add the leg, which is “What’s the asset base or investment element?”—so profit divided by assets—then we can ask the question “Is the business using its investments sensibly?” whether that’s in stores or in manufacturing or in transportation assets. I hope we can see just how simple this is, even though we’re describing it in words.

When I went to work with Gordon Moore at the Moore Foundation, the problem that he asked us to look at was “How can we save Pacific salmon?” Now, that sounds like an impossible question, but it was amenable to precisely the same type of disaggregation and allowed us to organize what became a 15-year effort to improve the likelihood of good outcomes for Pacific salmon.

Simon London: Now, is there a danger that your logic tree can be impossibly large? This, I think, brings us onto the third step in the process, which is that you have to prioritize.

Charles Conn: Absolutely. The third step, which we also emphasize, along with good problem definition, is rigorous prioritization—we ask the questions “How important is this lever or this branch of the tree in the overall outcome that we seek to achieve? How much can I move that lever?” Obviously, we try and focus our efforts on ones that have a big impact on the problem and the ones that we have the ability to change. With salmon, ocean conditions turned out to be a big lever, but not one that we could adjust. We focused our attention on fish habitats and fish-harvesting practices, which were big levers that we could affect.

People spend a lot of time arguing about branches that are either not important or that none of us can change. We see it in the public square. When we deal with questions at the policy level—“Should you support the death penalty?” “How do we affect climate change?” “How can we uncover the causes and address homelessness?”—it’s even more important that we’re focusing on levers that are big and movable.

Would you like to learn more about our Strategy & Corporate Finance Practice ?

Simon London: Let’s move swiftly on to step four. You’ve defined your problem, you disaggregate it, you prioritize where you want to analyze—what you want to really look at hard. Then you got to the work plan. Now, what does that mean in practice?

Hugo Sarrazin: Depending on what you’ve prioritized, there are many things you could do. It could be breaking the work among the team members so that people have a clear piece of the work to do. It could be defining the specific analyses that need to get done and executed, and being clear on time lines. There’s always a level-one answer, there’s a level-two answer, there’s a level-three answer. Without being too flippant, I can solve any problem during a good dinner with wine. It won’t have a whole lot of backing.

Simon London: Not going to have a lot of depth to it.

Hugo Sarrazin: No, but it may be useful as a starting point. If the stakes are not that high, that could be OK. If it’s really high stakes, you may need level three and have the whole model validated in three different ways. You need to find a work plan that reflects the level of precision, the time frame you have, and the stakeholders you need to bring along in the exercise.

Charles Conn: I love the way you’ve described that, because, again, some people think of problem solving as a linear thing, but of course what’s critical is that it’s iterative. As you say, you can solve the problem in one day or even one hour.

Charles Conn: We encourage our teams everywhere to do that. We call it the one-day answer or the one-hour answer. In work planning, we’re always iterating. Every time you see a 50-page work plan that stretches out to three months, you know it’s wrong. It will be outmoded very quickly by that learning process that you described. Iterative problem solving is a critical part of this. Sometimes, people think work planning sounds dull, but it isn’t. It’s how we know what’s expected of us and when we need to deliver it and how we’re progressing toward the answer. It’s also the place where we can deal with biases. Bias is a feature of every human decision-making process. If we design our team interactions intelligently, we can avoid the worst sort of biases.

Simon London: Here we’re talking about cognitive biases primarily, right? It’s not that I’m biased against you because of your accent or something. These are the cognitive biases that behavioral sciences have shown we all carry around, things like anchoring, overoptimism—these kinds of things.

Both: Yeah.

Charles Conn: Availability bias is the one that I’m always alert to. You think you’ve seen the problem before, and therefore what’s available is your previous conception of it—and we have to be most careful about that. In any human setting, we also have to be careful about biases that are based on hierarchies, sometimes called sunflower bias. I’m sure, Hugo, with your teams, you make sure that the youngest team members speak first. Not the oldest team members, because it’s easy for people to look at who’s senior and alter their own creative approaches.

Hugo Sarrazin: It’s helpful, at that moment—if someone is asserting a point of view—to ask the question “This was true in what context?” You’re trying to apply something that worked in one context to a different one. That can be deadly if the context has changed, and that’s why organizations struggle to change. You promote all these people because they did something that worked well in the past, and then there’s a disruption in the industry, and they keep doing what got them promoted even though the context has changed.

Simon London: Right. Right.

Hugo Sarrazin: So it’s the same thing in problem solving.

Charles Conn: And it’s why diversity in our teams is so important. It’s one of the best things about the world that we’re in now. We’re likely to have people from different socioeconomic, ethnic, and national backgrounds, each of whom sees problems from a slightly different perspective. It is therefore much more likely that the team will uncover a truly creative and clever approach to problem solving.

Simon London: Let’s move on to step five. You’ve done your work plan. Now you’ve actually got to do the analysis. The thing that strikes me here is that the range of tools that we have at our disposal now, of course, is just huge, particularly with advances in computation, advanced analytics. There’s so many things that you can apply here. Just talk about the analysis stage. How do you pick the right tools?

Charles Conn: For me, the most important thing is that we start with simple heuristics and explanatory statistics before we go off and use the big-gun tools. We need to understand the shape and scope of our problem before we start applying these massive and complex analytical approaches.

Simon London: Would you agree with that?

Hugo Sarrazin: I agree. I think there are so many wonderful heuristics. You need to start there before you go deep into the modeling exercise. There’s an interesting dynamic that’s happening, though. In some cases, for some types of problems, it is even better to set yourself up to maximize your learning. Your problem-solving methodology is test and learn, test and learn, test and learn, and iterate. That is a heuristic in itself, the A/B testing that is used in many parts of the world. So that’s a problem-solving methodology. It’s nothing different. It just uses technology and feedback loops in a fast way. The other one is exploratory data analysis. When you’re dealing with a large-scale problem, and there’s so much data, I can get to the heuristics that Charles was talking about through very clever visualization of data.

You test with your data. You need to set up an environment to do so, but don’t get caught up in neural-network modeling immediately. You’re testing, you’re checking—“Is the data right? Is it sound? Does it make sense?”—before you launch too far.

Simon London: You do hear these ideas—that if you have a big enough data set and enough algorithms, they’re going to find things that you just wouldn’t have spotted, find solutions that maybe you wouldn’t have thought of. Does machine learning sort of revolutionize the problem-solving process? Or are these actually just other tools in the toolbox for structured problem solving?

Charles Conn: It can be revolutionary. There are some areas in which the pattern recognition of large data sets and good algorithms can help us see things that we otherwise couldn’t see. But I do think it’s terribly important we don’t think that this particular technique is a substitute for superb problem solving, starting with good problem definition. Many people use machine learning without understanding algorithms that themselves can have biases built into them. Just as 20 years ago, when we were doing statistical analysis, we knew that we needed good model definition, we still need a good understanding of our algorithms and really good problem definition before we launch off into big data sets and unknown algorithms.

Simon London: Step six. You’ve done your analysis.

Charles Conn: I take six and seven together, and this is the place where young problem solvers often make a mistake. They’ve got their analysis, and they assume that’s the answer, and of course it isn’t the answer. The ability to synthesize the pieces that came out of the analysis and begin to weave those into a story that helps people answer the question “What should I do?” This is back to where we started. If we can’t synthesize, and we can’t tell a story, then our decision maker can’t find the answer to “What should I do?”

Simon London: But, again, these final steps are about motivating people to action, right?

Charles Conn: Yeah.

Simon London: I am slightly torn about the nomenclature of problem solving because it’s on paper, right? Until you motivate people to action, you actually haven’t solved anything.

Charles Conn: I love this question because I think decision-making theory, without a bias to action, is a waste of time. Everything in how I approach this is to help people take action that makes the world better.

Simon London: Hence, these are absolutely critical steps. If you don’t do this well, you’ve just got a bunch of analysis.

Charles Conn: We end up in exactly the same place where we started, which is people speaking across each other, past each other in the public square, rather than actually working together, shoulder to shoulder, to crack these important problems.

Simon London: In the real world, we have a lot of uncertainty—arguably, increasing uncertainty. How do good problem solvers deal with that?

Hugo Sarrazin: At every step of the process. In the problem definition, when you’re defining the context, you need to understand those sources of uncertainty and whether they’re important or not important. It becomes important in the definition of the tree.

You need to think carefully about the branches of the tree that are more certain and less certain as you define them. They don’t have equal weight just because they’ve got equal space on the page. Then, when you’re prioritizing, your prioritization approach may put more emphasis on things that have low probability but huge impact—or, vice versa, may put a lot of priority on things that are very likely and, hopefully, have a reasonable impact. You can introduce that along the way. When you come back to the synthesis, you just need to be nuanced about what you’re understanding, the likelihood.

Often, people lack humility in the way they make their recommendations: “This is the answer.” They’re very precise, and I think we would all be well-served to say, “This is a likely answer under the following sets of conditions” and then make the level of uncertainty clearer, if that is appropriate. It doesn’t mean you’re always in the gray zone; it doesn’t mean you don’t have a point of view. It just means that you can be explicit about the certainty of your answer when you make that recommendation.

Simon London: So it sounds like there is an underlying principle: “Acknowledge and embrace the uncertainty. Don’t pretend that it isn’t there. Be very clear about what the uncertainties are up front, and then build that into every step of the process.”

Hugo Sarrazin: Every step of the process.

Simon London: Yeah. We have just walked through a particular structured methodology for problem solving. But, of course, this is not the only structured methodology for problem solving. One that is also very well-known is design thinking, which comes at things very differently. So, Hugo, I know you have worked with a lot of designers. Just give us a very quick summary. Design thinking—what is it, and how does it relate?

Hugo Sarrazin: It starts with an incredible amount of empathy for the user and uses that to define the problem. It does pause and go out in the wild and spend an enormous amount of time seeing how people interact with objects, seeing the experience they’re getting, seeing the pain points or joy—and uses that to infer and define the problem.

Simon London: Problem definition, but out in the world.

Hugo Sarrazin: With an enormous amount of empathy. There’s a huge emphasis on empathy. Traditional, more classic problem solving is you define the problem based on an understanding of the situation. This one almost presupposes that we don’t know the problem until we go see it. The second thing is you need to come up with multiple scenarios or answers or ideas or concepts, and there’s a lot of divergent thinking initially. That’s slightly different, versus the prioritization, but not for long. Eventually, you need to kind of say, “OK, I’m going to converge again.” Then you go and you bring things back to the customer and get feedback and iterate. Then you rinse and repeat, rinse and repeat. There’s a lot of tactile building, along the way, of prototypes and things like that. It’s very iterative.

Simon London: So, Charles, are these complements or are these alternatives?

Charles Conn: I think they’re entirely complementary, and I think Hugo’s description is perfect. When we do problem definition well in classic problem solving, we are demonstrating the kind of empathy, at the very beginning of our problem, that design thinking asks us to approach. When we ideate—and that’s very similar to the disaggregation, prioritization, and work-planning steps—we do precisely the same thing, and often we use contrasting teams, so that we do have divergent thinking. The best teams allow divergent thinking to bump them off whatever their initial biases in problem solving are. For me, design thinking gives us a constant reminder of creativity, empathy, and the tactile nature of problem solving, but it’s absolutely complementary, not alternative.

Simon London: I think, in a world of cross-functional teams, an interesting question is do people with design-thinking backgrounds really work well together with classical problem solvers? How do you make that chemistry happen?

Hugo Sarrazin: Yeah, it is not easy when people have spent an enormous amount of time seeped in design thinking or user-centric design, whichever word you want to use. If the person who’s applying classic problem-solving methodology is very rigid and mechanical in the way they’re doing it, there could be an enormous amount of tension. If there’s not clarity in the role and not clarity in the process, I think having the two together can be, sometimes, problematic.

The second thing that happens often is that the artifacts the two methodologies try to gravitate toward can be different. Classic problem solving often gravitates toward a model; design thinking migrates toward a prototype. Rather than writing a big deck with all my supporting evidence, they’ll bring an example, a thing, and that feels different. Then you spend your time differently to achieve those two end products, so that’s another source of friction.

Now, I still think it can be an incredibly powerful thing to have the two—if there are the right people with the right mind-set, if there is a team that is explicit about the roles, if we’re clear about the kind of outcomes we are attempting to bring forward. There’s an enormous amount of collaborativeness and respect.

Simon London: But they have to respect each other’s methodology and be prepared to flex, maybe, a little bit, in how this process is going to work.

Hugo Sarrazin: Absolutely.

Simon London: The other area where, it strikes me, there could be a little bit of a different sort of friction is this whole concept of the day-one answer, which is what we were just talking about in classical problem solving. Now, you know that this is probably not going to be your final answer, but that’s how you begin to structure the problem. Whereas I would imagine your design thinkers—no, they’re going off to do their ethnographic research and get out into the field, potentially for a long time, before they come back with at least an initial hypothesis.

Want better strategies? Become a bulletproof problem solver

Want better strategies? Become a bulletproof problem solver

Hugo Sarrazin: That is a great callout, and that’s another difference. Designers typically will like to soak into the situation and avoid converging too quickly. There’s optionality and exploring different options. There’s a strong belief that keeps the solution space wide enough that you can come up with more radical ideas. If there’s a large design team or many designers on the team, and you come on Friday and say, “What’s our week-one answer?” they’re going to struggle. They’re not going to be comfortable, naturally, to give that answer. It doesn’t mean they don’t have an answer; it’s just not where they are in their thinking process.

Simon London: I think we are, sadly, out of time for today. But Charles and Hugo, thank you so much.

Charles Conn: It was a pleasure to be here, Simon.

Hugo Sarrazin: It was a pleasure. Thank you.

Simon London: And thanks, as always, to you, our listeners, for tuning into this episode of the McKinsey Podcast . If you want to learn more about problem solving, you can find the book, Bulletproof Problem Solving: The One Skill That Changes Everything , online or order it through your local bookstore. To learn more about McKinsey, you can of course find us at McKinsey.com.

Charles Conn is CEO of Oxford Sciences Innovation and an alumnus of McKinsey’s Sydney office. Hugo Sarrazin is a senior partner in the Silicon Valley office, where Simon London, a member of McKinsey Publishing, is also based.

Explore a career with us

Related articles.

Want better strategies? Become a bulletproof problem solver

Strategy to beat the odds

firo13_frth

Five routes to more innovative problem solving

The Power of Iterative Design and Process

By Kate Eby | January 2, 2019

  • Share on Facebook
  • Share on LinkedIn

Link copied

Whether you’re developing software, designing a website, or refining a recipe, you probably rely on an iterative process. The iterative process starts with requirements or assumptions that form the base of the project. In essence, you create the first product, test it, and revise for the next version.

The iterative process is simply a series of steps that you repeat, tweaking and improving your product with each cycle. In practical terms, think of it as practice to make your product perfect. In this article, you will learn the steps of the iterative process, how it’s used in workplaces from development to design, and why you would use this approach rather than a traditional project methodology such as Waterfall .

What Is Meant by the “Iterative Process”?

The iterative process is an approach to continuously improving a concept, design, or product. Creators produce a prototype, test it, tweak it, and repeat the cycle with the goal of getting closer to the solution.

Anyone can use the iterative process, but designers, developers, educators, scientists, and mathematicians most often utilize it. 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 on 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).

What Is an Iterative Procedure?

The iterative process refines a product through repeated adjustment cycles. In math, an iterative procedure identifies the solution to a problem based on an initial guess. Then, you introduce 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 is an alternative to the Waterfall approach, which relies on sequential steps. When using Waterfall, it’s difficult to quickly address development or design inefficiencies, but iteration gives developers more flexibility to swiftly incorporate changes.

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. It is popular in technology, engineering, software development, design, qualitative research, project management, and other industries. 

Here is some information on how 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?

The iterative process involves a continuous cycle of planning, analysis, implementation, and evaluation. Each cycle produces a segment of development that forms the basis for the next cycle of iterative improvement. 

You’ll start with initial planning and defining overall requirements. Implement your initial development work, and then refine it by trial and error. Once you complete the first cycle, this work segment forms the next chunk of the project. Each cycle should ideally improve the overall product. 

There is no standard pace of development; rather, the product requirements and your resourcing will define how efficiently you move through the iterative cycle.

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?

Many software and web applications rely on the iterative development process because it gives developers more flexibility. Typically, the system development life cycle (SDLC) uses iterative development alongside incremental development. As the system is developed, SDLC becomes increasingly complex.

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 drives the Scrum methodology of development, where the goal is to deliver maximum business value in the minimum amount of time.

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.

Iterative Scrum Process

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?

A variation of the iterative model, the iterative design process allows designers to create, test, analyze, and refine ideas quickly during any phase of the design process. 

Designers start with a solution for their product based on initial observations and research. They can then explore and validate their assumptions through the process of ideation, prototyping, testing, analyzing, and refining. This process, 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 linearly to deliver one complete product. The planning, requirements, specifications, and documentation during the project are highly controlled.

The non-iterative process also assumes that requirements can be locked down, which makes it difficult (and costly) to handle changes. It doesn’t contain a feedback loop that uses testing and feedback to refine the product. Instead, 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

Rather than focusing on a final, completed project, work in iterations that focus on completed subparts. Designers can apply the lessons learned in each subpart to subsequent iterations. In effect, the overall architecture will respond better to changes.

The iterative architecture process allows designers to overcome one of architecture’s major challenges: creating a complete plan at the beginning of the project. Creating a finished plan can be difficult because project plans cannot shift easily to accommodate changing market forces or business needs. That being said, when applied to architecture, the iterative process helps to defeat this obstacle.

What Does an Iterative Process Mean in Research?

Research methods are inherently iterative. Scientists design a hypothesis, test it, note their conclusions, and then use those insights to influence the next hypothesis. Researchers begin with an observation and verify their findings, which lead to new research questions.

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. Because this approach involves people's opinions, values, and behaviors, it requires the flexibility of the iterative process. 

Researchers adjust their methodologies, data collection processes, and questions during the project based on what they learn. For example, a 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. Qualitative researchers in social sciences, healthcare, education, and business typically utilize the iterative process.

What Does the Iterative Process Mean in Psychology?

Psychological assessments are iterative. Information is gathered and evaluated, symptoms are identified, and outcomes or treatments are suggested. Clinicians later evaluate their patients’ changes and adjust treatments. Iteration occurs by reviewing the data and connecting it to emerging insights.

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

One major threat to the iterative process is scope creep , which can occur due to the lack of firm deadline or defined solution. To avoid scope creep, project managers should maintain a list of priorities and benchmarks.

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

Empower your people to go above and beyond with a flexible platform designed to match the needs of your team — and adapt as those needs change. 

The Smartsheet platform makes it easy to plan, capture, manage, and report on work from anywhere, helping your team be more effective and get more done. Report on key metrics and get real-time visibility into work as it happens with roll-up reports, dashboards, and automated workflows built to keep your team connected and informed. 

When teams have clarity into the work getting done, there’s no telling how much more they can accomplish in the same amount of time.  Try Smartsheet for free, today.

Discover why over 90% of Fortune 100 companies trust Smartsheet to get work done.

FREE K-12 standards-aligned STEM

curriculum for educators everywhere!

Find more at TeachEngineering.org .

  • TeachEngineering
  • Problem Solving

Lesson Problem Solving

Grade Level: 8 (6-8)

(two 40-minute class periods)

Lesson Dependency: The Energy Problem

Subject Areas: Physical Science, Science and Technology

Partial design

  • Print lesson and its associated curriculum

Curriculum in this Unit Units serve as guides to a particular content or subject area. Nested under units are lessons (in purple) and hands-on activities (in blue). Note that not all lessons and activities will exist under a unit, and instead may exist as "standalone" curriculum.

  • Energy Forms and States Demonstrations
  • Energy Conversions
  • Watt Meters to Measure Energy Consumption
  • Household Energy Audit
  • Light vs. Heat Bulbs
  • Efficiency of an Electromechanical System
  • Efficiency of a Water Heating System
  • Solving Energy Problems
  • Energy Projects

TE Newsletter

Engineering connection, learning objectives, worksheets and attachments, more curriculum like this, introduction/motivation, associated activities, user comments & tips.

Engineers help shape a safer future

Scientists, engineers and ordinary people use problem solving each day to work out solutions to various problems. Using a systematic and iterative procedure to solve a problem is efficient and provides a logical flow of knowledge and progress.

  • Students demonstrate an understanding of the Technological Method of Problem Solving.
  • Students are able to apply the Technological Method of Problem Solving to a real-life problem.

Educational Standards Each TeachEngineering lesson or activity is correlated to one or more K-12 science, technology, engineering or math (STEM) educational standards. All 100,000+ K-12 STEM standards covered in TeachEngineering are collected, maintained and packaged by the Achievement Standards Network (ASN) , a project of D2L (www.achievementstandards.org). In the ASN, standards are hierarchically structured: first by source; e.g. , by state; within source by type; e.g. , science or mathematics; within type by subtype, then by grade, etc .

Ngss: next generation science standards - science.

View aligned curriculum

Do you agree with this alignment? Thanks for your feedback!

International Technology and Engineering Educators Association - Technology

State standards, national science education standards - science.

Scientists, engineers, and ordinary people use problem solving each day to work out solutions to various problems. Using a systematic and iterative procedure to solve a problem is efficient and provides a logical flow of knowledge and progress.

In this unit, we use what is called "The Technological Method of Problem Solving." This is a seven-step procedure that is highly iterative—you may go back and forth among the listed steps, and may not always follow them in order. Remember that in most engineering projects, more than one good answer exists. The goal is to get to the best solution for a given problem. Following the lesson conduct the associated activities Egg Drop and Solving Energy Problems for students to employ problem solving methods and techniques. 

Lesson Background and Concepts for Teachers

The overall concept that is important in this lesson is: Using a standard method or procedure to solve problems makes the process easier and more effective.

1) Describe the problem, 2) describe the results you want, 3) gather information, 4) think of solutions, 5) choose the best solution, 6) implement the solution, 7) evaluate results and make necessary changes. Reenter the design spiral at any step to revise as necessary.

The specific process of problem solving used in this unit was adapted from an eighth-grade technology textbook written for New York State standard technology curriculum. The process is shown in Figure 1, with details included below. The spiral shape shows that this is an iterative, not linear, process. The process can skip ahead (for example, build a model early in the process to test a proof of concept) and go backwards (learn more about the problem or potential solutions if early ideas do not work well).

This process provides a reference that can be reiterated throughout the unit as students learn new material or ideas that are relevant to the completion of their unit projects.

Brainstorming about what we know about a problem or project and what we need to find out to move forward in a project is often a good starting point when faced with a new problem. This type of questioning provides a basis and relevance that is useful in other energy science and technology units. In this unit, the general problem that is addressed is the fact that Americans use a lot of energy, with the consequences that we have a dwindling supply of fossil fuels, and we are emitting a lot of carbon dioxide and other air pollutants. The specific project that students are assigned to address is an aspect of this problem that requires them to identify an action they can take in their own live to reduce their overall energy (or fossil fuel) consumption.

The Seven Steps of Problem Solving

1.  Identify the problem

Clearly state the problem. (Short, sweet and to the point. This is the "big picture" problem, not the specific project you have been assigned.)

2.  Establish what you want to achieve

  • Completion of a specific project that will help to solve the overall problem.
  • In one sentence answer the following question: How will I know I've completed this project?
  • List criteria and constraints: Criteria are things you want the solution to have. Constraints are limitations, sometimes called specifications, or restrictions that should be part of the solution. They could be the type of materials, the size or weight the solution must meet, the specific tools or machines you have available, time you have to complete the task and cost of construction or materials.

3.  Gather information and research

  • Research is sometimes needed both to better understand the problem itself as well as possible solutions.
  • Don't reinvent the wheel – looking at other solutions can lead to better solutions.
  • Use past experiences.

4.  Brainstorm possible solutions

List and/or sketch (as appropriate) as many solutions as you can think of.

5.  Choose the best solution

Evaluate solution by: 1) Comparing possible solution against constraints and criteria 2) Making trade-offs to identify "best."

6.  Implement the solution

  • Develop plans that include (as required): drawings with measurements, details of construction, construction procedure.
  • Define tasks and resources necessary for implementation.
  • Implement actual plan as appropriate for your particular project.

7.  Test and evaluate the solution

  • Compare the solution against the criteria and constraints.
  • Define how you might modify the solution for different or better results.
  • Egg Drop - Use this demonstration or activity to introduce and use the problem solving method. Encourages creative design.
  • Solving Energy Problems - Unit project is assigned and students begin with problem solving techniques to begin to address project. Mostly they learn that they do not know enough yet to solve the problem.
  • Energy Projects - Students use what they learned about energy systems to create a project related to identifying and carrying out a personal change to reduce energy consumption.

The results of the problem solving activity provide a basis for the entire semester project. Collect and review the worksheets to make sure that students are started on the right track.

what is iterative problem solving

Learn the basics of the analysis of forces engineers perform at the truss joints to calculate the strength of a truss bridge known as the “method of joints.” Find the tensions and compressions to solve systems of linear equations where the size depends on the number of elements and nodes in the trus...

preview of 'Doing the Math: Analysis of Forces in a Truss Bridge' Lesson

Through role playing and problem solving, this lesson sets the stage for a friendly competition between groups to design and build a shielding device to protect humans traveling in space. The instructor asks students—how might we design radiation shielding for space travel?

preview of 'Shielding from Cosmic Radiation: Space Agency Scenario' Lesson

A process for technical problem solving is introduced and applied to a fun demonstration. Given the success with the demo, the iterative nature of the process can be illustrated.

preview of 'Egg Drop' Activity

The culminating energy project is introduced and the technical problem solving process is applied to get students started on the project. By the end of the class, students should have a good perspective on what they have already learned and what they still need to learn to complete the project.

preview of 'Solving Energy Problems' Activity

Hacker, M, Barden B., Living with Technology , 2nd edition. Albany NY: Delmar Publishers, 1993.

Other Related Information

This lesson was originally published by the Clarkson University K-12 Project Based Learning Partnership Program and may be accessed at http://internal.clarkson.edu/highschool/k12/project/energysystems.html.

Contributors

Supporting program, acknowledgements.

This lesson was developed under National Science Foundation grants no. DUE 0428127 and DGE 0338216. However, these contents do not necessarily represent the policies of the National Science Foundation, and you should not assume endorsement by the federal government.

Last modified: August 16, 2023

Harvestr white logo

  • The Iterative Process: A Guide to Creating, Refining and Improving
  • Harvestr Blog

The iterative process is one of the most commonly used methods by business organizations looking forward to upgrading their business strategies and diversifying their product offerings. The purpose of this article is to explain in detail the concepts of an iterative process, the definition of the term, an easy-to-understand version of the iterative process model, the steps of the process, and the advantages of using the strategy.

The iterative process is creating, refining, and improving a project, initiative, or product. Business organizations that implement the use of the iterative model try to build, test, and review until they are entirely satisfied with the final outcome. The iterative process can be considered as a strategy of trial and error, which ultimately brings you one step ahead toward fulfilling your final targets. Iterative processes are very significant when devising lean methodologies and working as an Agile project manager. However, that's not all. Iterative methods can be useful for all business organizations and team members. Using this strategy, you can certainly advance your project and product design to the point where you are one hundred percent satisfied with the deliverable you have.

Iterative Process Definition

The term "iterative process" refers to an approach to research and development whereby the preferred outcome is achieved through a series of recurring cycles, taking into account the principles of trial and error. The process is systematic in nature and non-random. Each iterative cycle participates in a specific set of guidelines, allowing structural changes to be incorporated. In this way, it is possible to improve step by step and in a balanced way with respect to each previous cycle.

austin-distel-744oGeqpxPQ-unsplash

Iterative Process of a Lean Business Model

The roots of the iterative process are closely linked to the agile or lean business model. The agile/lean business model makes every effort to achieve seamless efficiency by cutting and avoiding all unnecessary and unproductive steps in the production cycle. Such activities are known as ‘waste’, and the lean business model strives to continuously avoid them. The iterative process is very useful when focusing on continuous improvement. The ultimate goal is to achieve the maximum possible productivity with the least reasonable amount of resources. The concept and strategy of a minimum viable product is also an interesting strategy in this regard.

The Benefits of using the iterative process

The iterative approach allows for flexibility in the product roadmap while introducing significant changes during the development process. This can help business organizations stay on track and make quick adjustments as they implement new additions and changes. The iterative approach often requires the participation of all team members, which can improve efficiency by promoting balanced workloads and collaboration among the team. The iterative approach promotes more meaningful opportunities for teamwork and collaboration. Instead of starting with a fixed plan and specifications (which can take a long time to develop), the team collaborates interactively and actively progresses through projects.

The process is very cost effective. Even if you intend to alter the course of your original project, it will only cost the amount of effort and time you initially invested in the project. It also offers the possibility of working simultaneously. Unlike non-iterative approaches, such as the waterfall method, the attributes of the iterative process are not dependent on or constrained by previous work. Team members can work simultaneously on various aspects of the project, potentially reducing the overall timeline.

Lower project risk is yet another core benefit of the process. In an iterative approach, potential risks are recognized and subsequently addressed in each iteration. Instead of addressing major risks at the beginning and end of the project, low-level risks are continuously addressed throughout the working cycle. 

It offers a higher degree of trustworthy and dependable user's product feedback . By presenting users with an iteration they can interact with or observe closely, they can better provide incremental input about what is effective or not practical for them. The iterative method enables business organizations to consistently and dependably enhance their existing products. Through each iteration cycle, teams can assess areas that require some improvement and apply the lessons they previously learned, resulting in each new iteration being ideally more enhanced than the previous one. By continually upgrading and enhancing the development process, teams can develop well-designed products and processes with ensured quality.

Another reason for the popularity of the iterative approach is its relatively low-risk profile. Teams typically tackle high-risk aspects of the product early on and refine the process over time, thus alleviating the chance of significant issues arising as the project nears its end. This approach enables companies to recognize and address risks in a timely fashion.

Understanding strategies to make innovative and creative products to capture the market is imperative.

marvin-meyer-SYTO3xs06fU-unsplash

The 5 steps of the iterative process

1. planning and requirements .

The iterative approach typically begins with a phase that is highly focused on rigorous planning and information gathering, where teams outline some of the preliminary requirements, such as important timelines and customer specifications. During this phase, they may also collect and maintain a record of relevant documents, while clearly establishing a project timeline for the first iteration cycle.

2. Analysis and design 

In the second phase, the focus is on project design and analysis, which involves a thorough and comprehensive understanding of the objectives, building database models and clearly establishing the technical requirements of the project. A detailed, step-by-step analysis of each component of the project can help develop test systems that fit the overall objectives. 

3. Implementation 

The next phase of the process is implementation, where the focus is on developing the functionality of the project. The goal is to meet the minimum requirements of the project and then make improvements to previous iterations, if appropriate, to produce something that can be tested and provide valuable information for the next phases of the process.

4. Testing 

The testing phase consists of gathering feedback on the offering. The team makes a rigorous effort to highlight areas where the project does not perform adequately or does not meet the required expectations. It is highly recommended to adopt methods such as surveys, focus groups, stakeholder presentations and beta testers to obtain primary feedback. Choosing testers strategically to ensure that the right information is obtained at the right time can improve the functionality and usefulness of the iterative process.

5. Evaluation and review

The last step is to conduct a thorough review and evaluation, in which the results of the previous steps are evaluated. If this is the first iteration, it is useful to compare the feedback and notes with the original project requirements you had previously decided upon. This will help you determine how to implement the improvements. Also, take the time to reflect on what was successful in the first iteration and build on it, as enhancing strengths can be just as valuable as correcting weaknesses.

Frequently Asked Questions

What does iterative mean in business.

In business, iterative means repeating a process with the goal of improvement and refinement. This approach is commonly used in product development, problem-solving, and decision-making, allowing for continual adjustment and adaptation based on feedback and results.

What is an iterative process example?

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 afterward, 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.

What is an iterative approach?

An iterative approach is a method of problem-solving or decision-making that involves repeating a series of steps in a cycle until the desired outcome is achieved. It is characterized by continuous improvement and adaptation based on feedback and results. This approach allows for flexible decision-making and quicker response to changing circumstances compared to a linear, one-time solution. Iterative methods are commonly used in product development, design thinking, project management, and many other fields.

What does iterative stand for?

It is a word derived from the Latin word "iterare," which means to repeat. In the context of problem-solving, decision-making, and product development, iterative refers to a repetitive process of improvement and adaptation.

To gain a deeper understanding of the Iterative process and other impactful techniques in product development and marketing, consider exploring resources available on Harvestr .

  • Follow us on Linkedin
  • Follow us on Copy Copied to clipboard

Related Posts

Looking for more content? Have a look at our other posts on similar topics.

Mastering Mesh Color Gradients in Figma

Are you ready to embark on a creative journey that transforms your designs from ordinary to…

Mastering the Art of Crafting an Impactful Elevator Pitch

An elevator pitch is a brief but captivating description of your expertise and offerings. Also…

The Art of Product Differentiation: Transform Your Business and Outshine Competitors

In simple words, product differentiation refers to the process used by companies to differentiate…

enjoyalgorithms

EnjoyMathematics

Fundamentals of Loop and Iteration in Programming

Sometimes, we repeatedly repeat a particular code statement to solve a problem until a specific condition is satisfied. This is known as iteration, which allows us to "write code once" and "execute many times." In computer programming, iteration is often referred as ‘looping’ because instead of repeatedly writing the same code, we can execute the same code a finite number of times. Iteration provides code reusability and simplifies steps of problem-solving.

In data structure and algorithms, several problem-solving approaches are based on iteration. So a good grasp of loop fundamentals is essential for mastering these approaches. Here are some excellent examples of iterative problem-solving approaches:

  • Building partial solution using a single loop
  • Problem-solving using nested loop
  • Two pointers approach
  • Sliding window approach
  • Problem-solving using a hashing
  • Problem-solving using stack, queue, and priority queue
  • BFS traversal in a tree and graph
  • The bottom-up approach of dynamic programming
  • Iterative backtracking using stack

Types of loops in programming

Iteration is implemented using the loop in programming, where we primarily use two types of loops: " for"  loop and " while"  loop.

for loop in programming

We use the for loop when we know how many times the loop will execute. In other words, the for loop helps us to run some particular code statement defined number of steps.

Inside the for loop, we use a loop variable to control the loop execution, where the initial value of variable decides the starting point. So, we start by initializing the loop variable to some value and checking whether the loop condition is true or not. If the loop condition is true, code inside the loop body will execute. After this loop, execution will move to the next iteration by incrementing or decrementing the loop variable. This step will be repeated till the loop condition becomes false.

while loop in programming

The while loop is used to execute the loop body until a specific condition is  false . We mainly apply this idea when we don’t know how many times the loop will execute.

The while loop consists of a loop condition, a block of code as a loop body, and a loop update expression if required. First, the loop condition is evaluated, and if it is true, code within the loop body will be executed. This process repeats until the loop condition becomes false. For better intuition, while loop can be thought of as a repeating if statement.

Special Notes

  • There is also a third type of loop in programming: do-while loop. It is similar to while loop, where loop execution is terminated based on some condition. But the do-while loop condition is tested at the end of loop body.
  • The do-while loop is exit controlled, whereas the for and while loops are entry-controlled loops.
  • In the do-while loop, loop body will execute at least once irrespective of the test condition. 
  • It's an exercise for you to explore the various examples of the do-while loop.

Difference between for loop and while loop in programming

Core elements of a loop

Loop initialization:  We initialize loop variables before starting the first iteration of the loop.

Loop condition:  This is a boolean expression calculated at the beginning of each iteration to determine whether the loop body will execute or stop.

Loop body:  The core part of a loop where we perform required operations to manipulate data at each iteration. There can be more than one code statement here.

Loop update:  We perform increment/decrement operations on loop variables to control repetitions of the loop.

Here is the basic flow of a loop execution: Loop conditions will be evaluated first. If loop condition is true, then loop body will run, and loop variable gets updated (increment/decrement operation). The loop body will run as long as the loop condition will be true. When loop condition becomes false, we exit the loop and continue with the further code instructions.

How to design a correct iterative algorithm?

We should consider these critical steps to design and check the correctness of an iterative code:

  • Pre-condition:  Must be appropriately defined and true before the loop execution. 
  • Post-condition:  Must be appropriately defined and true after the loop termination.
  • Loop variant:  An exit condition must be appropriately defined to ensure loop termination.
  • Loop invariant:  The most critical aspect that is true before and after each iteration. The values of variables may change, but the truth of loop invariant does not vary.

Let's understand the above idea via some examples.

Example 1: finding the sum of all integers from 1 to n

Pre-condition:  We need to define two variables: a variable  i  that acts as a loop counter and a variable  sum  to store the sum of all integers. We want to do a sum from 1 to n, so at the start, we initialize  sum = 0  and  i = 1.

Post-condition:  After the loop termination, the value of the  sum  must be equal to the sum of all integers from 1 to n.

Loop variant:  The loop should terminate after the addition of all integers from 1 to n ,i.e,  i <= n . In other words, loop should not terminate until we have added  n  to the  sum .

Loop invariant:  We need to set the loop invariant to ensure correct output after the loop termination. As discussed above, the loop invariant must be true before and after each iteration.

  • Before ith iteration of loop, variable  sum  must be equal to the sum of all integers from 1 to i-1 .
  • At ith iteration, we add value i to the sum ( sum = sum + i)  and increase loop variable i by 1. This ensures that as we go through each iteration, the variable i will approach  n  and provide the sum of values from 1 to n after loop termination.
  • After ith iteration, variable  sum  must be equal to the sum of all integers from 1 to i .
  • The above invariant will continue till the end of loop.

Solution Pseudocode

Example 2: Finding the max element in an array

Pre-condition:  we need to define two variables: a loop variable  i  that acts as a loop counter and a variable  max  to store the maximum of all integers. Before starting the loop to find the max value from X[0] to X[n-1], we initialize  max = X[0]  and start the loop from  i = 1.  This pre-condition is true when we enter the first iteration of loop.

Post-condition:  After loop termination, the max value must store the maximum of all values from X[0] to X[n - 1].

Loop variant:  The loop must terminate after finding the max of all integers from X[0] to X[n-1]. In other words, the loop should not terminate until we have compared  X[n - 1]  to the  max  i.e.  i <= n - 1  or  i < n.

Loop invariant:  Let's assume invariant is true after  (i - 1)th  iteration, i.e.,  max  stores the maximum of all integers from X[0] to X[i-1]. We need to design instruction so that the invariant must be true after  ith  iterations of the loop i.e.  max  must be equal to the max of all integers from X[0] to X[i]. Here are the steps of the ith iteration:

  • We compare  max  with new value X[i].  If (max < X[i]) , it means we have found a value that is greater than the max of all values from X[0] to X[i - 1]. In such a situation, we update the max value with X[i] i.e.  max = X[i].  Otherwise, we ignore it, and value stored in  max  is still the maximum of all integers from  X[0]  to  X[i].
  • We also increase  i  by  1  at each iteration to update the maximum from  X[0]  to  X[n - 1]  in  max.

Some common errors in writing loops 

Infinite loops.

An infinite loop occurs when a loop condition continuously evaluates to true or not making progress towards loop termination. It appears most of the time due to the incorrect update of loop variables or some error in the loop condition. Usually, this is an error, but it's common for infinite loops to occur accidentally.

For example, we want to display the sum of all numbers from 5 to 10 via following code and end up with an infinite loop because we did not increment the loop variable. Here loop variable remains the same through each iteration, and progress is not made towards termination.

Here is the correct version of the code:

Other examples of Infinite loop

Example 1: For i < 0, this goes into an infinite loop!

Example 2: Here loop condition is "1" which is always true!

In some situations, an infinite loop can be used on purpose. For example, we use an infinite loop for applications that continuously accept user input and constantly generate the output until user comes out of the application manually.

Example 1: An operating system is the best example of it. It runs in an infinite loop and performs tasks continuously. It only comes out of an infinite loop when user manually shuts down the system.

Example 2: Suppose we read a sequence of data from input and stop reading as soon as a particular condition becomes true. The general structure of such input loop:

Example 3: Some online games execute in an infinite loop. The game will keep accepting user requests until user exits from the game.

Example 4: A typical web server runs in an infinite loop as the server responds to all the client requests. It takes a request for a web page, returns a web page, and waits for the subsequent request. It will come out of an indefinite loop only when the admin shuts down the server manually.

Off-by-one error in a loop

This is an error involving boundary condition of the loop i.e. initial or termination condition of loop variables. Such a problem can arise when programmer makes mistakes like this: 

  • Using <=" instead of "<" while checking the expression in the loop condition.
  • Fails to consider a sequence that starts at zero rather than one.

Off-By-One example 1

Above program will result in array out-of-bounds exception because we are trying to display result for X[5] and the upper bound of the array is index only 4. This is because index for the array starts at 0 instead of 1 in most programming languages. The correct code is displayed below.

Off-By-One Example 2

  • Case1: for (int i = 1; i < n; i = i + 1) { ... }
  • Case2: for (int i = 0; i <= n; i = i + 1) { ... }

Suppose we want to process n elements of an array starting from index 0. In the first case, loop will execute n - 1 time and in the second case, loop will execute n + 1 time. Both are situations of off-by-one error. The loop can be written correctly as: for (int i = 0; i < n; i = i + 1) { ... }

Examples of various loop patterns

Single loop increasing by 1.

Finding the nth Fibonacci using bottom-up approach of DP

Kadane algorithm loop of finding maximum subarray sum

Boyer–Moore voting algorithm of finding majority element in an array

Nested loop patterns

Nested loop of the Bubble sort algorithm

Nested loop of the Insertion sort algorithm

Nested loop of finding transpose of a square matrix

Single loop increasing by 2

A single loop of finding max and min in an array

Single loop of sorting an array in a waveform

Single loop Increasing or decreasing by a factor of 2

Loop of exponential search in an unbounded array

Loop of iterative binary search

Loop of searching iteratively in a BST

Two pointers loop: pointers moving in the opposite direction

Two-pointers loop of reversing an array

Two pointers loop of finding pair sum in a sorted array

Two pointers loop: pointers moving in the same direction

Two-pointers loop of merging algorithm in merge sort

Two-pointers loop of partition algorithm in quicksort

Two-pointers loop of finding loop in a linked list: Floyd algorithm

Loop on stack and queue data structures

BFS Traversal of a binary tree using queue

Pre-order traversal in binary search using stack

Critical ideas to think!

  • Sometimes we forget to initialize and update variable used in the loop condition. This is a serious programming error.
  • Although loops typically iterate over only one variable, sometimes loop can work with multiple variables.

When we declare a variable inside loop, the scope of that variable ends with the end of loop statement. In other words, the scope of the loop variable is inside the loop, and it can not be accessed from outside the loop.

Critical concepts to explore in Loop

  • break and continue loop statements
  • Two pointers and sliding window approach
  • The idea of iterator in data structure
  • Iteration vs. Recursion comparison
  • Iterative problem-solving approaches
  • Time complexity analysis of various loops

Coding problems to practice using loop

  • Convert roman to integer
  • Fizz Buzz Problem
  • Look-and-Say Sequence
  • Move zeroes to an end
  • Merge two sorted array
  • Print a given matrix in spiral form
  • Rotate a matrix by 90 degrees

Enjoy learning, Enjoy coding, Enjoy algorithms!

Share Your Insights

Don’t fill this out if you’re human:

More from EnjoyAlgorithms

Self-paced courses and blogs, coding interview, machine learning, system design, oop concepts, our newsletter.

Subscribe to get well designed content on data structure and algorithms, machine learning, system design, object orientd programming and math.

©2023 Code Algorithms Pvt. Ltd.

All rights reserved.

  • Admiral “Amazing Grace” Hopper

Exploring the Intricacies of NP-Completeness in Computer Science

Understanding p vs np problems in computer science: a primer for beginners, understanding key theoretical frameworks in computer science: a beginner’s guide.

Learn Computer Science with Python

Learn Computer Science with Python

CS is a journey, not a destination

  • Foundations

Recursion vs. Iteration: A Detailed Comparison and Contrast in Problem-Solving Approaches

what is iterative problem solving

Introduction

Recursion and iteration – two prominent strategies used in algorithm design and programming. While both techniques aim to solve problems by repetitively executing certain tasks, they differ in their implementation and the scenarios they are best suited for.

Recursion involves a function calling itself until a base case is reached, whereas iteration executes the same block of code until a certain condition is met. In essence, recursion employs a top-down approach while iteration uses a bottom-up strategy.

This article aims to provide an in-depth exploration of recursion and iteration, their inherent strengths and weaknesses, and practical advice on when to use each. Let’s delve into these problem-solving paradigms.

Recursion is a technique where a function calls itself to solve a smaller instance of the same problem. It relies heavily on the stack mechanism, an area of the computer’s memory where each recursive call is stored until the base case is reached.

This code defines a recursive function to calculate the factorial of a number, a classic example of recursion.

Line by Line

Below is a line by line walkthrough of the above recursive Fibonacci function.

This defines a function called factorial that takes a parameter n. This will be our recursive factorial function.

This checks if n is equal to 1. This is the base case of the recursion.

If n is 1, we return 1, as 1! = 1.

If n is not 1, we move to the recursive case.

Here we call factorial recursively, passing n-1 as the argument. This reduces the problem towards the base case of 1.

This line is key – we reduce the problem by calling factorial on a smaller input that will allow us to build up the full factorial.

The recursive calls continue until n == 1, at which point the calls unwind and the final factorial is returned by multiplying the intermediate results.

So the base case directly handles the simplest input, while the recursive step reduces towards that base case and builds up the solution by unwinding the calls. This structure of base cases and recursive reduction is the essence of recursion.

Pros and Cons of Recursion

  • Recursion can make code more readable and easier to understand due to its simplicity and elegance. It often leads to a reduction in the lines of code required to solve a problem.
  • It is a powerful tool for solving problems that have a recursive nature such as tree and graph traversal problems, combinatorial problems, and problems that require backtracking.
  • However, recursion can lead to high memory usage due to the stack mechanism and can cause stack overflow if the recursion depth is too high. It’s also generally slower than iteration because of the overhead of maintaining the stack.

Iteration is a technique in which a block of code is executed repeatedly until a certain condition is met. Iteration uses the concept of loops – while, for, do-while, and so on.

This piece of code defines an iterative function to calculate the factorial of a number, a common example of iteration.

Here is an explanation of the iterative factorial function:

This defines a function called factorial that takes a parameter n. This will be our iterative factorial function.

We start by initializing a result variable to 1. This will store our factorial result as we calculate it.

We iterate through the numbers 1 to n using a for loop.

Inside the loop, we multiply the current result by the iterator variable i. This has the effect of successively multiplying all integers from 1 to n, building up the factorial.

After the loop, result holds the factorial value, so we return it.

So in contrast to the recursive approach, here we use a loop to iteratively calculate the factorial by cumulative multiplication. There is no reduction of the problem or recursive calls. The iteration handles building up the solution instead.

The key differences from recursion are the explicit loop, the result variable that holds the intermediate state, and the lack of recursive self-calls. But the overall flow of multiplying successive integers is similar to the recursive approach conceptually.

Pros and Cons of Iteration

  • Iteration often results in better performance in terms of speed and memory usage compared to recursion.
  • It is more natural for some problems, especially those that require simple repetition of steps.
  • However, iterative solutions can become complex and harder to understand for problems that have a recursive nature or require complex control structures.

Both recursion and iteration have their unique strengths and weaknesses, and the choice between the two should be determined by the nature of the problem at hand, the specific requirements of the task, and the characteristics of the system on which the code will run.

For problems with a recursive structure, recursion may lead to more elegant and simpler solutions. However, if performance in terms of memory and speed is a concern, then iteration may be a better choice, especially for problems that require simple repetition of steps.

Related Articles

what is iterative problem solving

Three Elegant Algorithms Every Computer Science Beginner Should Know

Advisory boards aren’t only for executives. Join the LogRocket Content Advisory Board today →

LogRocket blog logo

  • Product Management
  • Solve User-Reported Issues
  • Find Issues Faster
  • Optimize Conversion and Adoption

The iterative process: Definition, steps, and overview for agile teams

what is iterative problem solving

In the software development industry, project managers have shifted towards using agile frameworks. Waterfall is long gone from our lives. Instead, agile utilities the iterative process for flexible software design and improved development capability.

The Iterative Process Meaning And Definition

A couple of days ago I went to buy furniture from Ikea and the salesperson drew a prototype of the product I imagined within a minute. I shared information about my room and he updated the prototype until we created the perfect match.

Even when buying furniture you can experience the iterative process by:

  • Analyzing the products and selecting the category you need
  • Sharing your expectations about the selected category
  • Letting a responsible person analyze the technical availability
  • Prioritizing need according to product capability
  • Sharing your feedback on the implemented prototype version
  • Evaluating the product and using it until you find additional areas of improvement

As a product manager, iteration means “not forcing the team to over-engineer, learning from the latest iteration, and achieving better results for later version of your product”

In this article, you will learn what the iterative process is, how it differs from continuous improvement, as well as the steps to implement the iterative process on its own.

What is the iterative process?

The iterative process is a set of actions consisting of analysis, planning, design, implementation, testing, and review. This involves a continuous product improvement process of: try, learn and improve again. The main idea is to minimize the effort required for research, development, and implementation.

By dividing the process into smaller pieces, you can optimize your product and see customer results fast. The goal is to force yourself to reduce risk, manage efficiently, and create a flexible work environment.

The iterative process can be implemented into any working method, but as I mentioned, is an integral part of the agile methodology .

What is continuous product improvement?

There’s no end to product improvement. You should divide features into small changes and prioritize the ones that will create the biggest impact. Your aim is to get a significant impact with small efforts.

The continuous improvement method originated in Japan and is also known as Kaizen. Your operational excellence team can use the method to improve the operational side of the business.

The method forces managers to interrogate every feature until they become basic ones. You can implement continuous improvement methods into your organization if you are using lean , Kanban , Six Sigma, or agile.

Continuous improvement vs. iterative process

Most agile companies use continuous improvement and the iterative process together in tandem. After a while, people can think the two processes are the same, but there is a difference between them.

The iterative process doesn’t force you to develop primitive capabilities all the time. You have room to iterate features and create a better version of it. On the contrary, continuous improvement tends to optimize and delay resource usage as late as possible.

The iterative process is a feedback loop based on re-analyzing and improving the product according to new data or customer feedback. The product becomes better through trial and error.

what is iterative problem solving

Over 200k developers and product managers use LogRocket to create better digital experiences

what is iterative problem solving

Continuous improvement is also called incremental design or development. With continuous improvement, you prioritize the most valuable features first and deliver packages as quickly as possible.

If you use an iterative process in the correct way, you continuously improve your product with deliverable parts. And if you are using continuous improvement in a correct way, you listen to feedback and respond to needs in an iterative way:

Continuous Improvement Vs. Iterative Process

Why are we iterating the process?

The problem with non-iterative processes is that they don’t allow you to change course.

Before agile methodologies, PMs relied on waterfall methodologies, which were non-iterative processes. You divided projects into phases and after every phase was completed you started a new one. As waterfall requires, you planned your resources according to projects and wouldn’t change anything until the project was completed.

Technology companies aren’t suited to work with a fixed model. Markets can change in a minute, causing everything you build to be worthless before launch. Iterative and continuous methods offer flexibility and agile structures to ensure you don’t miss any opportunities.

In a waterfall method, a tiny requirement change causes a huge cost to rebuild and deliver. Tech companies prefer iterative processes because of their cost effectiveness. Rather than thinking about the project as a whole, thinking smaller parts at a time, helps the team to be more creative.

Iterating the process lowers the risk in many ways. Think of a waterfall project with a six months development duration. After a project is completed you would develop everything at once and if one feature has a problem you need to check everything at the same time.

Even if everything goes perfectly, you can see that the feature isn’t to customers expectations. To avoid such risks, ask for customer feedback in early stages. Finding the problem earlier is more efficient, cost effective, and also increases your customer’s happiness.

In some cases, product managers have a lack of information and data to provide a full flow. The PM and the team can provide a prototype to gauge customer reactions and usage data. While the product is in the development phase, you will have a chance to reshape your product and launch with better results.

Additionally, customers are more happy with the iterative process because they can get improvements earlier. There’s no need to wait six more months for a tiny upgrade. This method helps you to have clear communication with customers and encourage them to provide feedback.

The steps of an iterative process

The iterative process starts from product ideation and continues as a software development life cycle. The steps are as follows:

Iterative Design Process

  • Development

1. Analysis

Analysis is important to eliminate risk factors before starting to implement features. You need to analyze the product market and understand customer pain points. As a product manager, you convert the customer needs into technical requirements in this phase.

Determine high level requirements and possible solutions for the product with the development team. You can arrange a brainstorming or an event storming activity for the software team to have more ownership of the product.

2. Planning

Choose the scope and your product objectives. The scope contains the features that provide the most value to the product according to your forecasts. Prepare the requirement set and discuss value propositions of requests.

The iterations should be planned according to customer expectations, and must have capabilities so that you don’t lose customers.

3. Development

The development team starts to prepare the implementation of the first iteration after the planning phase. Your role here is to make sure everything goes as expected. Answer the development teams’ and customers’ questions as needed.

Testing methods can differ according to the features you deliver and your company policies. After QA approval, you should test the iteration before deployment. Demo sessions can be arranged with business teams and customers to show off the product and collect feedback for later iterations.

How to conduct a successful iterative process

As a PM, the first thing you should consider is your customer base. Arrange iterations according to customer expectations, feedback, and value propositions.

For example, if you want to see if a feature will create an impact or not, you can easily create a prototype iteration and ask customers for feedback. There’s no need for a full set of features, a simple capability will show you the result.

Create a continuous feedback loop with your customers. For B2C products it is easy to implement, because you have app stores, comment and support operations.

You should answer messages because entries without an answer may create a bad impression. Each customer will have a different perspective for the product and your prioritization mechanism will be based on the amount of customer requests.

You should be as flexible as you can. Nobody can insist on developing a feature if they see the previous iteration metrics. The data you collect will help you determine whether a feature has value.

Learn from each mistake. You can host “retro” meetings after every iteration process, where the business team, customers, integrated teams, and anyone else can enter a comment to discuss potential failures.

You can not be successful if you ignore the mistakes you made on an iteration. Add lessons learned pages into your product/project documentations, so that everyone can see them while iterations are on going.

Final thoughts

Before concluding, I want to leave you with the SMART approach. Agile processes offer less for analyzing and defining requests, so you should be as SMART as possible. SMART stands for:

These five bullets are practically a summary for the iterative processes. You need to set robust goals to achieve within a short time range and you need to impress customers with prototype’s of features.

Focusing on SMART goals will help you focus on little pieces of the puzzle, instead of trying to do everything at once. As a result, you will achieve your iterations, while making it easier to review your goals.

Try to be more specific instead of perfect. Leave room for creativity and improvements.

Featured image source: IconScout

LogRocket generates product insights that lead to meaningful action

Get your teams on the same page — try LogRocket today.

Share this:

  • Click to share on Twitter (Opens in new window)
  • Click to share on Reddit (Opens in new window)
  • Click to share on LinkedIn (Opens in new window)
  • Click to share on Facebook (Opens in new window)
  • #agile and scrum
  • #collaboration and communication

what is iterative problem solving

Stop guessing about your digital experience with LogRocket

Recent posts:.

what is iterative problem solving

Understanding the problem space and its role in development

Failing to identify or understand a problem is, when it boils down to it, the main reason why most businesses fail.

what is iterative problem solving

Leader Spotlight: Setting processes to achieve organizational alignment, with Juan Gabarro

Juan Gabbaro discusses how product leadership should drive vertical alignment, but the product team should drive cross-functional alignment.

what is iterative problem solving

Practical ways to improve your customer experience

Improving your customer experience enhances customer satisfaction and boosts business growth and customer retention.

what is iterative problem solving

Leader Spotlight: Viewing loyalty as a commitment to the customer, with Josh Engleka

Josh Engleka talks about how his team at Lowe’s takes a unique perspective because they are all customers, as well as employees.

Leave a Reply Cancel reply

Northwestern Scholars Logo

  • Help & FAQ

Planning to iterate: Supporting iterative practices for real-world ill-structured problem-solving

  • Mechanical Engineering
  • Computer Science
  • School of Education and Social Policy

Research output : Contribution to journal › Conference article › peer-review

Solving real-world highly ill-structured problems involves iteration: gathering information, building, testing, and revising products, experiments, and theories. However, we do not know how to create learning environments to teach iteration for highly ill-structured problems. How might we help student teams effectively iterate for highly ill-structured design problems? In this design-based research study we built on learning sciences research to implement Planning to Iterate—a weekly planning session in which teams create problem and planning representations. The study took place in a 6-week extracurricular undergraduate design program with five undergraduate project teams working on highly ill-structured problems. To understand team iterative practices, we analyzed videos of teams’ weekly planning sessions, and teams’ artifacts. Students significantly increased iterative practices, but infrequently integrated the practices together, suggesting re-design with additional coaching.

  • Design research
  • Planning tools
  • Problem-solving
  • Project-based learning

ASJC Scopus subject areas

  • Computer Science (miscellaneous)

Other files and links

  • Link to publication in Scopus
  • Link to the citations in Scopus

Fingerprint

  • Planning Social Sciences 100%
  • Problem Social Sciences 100%
  • Teams Computer Science 100%
  • Real World Computer Science 100%
  • planning INIS 100%
  • iterative methods INIS 100%
  • Research Psychology 100%
  • design INIS 80%

T1 - Planning to iterate

T2 - 13th International Conference of the Learning Sciences, ICLS 2018: Rethinking Learning in the Digital Age: Making the Learning Sciences Count

AU - Rees Lewis, Daniel G.

AU - Gorson, Jamie

AU - Maliakal, Leesha V.

AU - Carlson, Spencer E.

AU - Gerber, Elizabeth M

AU - Riesbeck, Christopher K

AU - Easterday, Matthew Wayne

N1 - Funding Information: We thank Delta Lab, Haoqi Zhang, Julie Hui, and Bruce Sherin for their feedback. We thank Alex Sher for help with implementation. This work was funded by the National Science Foundation (US) grants IIS-1530833 and IIS-1320693. Publisher Copyright: © ISLS.

N2 - Solving real-world highly ill-structured problems involves iteration: gathering information, building, testing, and revising products, experiments, and theories. However, we do not know how to create learning environments to teach iteration for highly ill-structured problems. How might we help student teams effectively iterate for highly ill-structured design problems? In this design-based research study we built on learning sciences research to implement Planning to Iterate—a weekly planning session in which teams create problem and planning representations. The study took place in a 6-week extracurricular undergraduate design program with five undergraduate project teams working on highly ill-structured problems. To understand team iterative practices, we analyzed videos of teams’ weekly planning sessions, and teams’ artifacts. Students significantly increased iterative practices, but infrequently integrated the practices together, suggesting re-design with additional coaching.

AB - Solving real-world highly ill-structured problems involves iteration: gathering information, building, testing, and revising products, experiments, and theories. However, we do not know how to create learning environments to teach iteration for highly ill-structured problems. How might we help student teams effectively iterate for highly ill-structured design problems? In this design-based research study we built on learning sciences research to implement Planning to Iterate—a weekly planning session in which teams create problem and planning representations. The study took place in a 6-week extracurricular undergraduate design program with five undergraduate project teams working on highly ill-structured problems. To understand team iterative practices, we analyzed videos of teams’ weekly planning sessions, and teams’ artifacts. Students significantly increased iterative practices, but infrequently integrated the practices together, suggesting re-design with additional coaching.

KW - Design research

KW - Iteration

KW - Planning tools

KW - Problem-solving

KW - Project-based learning

UR - http://www.scopus.com/inward/record.url?scp=85053864569&partnerID=8YFLogxK

UR - http://www.scopus.com/inward/citedby.url?scp=85053864569&partnerID=8YFLogxK

M3 - Conference article

AN - SCOPUS:85053864569

SN - 1814-9316

JO - Proceedings of International Conference of the Learning Sciences, ICLS

JF - Proceedings of International Conference of the Learning Sciences, ICLS

IS - 2018-June

Y2 - 23 June 2018 through 27 June 2018

Problems, Solutions, and Algorithms

Learning goals.

  • Be able to define the terms algorithm, pseudocode, and iteration
  • Be able to use pseudocode to describe the flow of an algorithm’s implementation
  • Be familiar with using iterative processes to design increasingly robust solutions
  • 10 - Warmup
  • 15 - Lecture
  • 15 - Lecture Cont.
  • 10 - Challenge 1
  • 15 - Challenge 2
  • 10 - Challenge 3
  • 5 - Closeout

Available here

Part 1 - Writing

First, spend 5 minutes writing an “algorithm” that explains how to tie your shoes. Try to be as explicit and specific as possible. Assume your reader is a human, but a very literal one.

Part 2 - Doing

Now, pair up with your neighbor. The person whose name is alphabetically first will read their algorithm step-by-step to the person whose name is alphabetically last. The person whose name is alphabetically last will attempt to tie their shoes according only to the instructions from their partner.

You can repeat instructions if needed, but don’t add any instructions beyond what you had originally written down.

Lecture - Big-Picture Strategy

  • What is an Algorithm a process or set of rules to be followed in calculations or other problem-solving operations, especially by a computer.
  • Incremental solutions (linear)
  • Iterative solutions (spirals)
  • Building a full “slice”
  • “Half a product not a half-assed product”

An Iterative Process

  • Identify the big picture goal: What do you want your program to do? How will you know when you’ve succeeded?
  • Identify the interface: How do you want to interact with your program? What are its inputs and outputs?
  • Identify a small picture goal: What is the simplest case of this problem? Is there a sub-problem of even that case?
  • Plan to solve that small goal: Sketch ideas out in a notebook.
  • Write a small goal test: Identify expected inputs and outputs. Decide on a method name.
  • Implement: Write pseudocode and turn that into code.
  • Repeat: Is the whole problem solved? If not, go back to step 3.

Exercise 1 – Common Words

With a pair, answer the questions from steps 1 through 4 for the following problem. When you get to steps 3 and 4, repeat them at least 3 times for increasing levels of complexity.

I have a text document and want to know “What are the three most common words in the text?”

Extension : Let’s exclude the following: I, you, he, she, it, we, they, they, a, an.

Software Processes / Techniques – why do we care

  • Programming – what makes it hard? (Translating ideas into code? Or coming up with ideas?)
  • Perception - A good programmer is someone who solves technical problems easily
  • Reality - A good programmer is someone equipped with the tools and processes to confront challenging problems and still emerge successful
  • Problem solving challenges: What to do vs. How to do it
  • “Dumping out the toolbox” - controlling nerves and pacing yourself
  • Software development techniques are designed to manage these difficulties
  • Agile Development

Remaining Exercises

Small groups - algorithm challenges.

We’ll then break into small groups to work through this process for a few different problems.

Odds & Evens

I have a file with 100 numbers. I want to create two new files: one with all the odds and one with all the evens.

Extension : Don’t allow duplicates in the output

Palindromes

A palindrome is a word or phrase that reads the same when you reverse all of the letters.

  • Never odd or even

A palindromic number is the same concept applied to numbers:

Create a program to find the largest palindromic number that you can create by multiplying two three digit numbers together.

Lats & Longs

I have a file with 100 latitude/longitude pairs. Find the point that’s closest to the north pole.

Extension : Find the one closest to the magnetic north pole.

  • What is an algorithm? What is algorithmic thinking? Why is it necessary when working with computers?
  • How does iterative problem solving work? Why is it beneficial to us as developers?
  • What is pseudocode? How does it make programming easier? Why should we do it even if we think we’ve got a pretty sweet plan?

Lesson Search Results

Showing top 10 results.

  • DSA Tutorial
  • Data Structures
  • Linked List
  • Dynamic Programming
  • Binary Tree
  • Binary Search Tree
  • Divide & Conquer
  • Mathematical
  • Backtracking
  • Branch and Bound
  • Pattern Searching
  • Introduction to Recursion - Data Structure and Algorithm Tutorials
  • What is Recursion?

Difference between Recursion and Iteration

  • Types of Recursions
  • Finite and Infinite Recursion with examples
  • What is Tail Recursion
  • What is Implicit recursion?
  • Why is Tail Recursion optimization faster than normal Recursion?
  • Recursive Functions
  • Difference Between Recursion and Induction

Recursion in different languages

  • Recursion in Python
  • Recursion in Java
  • Recursion in C#
  • How to Understand Recursion in JavaScript ?

Standard Problems on Recursion

  • Program for Tower of Hanoi Algorithm
  • Time Complexity Analysis | Tower Of Hanoi (Recursion)
  • Find the value of a number raised to its reverse
  • Recursively remove all adjacent duplicates
  • Print 1 to n without using loops
  • Print N to 1 without loop
  • Sort the Queue using Recursion
  • Reversing a queue using recursion
  • Mean of array using recursion
  • Binary to Gray code using recursion
  • Sum of natural numbers using recursion
  • Delete a linked list using recursion
  • Product of 2 Numbers using Recursion
  • Decimal to binary number using recursion
  • Sum of array elements using recursion
  • How to Sort a Stack using Recursion
  • Reverse a Doubly linked list using recursion
  • Programs for Printing Pyramid Patterns using Recursion
  • DFS traversal of a Tree
  • Length of longest palindromic sub-string : Recursion
  • Count Set-bits of number using Recursion
  • Print reverse of a string using recursion
  • Print Fibonacci Series in reverse order using Recursion
  • Java Program to Reverse a Sentence Using Recursion
  • Program for length of a string using recursion
  • Sum of digit of a number using recursion
  • Program to calculate value of nCr using Recursion
  • Find geometric sum of the series using recursion
  • Bottom View of a Binary Tree using Recursion
  • Convert a String to an Integer using Recursion
  • Tail recursion to calculate sum of array elements.

Practice Sets on Recursion

  • Recursive Practice Problems with Solutions
  • Practice Questions for Recursion | Set 1
  • Practice Questions for Recursion | Set 2
  • Practice Questions for Recursion | Set 3
  • Practice Questions for Recursion | Set 4
  • Practice Questions for Recursion | Set 5
  • Practice Questions for Recursion | Set 6
  • Practice Questions for Recursion | Set 7
  • Practice questions for Linked List and Recursion
  • Top MCQs on Recursion Algorithm with Answers

A program is called recursive when an entity calls itself. A program is called iterative when there is a loop (or repetition).

Example: Program to find the factorial of a number 

Time and Space Complexity

Below is a detailed explanation to illustrate the difference between the two using the above example. We will study the different aspects of both recursive and iterative approaches.

1. Time Complexity

The time complexity of the method may vary depending on whether the algorithm is implemented using recursion or iteration.

  • Recursion : The time complexity of recursion can be found by finding the value of the nth recursive call in terms of the previous calls. Thus, finding the destination case in terms of the base case, and solving in terms of the base case gives us an idea of the time complexity of recursive equations. Please see Solving Recurrences for more details.  
  • Iteration : The time complexity of iteration can be found by finding the number of cycles being repeated inside the loop. 

Usage of either of these techniques is a trade-off between time complexity and size of code. If time complexity is the point of focus, and the number of recursive calls would be large, it is better to use iteration. However, if time complexity is not an issue and shortness of code is, recursion would be the way to go.

  • Recursion : Recursion involves calling the same function again, and hence, has a very small length of code. However, as we saw in the analysis, the time complexity of recursion can get to be exponential when there are a considerable number of recursive calls. Hence, usage of recursion is advantageous in shorter code, but higher time complexity.  
  • Iteration : Iteration is the repetition of a block of code. This involves a larger size of code, but the time complexity is generally lesser than it is for recursion. 

3. Overhead

Recursion has a large amount of Overhead as compared to Iteration. 

  • Recursion : Recursion has the overhead of repeated function calls, that is due to the repetitive calling of the same function, the time complexity of the code increases manyfold.  
  • Iteration : Iteration does not involve any such overhead. 

4. Infinite Repetition

Infinite Repetition in recursion can lead to a CPU crash but in iteration, it will stop when memory is exhausted. 

  • Recursion : In Recursion, Infinite recursive calls may occur due to some mistake in specifying the base condition, which on never becoming false, keeps calling the function, which may lead to a system CPU crash.  
  • Iteration : Infinite iteration due to a mistake in iterator assignment or increment, or in the terminating condition, will lead to infinite loops, which may or may not lead to system errors, but will surely stop program execution any further.

Difference between Iteration and Recursion

The following table lists the major differences between iteration and recursion:

author

Please Login to comment...

Similar reads.

  • Algorithms-Recursion
  • Technical Scripter 2018
  • Technical Scripter

Improve your Coding Skills with Practice

 alt=

What kind of Experience do you want to share?

Ask a question

Start a discussion.

  • Jira Service Desk Jira Service Management
  • Confluence Confluence
  • Trello Trello
  • Opsgenie Opsgenie

Community resources

  • Announcements
  • Documentation and support

Atlassian Community Events

  • Atlassian University
  • groups-icon Welcome Center
  • groups-icon Featured Groups
  • groups-icon Product Groups
  • groups-icon Regional Groups
  • groups-icon Industry Groups
  • groups-icon Community Groups
  • Learning Paths
  • Certifications
  • Courses by Product
  • Live learning
  • Local meet ups
  • Community led conferences

questions

Get product advice from experts

groups

Join a community group

learning

Advance your career with learning paths

kudos

Earn badges and rewards

events

Connect and share ideas at events

  • Featured Groups

What is an iterative approach and what are its benefits?

Recommended Learning For You

Level up your skills with Atlassian learning

Visualizing Work Across Teams with Plans in Jira Software

Learn how to use Plans to accurately map your team’s work and make better recommendations.

The Beginner's Guide to Agile in Jira

This course has everything you need to get started with agile and Jira Software.

Atlassian Certified Associate

Jira Software Board Configuration

Earn an associate-level credential from Atlassian that shows you can effectively configure Jira Software boards.

Was this helpful?

Andreas Springer _Actonic_

Andreas Springer _Actonic_

About this author

Head of Marketing

Actonic GmbH

2 accepted answers

209 total posts

  • +27 more...
  • Community Guidelines
  • Privacy policy
  • Notice at Collection
  • Terms of use
  • © 2024 Atlassian

logo

What is iteration computer science?

What is iteration in computer science.

In computer science, iteration refers to the process of repeatedly executing a set of instructions or a block of code. It allows for the efficient execution of a task multiple times without the need for duplicated code. By employing iteration, programmers can automate repetitive tasks and solve problems efficiently.

What is the purpose of iteration?

Iteration serves the purpose of executing a block of code repeatedly until a specific condition is met. It allows for automating repetitive tasks, optimizing code, and solving problems more efficiently.

What are the types of iteration?

There are primarily two types of iteration: definite and indefinite. Definite iteration involves executing a fixed number of iterations, while indefinite iteration repeats until a certain condition is satisfied.

What is an example of definite iteration?

A for loop in most programming languages is an example of definite iteration. It executes a block of code a specified number of times, often based on a counter variable.

What is an example of indefinite iteration?

While loops are an example of indefinite iteration, as they continue executing a block of code until a certain condition becomes false.

How does iteration work?

Iteration operates by repeatedly executing a block of code until a given condition is met. It involves initializing any required variables, defining the loop condition, and updating the variables within the loop body.

What is the difference between iteration and recursion?

Iteration and recursion are both methods of repetition in programming. However, iteration involves looping and repeatedly executing a block of code, whereas recursion involves a function calling itself to solve a problem.

How does iteration contribute to code efficiency?

By automating repetitive tasks, iteration helps streamline code and make it more efficient. It eliminates the need for writing duplicated code and allows for the execution of a task multiple times.

What are the commonly used iteration structures?

The most commonly used iteration structures in programming are for loops, while loops, and do-while loops. Each of these structures offers different ways to control the loop execution.

Can iteration be nested?

Yes, iteration structures can be nested within one another. This allows for complex and nested repetitive behaviors, where one loop is executed multiple times inside another loop.

What happens if the loop condition is never satisfied?

If the loop condition is never satisfied, an indefinite iteration may lead to an infinite loop, causing the program to run indefinitely. This can lead to a system crash or hang.

What are some best practices for using iteration?

To effectively use iteration, it is important to ensure the loop condition is properly defined and that any loop variables are correctly updated. Additionally, considering performance implications and optimizing the loop structure can improve efficiency.

Can iteration be used to solve complex problems?

Yes, iteration is an essential tool in solving complex problems. By breaking down a problem into smaller tasks and leveraging iteration, programmers can develop algorithms that solve intricate problems more effectively.

How is iteration applicable in real-world scenarios?

Iteration finds applications in various real-world scenarios, from parsing and analyzing large data sets to simulating complex systems. It enables efficient processing of data and repetitive tasks, contributing to the automation and optimization of various processes.

To summarize, **iteration in computer science refers to the process of repeatedly executing a set of instructions or a block of code**, allowing for the automation of repetitive tasks and efficient problem-solving. It is achieved through definite or indefinite iteration, utilizing loop structures such as for loops and while loops. Proper use of iteration can significantly enhance the efficiency and effectiveness of code, making it an essential concept in computer science.

Leave a Comment Cancel Reply

Your email address will not be published. Required fields are marked *

Save my name, email, and website in this browser for the next time I comment.

  • Business Essentials
  • Leadership & Management
  • Credential of Leadership, Impact, and Management in Business (CLIMB)
  • Entrepreneurship & Innovation
  • Digital Transformation
  • Finance & Accounting
  • Business in Society
  • For Organizations
  • Support Portal
  • Media Coverage
  • Founding Donors
  • Leadership Team

what is iterative problem solving

  • Harvard Business School →
  • HBS Online →
  • Business Insights →

Business Insights

Harvard Business School Online's Business Insights Blog provides the career insights you need to achieve your goals and gain confidence in your business skills.

  • Career Development
  • Communication
  • Decision-Making
  • Earning Your MBA
  • Negotiation
  • News & Events
  • Productivity
  • Staff Spotlight
  • Student Profiles
  • Work-Life Balance
  • AI Essentials for Business
  • Alternative Investments
  • Business Analytics
  • Business Strategy
  • Business and Climate Change
  • Design Thinking and Innovation
  • Digital Marketing Strategy
  • Disruptive Strategy
  • Economics for Managers
  • Entrepreneurship Essentials
  • Financial Accounting
  • Global Business
  • Launching Tech Ventures
  • Leadership Principles
  • Leadership, Ethics, and Corporate Accountability
  • Leading Change and Organizational Renewal
  • Leading with Finance
  • Management Essentials
  • Negotiation Mastery
  • Organizational Leadership
  • Power and Influence for Positive Impact
  • Strategy Execution
  • Sustainable Business Strategy
  • Sustainable Investing
  • Winning with Digital Platforms

What Is Creative Problem-Solving & Why Is It Important?

Business team using creative problem-solving

  • 01 Feb 2022

One of the biggest hindrances to innovation is complacency—it can be more comfortable to do what you know than venture into the unknown. Business leaders can overcome this barrier by mobilizing creative team members and providing space to innovate.

There are several tools you can use to encourage creativity in the workplace. Creative problem-solving is one of them, which facilitates the development of innovative solutions to difficult problems.

Here’s an overview of creative problem-solving and why it’s important in business.

Access your free e-book today.

What Is Creative Problem-Solving?

Research is necessary when solving a problem. But there are situations where a problem’s specific cause is difficult to pinpoint. This can occur when there’s not enough time to narrow down the problem’s source or there are differing opinions about its root cause.

In such cases, you can use creative problem-solving , which allows you to explore potential solutions regardless of whether a problem has been defined.

Creative problem-solving is less structured than other innovation processes and encourages exploring open-ended solutions. It also focuses on developing new perspectives and fostering creativity in the workplace . Its benefits include:

  • Finding creative solutions to complex problems : User research can insufficiently illustrate a situation’s complexity. While other innovation processes rely on this information, creative problem-solving can yield solutions without it.
  • Adapting to change : Business is constantly changing, and business leaders need to adapt. Creative problem-solving helps overcome unforeseen challenges and find solutions to unconventional problems.
  • Fueling innovation and growth : In addition to solutions, creative problem-solving can spark innovative ideas that drive company growth. These ideas can lead to new product lines, services, or a modified operations structure that improves efficiency.

Design Thinking and Innovation | Uncover creative solutions to your business problems | Learn More

Creative problem-solving is traditionally based on the following key principles :

1. Balance Divergent and Convergent Thinking

Creative problem-solving uses two primary tools to find solutions: divergence and convergence. Divergence generates ideas in response to a problem, while convergence narrows them down to a shortlist. It balances these two practices and turns ideas into concrete solutions.

2. Reframe Problems as Questions

By framing problems as questions, you shift from focusing on obstacles to solutions. This provides the freedom to brainstorm potential ideas.

3. Defer Judgment of Ideas

When brainstorming, it can be natural to reject or accept ideas right away. Yet, immediate judgments interfere with the idea generation process. Even ideas that seem implausible can turn into outstanding innovations upon further exploration and development.

4. Focus on "Yes, And" Instead of "No, But"

Using negative words like "no" discourages creative thinking. Instead, use positive language to build and maintain an environment that fosters the development of creative and innovative ideas.

Creative Problem-Solving and Design Thinking

Whereas creative problem-solving facilitates developing innovative ideas through a less structured workflow, design thinking takes a far more organized approach.

Design thinking is a human-centered, solutions-based process that fosters the ideation and development of solutions. In the online course Design Thinking and Innovation , Harvard Business School Dean Srikant Datar leverages a four-phase framework to explain design thinking.

The four stages are:

The four stages of design thinking: clarify, ideate, develop, and implement

  • Clarify: The clarification stage allows you to empathize with the user and identify problems. Observations and insights are informed by thorough research. Findings are then reframed as problem statements or questions.
  • Ideate: Ideation is the process of coming up with innovative ideas. The divergence of ideas involved with creative problem-solving is a major focus.
  • Develop: In the development stage, ideas evolve into experiments and tests. Ideas converge and are explored through prototyping and open critique.
  • Implement: Implementation involves continuing to test and experiment to refine the solution and encourage its adoption.

Creative problem-solving primarily operates in the ideate phase of design thinking but can be applied to others. This is because design thinking is an iterative process that moves between the stages as ideas are generated and pursued. This is normal and encouraged, as innovation requires exploring multiple ideas.

Creative Problem-Solving Tools

While there are many useful tools in the creative problem-solving process, here are three you should know:

Creating a Problem Story

One way to innovate is by creating a story about a problem to understand how it affects users and what solutions best fit their needs. Here are the steps you need to take to use this tool properly.

1. Identify a UDP

Create a problem story to identify the undesired phenomena (UDP). For example, consider a company that produces printers that overheat. In this case, the UDP is "our printers overheat."

2. Move Forward in Time

To move forward in time, ask: “Why is this a problem?” For example, minor damage could be one result of the machines overheating. In more extreme cases, printers may catch fire. Don't be afraid to create multiple problem stories if you think of more than one UDP.

3. Move Backward in Time

To move backward in time, ask: “What caused this UDP?” If you can't identify the root problem, think about what typically causes the UDP to occur. For the overheating printers, overuse could be a cause.

Following the three-step framework above helps illustrate a clear problem story:

  • The printer is overused.
  • The printer overheats.
  • The printer breaks down.

You can extend the problem story in either direction if you think of additional cause-and-effect relationships.

4. Break the Chains

By this point, you’ll have multiple UDP storylines. Take two that are similar and focus on breaking the chains connecting them. This can be accomplished through inversion or neutralization.

  • Inversion: Inversion changes the relationship between two UDPs so the cause is the same but the effect is the opposite. For example, if the UDP is "the more X happens, the more likely Y is to happen," inversion changes the equation to "the more X happens, the less likely Y is to happen." Using the printer example, inversion would consider: "What if the more a printer is used, the less likely it’s going to overheat?" Innovation requires an open mind. Just because a solution initially seems unlikely doesn't mean it can't be pursued further or spark additional ideas.
  • Neutralization: Neutralization completely eliminates the cause-and-effect relationship between X and Y. This changes the above equation to "the more or less X happens has no effect on Y." In the case of the printers, neutralization would rephrase the relationship to "the more or less a printer is used has no effect on whether it overheats."

Even if creating a problem story doesn't provide a solution, it can offer useful context to users’ problems and additional ideas to be explored. Given that divergence is one of the fundamental practices of creative problem-solving, it’s a good idea to incorporate it into each tool you use.

Brainstorming

Brainstorming is a tool that can be highly effective when guided by the iterative qualities of the design thinking process. It involves openly discussing and debating ideas and topics in a group setting. This facilitates idea generation and exploration as different team members consider the same concept from multiple perspectives.

Hosting brainstorming sessions can result in problems, such as groupthink or social loafing. To combat this, leverage a three-step brainstorming method involving divergence and convergence :

  • Have each group member come up with as many ideas as possible and write them down to ensure the brainstorming session is productive.
  • Continue the divergence of ideas by collectively sharing and exploring each idea as a group. The goal is to create a setting where new ideas are inspired by open discussion.
  • Begin the convergence of ideas by narrowing them down to a few explorable options. There’s no "right number of ideas." Don't be afraid to consider exploring all of them, as long as you have the resources to do so.

Alternate Worlds

The alternate worlds tool is an empathetic approach to creative problem-solving. It encourages you to consider how someone in another world would approach your situation.

For example, if you’re concerned that the printers you produce overheat and catch fire, consider how a different industry would approach the problem. How would an automotive expert solve it? How would a firefighter?

Be creative as you consider and research alternate worlds. The purpose is not to nail down a solution right away but to continue the ideation process through diverging and exploring ideas.

Which HBS Online Entrepreneurship and Innovation Course is Right for You? | Download Your Free Flowchart

Continue Developing Your Skills

Whether you’re an entrepreneur, marketer, or business leader, learning the ropes of design thinking can be an effective way to build your skills and foster creativity and innovation in any setting.

If you're ready to develop your design thinking and creative problem-solving skills, explore Design Thinking and Innovation , one of our online entrepreneurship and innovation courses. If you aren't sure which course is the right fit, download our free course flowchart to determine which best aligns with your goals.

what is iterative problem solving

About the Author

Table of Contents

Ai, ethics & human agency, collaboration, information literacy, writing process, problem-solving strategies for writers: a review of research.

  • © 2023 by Joseph M. Moxley - University of South Florida

Traditionally, in U.S. classrooms, the writing process is depicted as a series of linear steps (e.g., prewriting , writing , revising , and editing ). However, since the 1980s the writing process has also been depicted as a problem-solving process. This article traces the evolution of Linda Flower and John Hayes' problem-solving model of the writing process, and it provides you with an opportunity to illustrate your own writing process.

what is iterative problem solving

What are Problem Solving Strategies for Writers?

As an alternative to imagining the writing process to be a series of steps or stages that writers work through in linear manner or as a largely mysterious, creative processes informed by embodied knowledge , felt sense , and inner speech, Linda Flower and John Hayes suggested in 1977 that writing should be thought of as a “thinking problem,” a “problem-solving process,” or “cognitive problem solving process”:

“We frequently talk of writing as if it were a series of independent temporally bounded actions (e.g.,  pre-writing ,  writing ,  rewriting ). It is more accurate to see it as a hierarchical set of subproblems arranged under a goal or set of goals. The process then is an iterative one. For each subproblem along the way — whether it is making a logical connection between hazy ideas, or finding a persuasive tone — the writer may draw on a whole repertoire of procedures and heuristics” (Flower & Hayes, 1977, p. 460-461).

Examples of Problem-Solving Strategies

  • Rhetorical analysis , rhetorical reasoning
  • Engage in logical reasoning
  • Engaging in the information literacy perspectives and practices of educated, critical readers
  • Working with others during the writing process , such as brainstorming ideas together, collaborating on a draft , or writing as part of a team .
  • Sharing drafts with peers and giving each other constructive feedback . This can help writers see their work from different perspectives and identify areas for improvement that they might have overlooked.
  • Seeking guidance from more experienced writers or instructors, such as a teacher, tutor, or writing center consultant. This can involve discussing writing challenges, getting feedback on drafts , or learning new writing strategies .
  • Talking through ideas with others before and during the writing process . This can help writers clarify their thoughts, explore different viewpoints, and generate new ideas.
  • In group writing projects, members might need to negotiate on various aspects, like the division of tasks, the main argument or focus of the piece, or the style and tone of the writing .
  • Considering the needs, expectations, and perspectives of the intended readers. This can influence many aspects of the writing, from the overall structure and argument to the choice of language and examples.
  • Defining what one wants to achieve with a piece of writing, be it a specific grade, clarity of argument , or a certain word count.
  • Finding ways to stay motivated during the writing process, such as breaking the task into manageable pieces, rewarding oneself after reaching certain milestones, or focusing on the value and relevance of the task.
  • Managing feelings of frustration, anxiety, or boredom that may arise during the writing process. This might involve taking breaks, practicing mindfulness, or reframing negative thoughts.
  • Organizing one’s time effectively to meet deadlines and avoid last-minute stress. This might involve creating a writing schedule, setting aside specific times for writing, or using tools like timers or apps to stay focused.
  • Regularly reflecting on one’s writing process and progress, identifying strengths and areas for improvement, and making adjustments as necessary.
  • Critically reviewing one’s own writing to identify potential improvements, before getting feedback from others.
  • Thinking about one’s own thinking or writing process involves setting goals, self-monitoring one’s progress, and adjusting tactics as needed.

Review of Research

Initially, in 1977, the problem-solving model was fairly simple: it focused on the writer’s memory, the task environment (aka the rhetorical situation ), prewriting , and reviewing. By 2014, following multiple iterations, the model had become more sophisticated, adding layers of complexity, such as the writer’s motivation, their knowledge of design schemas (given the visual turn in writing ), their intrapersonal and intrapersonal competencies , and their access to production technologies (aka, new writing spaces).

In 1980 Hayes and Flower introduced their cognitive process model in “Identifying the Organization of Writing Processes.” Then, in 1981, they elaborated on that model in “A Cognitive Process Theory of Writing,” an article published in College Composition and Communication , a leading journal in writing studies .

As suggested by the above illustration, Flower and Hayes conceptualized the writing process to be composed of three major cognitive activities:

  • planning – Writers set goals and establish a plan for writing the document.
  • translating – Writers translate thought into words
  • reviewing – Writers detect and correct “weaknesses in the text with respect to language conventions and accuracy of meaning” (p. 12).

They also introduced the concept of a “monitor” to account for how writers switch between planning, translating, and reviewing based on the writer’s assessment of the text.

Later, in “Modeling and Remodeling Writing” (2012), provided a more robust, complex model of the writing process. In his revision, Hayes omitted the concept of the monitor and he suggested that composing occurs on three levels:

  • Control Level This level addresses (1) the writer’s motivation; (2) their ability to set goals (plan, write, revise); (3) their familiarity with writing schemas; (4) their current plan
  • Process Level This level focuses on (1) the task environment and (2) the writing process itself, detailing the interactions between the writer, the task, and the context in which writing occurs. Writing Processes: 1. The Evaluator (e.g., a teacher, boss, or client); 2. The Proposer; 3. The Translator; 4. The Transcriber. Task Environment: 1. Collaborators & Critics; 2. Transcribing Technology; 3. Task Materials, Written Plans; 4. Text Written So Far
  • working memory, which is responsible for temporarily storing and manipulating information during the writing process
  • long-term memory, which stores knowledge about language, genre conventions, and prior experiences with writing tasks
  • attention, which allows writers to focus on specific aspects of the task while filtering out irrelevant information
  • reading, which references the writer’s literary history, what they’ve read and how conversant they are with ongoing scholarly conversations about the topic.

what is iterative problem solving

Some key differences and improvements in the 2012 model include:

  • The 2012 model introduces additional cognitive components, such as working memory and motivation , which were not explicitly addressed in the original model.
  • The 2012 model endeavors to account for the social aspects of writing, including collaboration and communication with others during the writing process.
  • The original Hayes-Flower model presented the writing subprocesses (planning, translating, and reviewing) in a linear fashion. However, the 2012 model emphasizes that these processes are recursive and iterative, meaning that writers continually move back and forth between these stages as they write, revise, and refine their work.
  • The updated model aims to addresses the impact of digital technologies on the writing process, acknowledging that the use of computers, word processing software, and online resources can significantly influence how writers plan, compose, and revise their texts.

In 2014, Hayes, in collaboration with three other colleagues (Leijten et al. 2014), once again revised his model of the composing processes. Leijten et al. argue that writing processes have changed significantly since Hayes’ 2012 revision thanks to the development and adoption of new digital technologies. They were especially interested in online collaboration tools used in the work place.

As illustrated below, in the revised model, Leijten et al. added “design schemas” (e.g., graphics, drawings, photographs, and other visuals) to the control level. At the process level, they added graphics to the text the writer had produced thus far. They also included motivation management at the resource level to address the fatigue and conflicts that can set in during long projects involving many steps and people. Perhaps most importantly, they added a searcher to the writing process to account for how open the writer is to strategic searching or how open they are to new information that contradicts previous information .

what is iterative problem solving

A Fun Exercise

One of the takeaways from research on writer’s composing processes is that we’re all special snowflakes: we each have our unique processes for generating, research, and writing.

To gain some insight into your own writing processes, why not draw it?

  • Get your crayons out or whatever writing tools you use to draw.
  • Draft your own vision of the writing process.
  • Write a narrative that explains your drawing.

Hayes, J. R., & Flower, L. (1980). Identifying the Organization of Writing Processes. In L. W. Gregg, & E. R. Steinberg (Eds.), Cognitive Processes in Writing: An Interdisciplinary Approach (pp. 3-30). Hillsdale, NJ: Lawrence Erlbaum.  

Hayes, J. R. (2012). Modeling and remodeling writing. Written Communication, 29(3), 369-388. https://doi: 10.1177/0741088312451260

Hayes, J. R., & Flower, L. S. (1986). Writing research and the writer. American Psychologist, 41(10), 1106-1113. https://doi.org/10.1037/0003-066X.41.10.1106

Leijten, Van Waes, L., Schriver, K., & Hayes, J. R. (2014). Writing in the workplace: Constructing documents using multiple digital sources. Journal of Writing Research, 5(3), 285–337. https://doi.org/10.17239/jowr-2014.05.03.3

Brevity - Say More with Less

Brevity - Say More with Less

Clarity (in Speech and Writing)

Clarity (in Speech and Writing)

Coherence - How to Achieve Coherence in Writing

Coherence - How to Achieve Coherence in Writing

Diction

Flow - How to Create Flow in Writing

Inclusivity - Inclusive Language

Inclusivity - Inclusive Language

Simplicity

The Elements of Style - The DNA of Powerful Writing

Unity

Suggested Edits

  • Please select the purpose of your message. * - Corrections, Typos, or Edits Technical Support/Problems using the site Advertising with Writing Commons Copyright Issues I am contacting you about something else
  • Your full name
  • Your email address *
  • Page URL needing edits *
  • Name This field is for validation purposes and should be left unchanged.

Other Topics:

Citation - Definition - Introduction to Citation in Academic & Professional Writing

Citation - Definition - Introduction to Citation in Academic & Professional Writing

  • Joseph M. Moxley

Explore the different ways to cite sources in academic and professional writing, including in-text (Parenthetical), numerical, and note citations.

Collaboration - What is the Role of Collaboration in Academic & Professional Writing?

Collaboration - What is the Role of Collaboration in Academic & Professional Writing?

Collaboration refers to the act of working with others or AI to solve problems, coauthor texts, and develop products and services. Collaboration is a highly prized workplace competency in academic...

Genre

Genre may reference a type of writing, art, or musical composition; socially-agreed upon expectations about how writers and speakers should respond to particular rhetorical situations; the cultural values; the epistemological assumptions...

Grammar

Grammar refers to the rules that inform how people and discourse communities use language (e.g., written or spoken English, body language, or visual language) to communicate. Learn about the rhetorical...

Information Literacy - Discerning Quality Information from Noise

Information Literacy - Discerning Quality Information from Noise

Information Literacy refers to the competencies associated with locating, evaluating, using, and archiving information. In order to thrive, much less survive in a global information economy — an economy where information functions as a...

Mindset

Mindset refers to a person or community’s way of feeling, thinking, and acting about a topic. The mindsets you hold, consciously or subconsciously, shape how you feel, think, and act–and...

Rhetoric: Exploring Its Definition and Impact on Modern Communication

Rhetoric: Exploring Its Definition and Impact on Modern Communication

Learn about rhetoric and rhetorical practices (e.g., rhetorical analysis, rhetorical reasoning,  rhetorical situation, and rhetorical stance) so that you can strategically manage how you compose and subsequently produce a text...

Style

Style, most simply, refers to how you say something as opposed to what you say. The style of your writing matters because audiences are unlikely to read your work or...

The Writing Process - Research on Composing

The Writing Process - Research on Composing

The writing process refers to everything you do in order to complete a writing project. Over the last six decades, researchers have studied and theorized about how writers go about...

Writing Studies

Writing Studies

Writing studies refers to an interdisciplinary community of scholars and researchers who study writing. Writing studies also refers to an academic, interdisciplinary discipline – a subject of study. Students in...

Featured Articles

Student engrossed in reading on her laptop, surrounded by a stack of books

Academic Writing – How to Write for the Academic Community

what is iterative problem solving

Professional Writing – How to Write for the Professional World

what is iterative problem solving

Credibility & Authority – How to Be Credible & Authoritative in Speech & Writing

Help | Advanced Search

Mathematics > Numerical Analysis

Title: solving partial differential equations with sampled neural networks.

Abstract: Approximation of solutions to partial differential equations (PDE) is an important problem in computational science and engineering. Using neural networks as an ansatz for the solution has proven a challenge in terms of training time and approximation accuracy. In this contribution, we discuss how sampling the hidden weights and biases of the ansatz network from data-agnostic and data-dependent probability distributions allows us to progress on both challenges. In most examples, the random sampling schemes outperform iterative, gradient-based optimization of physics-informed neural networks regarding training time and accuracy by several orders of magnitude. For time-dependent PDE, we construct neural basis functions only in the spatial domain and then solve the associated ordinary differential equation with classical methods from scientific computing over a long time horizon. This alleviates one of the greatest challenges for neural PDE solvers because it does not require us to parameterize the solution in time. For second-order elliptic PDE in Barron spaces, we prove the existence of sampled networks with $L^2$ convergence to the solution. We demonstrate our approach on several time-dependent and static PDEs. We also illustrate how sampled networks can effectively solve inverse problems in this setting. Benefits compared to common numerical schemes include spectral convergence and mesh-free construction of basis functions.

Submission history

Access paper:.

  • HTML (experimental)
  • Other Formats

References & Citations

  • Google Scholar
  • Semantic Scholar

BibTeX formatted citation

BibSonomy logo

Bibliographic and Citation Tools

Code, data and media associated with this article, recommenders and search tools.

  • Institution

arXivLabs: experimental projects with community collaborators

arXivLabs is a framework that allows collaborators to develop and share new arXiv features directly on our website.

Both individuals and organizations that work with arXivLabs have embraced and accepted our values of openness, community, excellence, and user data privacy. arXiv is committed to these values and only works with partners that adhere to them.

Have an idea for a project that will add value for arXiv's community? Learn more about arXivLabs .

Cart

  • SUGGESTED TOPICS
  • The Magazine
  • Newsletters
  • Managing Yourself
  • Managing Teams
  • Work-life Balance
  • The Big Idea
  • Data & Visuals
  • Reading Lists
  • Case Selections
  • HBR Learning
  • Topic Feeds
  • Account Settings
  • Email Preferences

Share Podcast

HBR On Strategy podcast series

A Better Framework for Solving Tough Problems

Start with trust and end with speed.

  • Apple Podcasts

When it comes to solving complicated problems, the default for many organizational leaders is to take their time to work through the issues at hand. Unfortunately, that often leads to patchwork solutions or problems not truly getting resolved.

But Anne Morriss offers a different framework. In this episode, she outlines a five-step process for solving any problem and explains why starting with trust and ending with speed is so important for effective change leadership. As she says, “Let’s get into dialogue with the people who are also impacted by the problem before we start running down the path of solving it.”

Morriss is an entrepreneur and leadership coach. She’s also the coauthor of the book, Move Fast and Fix Things: The Trusted Leader’s Guide to Solving Hard Problems .

Key episode topics include: strategy, decision making and problem solving, strategy execution, managing people, collaboration and teams, trustworthiness, organizational culture, change leadership, problem solving, leadership.

HBR On Strategy curates the best case studies and conversations with the world’s top business and management experts, to help you unlock new ways of doing business. New episodes every week.

  • Listen to the full HBR IdeaCast episode: How to Solve Tough Problems Better and Faster (2023)
  • Find more episodes of HBR IdeaCast
  • Discover 100 years of Harvard Business Review articles, case studies, podcasts, and more at HBR.org .

HANNAH BATES: Welcome to HBR On Strategy , case studies and conversations with the world’s top business and management experts, hand-selected to help you unlock new ways of doing business.

When it comes to solving complicated problems, many leaders only focus on the most apparent issues. Unfortunately that often leads to patchwork or partial solutions. But Anne Morriss offers a different framework that aims to truly tackle big problems by first leaning into trust and then focusing on speed.

Morriss is an entrepreneur and leadership coach. She’s also the co-author of the book, Move Fast and Fix Things: The Trusted Leader’s Guide to Solving Hard Problems . In this episode, she outlines a five-step process for solving any problem. Some, she says, can be solved in a week, while others take much longer. She also explains why starting with trust and ending with speed is so important for effective change leadership.

This episode originally aired on HBR IdeaCast in October 2023. Here it is.

CURT NICKISCH: Welcome to the HBR IdeaCast from Harvard Business Review. I’m Curt Nickisch.

Problems can be intimidating. Sure, some problems are fun to dig into. You roll up your sleeves, you just take care of them; but others, well, they’re complicated. Sometimes it’s hard to wrap your brain around a problem, much less fix it.

And that’s especially true for leaders in organizations where problems are often layered and complex. They sometimes demand technical, financial, or interpersonal knowledge to fix. And whether it’s avoidance on the leaders’ part or just the perception that a problem is systemic or even intractable, problems find a way to endure, to keep going, to keep being a problem that everyone tries to work around or just puts up with.

But today’s guest says that just compounds it and makes the problem harder to fix. Instead, she says, speed and momentum are key to overcoming a problem.

Anne Morriss is an entrepreneur, leadership coach and founder of the Leadership Consortium and with Harvard Business School Professor Francis Frei, she wrote the new book, Move Fast and Fix Things: The Trusted Leaders Guide to Solving Hard Problems . Anne, welcome back to the show.

ANNE MORRISS: Curt, thank you so much for having me.

CURT NICKISCH: So, to generate momentum at an organization, you say that you really need speed and trust. We’ll get into those essential ingredients some more, but why are those two essential?

ANNE MORRISS: Yeah. Well, the essential pattern that we observed was that the most effective change leaders out there were building trust and speed, and it didn’t seem to be a well-known observation. We all know the phrase, “Move fast and break things,” but the people who were really getting it right were moving fast and fixing things, and that was really our jumping off point. So when we dug into the pattern, what we observed was they were building trust first and then speed. This foundation of trust was what allowed them to fix more things and break fewer.

CURT NICKISCH: Trust sounds like a slow thing, right? If you talk about building trust, that is something that takes interactions, it takes communication, it takes experiences. Does that run counter to the speed idea?

ANNE MORRISS: Yeah. Well, this issue of trust is something we’ve been looking at for over a decade. One of the headlines in our research is it’s actually something we’re building and rebuilding and breaking all the time. And so instead of being this precious, almost farbege egg, it’s this thing that is constantly in motion and this thing that we can really impact when we’re deliberate about our choices and have some self-awareness around where it’s breaking down and how it’s breaking down.

CURT NICKISCH: You said break trust in there, which is intriguing, right? That you may have to break trust to build trust. Can you explain that a little?

ANNE MORRISS:  Yeah, well, I’ll clarify. It’s not that you have to break it in order to build it. It’s just that we all do it some of the time. Most of us are trusted most of the time. Most of your listeners I imagine are trusted most of the time, but all of us have a pattern where we break trust or where we don’t build as much as could be possible.

CURT NICKISCH: I want to talk about speed, this other essential ingredient that’s so intriguing, right? Because you think about solving hard problems as something that just takes a lot of time and thinking and coordination and planning and designing. Explain what you mean by it? And also, just  how we maybe approach problems wrong by taking them on too slowly?

ANNE MORRISS: Well, Curt, no one has ever said to us, “I wish I had taken longer and done less.” We hear the opposite all the time, by the way. So what we really set out to do was to create a playbook that anyone can use to take less time to do more of the things that are going to make your teams and organizations stronger.

And the way we set up the book is okay, it’s really a five step process. Speed is the last step. It’s the payoff for the hard work you’re going to do to figure out your problem, build or rebuild trust, expand the team in thoughtful and strategic ways, and then tell a real and compelling story about the change you’re leading.

Only then do you get to go fast, but that’s an essential part of the process, and we find that either people under emphasize it or speed has gotten a bad name in this world of moving fast and breaking things. And part of our mission for sure was to rehabilitate speed’s reputation because it is an essential part of the change leader’s equation. It can be the difference between good intentions and getting anything done at all.

CURT NICKISCH: You know, the fact that nobody ever tells you, “I wish we had done less and taken more time.” I think we all feel that, right? Sometimes we do something and then realize, “Oh, that wasn’t that hard and why did it take me so long to do it? And I wish I’d done this a long time ago.” Is it ever possible to solve a problem too quickly?

ANNE MORRISS: Absolutely. And we see that all the time too. What we push people to do in those scenarios is really take a look at the underlying issue because in most cases, the solution is not to take your foot off the accelerator per se and slow down. The solution is to get into the underlying problem. So if it’s burnout or a strategic disconnect between what you’re building and the marketplace you’re serving, what we find is the anxiety that people attach to speed or the frustration people attach to speed is often misplaced.

CURT NICKISCH: What is a good timeline to think about solving a problem then? Because if we by default take too long or else jump ahead and we don’t fix it right, what’s a good target time to have in your mind for how long solving a problem should take?

ANNE MORRISS: Yeah. Well, we’re playful in the book and talking about the idea that many problems can be solved in a week. We set the book up five chapters. They’re titled Monday, Tuesday, Wednesday, Thursday, Friday, and we’re definitely having fun with that. And yet, if you count the hours in a week, there are a lot of them. Many of our problems, if you were to spend a focused 40 hours of effort on a problem, you’re going to get pretty far.

But our main message is, listen, of course it’s going to depend on the nature of the problem, and you’re going to take weeks and maybe even some cases months to get to the other side. What we don’t want you to do is take years, which tends to be our default timeline for solving hard problems.

CURT NICKISCH: So you say to start with identifying the problem that’s holding you back, seems kind of obvious. But where do companies go right and wrong with this first step of just identifying the problem that’s holding you back?

ANNE MORRISS: And our goal is that all of these are going to feel obvious in retrospect. The problem is we skip over a lot of these steps and this is why we wanted to underline them. So this one is really rooted in our observation and I think the pattern of our species that we tend to be overconfident in the quality of our thoughts, particularly when it comes to diagnosing problems.

And so we want to invite you to start in a very humble and curious place, which tends not to be our default mode when we’re showing up for work. We convince ourselves that we’re being paid for our judgment. That’s exactly what gets reinforced everywhere. And so we tend to counterintuitively, given what we just talked about, we tend to move too quickly through the diagnostic phase.

CURT NICKISCH: “I know what to do, that’s why you hired me.”

ANNE MORRISS: Exactly. “I know what to do. That’s why you hired me. I’ve seen this before. I have a plan. Follow me.” We get rewarded for the expression of confidence and clarity. And so what we’re inviting people to do here is actually pause and really lean into what are the root causes of the problem you’re seeing? What are some alternative explanations? Let’s get into dialogue with the people who are also impacted by the problem before we start running down the path of solving it.

CURT NICKISCH: So what do you recommend for this step, for getting to the root of the problem? What are questions you should ask? What’s the right thought process? What do you do on Monday of the week?

ANNE MORRISS: In our experience of doing this work, people tend to undervalue the power of conversation, particularly with other people in the organization. So we will often advocate putting together a team of problem solvers, make it a temporary team, really pull in people who have a particular perspective on the problem and create the space, make it as psychologically safe as you can for people to really, as Chris Argyris so beautifully articulated, discuss the undiscussable.

And so the conditions for that are going to look different in every organization depending on the problem, but if you can get a space where smart people who have direct experience of a problem are in a room and talking honestly with each other, you can make an extraordinary amount of progress, certainly in a day.

CURT NICKISCH: Yeah, that gets back to the trust piece.

ANNE MORRISS: Definitely.

CURT NICKISCH: How do you like to start that meeting, or how do you like to talk about it? I’m just curious what somebody on that team might hear in that meeting, just to get the sense that it’s psychologically safe, you can discuss the undiscussable and you’re also focusing on the identification part. What’s key to communicate there?

ANNE MORRISS: Yeah. Well, we sometimes encourage people to do a little bit of data gathering before those conversations. So the power of a quick anonymous survey around whatever problem you’re solving, but also be really thoughtful about the questions you’re going to ask in the moment. So a little bit of preparation can go a long way and a little bit of thoughtfulness about the power dynamic. So who’s going to walk in there with license to speak and who’s going to hold back? So being thoughtful about the agenda, about the questions you’re asking about the room, about the facilitation, and then courage is a very infectious emotion.

So if you can early on create the conditions for people to show up bravely in that conversation, then the chance that you’re going to get good information and that you’re going to walk out of that room with new insight in the problem that you didn’t have when you walked in is extraordinarily high.

CURT NICKISCH: Now, in those discussions, you may have people who have different perspectives on what the problem really is. They also bear different costs of addressing the problem or solving it. You talked about the power dynamic, but there’s also an unfairness dynamic of who’s going to actually have to do the work to take care of it, and I wonder how you create a culture in that meeting where it’s the most productive?

ANNE MORRISS: For sure, the burden of work is not going to be equitably distributed around the room. But I would say, Curt, the dynamic that we see most often is that people are deeply relieved that hard problems are being addressed. So it really can create, and more often than not in our experience, it does create this beautiful flywheel of action, creativity, optimism. Often when problems haven’t been addressed, there is a fair amount of anxiety in the organization, frustration, stagnation. And so credible movement towards action and progress is often the best antidote. So even if the plan isn’t super clear yet, if it’s credible, given who’s in the room and their decision rights and mandate, if there’s real momentum coming out of that to make progress, then that tends to be deeply energizing to people.

CURT NICKISCH: I wonder if there’s an organization that you’ve worked with that you could talk about how this rolled out and how this took shape?

ANNE MORRISS: When we started working with Uber, that was wrestling with some very public issues of culture and trust with a range of stakeholders internally, the organization, also external, that work really started with a campaign of listening and really trying to understand where trust was breaking down from the perspective of these stakeholders?

So whether it was female employees or regulators or riders who had safety concerns getting into the car with a stranger. This work, it starts with an honest internal dialogue, but often the problem has threads that go external. And so bringing that same commitment to curiosity and humility and dialogue to anyone who’s impacted by the problem is the fastest way to surface what’s really going on.

CURT NICKISCH: There’s a step in this process that you lay out and that’s communicating powerfully as a leader. So we’ve heard about listening and trust building, but now you’re talking about powerful communication. How do you do this and why is it maybe this step in the process rather than the first thing you do or the last thing you do?

ANNE MORRISS: So in our process, again, it’s the days of the week. On Monday you figured out the problem. Tuesday you really got into the sandbox in figuring out what a good enough plan is for building trust. Wednesday, step three, you made it better. You created an even better plan, bringing in new perspectives. Thursday, this fourth step is the day we’re saying you got to go get buy-in. You got to bring other people along. And again, this is a step where we see people often underinvest in the power and payoff of really executing it well.

CURT NICKISCH: How does that go wrong?

ANNE MORRISS: Yeah, people don’t know the why. Human behavior and the change in human behavior really depends on a strong why. It’s not just a selfish, “What’s in it for me?” Although that’s helpful, but where are we going? I may be invested in a status quo and I need to understand, okay, if you’re going to ask me to change, if you’re going to invite me into this uncomfortable place of doing things differently, why am I here? Help me understand it and articulate the way forward and language that not only I can understand, but also that’s going to be motivating to me.

CURT NICKISCH: And who on my team was part of this process and all that kind of stuff?

ANNE MORRISS: Oh, yeah. I may have some really important questions that may be in the way of my buy-in and commitment to this plan. So certainly creating a space where those questions can be addressed is essential. But what we found is that there is an architecture of a great change story, and it starts with honoring the past, honoring the starting place. Sometimes we’re so excited about the change and animated about the change that what has happened before or what is even happening in the present tense is low on our list of priorities.

Or we want to label it bad, because that’s the way we’ve thought about the change, but really pausing and honoring what came before you and all the reasonable decisions that led up to it, I think can be really helpful to getting people emotionally where you want them to be willing to be guided by you. Going back to Uber, when Dara Khosrowshahi came in.

CURT NICKISCH: This is the new CEO.

ANNE MORRISS: The new CEO.

CURT NICKISCH: Replaced Travis Kalanick, the founder and first CEO, yeah.

ANNE MORRISS: Yeah, and had his first all-hands meeting. One of his key messages, and this is a quote, was that he was going to retain the edge that had made Uber, “A force of nature.” And in that meeting, the crowd went wild because this is also a company that had been beaten up publicly for months and months and months, and it was a really powerful choice. And his predecessor, Travis was in the room, and he also honored Travis’ incredible work and investment in bringing the company to the place where it was.

And I would use words like grace to also describe those choices, but there’s also an incredible strategic value to naming the starting place for everybody in the room because in most cases, most people in that room played a role in getting to that starting place, and you’re acknowledging that.

CURT NICKISCH: You can call it grace. Somebody else might call it diplomatic or strategic. But yeah, I guess like it or not, it’s helpful to call out and honor the complexity of the way things have been done and also the change that’s happening.

ANNE MORRISS: Yeah, and the value. Sometimes honoring the past is also owning what didn’t work or what wasn’t working for stakeholders or segments of the employee team, and we see that around culture change. Sometimes you’ve got to acknowledge that it was not an equitable environment, but whatever the worker, everyone in that room is bringing that pass with them. So again, making it discussable and using it as the jumping off place is where we advise people to start.

Then you’ve earned the right to talk about the change mandate, which we suggest using clear and compelling language about the why. “This is what happened, this is where we are, this is the good and the bad of it, and here’s the case for change.”

And then the last part, which is to describe a rigorous and optimistic way forward. It’s a simple past, present, future arc, which will be familiar to human beings. We love stories as human beings. It’s among the most powerful currency we have to make sense of the world.

CURT NICKISCH: Yeah. Chronological is a pretty powerful order.

ANNE MORRISS: Right. But again, the change leaders we see really get it right, are investing an incredible amount of time into the storytelling part of their job. Ursula Burns, the Head of Xerox is famous for the months and years she spent on the road just telling the story of Xerox’s change, its pivot into services to everyone who would listen, and that was a huge part of her success.

CURT NICKISCH: So Friday or your fifth step, you end with empowering teams and removing roadblocks. That seems obvious, but it’s critical. Can you dig into that a little bit?

ANNE MORRISS: Yeah. Friday is the fun day. Friday’s the release of energy into the system. Again, you’ve now earned the right to go fast. You have a plan, you’re pretty confident it’s going to work. You’ve told the story of change the organization, and now you get to sprint. So this is about really executing with urgency, and it’s about a lot of the tactics of speed is where we focus in the book. So the tactics of empowerment, making tough strategic trade-offs so that your priorities are clear and clearly communicated, creating mechanisms to fast-track progress. At Etsy, CEO Josh Silverman, he labeled these projects ambulances. It’s an unfortunate metaphor, but it’s super memorable. These are the products that get to speed out in front of the other ones because the stakes are high and the clock is sticking.

CURT NICKISCH: You pull over and let it go by.

ANNE MORRISS: Yeah, exactly. And so we have to agree as an organization on how to do something like that. And so we see lots of great examples both in young organizations and big complex biotech companies with lots of regulatory guardrails have still found ways to do this gracefully.

And I think we end with this idea of conflict debt, which is a term we really love. Leanne Davey, who’s a team scholar and researcher, and anyone in a tech company will recognize the idea of tech debt, which is this weight the organization drags around until they resolve it. Conflict debt is a beautiful metaphor because it is this weight that we drag around and slows us down until we decide to clean it up and fix it. The organizations that are really getting speed right have figured out either formally or informally, how to create an environment where conflict and disagreements can be gracefully resolved.

CURT NICKISCH: Well, let’s talk about this speed more, right? Because I think this is one of those places that maybe people go wrong or take too long, and then you lose the awareness of the problem, you lose that urgency. And then that also just makes it less effective, right? It’s not just about getting the problem solved as quickly as possible. It’s also just speed in some ways helps solve the problem.

ANNE MORRISS: Oh, yeah. It really is the difference between imagining the change you want to lead and really being able to bring it to life. Speed is the thing that unlocks your ability to lead change. It needs a foundation, and that’s what Monday through Thursday is all about, steps one through four, but the finish line is executing with urgency, and it’s that urgency that releases the system’s energy, that communicates your priorities, that creates the conditions for your team to make progress.

CURT NICKISCH: Moving fast is something that entrepreneurs and tech companies certainly understand, but there’s also this awareness that with big companies, the bigger the organization, the harder it is to turn the aircraft carrier around, right? Is speed relative when you get at those levels, or do you think this is something that any company should be able to apply equally?

ANNE MORRISS: We think this applies to any company. The culture really lives at the level of team. So we believe you can make a tremendous amount of progress even within your circle of control as a team leader. I want to bring some humility to this and careful of words like universal, but we do think there’s some universal truths here around the value of speed, and then some of the byproducts like keeping fantastic people. Your best people want to solve problems, they want to execute, they want to make progress and speed, and the ability to do that is going to be a variable in their own equation of whether they stay or they go somewhere else where they can have an impact.

CURT NICKISCH: Right. They want to accomplish something before they go or before they retire or finish something out. And if you’re able to just bring more things on the horizon and have it not feel like it’s going to be another two years to do something meaningful.

ANNE MORRISS: People – I mean, they want to make stuff happen and they want to be around the energy and the vitality of making things happen, which again, is also a super infectious phenomenon. One of the most important jobs of a leader, we believe, is to set the metabolic pace of their teams and organizations. And so what we really dig into on Friday is, well, what does that look like to speed something up? What are the tactics of that?

CURT NICKISCH: I wonder if that universal truth, that a body in motion stays in motion applies to organizations, right? If an organization in motion stays in motion, there is something to that.

ANNE MORRISS: Absolutely.

CURT NICKISCH: Do you have a favorite client story to share, just where you saw speed just become a bit of a flywheel or just a positive reinforcement loop for more positive change at the organization?

ANNE MORRISS: Yeah. We work with a fair number of organizations that are on fire. We do a fair amount of firefighting, but we also less dramatically do a lot of fire prevention. So we’re brought into organizations that are working well and want to get better, looking out on the horizon. That work is super gratifying, and there is always a component of, well, how do we speed this up?

What I love about that work is there’s often already a high foundation of trust, and so it’s, well, how do we maintain that foundation but move this flywheel, as you said, even faster? And it’s really energizing because often there’s a lot of pent-up energy that… There’s a lot of loyalty to the organization, but often it’s also frustration and pent-up energy. And so when that gets released, when good people get the opportunity to sprint for the first time in a little while, it’s incredibly energizing, not just for us, but for the whole organization.

CURT NICKISCH: Anne, this is great. I think finding a way to solve problems better but also faster is going to be really helpful. So thanks for coming on the show to talk about it.

ANNE MORRISS:  Oh, Curt, it was such a pleasure. This is my favorite conversation. I’m delighted to have it anytime.

HANNAH BATES: That was entrepreneur, leadership coach, and author Anne Morriss – in conversation with Curt Nickisch on HBR IdeaCast.

We’ll be back next Wednesday with another hand-picked conversation about business strategy from Harvard Business Review. If you found this episode helpful, share it with your friends and colleagues, and follow our show on Apple Podcasts, Spotify, or wherever you get your podcasts. While you’re there, be sure to leave us a review.

When you’re ready for more podcasts, articles, case studies, books, and videos with the world’s top business and management experts, you’ll find it all at HBR.org.

This episode was produced by Mary Dooe, Anne Saini, and me, Hannah Bates. Ian Fox is our editor. Special thanks to Rob Eckhardt, Maureen Hoch, Erica Truxler, Ramsey Khabbaz, Nicole Smith, Anne Bartholomew, and you – our listener. See you next week.

  • Subscribe On:

Latest in this series

This article is about strategy.

  • Decision making and problem solving
  • Strategy execution
  • Leadership and managing people
  • Collaboration and teams
  • Trustworthiness
  • Organizational culture

Partner Center

Brian Chen holding a notebook with math problems, a pen and a smartphone open to the new ChatGPT app.

The New ChatGPT Offers a Lesson in A.I. Hype

OpenAI released GPT-4o, its latest chatbot technology, in a partly finished state. It has much to prove.

ChatGPT-4o trying to solve a geometry problem Credit... Arsenii Vaselenko for The New York Times

Supported by

  • Share full article

Brian X. Chen

By Brian X. Chen

Brian X. Chen is the author of Tech Fix , a weekly column about the societal implications of the tech we use.

  • May 31, 2024

When OpenAI unveiled the latest version of its immensely popular ChatGPT chatbot this month, it had a new voice possessing humanlike inflections and emotions. The online demonstration also featured the bot tutoring a child on solving a geometry problem.

To my chagrin, the demo turned out to be essentially a bait and switch. The new ChatGPT was released without most of its new features, including the improved voice (which the company told me it postponed to make fixes). The ability to use a phone’s video camera to get real-time analysis of something like a math problem isn’t available yet, either.

Amid the delay, the company also deactivated the ChatGPT voice that some said sounded like the actress Scarlett Johansson, after she threatened legal action , replacing it with a different female voice.

For now, what has actually been rolled out in the new ChatGPT is the ability to upload photos for the bot to analyze. Users can generally expect quicker, more lucid responses. The bot can also do real-time language translations, but ChatGPT will respond in its older, machine-like voice.

Nonetheless, this is the leading chatbot that upended the tech industry , so it was worth reviewing. After trying the sped-up chatbot for two weeks, I had mixed feelings. It excelled at language translations, but it struggled with math and physics. All told, I didn’t see a meaningful improvement from the last version, ChatGPT-4. I definitely wouldn’t let it tutor my child.

Video player loading

This tactic, in which A.I. companies promise wild new features and deliver a half-baked product, is becoming a trend that is bound to confuse and frustrate people. The $700 Ai Pin , a talking lapel pin from the start-up Humane, which is funded by OpenAI’s chief executive, Sam Altman, was universally panned because it overheated and spat out nonsense. Meta also recently added to its apps an A.I. chatbot that did a poor job at most of its advertised tasks , like web searches for plane tickets.

Companies are releasing A.I. products in a premature state partly because they want people to use the technology to help them learn how to improve it. In the past, when companies unveiled new tech products like phones, what we were shown — features like new cameras and brighter screens — was what we were getting. With artificial intelligence, companies are giving a preview of a potential future, demonstrating technologies that are being developed and working only in limited, controlled conditions. A mature, reliable product might arrive — or might not.

The lesson to learn from all this is that we, as consumers, should resist the hype and take a slow, cautious approach to A.I. We shouldn’t be spending much cash on any underbaked tech until we see proof that the tools work as advertised.

The new version of ChatGPT, called GPT-4o (“o” as in “omni”), is now free to try on OpenAI’s website and app . Nonpaying users can make a few requests before hitting a timeout, and those who have a $20 monthly subscription can ask the bot a larger number of questions.

OpenAI said its iterative approach to updating ChatGPT allowed it to gather feedback to make improvements.

“We believe it’s important to preview our advanced models to give people a glimpse of their capabilities and to help us understand their real-world applications,” the company said in a statement.

(The New York Times sued OpenAI and its partner, Microsoft , last year for using copyrighted news articles without permission to train chatbots.)

Here’s what to know about the latest version of ChatGPT.

Geometry and Physics

To show off ChatGPT-4o’s new tricks, OpenAI published a video featuring Sal Khan, the chief executive of the Khan Academy, the education nonprofit, and his son, Imran. With a video camera pointed at a geometry problem, ChatGPT was able to talk Imran through solving it step by step.

Even though ChatGPT’s video-analysis feature has yet to be released, I was able to upload photos of geometry problems. ChatGPT solved some of the easier ones correctly, but it tripped up on more challenging problems.

For one problem involving intersecting triangles, which I dug up on an SAT preparation website , the bot understood the question but gave the wrong answer.

Video player loading

Taylor Nguyen, a high school physics teacher in Orange County, Calif., uploaded a physics problem involving a man on a swing that is commonly included on Advanced Placement Calculus tests. ChatGPT made several logical mistakes to give the wrong answer, but it was able to correct itself with feedback from Mr. Nguyen.

“I was able to coach it, but I’m a teacher,” he said. “How is a student supposed to pick out those mistakes? They’re making this assumption that the chatbot is right.”

I did notice that ChatGPT-4o succeeded at some division calculations that its predecessors did incorrectly, so there are signs of slow improvement. But it also failed at a basic math task that past versions and other chatbots, including Meta AI and Google’s Gemini, have flunked at: the ability to count. When I asked ChatGPT-4o for a four-syllable word starting with the letter “W,” it responded, “Wonderful.”

OpenAI said it was constantly working to improve its systems’ responses to complex math problems.

Mr. Khan, whose company uses OpenAI’s technology in its tutoring software Khanmigo, did not respond to a request for comment on whether he would leave ChatGPT the tutor alone with his son.

OpenAI also highlighted that the new ChatGPT was better at reasoning, or using logic to come up with responses. So I ran it through one of my favorite tests: I asked it to generate a Where’s Waldo? puzzle. When it showed an image of a giant Waldo standing in a crowd, I said that the point is that he’s supposed to be hard to find.

The bot then generated an even larger Waldo.

Subbarao Kambhampati, a professor and researcher of artificial intelligence at Arizona State University, also put the chatbot through some tests and said he saw no noticeable improvement in reasoning compared with the last version.

He presented ChatGPT a puzzle involving blocks:

If block C is on top of block A, and block B is separately on the table, can you tell me how I can make a stack of blocks with block A on top of block B and block B on top of block C, but without moving block C?

The answer is that it’s impossible to arrange the blocks under these conditions, but, just as with past versions, ChatGPT-4o consistently came up with a solution that involved moving block C. With this and other reasoning tests, ChatGPT was occasionally able to take feedback to get the correct answer, which is antithetical to how artificial intelligence is supposed to work, Mr. Kambhampati said.

“You can correct it, but when you do that you’re using your own intelligence,” he said.

OpenAI pointed to test results that showed GPT-4o scored about two percentage points higher at answering general knowledge questions than previous versions of ChatGPT, illustrating that its reasoning skills had slightly improved.

Video player loading

OpenAI also said the new ChatGPT could do real-time language translation, which could help you converse with someone speaking a foreign language.

I tested ChatGPT with Mandarin and Cantonese and confirmed that it was OK at translating phrases, such as “I’d like to book a hotel room for next Thursday” and “I want a king-size bed.” But the accents were slightly off. (To be fair, my broken Chinese is not much better.) OpenAI said it was still working to improve accents.

ChatGPT-4o also excelled as an editor. When I fed it paragraphs that I wrote, it was fast and effective at removing excessive words and jargon. ChatGPT’s decent performance with language translation gives me confidence that this will soon become a more useful feature.

Bottom Line

A major thing OpenAI got right with ChatGPT-4o is making the technology free for people to try. Free is the right price: Since we are helping to train these A.I. systems with our data to improve, we shouldn’t be paying for them.

The best of A.I. has yet to come, and it might one day be a good math tutor that we want to talk to. But we should believe it when we see it — and hear it.

Brian X. Chen is the lead consumer technology writer for The Times. He reviews products and writes Tech Fix , a column about the social implications of the tech we use. More about Brian X. Chen

Explore Our Coverage of Artificial Intelligence

News  and Analysis

Google appears to have rolled back its new A.I. Overviews  after the technology produced a litany of untruths and errors.

OpenAI said that it has begun training a new flagship A.I. model  that would succeed the GPT-4 technology that drives its popular online chatbot, ChatGPT.

Elon Musk’s A.I. company, xAI, said that it had raised $6 billion , helping to close the funding gap with OpenAI, Anthropic and other rivals.

The Age of A.I.

After some trying years during which Mark Zuckerberg could do little right, many developers and technologists have embraced the Meta chief  as their champion of “open-source” A.I.

D’Youville University in Buffalo had an A.I. robot speak at its commencement . Not everyone was happy about it.

A new program, backed by Cornell Tech, M.I.T. and U.C.L.A., helps prepare lower-income, Latina and Black female computing majors  for A.I. careers.

Advertisement

IMAGES

  1. the iterative problem solving process

    what is iterative problem solving

  2. Premium Template for PowerPoint & Google Slides (24295)

    what is iterative problem solving

  3. Premium Template for PowerPoint & Google Slides (24295)

    what is iterative problem solving

  4. Schematic representation of the iterative process of solving a

    what is iterative problem solving

  5. Iterative project management: What is it & when to use it?

    what is iterative problem solving

  6. Iterative Process

    what is iterative problem solving

VIDEO

  1. Iterative Algorithms

  2. Lecture 19# Iterative Model

  3. Gauss-Seidel method

  4. How to do iteration (using a calculator)

  5. Gauss-Seidel method

  6. FIND DISTANCE IN BINARY TREE

COMMENTS

  1. Sequencing, selection, and iteration

    There are three building blocks of algorithms: sequencing, selection, and iteration. Sequencing is the sequential execution of operations, selection is the decision to execute one operation versus another operation (like a fork in the road), and iteration is repeating the same operations a certain number of times or until something is true.

  2. Iterative method

    Iterative method. In computational mathematics, an iterative method is a mathematical procedure that uses an initial value to generate a sequence of improving approximate solutions for a class of problems, in which the n -th approximation is derived from the previous ones. A specific implementation with termination criteria for a given ...

  3. Understanding the Iterative Process: 5 Steps To Success

    What does the iterative process mean? (a.k.a. iterative process definition) An iterative process is an approach to problem-solving that involves breaking down a significant problem into smaller, more manageable pieces. Each piece is then worked on separately, combining and iterating the results to form a final solution.

  4. Exploring Iteration: Understanding and Solving Iterative ...

    Join me in this enlightening tutorial as we delve into the concept of iteration. In this video, I'll guide you through the fundamentals of iteration, explain...

  5. Understanding the iterative process, with examples

    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.

  6. Iterative Problem Solving

    Iterative Problem Solving. When it comes to solving problems, there are two main lines of thoughts: Plan, plan, do. Do, learn (repeat) I've found during my life experience that the second method is almost always the best one. It arrives at the solution quicker, and it solves the problem better. In this post, I'll explore why that is - how ...

  7. How to master the seven-step problem-solving process

    Iterative problem solving is a critical part of this. Sometimes, people think work planning sounds dull, but it isn't. It's how we know what's expected of us and when we need to deliver it and how we're progressing toward the answer. It's also the place where we can deal with biases. Bias is a feature of every human decision-making ...

  8. All about the Iterative Design Process

    The iterative process model is a cyclical process in which you make and test incremental adjustments. It is popular in technology, engineering, software development, design, qualitative research, project management, and other industries. Here is some information on how companies use the iterative process model:

  9. Iterative Process

    The iterative process, a procedure that is repeated many times, is a mathematical method of solving problems by repeating a function or process and recycling an output as the next iteration's ...

  10. Problem Solving

    Using a systematic and iterative procedure to solve a problem is efficient and provides a logical flow of knowledge and progress. In this unit, we use what is called "The Technological Method of Problem Solving." This is a seven-step procedure that is highly iterative—you may go back and forth among the listed steps, and may not always follow ...

  11. The Iterative Process: A Guide to Creating, Refining and Improving

    An iterative approach is a method of problem-solving or decision-making that involves repeating a series of steps in a cycle until the desired outcome is achieved. It is characterized by continuous improvement and adaptation based on feedback and results. ... In the context of problem-solving, decision-making, and product development, iterative ...

  12. Iterative Problem Solving in Data Science

    Using the same iterative problem solving, I could have tried all sorts of various combinations of feature engineering, feature selection, model selection, and hyperparameters. I could keep track ...

  13. Iterative Problem-Solving: A Guide for Teamwork

    Iterative problem-solving is an effective approach for complex, ambiguous, or dynamic problems that require creative and flexible solutions. To begin, you must define the problem by identifying ...

  14. What is Iteration in Programming?

    This is known as iteration, which allows us to "write code once" and "execute many times." In computer programming, iteration is often referred as 'looping' because instead of repeatedly writing the same code, we can execute the same code a finite number of times. Iteration provides code reusability and simplifies steps of problem-solving.

  15. Recursion vs. Iteration: A Detailed Comparison and Contrast in Problem

    This article aims to provide an in-depth exploration of recursion and iteration, their inherent strengths and weaknesses, and practical advice on when to use each. Let's delve into these problem-solving paradigms. Recursion. Recursion is a technique where a function calls itself to solve a smaller instance of the same problem.

  16. The iterative process: Definition, steps, and overview for agile teams

    The iterative process is a set of actions consisting of analysis, planning, design, implementation, testing, and review. This involves a continuous product improvement process of: try, learn and improve again. The main idea is to minimize the effort required for research, development, and implementation. By dividing the process into smaller ...

  17. Planning to iterate: Supporting iterative practices for real-world ill

    Solving real-world highly ill-structured problems involves iteration: gathering information, building, testing, and revising products, experiments, and theories. However, we do not know how to create learning environments to teach iteration for highly ill-structured problems.

  18. Problems, Solutions, and Algorithms

    What is an Algorithm a process or set of rules to be followed in calculations or other problem-solving operations, especially by a computer. Incremental solutions (linear) Iterative solutions (spirals) Building a full "slice" "Half a product not a half-assed product" An Iterative Process

  19. Difference between Recursion and Iteration

    1. Time Complexity. The time complexity of the method may vary depending on whether the algorithm is implemented using recursion or iteration.. Recursion: The time complexity of recursion can be found by finding the value of the nth recursive call in terms of the previous calls.Thus, finding the destination case in terms of the base case, and solving in terms of the base case gives us an idea ...

  20. PDF 7 Iterative Solutions for Solving Systems of Linear Equations

    First we will introduce a number of methods for solving linear equations. These methods are extremely popular, especially when the problem is large such as those that arise from determining numerical solutions to linear partial di erential equations. The objective for solving a system of linear of equations is as follows. Let Abe a full-rank

  21. What is an iterative approach and what are its benefits?

    The agile, iterative model, also known as the PDCA cycle, is an iterative design and management method used to improve processes and products continually. Since it is an iterative model, it is all about utilizing the repetition of a sequence of operations or procedures; in other words, it is about breaking down large projects into smaller tasks ...

  22. What is iteration computer science?

    To summarize, **iteration in computer science refers to the process of repeatedly executing a set of instructions or a block of code**, allowing for the automation of repetitive tasks and efficient problem-solving. It is achieved through definite or indefinite iteration, utilizing loop structures such as for loops and while loops.

  23. What Is Creative Problem-Solving & Why Is It Important?

    Creative problem-solving primarily operates in the ideate phase of design thinking but can be applied to others. This is because design thinking is an iterative process that moves between the stages as ideas are generated and pursued. This is normal and encouraged, as innovation requires exploring multiple ideas.

  24. Problem-Solving Strategies for Writers: a Review of Research

    The process then is an iterative one. For each subproblem along the way — whether it is making a logical connection between hazy ideas, or finding a persuasive tone — the writer may draw on a whole repertoire of procedures and heuristics" (Flower & Hayes, 1977, p. 460-461). Examples of Problem-Solving Strategies

  25. Master Advanced UED Problem Solving Skills

    Here's how you can master advanced problem solving like expert UED professionals. Powered by AI and the LinkedIn community. 1. Empathize First. 2. Define Clearly. 3. Ideate Widely. 4.

  26. Boost Branding Problem-Solving Skills Today

    Problem-solving in branding is rarely a one-off event; it's an iterative process. After implementing a solution, monitor its impact and be ready to make adjustments as necessary.

  27. Solving partial differential equations with sampled neural networks

    Approximation of solutions to partial differential equations (PDE) is an important problem in computational science and engineering. Using neural networks as an ansatz for the solution has proven a challenge in terms of training time and approximation accuracy. In this contribution, we discuss how sampling the hidden weights and biases of the ansatz network from data-agnostic and data ...

  28. A Better Framework for Solving Tough Problems

    Start with trust and end with speed. May 22, 2024. When it comes to solving complicated problems, the default for many organizational leaders is to take their time to work through the issues at hand.

  29. The New ChatGPT Offers a Lesson in AI Hype

    The New ChatGPT Offers a Lesson in A.I. Hype. OpenAI released GPT-4o, its latest chatbot technology, in a partly finished state. It has much to prove. Brian X. Chen is the author of Tech Fix, a ...

  30. An Iterative Method for Horizontal Tensor ...

    A fixed point iterative method for tensor complementarity problems with the implicit Z-tensors. It is proved that the proposed fixed point iterative method for solving the tensor complementarity problem with an implicit Z -tensor converges monotonically downward to a solution of the TCP. Expand.