Computer Science
Beginner
40 mins
Teacher/Student led
What you need:
Chromebook/Laptop/PC

Iterative Design

In this lesson, you'll explore the process of iterative design through a step-by-step approach. Learn how to develop software in small, repeating cycles, from planning and implementing features to testing and refining based on feedback, enhancing your project incrementally.
Learning Goals Learning Outcomes Teacher Notes

Teacher Class Feed

Load previous activity

    1 - Introduction

    In this lesson on iterative design, you'll discover how to build software through small, repeating cycles that allow for continuous improvement and adaptation. By the end, you'll understand how this flexible approach can make your projects more effective and responsive to changes.

    Here's what you'll be doing:

    1. Understanding iterative design: Explore the core concepts, including its cycles of planning, implementing, testing, and refining, along with advantages and disadvantages.
    2. Diving into each step: Learn about planning a small part, designing and implementing features, testing and reviewing, and refining based on feedback.
    3. Reflection activity: Apply what you've learned to a project idea of your own, outlining an iteration and considering pros and cons.

    2 - Understanding Iterative Design

    Iterative design, often associated with agile methodologies, involves developing software in small, repeating cycles called iterations. Each iteration builds on the previous one, incorporating feedback and improvements. This approach allows for continuous refinement and adaptation throughout the project.

    Key elements include:

    • Planning a small part: Decide on features for the current iteration.
    • Designing and implementing: Create a working version.
    • Testing and reviewing: Get feedback from users or stakeholders.
    • Refining: Make changes based on feedback and repeat.

    This process continues until the software meets all needs. It's flexible and allows for changes as the project evolves, making it ideal for dynamic environments where requirements may shift.

    Advantages:

    • Adapts easily to changes and new requirements
    • Delivers working software quickly in increments
    • Encourages collaboration and regular feedback

    Disadvantages:

    • Can be harder to predict timelines and budgets
    • Requires ongoing involvement from the team and users
    • May lead to scope creep if not managed well
    Imagine it like sculpting clay: you shape a bit, check it, adjust, and keep refining until it's perfect. For example, developing a mobile app where each iteration adds features based on user tests.

    3 - Planning a small part

    In the iterative design process, planning a small part is the starting point of each iteration. This step involves breaking down the overall project into smaller, manageable chunks by selecting specific features or tasks to focus on right now. It allows you to prioritise what matters most, set clear goals, and adapt as you go, making the development process more flexible and responsive to changes.

    Key activities in planning a small part include:

    • Prioritising features: Review the project requirements and choose the most important ones for this iteration, such as using a list or backlog to rank them by value or urgency.
    • Defining scope: Set specific, achievable goals for the iteration, like 'add a user registration form' or 'improve the search function'.
    • Estimating time and resources: Figure out how long the tasks might take and what you'll need, helping to avoid overload.
    • Collaborating: If you're working with others, discuss the plan to ensure everyone agrees and understands their roles.

    This planning happens at the beginning of every iteration, building on feedback from previous ones. It's quick and focused, unlike the full upfront planning in staged design.

    Example: If you're creating a game app, you might plan to develop just the main character movement in this iteration, leaving advanced levels for later based on testing.
    Remember, planning small helps you deliver working parts faster and adjust easily to new ideas or issues.

    4 - Designing and implementing

    In the iterative design process, designing and implementing is where you turn your plans into reality by creating a working version of the software. This step follows the planning phase and focuses on building the selected features or tasks. It involves both creative design work and practical coding, resulting in a functional increment that can be tested. This hands-on phase allows you to see progress quickly and make adjustments in future iterations.

    Key activities in designing and implementing include:

    • Designing the solution: Sketch wireframes, plan the user interface (UI), and outline the code structure or algorithms needed for the features.
    • Implementing the code: Write and integrate the actual code, using tools like programming languages or development environments to build the features.
    • Building incrementally: Focus on creating a minimal viable product for this iteration, ensuring it works as intended before moving on.
    • Collaborating if needed: If working in a team, divide tasks and review each other's work to maintain quality.

    This step is typically time-boxed within the iteration, emphasising efficiency and producing something testable. Unlike staged design, it doesn't aim for perfection on the first try but builds upon previous iterations.

    Example: In your game app, you might design the controls for character movement with simple sketches, then implement them in code using a framework like Unity, resulting in a playable prototype.
    Remember, designing and implementing creates tangible progress, allowing for early detection of issues and fostering creativity in small, manageable steps.

    5 - Testing and reviewing

    In the iterative design process, testing and reviewing is where you evaluate the working version of the software created in the designing and implementing step. This involves checking for bugs, ensuring functionality, and gathering feedback from users or stakeholders. It helps identify strengths and weaknesses early, allowing you to make informed improvements in the next iteration. This step emphasises continuous quality assurance and user-centred refinement, making the development process more adaptive and effective.

    Key activities in testing and reviewing include:

    • Conducting tests: Run various checks like functionality testing, usability testing, or debugging to find and fix issues in the current increment.
    • Gathering feedback: Share the working version with users, team members, or stakeholders to collect opinions on what works well and what needs improvement.
    • Analysing results: Review test outcomes and feedback to prioritise changes, such as fixing bugs or enhancing features based on real user input.
    • Documenting findings: Record issues, suggestions, and successes to inform the refining step and future iterations.

    This step occurs at the end of each iteration, providing immediate insights that shape the project's direction. Unlike staged design, where testing often happens at the end, iterative testing allows for ongoing adjustments, reducing the risk of major problems later.

    Example: In your game app, you might test the character movement for glitches, then ask friends to try it and provide feedback, such as 'the controls are intuitive but the speed needs tweaking', which you'll address in the next iteration.
    Remember, testing and reviewing ensures your software evolves based on real feedback, leading to a better final product and helping you learn from each cycle.

    Unlock the Full Learning Experience

    Get ready to embark on an incredible learning journey! Get access to this lesson and hundreds more in our Digital Skills Curriculum.

    Copyright Notice
    This lesson is copyright of DigitalSkills.org 2017 - 2025. Unauthorised use, copying or distribution is not allowed.
    🍪 Our website uses cookies to make your browsing experience better. By using our website you agree to our use of cookies. Learn more