[go: nahoru, domu]

Iterative design: Difference between revisions

Content deleted Content added
Remove machine-generated article. Not a reliable source. Replace source.
Fixed a reference. Please see Category:CS1 errors: unsupported parameter.
 
(22 intermediate revisions by 19 users not shown)
Line 1:
{{Short description|Design methodology based on a cyclic process of prototyping, testing, analyzing, & refining}}
{{refimprovemore citations needed|date=January 2011}}
'''Iterative design''' is a [[design]] methodology based on a cyclic process of [[prototyping]], [[Product testing|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.
 
==History==
 
Iterative design has long been used in engineering fields. One example is the [[plan–do–check–act]] cycle implemented in the 1960s. Most [[New product development]] or existing product improvement programs have a checking loop which is used for iterative purposes. [[DMAIC]] uses the [[Six Sigma]] framework and has such a checking function.
 
===Object-Oriented Programming===
Iterative design is connected with the practice of [[object-oriented programming]], and the phrase appeared in computer science literature as early as 1990.<ref>{{cite book |doi=10.1145/97945.97949|chapter=An iterative-design model for reusable object-oriented software|title=Proceedings of the European conference on object-oriented programming on Object-oriented programming systems, languages, and applications - OOPSLA/ECOOP '90|pages=12–27|year=1990|last1=Gossain|first1=Sanjiv|last2=Anderson|first2=Bruce|isbn=0-89791-411-2|s2cid=551413}}</ref> The idea has its roots in [[spiral development]], conceived of by [[Barry Boehm]].<ref>{{cite web|url=https://dataprivacylab.org/dataprivacy/projects/dialectics/designmethods/SpiralModel-mnovakou.pdf|title=Summary of Spiral Model}}</ref>
 
==Iterative design process==
Line 10 ⟶ 14:
 
===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.<ref>{{cite journal| title=Iterative User Interface Design | year = 1993 | author = Nielsen, J. | journal = IEEE Computer |volume=26 |issue=11 |pagepages=32–41| doi = 10.1109/2.241424 | s2cid = 17748574 }}</ref>
 
The typical steps of iterative design in user interfaces are as follows:
Line 36 ⟶ 40:
 
==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 thatthan 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.<ref>{{Cite journal |doi = 10.1145/42404.42408|title = Cost/Benefit analysis for incorporating human factors in the software lifecycle|journal = Communications of the ACM|volume = 31|issue = 4|pages = 428–439|year = 1988|last1 = Mantei|first1 = Marilyn M.|last2 = Teorey|first2 = Toby J.|s2cid = 2031965|doi-access = free}}</ref>
 
Other benefits to iterative design include:
Line 54 ⟶ 58:
==Marshmallow Challenge==
[[File:Marshmallow_Challenge.jpg|thumb|upright|Marshmallow challenge winning work.]]
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.<ref>{{cite web|url=http://www.marshmallowchallenge.com/Welcome.html |title=The Marshmallow Challenge |publisher=The Marshmallow Challenge |access-date= |accessdate=2010-08-10}}</ref><ref name="bpwrap1">{{cite web|url=http://www.bpwrap.com/2010/04/the-marshmallow-challenge/ |title=The Marshmallow Challenge |location=CA |publisher=BPWrap |date=2010-04-22 |accessdateaccess-date=2010-08-10}}</ref>
 
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.<ref>{{cite web|last=Jerz |first=Dennis G. |url=http://jerz.setonhill.edu/weblog/2010/05/the_marshmallow_challenge/ |title=The Marshmallow Challenge - Jerz's Literacy Weblog |publisher=Jerz.setonhill.edu |date=2010-05-10 |accessdateaccess-date=2010-08-10}}</ref> The challenge helps to build and develop prototyping, teamwork, [https://www.experientiallearning.org/the-marshmallow-challenge-a-facilitative-approach/ leadership and innovation skills] and is a popular [[Science, technology, engineering, and mathematics|STEM]] activity. The challenge was invented by Peter Skillman of [[Palm, Inc.]] and popularized by Tom Wujec of [[Autodesk]].<ref>{{cite web |last=Cameron |first=Chris |url=http://www.readwriteweb.com/start/2010/04/marshmallows-and-spaghetti-how-kindergartners-think-like-lean-startups.php |title=Marshmallows and Spaghetti: How Kindergartners Think Like Lean Startups |publisher=Readwriteweb.com |date=2010-04-23 |accessdateaccess-date=2010-08-10 |archive-url=https://web.archive.org/web/20100821031127/http://www.readwriteweb.com/start/2010/04/marshmallows-and-spaghetti-how-kindergartners-think-like-lean-startups.php |archive-date=2010-08-21 |url-status=dead }}</ref><ref>{{cite web|url=http://engineeringrevision.com/302/the-marshmallow-challenge/ |title=The Marshmallow Challenge |publisher=Engineeringrevision.com |date=2010-05-02 |accessdateaccess-date=2013-08-10}}</ref><ref>{{cite web|url=http://www.selfishprogramming.com/2010/04/28/the-marshmallow-challenge/ |title=The Marshmallow Challenge |publisher=Selfish Programming |access-date= |accessdate=2013-08-10}}</ref><ref>{{cite web|url=https://www.ucalgary.ca/science/node/1578 |title=Marshmallow challenge &#124; Faculty of Science &#124; University of Calgary |publisher=Ucalgary.ca |date=2010-12-13 |accessdateaccess-date=2013-08-10}}</ref><ref>{{Citation|last=Original Design Challenge|title=Peter Skillman Marshmallow Design Challenge|date=2014-01-27|url=https://www.youtube.com/watch?v=1p5sBzMtB3Q |accessdatearchive-url=https://ghostarchive.org/varchive/youtube/20211213/1p5sBzMtB3Q| archive-date=2021-12-13 |url-status=live|access-date=2017-09-12}}{{cbignore}}</ref>
 
==See also==
*[[Disruptive innovation]]
*[[Extreme programming]]
*[[Spiral model]]
Line 70 ⟶ 75:
* 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,
* {{cite paperweb|last=Kruchten|first=P.|title=From Waterfall to Iterative Development – A Challenging Transition for Project Managers|type=White paper|publisher=Rational Software Corporation|year=2000|url=https://sceweb.uhcl.edu/helm/RationalUnifiedProcess/papers/pdf/tp173a.pdf|access-date=2019-08-17}}
<!-- APA - American Psychological Association Citation Style -->