Content deleted Content added
No edit summary Tags: Visual edit Mobile edit Mobile web edit |
m Reverted 1 edit by EmiNEMilLemanSusanAnarBANM4Kurs (talk) to last revision by ClueBot NG |
||
(43 intermediate revisions by 26 users not shown) | |||
Line 3:
{{Software development process|Paradigms and models}}
'''Agile software development''' is an umbrella term for approaches to [[software development|developing software]] that reflect the values and principles agreed upon by ''The Agile Alliance'', a group of 17 software practitioners, in 2001.<ref>{{cite web |title=What is Agile? |url=https://www.agilealliance.org/agile101/ |website=Agile Alliance |date=29 June 2015 |access-date=16 July 2024}}</ref> As documented in their ''Manifesto for Agile Software Development'' the practitioners value:<ref name="AgileManifesto">{{cite web|author=Kent Beck|author-link=Kent Beck|author2=James Grenning|author3=Robert C. Martin|author3-link=Robert Cecil Martin|author4=Mike Beedle|author5=Jim Highsmith|author5-link=Jim Highsmith|author6=Steve Mellor|author6-link=Stephen J. Mellor|author7=Arie van Bennekum|author8=Andrew Hunt|author8-link=Andy Hunt (author)|author9=Ken Schwaber|author9-link=Ken Schwaber|year=2001|title=Manifesto for Agile Software Development|url=http://agilemanifesto.org/|archive-url=|archive-date=|access-date=14 June 2010|website=|publisher=Agile Alliance|author12=Jeff Sutherland|author10-link=Alistair Cockburn|author10=Alistair Cockburn|author11-link=Ron Jeffries|author11=Ron Jeffries|author13-link=Ward Cunningham|author17=Brian Marick|author16=Martin Fowler|author16-link=Martin Fowler (software engineer)|author15=Dave Thomas|author15-link=David A. Thomas (software developer)|author14=Jon Kern|author13=Ward Cunningham|author12-link=Jeff Sutherland}}</ref>
*
*
*
*
The practitioners cite inspiration from new practices at the time including [[extreme programming]], [[Scrum (software development)|scrum]], [[dynamic systems development method]], [[adaptive software development]], and being sympathetic to the need for an alternative to documentation
Many software development practices emerged from the agile mindset. These agile-based practices, sometimes called ''Agile'' (with a capital A),<ref>{{cite web|url=https://www.rallydev.com/blog/engineering/agile-capital-vs-agile-lowercase |title=Agile With a Capital "A" Vs. agile With a Lowercase "a" |last=Rally |date=2010 |archive-url=https://web.archive.org/web/20160105105258/https://www.rallydev.com/blog/engineering/agile-capital-vs-agile-lowercase |archive-date=5 January 2016 |url-status=unfit |access-date=9 September 2015 }}</ref> include requirements, discovery, and solutions improvement through the collaborative effort of [[Self-organizing communities|self-organizing]] and [[cross-functional team|cross-functional]] teams with their [[Customer|customer(s)]]/[[End user|end user(s)]].{{sfn|Collier|2011}}<ref name="WhatIsAgile">{{cite web|url = http://www.agilealliance.org/the-alliance/what-is-agile/|title = What is Agile Software Development?|date = 8 June 2013|access-date = 4 April 2015|publisher = Agile Alliance}}</ref>
While there is much [[anecdotal evidence]] that the agile mindset and agile-based practices improve the software development process, the empirical evidence is limited and less than conclusive.<ref>{{cite journal|last1=Dybå|first1=Tore|last2=Dingsøyr|first2=Torgeir|title=Empirical studies of agile software development: A systematic review|journal=Information and Software Technology|date=1 August 2008|volume=50|issue=9–10|pages=833–859|doi=10.1016/j.infsof.2008.01.006|s2cid=2244031 |language=en|issn=0950-5849}}</ref><ref>{{cite journal|last1=Lee|first1=Gwanhoo|last2=Xia|first2=Weidong|s2cid=26477249|date=2010|title=Toward Agile: An Integrated Analysis of Quantitative and Qualitative Field Data on Software Development Agility|journal=MIS Quarterly|volume=34|issue=1|pages=87–114|doi=10.2307/20721416|jstor=20721416}}</ref><ref>{{cite journal |last1=Kroll |first1=J. |last2=Richardson |first2=I. |last3=Prikladnicki |first3=R. |last4=Audy |first4=J. L. |date=2018 |title=Empirical evidence in follow the Sun software development: A systematic mapping study |url=https://doi.org/10.1016/j.infsof.2017.08.011 |journal=Information and Software Technology |volume=93 |pages=30–44 | doi=10.1016/j.infsof.2017.08.011|hdl=10344/6233 |hdl-access=free }}</ref>
Line 19:
==History==
[[Iterative and incremental development|Iterative and incremental software development methods]] can be traced back as early as 1957,<ref name="craig2003">[[Gerald M. Weinberg]], as quoted in {{harvnb|Larman|Basili|2003|pp=47–56}}: "We were doing incremental development as early as 1957 in Los Angeles, under the direction of Bernie Dimsdale at [[Service Bureau Corporation|IBM's Service Bureau Corporation]]. He was a colleague of [[John von Neumann]], so perhaps he learned it there, or assumed it as totally natural. I do remember Herb Jacobs (primarily, though we all participated) developing a large simulation for Motorola, where the technique used was, as far as I can tell ... All of us, as far as I can remember, thought waterfalling of a huge project was rather stupid, or at least ignorant of the realities. I think what the waterfall description did for us was make us realize that we were doing something else, something unnamed except for 'software development.'"</ref> with evolutionary project management<ref name="EvolutionaryProjectManagement">{{cite web
|url=https://www.gilb.com/Project-Management
|access-date=2017-04-30
Line 40:
|pages=215–18}}</ref> emerging in the early 1970s.<ref>{{Cite journal|last=Gilb|first=Tom|s2cid=33902347|date=1981-04-01|title=Evolutionary development|journal=ACM SIGSOFT Software Engineering Notes|language=en|volume=6|issue=2|pages=17|doi=10.1145/1010865.1010868}}</ref>
During the 1990s, a number of ''lightweight'' software development methods evolved in reaction to the prevailing ''heavyweight'' methods (often referred to collectively as [[Waterfall model|''waterfall'']]) that critics described as overly regulated, planned, and [[Micromanagement|micromanaged]].<ref>{{Citation |title=Heavyweight project organizationHEAVYWEIGHT PROJECT ORGANIZATION |date=2000 |url=https://doi.org/10.1007/1-4020-0612-8_400 |encyclopedia=Encyclopedia of Production and Manufacturing Management |pages=261–262 |editor-last=Swamidass |editor-first=P. M. |place=Boston, MA |publisher=Springer US |language=en |doi=10.1007/1-4020-0612-8_400 |isbn=978-1-4020-0612-8 |access-date=2022-06-22|url-access=subscription }}</ref> These lightweight methods included: [[rapid application development]] (RAD), from 1991;<ref>{{cite book | title=Rapid Application Development | publisher=Macmillan | author=Martin, James | year=1991 | isbn=978-0-02-376775-3 | url=https://archive.org/details/rapidapplication00mart }}</ref><ref>{{cite book | title=Inside RAD: How to Build a Fully Functional System in 90 Days or Less | publisher=McGraw-Hill |author1=Kerr, James M. |author2=Hunter, Richard | year=1993 | page=3 | isbn=978-0-07-034223-1}}</ref> the [[Unified Process|unified process]] (UP) and [[dynamic systems development method]] (DSDM), both from 1994; [[Scrum (software development)|Scrum]], from 1995; Crystal Clear and [[extreme programming]] (XP), both from 1996; and [[feature-driven development]] (FDD), from 1997. Although these all originated before the publication of the ''Agile Manifesto'', they are now collectively referred to as agile software development methods.<ref name="LarmanGuide">{{Cite book
|last=Larman
|first=Craig
Line 153:
No matter which development method is followed, every team should include a [[customer representative]] (known as ''product owner'' in [[Scrum (software development)|Scrum]]). This representative is agreed by stakeholders to act on their behalf and makes a personal commitment to being available for developers to answer questions throughout the iteration. At the end of each iteration, the [[project stakeholder]]s together with the customer representative review progress and re-evaluate priorities with a view to optimizing the [[Rate of return|return on investment]] (ROI) and ensuring alignment with customer needs and company goals. The importance of stakeholder satisfaction, detailed by frequent interaction and review at the end of each phase, is why the approach is often denoted as a [[Customer centricity|customer-centered methodology]].<ref>{{Cite book |last1=Jain |first1=Parita |last2=Sharma |first2=Arun
|last3=Ahuja |first3=Laxmi |title=2018 7th International Conference on Reliability, Infocom Technologies and Optimization (Trends and Future Directions) (ICRITO) |chapter=The Impact of Agile Software Development Process on the Quality of Software Product |date=August 2018
==== Information radiator ====
Line 424:
====Allowing technical debt to build up====
{{Further|Technical debt}}
Focusing on delivering new functionality may result in increased [[technical debt]]. The team must allow themselves time for defect remediation and refactoring. Technical debt hinders planning abilities by increasing the amount of unscheduled work as production defects distract the team from further progress.<ref name="Technical Debt + Red October">{{cite web|last1 = Band|first1 = Zvi|title = Technical Debt + Red October| work=Zvi Band |url = http://zviband.com/posts/technical-debt-red-october/|access-date = 8 June 2014|date = 22 March 2014}}</ref>
As the system evolves it is important to [[Code refactoring|refactor]].<ref>{{cite web|last1=Shore|first1=James|title=The Art of Agile Development: Refactoring|url=http://www.jamesshore.com/Agile-Book/refactoring.html|website=www.jamesshore.com|access-date=2014-06-14}}</ref> Over time the lack of constant maintenance causes increasing defects and development costs.<ref name="Technical Debt + Red October"/>
Line 456:
According to Jean-Loup Richet (research fellow at [[ESSEC]] Institute for Strategic Innovation & Services) "this approach can be leveraged effectively for non-software products and for project management in general, especially in areas of innovation and uncertainty." The result is a product or project that best meets current customer needs and is delivered with minimal costs, waste, and time, enabling companies to achieve bottom line gains earlier than via traditional approaches.<ref>Richet, Jean-Loup (2013). ''Agile Innovation''. Cases and Applied Research, n°31. ESSEC-ISIS. {{ISBN|978-2-36456-091-8}}</ref>
Agile software development methods have been extensively used for development of software products and some of them use certain characteristics of software, such as [[Object-oriented analysis and design|object technologies]].<ref name="Smith2007">{{Cite book |last=Smith |first=Preston G |title=Flexible Product Development |publisher=Jossey-Bass |year=2007 |isbn=978-0-7879-9584-3 |page=25}}</ref> However, these techniques can be applied to the development of non-software products, such as computers, medical devices, food, clothing, and music.<ref>{{Cite book |last=Newton Lee |title="Getting on the Billboard Charts: Music Production as Agile Software Development," ''Digital Da Vinci: Computers in Music'' |publisher=Springer Science+Business Media |year=2014 |isbn=978-1-4939-0535-5}}</ref> Agile software development methods have been used in non-development [[IT infrastructure]] [[IT infrastructure deployment|deployments and migrations]]. Some of the wider principles of agile software development have also found application in general management<ref>{{Cite book |last=Moran, Alan |title=Managing Agile: Strategy, Implementation, Organisation and People |publisher=Springer Verlag |year=2015 |isbn=978-3-319-16262-1}}</ref> (e.g., strategy, governance, risk, finance) under the terms [[business agility]] or agile business management. Agile software methodologies have also been adopted for use with the [[learning engineering]] process, an iterative data-informed process that applies
Agile software development paradigms can be used in other areas of life such as raising children. Its success in child development might be founded on some basic management principles; communication, adaptation, and awareness. In a [[TED (conference)|TED Talk]], Bruce Feiler shared how he applied basic agile paradigms to household management and raising children.<ref>[http://www.ted.com/talks/bruce_feiler_agile_programming_for_your_family.html "Agile programming – for your family"].</ref>
== Criticism ==
Agile practices have been cited as potentially inefficient in large organizations and certain types of development.<ref>{{cite book|url=http://www.informit.com/articles/article.aspx?p=1380615|first=Craig|last=Larman|author2=Bas Vodde|title=Top Ten Organizational Impediments to Large-Scale Agile Adoption |publisher=InformIT |date=2009-08-13}}</ref> Many organizations believe that agile software development methodologies are too extreme and adopt a hybrid approach<ref>{{cite web|url=https://www.binfire.com/blog/2016/07/hybrid-project-management-methodology//|title=Introduction to Hybrid project management|work=Collaboration Corner |date=20 July 2016}}</ref> that mixes elements of agile software development and plan-driven approaches.<ref>{{cite journal|last=Barlow|first=Jordan B.|author2=Justin Scott Giboney|author3=Mark Jeffery Keith|author4=David W. Wilson|author5=Ryan M. Schuetzler|author6=Paul Benjamin Lowry|author7= Anthony Vance|title=Overview and Guidance on Agile Development in Large Organizations|journal=Communications of the Association for Information Systems|year=2011|volume=29|issue=1|pages=25–44|doi=10.17705/1CAIS.02902|doi-access=free}}</ref> Some methods, such as [[dynamic systems development method]] (DSDM) attempt this in a disciplined way, without sacrificing fundamental principles.
The increasing adoption of agile practices has also been criticized as being a [[management fad]] that simply describes existing good practices under new jargon, promotes a ''one size fits all'' mindset towards development strategies, and wrongly emphasizes method over results.<ref>{{cite web|url = http://www.batimes.com/kupe-kupersmith/agile-is-a-fad.html|title = Agile is a Fad|last = Kupersmith|first = Kupe| date=4 July 2011 }}</ref>
Line 476:
== See also ==
* [[Cross-functional team]]
* [[Scrum (software development)]]
Line 497 ⟶ 496:
*{{cite book |first1=Torgeir |last1=Dingsøyr |first2=Tore |last2=Dybå |first3=Nils Brede |last3=Moe |title=Agile Software Development: Current Research and Future Directions |url=https://books.google.com/books?id=JRhGAAAAQBAJ |date=2010 |publisher=Springer |isbn=978-3-642-12575-1 }}
*{{cite book|last=Fowler|first=Martin|chapter=Is Design Dead?|chapter-url=http://www.martinfowler.com/articles/designDead.html|pages=[https://archive.org/details/extremeprogrammi0000succ/page/3 3–18]|editor-first=Giancarlo|editor-last=Succi|editor2-first=Michele|editor2-last=Marchesi|title=Extreme Programming Examined|year=2001|publisher=Addison-Wesley|isbn=978-0-201-71040-3|ref={{harvid|Succi|Marchesi|2001}}|url=https://archive.org/details/extremeprogrammi0000succ/page/3}}
*{{cite journal |first1=Craig |last1=Larman |last2=Basili |first2=Victor R. |s2cid=9240477 |title=Iterative and Incremental Development: A Brief History |journal=IEEE Computer |volume=36 |issue=3 |pages=47–56 |date=June 2003 |doi=10.1109/MC.2003.1204375 |bibcode=2003Compr..36f..47L }}
*{{cite journal | publisher = MITRE | title =Handbook for Implementing Agile in Department of Defense Information Technology Acquisition | journal =The Mitre Corporation | url=https://www.mitre.org/publications/technical-papers/handbook-for-implementing-agile-in-department-of-defense-information-technology-acquisition| date =8 September 2013 | last1 =Casagni | first1 =Michelle | last2 =Benito | first2 =Robert | last3 =Mayfield | first3 =Kathleen M. | last4 =Northern | first4 =Carlton }}
*{{cite book|first=Alan|last=Moran|title=Managing Agile: Strategy, Implementation, Organisation and People|url=https://books.google.com/books?id=I6l_BwAAQBAJ|date=2015|publisher=Springer|isbn=978-3-319-16262-1}}
Line 506 ⟶ 505:
|edition=7th|___location=Newtown Square, PA}}
* {{cite book|first1=M.|last1=Stephens|first2=D.|last2=Rosenberg|title=Extreme Programming Refactored: The Case Against XP|publisher=Apress|year=2003|isbn=978-1-59059-096-6|url=https://archive.org/details/extremeprogrammi00matt}}
*{{citation|title=Heavyweight project organizationHEAVYWEIGHT PROJECT ORGANIZATION |date=2000 |url=https://doi.org/10.1007/1-4020-0612-8_400 |encyclopedia=Encyclopedia of Production and Manufacturing Management |pages=261–262 |editor-last=Swamidass |editor-first=P. M. |place=Boston, MA |publisher=Springer US |language=en |doi=10.1007/1-4020-0612-8_400 |isbn=978-1-4020-0612-8 |access-date=2022-06-22|url-access=subscription }}
*{{cite journal |last1=Takeuchi |first1=Hirotaka |last2=Nonaka |first2=Ikujiro |title=The New New Product Development Game |journal=[[Harvard Business Review]] |date=1 January 1986 |url=https://hbr.org/1986/01/the-new-new-product-development-game |access-date=25 July 2021 |issn=0017-8012}}
*{{cite web|url=https://www.binfire.com/blog/2016/07/hybrid-project-management-methodology//|title=Introduction to Hybrid project management|work=Collaboration Corner |date=20 July 2016}}
{{Refend}}
Line 515 ⟶ 514:
* [https://www.agilealliance.org/agile101/agile-glossary/ Agile Glossary] of the Agile Alliance
* [http://martinfowler.com/articles/newMethodology.html The New Methodology] - [[Martin Fowler (software engineer)|Martin Fowler]]'s description of the background to agile methods
{{Software engineering}}
|