Iterative design
This article needs additional citations for verification. (January 2011) |
Iterative design is a design methodology based on a cyclic process of prototyping, testing, analyzing, and refining a product or process. Based on the results of testing the most recent iteration of a design, changes and refinements are made. This process is intended to ultimately improve the quality and functionality of a design. In iterative design, interaction with the designed system is used as a form of research for informing and evolving a project, as successive versions, or iterations of a design are implemented.
Iterative design process
The iterative design process may be applied throughout the new product development process. However, changes are easiest and less expensive to implement in the earliest stages of development. The first step in the iterative design process is to develop a prototype. The prototype should be evaluated by a focus group or a group not associated with the product in order to deliver non-biased opinions. Information from the focus group should be synthesized and incorporated into the next iteration of the design. The process should be repeated until user issues have been reduced to an acceptable level.
Application: Human computer interfaces
Iterative design is commonly used in the development of human computer interfaces. This allows designers to identify any usability issues that may arise in the user interface before it is put into wide use. Even the best usability experts cannot design perfect user interfaces in a single attempt, so a usability engineering lifecycle should be built around the concept of iteration.[1]
The typical steps of iterative design in user interfaces are as follows:
- Complete an initial interface design
- Present the design to several test users
- Note any problems had by the test user
- Refine interface to account for/fix the problems
- Repeat steps 2-4 until user interface problems are resolved
Iterative design in user interfaces can be implemented in many ways. One common method of using iterative design in computer software is software testing. While this includes testing the product for functionality outside of the user interface, important feedback on the interface can be gained from subject testing early versions of a program. This allows software companies to release a better quality product to the public, and prevents the need of product modification following its release.
Fast prototyping tools
One approach to iterative design is to use the highest level of abstraction for developing an early generation product. The principle here is that rapid development may not produce efficient code, but obtaining feedback is more important that technology optimization. Examples of this approach include use of non-functional code, object databases, or low code platforms - these allow quick testing of designs before issues of optimization are addressed.
Benefits
When properly applied, iterative design will ensure a product or process is the best solution possible. When applied early in the development stage, significant cost savings are possible.[2]
Other benefits to iterative design include:
- Serious misunderstandings are made evident early in the lifecycle, when it's possible to react to them.
- It enables and encourages user feedback, so as to elicit the system's real requirements.
- Where the work is contracted, Iterative Design provides an incremental method for more effectively involving the client in the complexities that often surround the design process.
- The development team is forced to focus on those issues that are most critical to the project, and team members are shielded from those issues that distract and divert them from the project's real risks.
- Continual testing enables an objective assessment of the project's status.
- Inconsistencies among requirements, designs, and implementations are detected early.
- The workload of the team, especially the testing team, is spread out more evenly throughout the lifecycle.
- This approach enables the team to leverage lessons learned, and therefore to continually improve the process.
- Stakeholders in the project can be given concrete evidence of the project's status throughout the lifecycle.
Marshmallow Challenge

The Marshmallow Challenge is an instructive design challenge. It involves the task of constructing the highest possible free-standing structure with a marshmallow on top. The structure must be completed within 18 minutes using only 20 sticks of spaghetti, one yard of tape, and one yard of string.[3][4]
Observation and studies of participants show that kindergartners are regularly able to build higher structures, in comparison to groups of business school graduates. This is explained by the tendency for children to at once stick the marshmallow on top of a simple structure, test the prototype, and continue to improve upon it. Whereas, business school students tend to spend time vying for power, planning, and finally producing a structure to which the marshmallow is added.[5] The challenge helps to build and develop prototyping, teamwork, leadership and innovation skills and is a popular STEM activity. The challenge was invented by Peter Skillman of Palm, Inc. and popularized by Tom Wujec of Autodesk.[6][7][8][9][10][11]
See also
- Extreme programming
- Spiral model
- Top-down and bottom-up design
- Paper prototyping
- Scrum (software development)
References
- ^ Nielsen, J. (1993). "Iterative User Interface Design". IEEE Computer. 26 (11): 32–41. doi:10.1109/2.241424.
- ^ Marilyn Mantei; Toby Teorey (April 1988). "Cost/Benefit Analysis for incorporating human factors in the software lifecycle". Publications of the ACM. 31 (4): 428–439.
{{cite journal}}
: CS1 maint: multiple names: authors list (link) - ^ "The Marshmallow Challenge". The Marshmallow Challenge. Retrieved 2010-08-10.
- ^ "The Marshmallow Challenge". CA: BPWrap. 2010-04-22. Retrieved 2010-08-10.
- ^ Jerz, Dennis G. (2010-05-10). "The Marshmallow Challenge - Jerz's Literacy Weblog". Jerz.setonhill.edu. Retrieved 2010-08-10.
- ^ Cameron, Chris (2010-04-23). "Marshmallows and Spaghetti: How Kindergartners Think Like Lean Startups". Readwriteweb.com. Retrieved 2010-08-10.
- ^ "The Marshmallow Challenge". Engineeringrevision.com. 2010-05-02. Retrieved 2013-08-10.
- ^ "The Marshmallow Challenge". Selfish Programming. Retrieved 2013-08-10.
- ^ [1] Archived July 13, 2011, at the Wayback Machine
- ^ "Marshmallow challenge | Faculty of Science | University of Calgary". Ucalgary.ca. 2010-12-13. Retrieved 2013-08-10.
- ^ Original Design Challenge (2014-01-27), Peter Skillman Marshmallow Design Challenge, retrieved 2017-09-12
- Boehm, Barry W.( May 1988) "A Spiral Model of Software Development and Enhancement," Computer, IEEE, pp. 61–72.
- Gould, J.D. and Lewis, C. (1985). Designing for Usability: Key Principles and What Designers Think, Communications of the ACM, March, 28(3), 300-311.
- Kruchten, Philippe. The Rational Unified Process—An Introduction,
- Kruchten, P. From Waterfall to Iterative Development - A Challenging Transition for Project Managers. The Rational Edge, 2000. Retrieved from http://www-128.ibm.com/developerworks/rational/library/content/RationalEdge/dec00/FromWaterfalltoIterativeDevelopmentDec00.pdf. Addison Wesley Longman, 1999.