CINXE.COM

Extreme programming - Wikipedia

<!DOCTYPE html> <html class="client-nojs vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-feature-night-mode-enabled skin-theme-clientpref-day vector-sticky-header-enabled vector-toc-available" lang="en" dir="ltr"> <head> <meta charset="UTF-8"> <title>Extreme programming - Wikipedia</title> <script>(function(){var className="client-js vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-feature-night-mode-enabled skin-theme-clientpref-day vector-sticky-header-enabled vector-toc-available";var cookie=document.cookie.match(/(?:^|; )enwikimwclientpreferences=([^;]+)/);if(cookie){cookie[1].split('%2C').forEach(function(pref){className=className.replace(new RegExp('(^| )'+pref.replace(/-clientpref-\w+$|[^\w-]+/g,'')+'-clientpref-\\w+( |$)'),'$1'+pref+'$2');});}document.documentElement.className=className;}());RLCONF={"wgBreakFrames":false,"wgSeparatorTransformTable":["",""],"wgDigitTransformTable":["",""],"wgDefaultDateFormat":"dmy", "wgMonthNames":["","January","February","March","April","May","June","July","August","September","October","November","December"],"wgRequestId":"b10c5e3d-e5f6-416f-9521-05c65209c85b","wgCanonicalNamespace":"","wgCanonicalSpecialPageName":false,"wgNamespaceNumber":0,"wgPageName":"Extreme_programming","wgTitle":"Extreme programming","wgCurRevisionId":1273996036,"wgRevisionId":1273996036,"wgArticleId":38634705,"wgIsArticle":true,"wgIsRedirect":false,"wgAction":"view","wgUserName":null,"wgUserGroups":["*"],"wgCategories":["Webarchive template wayback links","CS1 errors: periodical ignored","Articles with short description","Short description is different from Wikidata","Use mdy dates from May 2021","Articles with specifically marked weasel-worded phrases from August 2019","Articles containing potentially dated statements from 2019","All articles containing potentially dated statements","Articles needing additional references from February 2025","All articles needing additional references", "All articles with unsourced statements","Articles with unsourced statements from January 2013","Articles with unsourced statements from June 2009","Articles with unsourced statements from February 2020","Articles with unsourced statements from July 2008","Articles with unsourced statements from August 2009","Commons category link is on Wikidata","Extreme programming","Software development philosophies","Agile software development"],"wgPageViewLanguage":"en","wgPageContentLanguage":"en","wgPageContentModel":"wikitext","wgRelevantPageName":"Extreme_programming","wgRelevantArticleId":38634705,"wgIsProbablyEditable":true,"wgRelevantPageIsProbablyEditable":true,"wgRestrictionEdit":[],"wgRestrictionMove":[],"wgNoticeProject":"wikipedia","wgCiteReferencePreviewsActive":false,"wgFlaggedRevsParams":{"tags":{"status":{"levels":1}}},"wgMediaViewerOnClick":true,"wgMediaViewerEnabledByDefault":true,"wgPopupsFlags":0,"wgVisualEditor":{"pageLanguageCode":"en","pageLanguageDir":"ltr", "pageVariantFallbacks":"en"},"wgMFDisplayWikibaseDescriptions":{"search":true,"watchlist":true,"tagline":false,"nearby":true},"wgWMESchemaEditAttemptStepOversample":false,"wgWMEPageLength":30000,"wgEditSubmitButtonLabelPublish":true,"wgULSPosition":"interlanguage","wgULSisCompactLinksEnabled":false,"wgVector2022LanguageInHeader":true,"wgULSisLanguageSelectorEmpty":false,"wgWikibaseItemId":"Q209711","wgCheckUserClientHintsHeadersJsApi":["brands","architecture","bitness","fullVersionList","mobile","model","platform","platformVersion"],"GEHomepageSuggestedEditsEnableTopics":true,"wgGETopicsMatchModeEnabled":false,"wgGEStructuredTaskRejectionReasonTextInputEnabled":false,"wgGELevelingUpEnabledForUser":false};RLSTATE={"ext.globalCssJs.user.styles":"ready","site.styles":"ready","user.styles":"ready","ext.globalCssJs.user":"ready","user":"ready","user.options":"loading","ext.cite.styles":"ready","skins.vector.search.codex.styles":"ready","skins.vector.styles":"ready","skins.vector.icons": "ready","jquery.makeCollapsible.styles":"ready","ext.wikimediamessages.styles":"ready","ext.visualEditor.desktopArticleTarget.noscript":"ready","ext.uls.interlanguage":"ready","wikibase.client.init":"ready"};RLPAGEMODULES=["ext.cite.ux-enhancements","mediawiki.page.media","ext.scribunto.logs","site","mediawiki.page.ready","jquery.makeCollapsible","mediawiki.toc","skins.vector.js","ext.centralNotice.geoIP","ext.centralNotice.startUp","ext.gadget.ReferenceTooltips","ext.gadget.switcher","ext.urlShortener.toolbar","ext.centralauth.centralautologin","mmv.bootstrap","ext.popups","ext.visualEditor.desktopArticleTarget.init","ext.visualEditor.targetLoader","ext.echo.centralauth","ext.eventLogging","ext.wikimediaEvents","ext.navigationTiming","ext.uls.interface","ext.cx.eventlogging.campaigns","ext.cx.uls.quick.actions","wikibase.client.vector-2022","ext.checkUser.clientHints","ext.growthExperiments.SuggestedEditSession"];</script> <script>(RLQ=window.RLQ||[]).push(function(){mw.loader.impl(function(){return["user.options@12s5i",function($,jQuery,require,module){mw.user.tokens.set({"patrolToken":"+\\","watchToken":"+\\","csrfToken":"+\\"}); }];});});</script> <link rel="stylesheet" href="/w/load.php?lang=en&amp;modules=ext.cite.styles%7Cext.uls.interlanguage%7Cext.visualEditor.desktopArticleTarget.noscript%7Cext.wikimediamessages.styles%7Cjquery.makeCollapsible.styles%7Cskins.vector.icons%2Cstyles%7Cskins.vector.search.codex.styles%7Cwikibase.client.init&amp;only=styles&amp;skin=vector-2022"> <script async="" src="/w/load.php?lang=en&amp;modules=startup&amp;only=scripts&amp;raw=1&amp;skin=vector-2022"></script> <meta name="ResourceLoaderDynamicStyles" content=""> <link rel="stylesheet" href="/w/load.php?lang=en&amp;modules=site.styles&amp;only=styles&amp;skin=vector-2022"> <meta name="generator" content="MediaWiki 1.44.0-wmf.18"> <meta name="referrer" content="origin"> <meta name="referrer" content="origin-when-cross-origin"> <meta name="robots" content="max-image-preview:standard"> <meta name="format-detection" content="telephone=no"> <meta property="og:image" content="https://upload.wikimedia.org/wikipedia/commons/thumb/8/84/Extreme_Programming.svg/1200px-Extreme_Programming.svg.png"> <meta property="og:image:width" content="1200"> <meta property="og:image:height" content="1102"> <meta property="og:image" content="https://upload.wikimedia.org/wikipedia/commons/thumb/8/84/Extreme_Programming.svg/800px-Extreme_Programming.svg.png"> <meta property="og:image:width" content="800"> <meta property="og:image:height" content="735"> <meta property="og:image" content="https://upload.wikimedia.org/wikipedia/commons/thumb/8/84/Extreme_Programming.svg/640px-Extreme_Programming.svg.png"> <meta property="og:image:width" content="640"> <meta property="og:image:height" content="588"> <meta name="viewport" content="width=1120"> <meta property="og:title" content="Extreme programming - Wikipedia"> <meta property="og:type" content="website"> <link rel="preconnect" href="//upload.wikimedia.org"> <link rel="alternate" media="only screen and (max-width: 640px)" href="//en.m.wikipedia.org/wiki/Extreme_programming"> <link rel="alternate" type="application/x-wiki" title="Edit this page" href="/w/index.php?title=Extreme_programming&amp;action=edit"> <link rel="apple-touch-icon" href="/static/apple-touch/wikipedia.png"> <link rel="icon" href="/static/favicon/wikipedia.ico"> <link rel="search" type="application/opensearchdescription+xml" href="/w/rest.php/v1/search" title="Wikipedia (en)"> <link rel="EditURI" type="application/rsd+xml" href="//en.wikipedia.org/w/api.php?action=rsd"> <link rel="canonical" href="https://en.wikipedia.org/wiki/Extreme_programming"> <link rel="license" href="https://creativecommons.org/licenses/by-sa/4.0/deed.en"> <link rel="alternate" type="application/atom+xml" title="Wikipedia Atom feed" href="/w/index.php?title=Special:RecentChanges&amp;feed=atom"> <link rel="dns-prefetch" href="//meta.wikimedia.org" /> <link rel="dns-prefetch" href="login.wikimedia.org"> </head> <body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject mw-editable page-Extreme_programming rootpage-Extreme_programming skin-vector-2022 action-view"><a class="mw-jump-link" href="#bodyContent">Jump to content</a> <div class="vector-header-container"> <header class="vector-header mw-header"> <div class="vector-header-start"> <nav class="vector-main-menu-landmark" aria-label="Site"> <div id="vector-main-menu-dropdown" class="vector-dropdown vector-main-menu-dropdown vector-button-flush-left vector-button-flush-right" title="Main menu" > <input type="checkbox" id="vector-main-menu-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-main-menu-dropdown" class="vector-dropdown-checkbox " aria-label="Main menu" > <label id="vector-main-menu-dropdown-label" for="vector-main-menu-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-menu mw-ui-icon-wikimedia-menu"></span> <span class="vector-dropdown-label-text">Main menu</span> </label> <div class="vector-dropdown-content"> <div id="vector-main-menu-unpinned-container" class="vector-unpinned-container"> <div id="vector-main-menu" class="vector-main-menu vector-pinnable-element"> <div class="vector-pinnable-header vector-main-menu-pinnable-header vector-pinnable-header-unpinned" data-feature-name="main-menu-pinned" data-pinnable-element-id="vector-main-menu" data-pinned-container-id="vector-main-menu-pinned-container" data-unpinned-container-id="vector-main-menu-unpinned-container" > <div class="vector-pinnable-header-label">Main menu</div> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-main-menu.pin">move to sidebar</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-main-menu.unpin">hide</button> </div> <div id="p-navigation" class="vector-menu mw-portlet mw-portlet-navigation" > <div class="vector-menu-heading"> Navigation </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="n-mainpage-description" class="mw-list-item"><a href="/wiki/Main_Page" title="Visit the main page [z]" accesskey="z"><span>Main page</span></a></li><li id="n-contents" class="mw-list-item"><a href="/wiki/Wikipedia:Contents" title="Guides to browsing Wikipedia"><span>Contents</span></a></li><li id="n-currentevents" class="mw-list-item"><a href="/wiki/Portal:Current_events" title="Articles related to current events"><span>Current events</span></a></li><li id="n-randompage" class="mw-list-item"><a href="/wiki/Special:Random" title="Visit a randomly selected article [x]" accesskey="x"><span>Random article</span></a></li><li id="n-aboutsite" class="mw-list-item"><a href="/wiki/Wikipedia:About" title="Learn about Wikipedia and how it works"><span>About Wikipedia</span></a></li><li id="n-contactpage" class="mw-list-item"><a href="//en.wikipedia.org/wiki/Wikipedia:Contact_us" title="How to contact Wikipedia"><span>Contact us</span></a></li> </ul> </div> </div> <div id="p-interaction" class="vector-menu mw-portlet mw-portlet-interaction" > <div class="vector-menu-heading"> Contribute </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="n-help" class="mw-list-item"><a href="/wiki/Help:Contents" title="Guidance on how to use and edit Wikipedia"><span>Help</span></a></li><li id="n-introduction" class="mw-list-item"><a href="/wiki/Help:Introduction" title="Learn how to edit Wikipedia"><span>Learn to edit</span></a></li><li id="n-portal" class="mw-list-item"><a href="/wiki/Wikipedia:Community_portal" title="The hub for editors"><span>Community portal</span></a></li><li id="n-recentchanges" class="mw-list-item"><a href="/wiki/Special:RecentChanges" title="A list of recent changes to Wikipedia [r]" accesskey="r"><span>Recent changes</span></a></li><li id="n-upload" class="mw-list-item"><a href="/wiki/Wikipedia:File_upload_wizard" title="Add images or other media for use on Wikipedia"><span>Upload file</span></a></li><li id="n-specialpages" class="mw-list-item"><a href="/wiki/Special:SpecialPages"><span>Special pages</span></a></li> </ul> </div> </div> </div> </div> </div> </div> </nav> <a href="/wiki/Main_Page" class="mw-logo"> <img class="mw-logo-icon" src="/static/images/icons/wikipedia.png" alt="" aria-hidden="true" height="50" width="50"> <span class="mw-logo-container skin-invert"> <img class="mw-logo-wordmark" alt="Wikipedia" src="/static/images/mobile/copyright/wikipedia-wordmark-en.svg" style="width: 7.5em; height: 1.125em;"> <img class="mw-logo-tagline" alt="The Free Encyclopedia" src="/static/images/mobile/copyright/wikipedia-tagline-en.svg" width="117" height="13" style="width: 7.3125em; height: 0.8125em;"> </span> </a> </div> <div class="vector-header-end"> <div id="p-search" role="search" class="vector-search-box-vue vector-search-box-collapses vector-search-box-show-thumbnail vector-search-box-auto-expand-width vector-search-box"> <a href="/wiki/Special:Search" class="cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only search-toggle" title="Search Wikipedia [f]" accesskey="f"><span class="vector-icon mw-ui-icon-search mw-ui-icon-wikimedia-search"></span> <span>Search</span> </a> <div class="vector-typeahead-search-container"> <div class="cdx-typeahead-search cdx-typeahead-search--show-thumbnail cdx-typeahead-search--auto-expand-width"> <form action="/w/index.php" id="searchform" class="cdx-search-input cdx-search-input--has-end-button"> <div id="simpleSearch" class="cdx-search-input__input-wrapper" data-search-loc="header-moved"> <div class="cdx-text-input cdx-text-input--has-start-icon"> <input class="cdx-text-input__input" type="search" name="search" placeholder="Search Wikipedia" aria-label="Search Wikipedia" autocapitalize="sentences" title="Search Wikipedia [f]" accesskey="f" id="searchInput" > <span class="cdx-text-input__icon cdx-text-input__start-icon"></span> </div> <input type="hidden" name="title" value="Special:Search"> </div> <button class="cdx-button cdx-search-input__end-button">Search</button> </form> </div> </div> </div> <nav class="vector-user-links vector-user-links-wide" aria-label="Personal tools"> <div class="vector-user-links-main"> <div id="p-vector-user-menu-preferences" class="vector-menu mw-portlet emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> <div id="p-vector-user-menu-userpage" class="vector-menu mw-portlet emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> <nav class="vector-appearance-landmark" aria-label="Appearance"> <div id="vector-appearance-dropdown" class="vector-dropdown " title="Change the appearance of the page&#039;s font size, width, and color" > <input type="checkbox" id="vector-appearance-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-appearance-dropdown" class="vector-dropdown-checkbox " aria-label="Appearance" > <label id="vector-appearance-dropdown-label" for="vector-appearance-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-appearance mw-ui-icon-wikimedia-appearance"></span> <span class="vector-dropdown-label-text">Appearance</span> </label> <div class="vector-dropdown-content"> <div id="vector-appearance-unpinned-container" class="vector-unpinned-container"> </div> </div> </div> </nav> <div id="p-vector-user-menu-notifications" class="vector-menu mw-portlet emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> <div id="p-vector-user-menu-overflow" class="vector-menu mw-portlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="pt-sitesupport-2" class="user-links-collapsible-item mw-list-item user-links-collapsible-item"><a data-mw="interface" href="https://donate.wikimedia.org/?wmf_source=donate&amp;wmf_medium=sidebar&amp;wmf_campaign=en.wikipedia.org&amp;uselang=en" class=""><span>Donate</span></a> </li> <li id="pt-createaccount-2" class="user-links-collapsible-item mw-list-item user-links-collapsible-item"><a data-mw="interface" href="/w/index.php?title=Special:CreateAccount&amp;returnto=Extreme+programming" title="You are encouraged to create an account and log in; however, it is not mandatory" class=""><span>Create account</span></a> </li> <li id="pt-login-2" class="user-links-collapsible-item mw-list-item user-links-collapsible-item"><a data-mw="interface" href="/w/index.php?title=Special:UserLogin&amp;returnto=Extreme+programming" title="You&#039;re encouraged to log in; however, it&#039;s not mandatory. [o]" accesskey="o" class=""><span>Log in</span></a> </li> </ul> </div> </div> </div> <div id="vector-user-links-dropdown" class="vector-dropdown vector-user-menu vector-button-flush-right vector-user-menu-logged-out" title="Log in and more options" > <input type="checkbox" id="vector-user-links-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-user-links-dropdown" class="vector-dropdown-checkbox " aria-label="Personal tools" > <label id="vector-user-links-dropdown-label" for="vector-user-links-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-ellipsis mw-ui-icon-wikimedia-ellipsis"></span> <span class="vector-dropdown-label-text">Personal tools</span> </label> <div class="vector-dropdown-content"> <div id="p-personal" class="vector-menu mw-portlet mw-portlet-personal user-links-collapsible-item" title="User menu" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="pt-sitesupport" class="user-links-collapsible-item mw-list-item"><a href="https://donate.wikimedia.org/?wmf_source=donate&amp;wmf_medium=sidebar&amp;wmf_campaign=en.wikipedia.org&amp;uselang=en"><span>Donate</span></a></li><li id="pt-createaccount" class="user-links-collapsible-item mw-list-item"><a href="/w/index.php?title=Special:CreateAccount&amp;returnto=Extreme+programming" title="You are encouraged to create an account and log in; however, it is not mandatory"><span class="vector-icon mw-ui-icon-userAdd mw-ui-icon-wikimedia-userAdd"></span> <span>Create account</span></a></li><li id="pt-login" class="user-links-collapsible-item mw-list-item"><a href="/w/index.php?title=Special:UserLogin&amp;returnto=Extreme+programming" title="You&#039;re encouraged to log in; however, it&#039;s not mandatory. [o]" accesskey="o"><span class="vector-icon mw-ui-icon-logIn mw-ui-icon-wikimedia-logIn"></span> <span>Log in</span></a></li> </ul> </div> </div> <div id="p-user-menu-anon-editor" class="vector-menu mw-portlet mw-portlet-user-menu-anon-editor" > <div class="vector-menu-heading"> Pages for logged out editors <a href="/wiki/Help:Introduction" aria-label="Learn more about editing"><span>learn more</span></a> </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="pt-anoncontribs" class="mw-list-item"><a href="/wiki/Special:MyContributions" title="A list of edits made from this IP address [y]" accesskey="y"><span>Contributions</span></a></li><li id="pt-anontalk" class="mw-list-item"><a href="/wiki/Special:MyTalk" title="Discussion about edits from this IP address [n]" accesskey="n"><span>Talk</span></a></li> </ul> </div> </div> </div> </div> </nav> </div> </header> </div> <div class="mw-page-container"> <div class="mw-page-container-inner"> <div class="vector-sitenotice-container"> <div id="siteNotice"><!-- CentralNotice --></div> </div> <div class="vector-column-start"> <div class="vector-main-menu-container"> <div id="mw-navigation"> <nav id="mw-panel" class="vector-main-menu-landmark" aria-label="Site"> <div id="vector-main-menu-pinned-container" class="vector-pinned-container"> </div> </nav> </div> </div> <div class="vector-sticky-pinned-container"> <nav id="mw-panel-toc" aria-label="Contents" data-event-name="ui.sidebar-toc" class="mw-table-of-contents-container vector-toc-landmark"> <div id="vector-toc-pinned-container" class="vector-pinned-container"> <div id="vector-toc" class="vector-toc vector-pinnable-element"> <div class="vector-pinnable-header vector-toc-pinnable-header vector-pinnable-header-pinned" data-feature-name="toc-pinned" data-pinnable-element-id="vector-toc" > <h2 class="vector-pinnable-header-label">Contents</h2> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-toc.pin">move to sidebar</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-toc.unpin">hide</button> </div> <ul class="vector-toc-contents" id="mw-panel-toc-list"> <li id="toc-mw-content-text" class="vector-toc-list-item vector-toc-level-1"> <a href="#" class="vector-toc-link"> <div class="vector-toc-text">(Top)</div> </a> </li> <li id="toc-History" class="vector-toc-list-item vector-toc-level-1"> <a class="vector-toc-link" href="#History"> <div class="vector-toc-text"> <span class="vector-toc-numb">1</span> <span>History</span> </div> </a> <button aria-controls="toc-History-sublist" class="cdx-button cdx-button--weight-quiet cdx-button--icon-only vector-toc-toggle"> <span class="vector-icon mw-ui-icon-wikimedia-expand"></span> <span>Toggle History subsection</span> </button> <ul id="toc-History-sublist" class="vector-toc-list"> <li id="toc-Origins" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Origins"> <div class="vector-toc-text"> <span class="vector-toc-numb">1.1</span> <span>Origins</span> </div> </a> <ul id="toc-Origins-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Current_state" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Current_state"> <div class="vector-toc-text"> <span class="vector-toc-numb">1.2</span> <span>Current state</span> </div> </a> <ul id="toc-Current_state-sublist" class="vector-toc-list"> </ul> </li> </ul> </li> <li id="toc-Concept" class="vector-toc-list-item vector-toc-level-1"> <a class="vector-toc-link" href="#Concept"> <div class="vector-toc-text"> <span class="vector-toc-numb">2</span> <span>Concept</span> </div> </a> <button aria-controls="toc-Concept-sublist" class="cdx-button cdx-button--weight-quiet cdx-button--icon-only vector-toc-toggle"> <span class="vector-icon mw-ui-icon-wikimedia-expand"></span> <span>Toggle Concept subsection</span> </button> <ul id="toc-Concept-sublist" class="vector-toc-list"> <li id="toc-Goals" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Goals"> <div class="vector-toc-text"> <span class="vector-toc-numb">2.1</span> <span>Goals</span> </div> </a> <ul id="toc-Goals-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Activities" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Activities"> <div class="vector-toc-text"> <span class="vector-toc-numb">2.2</span> <span>Activities</span> </div> </a> <ul id="toc-Activities-sublist" class="vector-toc-list"> <li id="toc-Coding" class="vector-toc-list-item vector-toc-level-3"> <a class="vector-toc-link" href="#Coding"> <div class="vector-toc-text"> <span class="vector-toc-numb">2.2.1</span> <span>Coding</span> </div> </a> <ul id="toc-Coding-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Testing" class="vector-toc-list-item vector-toc-level-3"> <a class="vector-toc-link" href="#Testing"> <div class="vector-toc-text"> <span class="vector-toc-numb">2.2.2</span> <span>Testing</span> </div> </a> <ul id="toc-Testing-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Listening" class="vector-toc-list-item vector-toc-level-3"> <a class="vector-toc-link" href="#Listening"> <div class="vector-toc-text"> <span class="vector-toc-numb">2.2.3</span> <span>Listening</span> </div> </a> <ul id="toc-Listening-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Designing" class="vector-toc-list-item vector-toc-level-3"> <a class="vector-toc-link" href="#Designing"> <div class="vector-toc-text"> <span class="vector-toc-numb">2.2.4</span> <span>Designing</span> </div> </a> <ul id="toc-Designing-sublist" class="vector-toc-list"> </ul> </li> </ul> </li> <li id="toc-Values" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Values"> <div class="vector-toc-text"> <span class="vector-toc-numb">2.3</span> <span>Values</span> </div> </a> <ul id="toc-Values-sublist" class="vector-toc-list"> <li id="toc-Communication" class="vector-toc-list-item vector-toc-level-3"> <a class="vector-toc-link" href="#Communication"> <div class="vector-toc-text"> <span class="vector-toc-numb">2.3.1</span> <span>Communication</span> </div> </a> <ul id="toc-Communication-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Simplicity" class="vector-toc-list-item vector-toc-level-3"> <a class="vector-toc-link" href="#Simplicity"> <div class="vector-toc-text"> <span class="vector-toc-numb">2.3.2</span> <span>Simplicity</span> </div> </a> <ul id="toc-Simplicity-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Feedback" class="vector-toc-list-item vector-toc-level-3"> <a class="vector-toc-link" href="#Feedback"> <div class="vector-toc-text"> <span class="vector-toc-numb">2.3.3</span> <span>Feedback</span> </div> </a> <ul id="toc-Feedback-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Courage" class="vector-toc-list-item vector-toc-level-3"> <a class="vector-toc-link" href="#Courage"> <div class="vector-toc-text"> <span class="vector-toc-numb">2.3.4</span> <span>Courage</span> </div> </a> <ul id="toc-Courage-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Respect" class="vector-toc-list-item vector-toc-level-3"> <a class="vector-toc-link" href="#Respect"> <div class="vector-toc-text"> <span class="vector-toc-numb">2.3.5</span> <span>Respect</span> </div> </a> <ul id="toc-Respect-sublist" class="vector-toc-list"> </ul> </li> </ul> </li> <li id="toc-Rules" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Rules"> <div class="vector-toc-text"> <span class="vector-toc-numb">2.4</span> <span>Rules</span> </div> </a> <ul id="toc-Rules-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Principles" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Principles"> <div class="vector-toc-text"> <span class="vector-toc-numb">2.5</span> <span>Principles</span> </div> </a> <ul id="toc-Principles-sublist" class="vector-toc-list"> <li id="toc-Feedback_2" class="vector-toc-list-item vector-toc-level-3"> <a class="vector-toc-link" href="#Feedback_2"> <div class="vector-toc-text"> <span class="vector-toc-numb">2.5.1</span> <span>Feedback</span> </div> </a> <ul id="toc-Feedback_2-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Assuming_simplicity" class="vector-toc-list-item vector-toc-level-3"> <a class="vector-toc-link" href="#Assuming_simplicity"> <div class="vector-toc-text"> <span class="vector-toc-numb">2.5.2</span> <span>Assuming simplicity</span> </div> </a> <ul id="toc-Assuming_simplicity-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Embracing_change" class="vector-toc-list-item vector-toc-level-3"> <a class="vector-toc-link" href="#Embracing_change"> <div class="vector-toc-text"> <span class="vector-toc-numb">2.5.3</span> <span>Embracing change</span> </div> </a> <ul id="toc-Embracing_change-sublist" class="vector-toc-list"> </ul> </li> </ul> </li> </ul> </li> <li id="toc-Practices" class="vector-toc-list-item vector-toc-level-1"> <a class="vector-toc-link" href="#Practices"> <div class="vector-toc-text"> <span class="vector-toc-numb">3</span> <span>Practices</span> </div> </a> <button aria-controls="toc-Practices-sublist" class="cdx-button cdx-button--weight-quiet cdx-button--icon-only vector-toc-toggle"> <span class="vector-icon mw-ui-icon-wikimedia-expand"></span> <span>Toggle Practices subsection</span> </button> <ul id="toc-Practices-sublist" class="vector-toc-list"> <li id="toc-Fine-scale_feedback" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Fine-scale_feedback"> <div class="vector-toc-text"> <span class="vector-toc-numb">3.1</span> <span>Fine-scale feedback</span> </div> </a> <ul id="toc-Fine-scale_feedback-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Continuous_process" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Continuous_process"> <div class="vector-toc-text"> <span class="vector-toc-numb">3.2</span> <span>Continuous process</span> </div> </a> <ul id="toc-Continuous_process-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Shared_understanding" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Shared_understanding"> <div class="vector-toc-text"> <span class="vector-toc-numb">3.3</span> <span>Shared understanding</span> </div> </a> <ul id="toc-Shared_understanding-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Programmer_welfare" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Programmer_welfare"> <div class="vector-toc-text"> <span class="vector-toc-numb">3.4</span> <span>Programmer welfare</span> </div> </a> <ul id="toc-Programmer_welfare-sublist" class="vector-toc-list"> </ul> </li> </ul> </li> <li id="toc-Controversial_aspects" class="vector-toc-list-item vector-toc-level-1"> <a class="vector-toc-link" href="#Controversial_aspects"> <div class="vector-toc-text"> <span class="vector-toc-numb">4</span> <span>Controversial aspects</span> </div> </a> <button aria-controls="toc-Controversial_aspects-sublist" class="cdx-button cdx-button--weight-quiet cdx-button--icon-only vector-toc-toggle"> <span class="vector-icon mw-ui-icon-wikimedia-expand"></span> <span>Toggle Controversial aspects subsection</span> </button> <ul id="toc-Controversial_aspects-sublist" class="vector-toc-list"> <li id="toc-Scalability" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Scalability"> <div class="vector-toc-text"> <span class="vector-toc-numb">4.1</span> <span>Scalability</span> </div> </a> <ul id="toc-Scalability-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Severability_and_responses" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Severability_and_responses"> <div class="vector-toc-text"> <span class="vector-toc-numb">4.2</span> <span>Severability and responses</span> </div> </a> <ul id="toc-Severability_and_responses-sublist" class="vector-toc-list"> </ul> </li> </ul> </li> <li id="toc-Criticism" class="vector-toc-list-item vector-toc-level-1"> <a class="vector-toc-link" href="#Criticism"> <div class="vector-toc-text"> <span class="vector-toc-numb">5</span> <span>Criticism</span> </div> </a> <ul id="toc-Criticism-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-See_also" class="vector-toc-list-item vector-toc-level-1"> <a class="vector-toc-link" href="#See_also"> <div class="vector-toc-text"> <span class="vector-toc-numb">6</span> <span>See also</span> </div> </a> <ul id="toc-See_also-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-References" class="vector-toc-list-item vector-toc-level-1"> <a class="vector-toc-link" href="#References"> <div class="vector-toc-text"> <span class="vector-toc-numb">7</span> <span>References</span> </div> </a> <ul id="toc-References-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Further_reading" class="vector-toc-list-item vector-toc-level-1"> <a class="vector-toc-link" href="#Further_reading"> <div class="vector-toc-text"> <span class="vector-toc-numb">8</span> <span>Further reading</span> </div> </a> <ul id="toc-Further_reading-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-External_links" class="vector-toc-list-item vector-toc-level-1"> <a class="vector-toc-link" href="#External_links"> <div class="vector-toc-text"> <span class="vector-toc-numb">9</span> <span>External links</span> </div> </a> <ul id="toc-External_links-sublist" class="vector-toc-list"> </ul> </li> </ul> </div> </div> </nav> </div> </div> <div class="mw-content-container"> <main id="content" class="mw-body"> <header class="mw-body-header vector-page-titlebar"> <nav aria-label="Contents" class="vector-toc-landmark"> <div id="vector-page-titlebar-toc" class="vector-dropdown vector-page-titlebar-toc vector-button-flush-left" title="Table of Contents" > <input type="checkbox" id="vector-page-titlebar-toc-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-page-titlebar-toc" class="vector-dropdown-checkbox " aria-label="Toggle the table of contents" > <label id="vector-page-titlebar-toc-label" for="vector-page-titlebar-toc-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-listBullet mw-ui-icon-wikimedia-listBullet"></span> <span class="vector-dropdown-label-text">Toggle the table of contents</span> </label> <div class="vector-dropdown-content"> <div id="vector-page-titlebar-toc-unpinned-container" class="vector-unpinned-container"> </div> </div> </div> </nav> <h1 id="firstHeading" class="firstHeading mw-first-heading"><span class="mw-page-title-main">Extreme programming</span></h1> <div id="p-lang-btn" class="vector-dropdown mw-portlet mw-portlet-lang" > <input type="checkbox" id="p-lang-btn-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-p-lang-btn" class="vector-dropdown-checkbox mw-interlanguage-selector" aria-label="Go to an article in another language. Available in 38 languages" > <label id="p-lang-btn-label" for="p-lang-btn-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--action-progressive mw-portlet-lang-heading-38" aria-hidden="true" ><span class="vector-icon mw-ui-icon-language-progressive mw-ui-icon-wikimedia-language-progressive"></span> <span class="vector-dropdown-label-text">38 languages</span> </label> <div class="vector-dropdown-content"> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li class="interlanguage-link interwiki-ar mw-list-item"><a href="https://ar.wikipedia.org/wiki/%D8%A8%D8%B1%D9%85%D8%AC%D8%A9_%D9%82%D8%B5%D9%88%D9%89" title="برمجة قصوى – Arabic" lang="ar" hreflang="ar" data-title="برمجة قصوى" data-language-autonym="العربية" data-language-local-name="Arabic" class="interlanguage-link-target"><span>العربية</span></a></li><li class="interlanguage-link interwiki-az mw-list-item"><a href="https://az.wikipedia.org/wiki/Ekstremal_proqramla%C5%9Fd%C4%B1rma" title="Ekstremal proqramlaşdırma – Azerbaijani" lang="az" hreflang="az" data-title="Ekstremal proqramlaşdırma" data-language-autonym="Azərbaycanca" data-language-local-name="Azerbaijani" class="interlanguage-link-target"><span>Azərbaycanca</span></a></li><li class="interlanguage-link interwiki-be-x-old mw-list-item"><a href="https://be-tarask.wikipedia.org/wiki/%D0%AD%D0%BA%D1%81%D1%82%D1%80%D1%8D%D0%BC%D0%B0%D0%BB%D1%8C%D0%BD%D0%B0%D0%B5_%D0%BF%D1%80%D0%B0%D0%B3%D1%80%D0%B0%D0%BC%D0%B0%D0%B2%D0%B0%D0%BD%D1%8C%D0%BD%D0%B5" title="Экстрэмальнае праграмаваньне – Belarusian (Taraškievica orthography)" lang="be-tarask" hreflang="be-tarask" data-title="Экстрэмальнае праграмаваньне" data-language-autonym="Беларуская (тарашкевіца)" data-language-local-name="Belarusian (Taraškievica orthography)" class="interlanguage-link-target"><span>Беларуская (тарашкевіца)</span></a></li><li class="interlanguage-link interwiki-bg mw-list-item"><a href="https://bg.wikipedia.org/wiki/%D0%95%D0%BA%D1%81%D1%82%D1%80%D0%B5%D0%BC%D0%BD%D0%BE_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%B8%D1%80%D0%B0%D0%BD%D0%B5" title="Екстремно програмиране – Bulgarian" lang="bg" hreflang="bg" data-title="Екстремно програмиране" data-language-autonym="Български" data-language-local-name="Bulgarian" class="interlanguage-link-target"><span>Български</span></a></li><li class="interlanguage-link interwiki-ca mw-list-item"><a href="https://ca.wikipedia.org/wiki/Programaci%C3%B3_extrema" title="Programació extrema – Catalan" lang="ca" hreflang="ca" data-title="Programació extrema" data-language-autonym="Català" data-language-local-name="Catalan" class="interlanguage-link-target"><span>Català</span></a></li><li class="interlanguage-link interwiki-cs mw-list-item"><a href="https://cs.wikipedia.org/wiki/Extr%C3%A9mn%C3%AD_programov%C3%A1n%C3%AD" title="Extrémní programování – Czech" lang="cs" hreflang="cs" data-title="Extrémní programování" data-language-autonym="Čeština" data-language-local-name="Czech" class="interlanguage-link-target"><span>Čeština</span></a></li><li class="interlanguage-link interwiki-da mw-list-item"><a href="https://da.wikipedia.org/wiki/Extreme_Programming" title="Extreme Programming – Danish" lang="da" hreflang="da" data-title="Extreme Programming" data-language-autonym="Dansk" data-language-local-name="Danish" class="interlanguage-link-target"><span>Dansk</span></a></li><li class="interlanguage-link interwiki-de mw-list-item"><a href="https://de.wikipedia.org/wiki/Extreme_Programming" title="Extreme Programming – German" lang="de" hreflang="de" data-title="Extreme Programming" data-language-autonym="Deutsch" data-language-local-name="German" class="interlanguage-link-target"><span>Deutsch</span></a></li><li class="interlanguage-link interwiki-et mw-list-item"><a href="https://et.wikipedia.org/wiki/Ekstreemprogrammeerimine" title="Ekstreemprogrammeerimine – Estonian" lang="et" hreflang="et" data-title="Ekstreemprogrammeerimine" data-language-autonym="Eesti" data-language-local-name="Estonian" class="interlanguage-link-target"><span>Eesti</span></a></li><li class="interlanguage-link interwiki-es mw-list-item"><a href="https://es.wikipedia.org/wiki/Programaci%C3%B3n_extrema" title="Programación extrema – Spanish" lang="es" hreflang="es" data-title="Programación extrema" data-language-autonym="Español" data-language-local-name="Spanish" class="interlanguage-link-target"><span>Español</span></a></li><li class="interlanguage-link interwiki-fa mw-list-item"><a href="https://fa.wikipedia.org/wiki/%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87%E2%80%8C%D9%86%D9%88%DB%8C%D8%B3%DB%8C_%D9%85%D9%81%D8%B1%D8%B7" title="برنامه‌نویسی مفرط – Persian" lang="fa" hreflang="fa" data-title="برنامه‌نویسی مفرط" data-language-autonym="فارسی" data-language-local-name="Persian" class="interlanguage-link-target"><span>فارسی</span></a></li><li class="interlanguage-link interwiki-fr mw-list-item"><a href="https://fr.wikipedia.org/wiki/Extreme_programming" title="Extreme programming – French" lang="fr" hreflang="fr" data-title="Extreme programming" data-language-autonym="Français" data-language-local-name="French" class="interlanguage-link-target"><span>Français</span></a></li><li class="interlanguage-link interwiki-gl mw-list-item"><a href="https://gl.wikipedia.org/wiki/Programaci%C3%B3n_extrema" title="Programación extrema – Galician" lang="gl" hreflang="gl" data-title="Programación extrema" data-language-autonym="Galego" data-language-local-name="Galician" class="interlanguage-link-target"><span>Galego</span></a></li><li class="interlanguage-link interwiki-ko mw-list-item"><a href="https://ko.wikipedia.org/wiki/%EC%9D%B5%EC%8A%A4%ED%8A%B8%EB%A6%BC_%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D" title="익스트림 프로그래밍 – Korean" lang="ko" hreflang="ko" data-title="익스트림 프로그래밍" data-language-autonym="한국어" data-language-local-name="Korean" class="interlanguage-link-target"><span>한국어</span></a></li><li class="interlanguage-link interwiki-hi mw-list-item"><a href="https://hi.wikipedia.org/wiki/%E0%A4%8F%E0%A4%95%E0%A5%8D%E0%A4%B8%E0%A4%9F%E0%A5%8D%E0%A4%B0%E0%A5%80%E0%A4%AE_%E0%A4%AA%E0%A5%8D%E0%A4%B0%E0%A5%8B%E0%A4%97%E0%A5%8D%E0%A4%B0%E0%A4%BE%E0%A4%AE%E0%A4%BF%E0%A4%82%E0%A4%97" title="एक्सट्रीम प्रोग्रामिंग – Hindi" lang="hi" hreflang="hi" data-title="एक्सट्रीम प्रोग्रामिंग" data-language-autonym="हिन्दी" data-language-local-name="Hindi" class="interlanguage-link-target"><span>हिन्दी</span></a></li><li class="interlanguage-link interwiki-id mw-list-item"><a href="https://id.wikipedia.org/wiki/Extreme_programming" title="Extreme programming – Indonesian" lang="id" hreflang="id" data-title="Extreme programming" data-language-autonym="Bahasa Indonesia" data-language-local-name="Indonesian" class="interlanguage-link-target"><span>Bahasa Indonesia</span></a></li><li class="interlanguage-link interwiki-ia mw-list-item"><a href="https://ia.wikipedia.org/wiki/Programmation_extreme" title="Programmation extreme – Interlingua" lang="ia" hreflang="ia" data-title="Programmation extreme" data-language-autonym="Interlingua" data-language-local-name="Interlingua" class="interlanguage-link-target"><span>Interlingua</span></a></li><li class="interlanguage-link interwiki-it mw-list-item"><a href="https://it.wikipedia.org/wiki/Extreme_programming" title="Extreme programming – Italian" lang="it" hreflang="it" data-title="Extreme programming" data-language-autonym="Italiano" data-language-local-name="Italian" class="interlanguage-link-target"><span>Italiano</span></a></li><li class="interlanguage-link interwiki-he mw-list-item"><a href="https://he.wikipedia.org/wiki/Extreme_Programming" title="Extreme Programming – Hebrew" lang="he" hreflang="he" data-title="Extreme Programming" data-language-autonym="עברית" data-language-local-name="Hebrew" class="interlanguage-link-target"><span>עברית</span></a></li><li class="interlanguage-link interwiki-lt mw-list-item"><a href="https://lt.wikipedia.org/wiki/Ribinis_programavimas" title="Ribinis programavimas – Lithuanian" lang="lt" hreflang="lt" data-title="Ribinis programavimas" data-language-autonym="Lietuvių" data-language-local-name="Lithuanian" class="interlanguage-link-target"><span>Lietuvių</span></a></li><li class="interlanguage-link interwiki-hu mw-list-item"><a href="https://hu.wikipedia.org/wiki/Extr%C3%A9m_programoz%C3%A1s" title="Extrém programozás – Hungarian" lang="hu" hreflang="hu" data-title="Extrém programozás" data-language-autonym="Magyar" data-language-local-name="Hungarian" class="interlanguage-link-target"><span>Magyar</span></a></li><li class="interlanguage-link interwiki-nl mw-list-item"><a href="https://nl.wikipedia.org/wiki/Extreme_programming" title="Extreme programming – Dutch" lang="nl" hreflang="nl" data-title="Extreme programming" data-language-autonym="Nederlands" data-language-local-name="Dutch" class="interlanguage-link-target"><span>Nederlands</span></a></li><li class="interlanguage-link interwiki-ja mw-list-item"><a href="https://ja.wikipedia.org/wiki/%E3%82%A8%E3%82%AF%E3%82%B9%E3%83%88%E3%83%AA%E3%83%BC%E3%83%A0%E3%83%BB%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0" title="エクストリーム・プログラミング – Japanese" lang="ja" hreflang="ja" data-title="エクストリーム・プログラミング" data-language-autonym="日本語" data-language-local-name="Japanese" class="interlanguage-link-target"><span>日本語</span></a></li><li class="interlanguage-link interwiki-no mw-list-item"><a href="https://no.wikipedia.org/wiki/Ekstrem_programmering" title="Ekstrem programmering – Norwegian Bokmål" lang="nb" hreflang="nb" data-title="Ekstrem programmering" data-language-autonym="Norsk bokmål" data-language-local-name="Norwegian Bokmål" class="interlanguage-link-target"><span>Norsk bokmål</span></a></li><li class="interlanguage-link interwiki-pl mw-list-item"><a href="https://pl.wikipedia.org/wiki/Programowanie_ekstremalne" title="Programowanie ekstremalne – Polish" lang="pl" hreflang="pl" data-title="Programowanie ekstremalne" data-language-autonym="Polski" data-language-local-name="Polish" class="interlanguage-link-target"><span>Polski</span></a></li><li class="interlanguage-link interwiki-pt mw-list-item"><a href="https://pt.wikipedia.org/wiki/Programa%C3%A7%C3%A3o_extrema" title="Programação extrema – Portuguese" lang="pt" hreflang="pt" data-title="Programação extrema" data-language-autonym="Português" data-language-local-name="Portuguese" class="interlanguage-link-target"><span>Português</span></a></li><li class="interlanguage-link interwiki-ru mw-list-item"><a href="https://ru.wikipedia.org/wiki/%D0%AD%D0%BA%D1%81%D1%82%D1%80%D0%B5%D0%BC%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B5_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5" title="Экстремальное программирование – Russian" lang="ru" hreflang="ru" data-title="Экстремальное программирование" data-language-autonym="Русский" data-language-local-name="Russian" class="interlanguage-link-target"><span>Русский</span></a></li><li class="interlanguage-link interwiki-sq mw-list-item"><a href="https://sq.wikipedia.org/wiki/Programimi_ekstrem" title="Programimi ekstrem – Albanian" lang="sq" hreflang="sq" data-title="Programimi ekstrem" data-language-autonym="Shqip" data-language-local-name="Albanian" class="interlanguage-link-target"><span>Shqip</span></a></li><li class="interlanguage-link interwiki-sr mw-list-item"><a href="https://sr.wikipedia.org/wiki/Ekstremno_programiranje" title="Ekstremno programiranje – Serbian" lang="sr" hreflang="sr" data-title="Ekstremno programiranje" data-language-autonym="Српски / srpski" data-language-local-name="Serbian" class="interlanguage-link-target"><span>Српски / srpski</span></a></li><li class="interlanguage-link interwiki-sh mw-list-item"><a href="https://sh.wikipedia.org/wiki/Ekstremno_programiranje" title="Ekstremno programiranje – Serbo-Croatian" lang="sh" hreflang="sh" data-title="Ekstremno programiranje" data-language-autonym="Srpskohrvatski / српскохрватски" data-language-local-name="Serbo-Croatian" class="interlanguage-link-target"><span>Srpskohrvatski / српскохрватски</span></a></li><li class="interlanguage-link interwiki-fi mw-list-item"><a href="https://fi.wikipedia.org/wiki/Extreme_Programming" title="Extreme Programming – Finnish" lang="fi" hreflang="fi" data-title="Extreme Programming" data-language-autonym="Suomi" data-language-local-name="Finnish" class="interlanguage-link-target"><span>Suomi</span></a></li><li class="interlanguage-link interwiki-sv mw-list-item"><a href="https://sv.wikipedia.org/wiki/Extrem_programmering" title="Extrem programmering – Swedish" lang="sv" hreflang="sv" data-title="Extrem programmering" data-language-autonym="Svenska" data-language-local-name="Swedish" class="interlanguage-link-target"><span>Svenska</span></a></li><li class="interlanguage-link interwiki-th mw-list-item"><a href="https://th.wikipedia.org/wiki/Extreme_programming" title="Extreme programming – Thai" lang="th" hreflang="th" data-title="Extreme programming" data-language-autonym="ไทย" data-language-local-name="Thai" class="interlanguage-link-target"><span>ไทย</span></a></li><li class="interlanguage-link interwiki-tr mw-list-item"><a href="https://tr.wikipedia.org/wiki/Ekstrem_programlama" title="Ekstrem programlama – Turkish" lang="tr" hreflang="tr" data-title="Ekstrem programlama" data-language-autonym="Türkçe" data-language-local-name="Turkish" class="interlanguage-link-target"><span>Türkçe</span></a></li><li class="interlanguage-link interwiki-uk mw-list-item"><a href="https://uk.wikipedia.org/wiki/%D0%95%D0%BA%D1%81%D1%82%D1%80%D0%B5%D0%BC%D0%B0%D0%BB%D1%8C%D0%BD%D0%B5_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D1%83%D0%B2%D0%B0%D0%BD%D0%BD%D1%8F" title="Екстремальне програмування – Ukrainian" lang="uk" hreflang="uk" data-title="Екстремальне програмування" data-language-autonym="Українська" data-language-local-name="Ukrainian" class="interlanguage-link-target"><span>Українська</span></a></li><li class="interlanguage-link interwiki-vi mw-list-item"><a href="https://vi.wikipedia.org/wiki/L%E1%BA%ADp_tr%C3%ACnh_c%E1%BB%B1c_h%E1%BA%A1n" title="Lập trình cực hạn – Vietnamese" lang="vi" hreflang="vi" data-title="Lập trình cực hạn" data-language-autonym="Tiếng Việt" data-language-local-name="Vietnamese" class="interlanguage-link-target"><span>Tiếng Việt</span></a></li><li class="interlanguage-link interwiki-zh-yue mw-list-item"><a href="https://zh-yue.wikipedia.org/wiki/%E6%A5%B5%E9%99%90%E7%B7%A8%E7%A8%8B" title="極限編程 – Cantonese" lang="yue" hreflang="yue" data-title="極限編程" data-language-autonym="粵語" data-language-local-name="Cantonese" class="interlanguage-link-target"><span>粵語</span></a></li><li class="interlanguage-link interwiki-zh mw-list-item"><a href="https://zh.wikipedia.org/wiki/%E6%9E%81%E9%99%90%E7%BC%96%E7%A8%8B" title="极限编程 – Chinese" lang="zh" hreflang="zh" data-title="极限编程" data-language-autonym="中文" data-language-local-name="Chinese" class="interlanguage-link-target"><span>中文</span></a></li> </ul> <div class="after-portlet after-portlet-lang"><span class="wb-langlinks-edit wb-langlinks-link"><a href="https://www.wikidata.org/wiki/Special:EntityPage/Q209711#sitelinks-wikipedia" title="Edit interlanguage links" class="wbc-editpage">Edit links</a></span></div> </div> </div> </div> </header> <div class="vector-page-toolbar"> <div class="vector-page-toolbar-container"> <div id="left-navigation"> <nav aria-label="Namespaces"> <div id="p-associated-pages" class="vector-menu vector-menu-tabs mw-portlet mw-portlet-associated-pages" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="ca-nstab-main" class="selected vector-tab-noicon mw-list-item"><a href="/wiki/Extreme_programming" title="View the content page [c]" accesskey="c"><span>Article</span></a></li><li id="ca-talk" class="vector-tab-noicon mw-list-item"><a href="/wiki/Talk:Extreme_programming" rel="discussion" title="Discuss improvements to the content page [t]" accesskey="t"><span>Talk</span></a></li> </ul> </div> </div> <div id="vector-variants-dropdown" class="vector-dropdown emptyPortlet" > <input type="checkbox" id="vector-variants-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-variants-dropdown" class="vector-dropdown-checkbox " aria-label="Change language variant" > <label id="vector-variants-dropdown-label" for="vector-variants-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet" aria-hidden="true" ><span class="vector-dropdown-label-text">English</span> </label> <div class="vector-dropdown-content"> <div id="p-variants" class="vector-menu mw-portlet mw-portlet-variants emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> </div> </div> </nav> </div> <div id="right-navigation" class="vector-collapsible"> <nav aria-label="Views"> <div id="p-views" class="vector-menu vector-menu-tabs mw-portlet mw-portlet-views" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="ca-view" class="selected vector-tab-noicon mw-list-item"><a href="/wiki/Extreme_programming"><span>Read</span></a></li><li id="ca-edit" class="vector-tab-noicon mw-list-item"><a href="/w/index.php?title=Extreme_programming&amp;action=edit" title="Edit this page [e]" accesskey="e"><span>Edit</span></a></li><li id="ca-history" class="vector-tab-noicon mw-list-item"><a href="/w/index.php?title=Extreme_programming&amp;action=history" title="Past revisions of this page [h]" accesskey="h"><span>View history</span></a></li> </ul> </div> </div> </nav> <nav class="vector-page-tools-landmark" aria-label="Page tools"> <div id="vector-page-tools-dropdown" class="vector-dropdown vector-page-tools-dropdown" > <input type="checkbox" id="vector-page-tools-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-page-tools-dropdown" class="vector-dropdown-checkbox " aria-label="Tools" > <label id="vector-page-tools-dropdown-label" for="vector-page-tools-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet" aria-hidden="true" ><span class="vector-dropdown-label-text">Tools</span> </label> <div class="vector-dropdown-content"> <div id="vector-page-tools-unpinned-container" class="vector-unpinned-container"> <div id="vector-page-tools" class="vector-page-tools vector-pinnable-element"> <div class="vector-pinnable-header vector-page-tools-pinnable-header vector-pinnable-header-unpinned" data-feature-name="page-tools-pinned" data-pinnable-element-id="vector-page-tools" data-pinned-container-id="vector-page-tools-pinned-container" data-unpinned-container-id="vector-page-tools-unpinned-container" > <div class="vector-pinnable-header-label">Tools</div> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-page-tools.pin">move to sidebar</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-page-tools.unpin">hide</button> </div> <div id="p-cactions" class="vector-menu mw-portlet mw-portlet-cactions emptyPortlet vector-has-collapsible-items" title="More options" > <div class="vector-menu-heading"> Actions </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="ca-more-view" class="selected vector-more-collapsible-item mw-list-item"><a href="/wiki/Extreme_programming"><span>Read</span></a></li><li id="ca-more-edit" class="vector-more-collapsible-item mw-list-item"><a href="/w/index.php?title=Extreme_programming&amp;action=edit" title="Edit this page [e]" accesskey="e"><span>Edit</span></a></li><li id="ca-more-history" class="vector-more-collapsible-item mw-list-item"><a href="/w/index.php?title=Extreme_programming&amp;action=history"><span>View history</span></a></li> </ul> </div> </div> <div id="p-tb" class="vector-menu mw-portlet mw-portlet-tb" > <div class="vector-menu-heading"> General </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="t-whatlinkshere" class="mw-list-item"><a href="/wiki/Special:WhatLinksHere/Extreme_programming" title="List of all English Wikipedia pages containing links to this page [j]" accesskey="j"><span>What links here</span></a></li><li id="t-recentchangeslinked" class="mw-list-item"><a href="/wiki/Special:RecentChangesLinked/Extreme_programming" rel="nofollow" title="Recent changes in pages linked from this page [k]" accesskey="k"><span>Related changes</span></a></li><li id="t-upload" class="mw-list-item"><a href="//en.wikipedia.org/wiki/Wikipedia:File_Upload_Wizard" title="Upload files [u]" accesskey="u"><span>Upload file</span></a></li><li id="t-permalink" class="mw-list-item"><a href="/w/index.php?title=Extreme_programming&amp;oldid=1273996036" title="Permanent link to this revision of this page"><span>Permanent link</span></a></li><li id="t-info" class="mw-list-item"><a href="/w/index.php?title=Extreme_programming&amp;action=info" title="More information about this page"><span>Page information</span></a></li><li id="t-cite" class="mw-list-item"><a href="/w/index.php?title=Special:CiteThisPage&amp;page=Extreme_programming&amp;id=1273996036&amp;wpFormIdentifier=titleform" title="Information on how to cite this page"><span>Cite this page</span></a></li><li id="t-urlshortener" class="mw-list-item"><a href="/w/index.php?title=Special:UrlShortener&amp;url=https%3A%2F%2Fen.wikipedia.org%2Fwiki%2FExtreme_programming"><span>Get shortened URL</span></a></li><li id="t-urlshortener-qrcode" class="mw-list-item"><a href="/w/index.php?title=Special:QrCode&amp;url=https%3A%2F%2Fen.wikipedia.org%2Fwiki%2FExtreme_programming"><span>Download QR code</span></a></li> </ul> </div> </div> <div id="p-coll-print_export" class="vector-menu mw-portlet mw-portlet-coll-print_export" > <div class="vector-menu-heading"> Print/export </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="coll-download-as-rl" class="mw-list-item"><a href="/w/index.php?title=Special:DownloadAsPdf&amp;page=Extreme_programming&amp;action=show-download-screen" title="Download this page as a PDF file"><span>Download as PDF</span></a></li><li id="t-print" class="mw-list-item"><a href="/w/index.php?title=Extreme_programming&amp;printable=yes" title="Printable version of this page [p]" accesskey="p"><span>Printable version</span></a></li> </ul> </div> </div> <div id="p-wikibase-otherprojects" class="vector-menu mw-portlet mw-portlet-wikibase-otherprojects" > <div class="vector-menu-heading"> In other projects </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li class="wb-otherproject-link wb-otherproject-commons mw-list-item"><a href="https://commons.wikimedia.org/wiki/Category:Extreme_programming" hreflang="en"><span>Wikimedia Commons</span></a></li><li class="wb-otherproject-link wb-otherproject-wikiquote mw-list-item"><a href="https://en.wikiquote.org/wiki/Extreme_programming" hreflang="en"><span>Wikiquote</span></a></li><li class="wb-otherproject-link wb-otherproject-wikiversity mw-list-item"><a href="https://en.wikiversity.org/wiki/Extreme_Programming" hreflang="en"><span>Wikiversity</span></a></li><li id="t-wikibase" class="wb-otherproject-link wb-otherproject-wikibase-dataitem mw-list-item"><a href="https://www.wikidata.org/wiki/Special:EntityPage/Q209711" title="Structured data on this page hosted by Wikidata [g]" accesskey="g"><span>Wikidata item</span></a></li> </ul> </div> </div> </div> </div> </div> </div> </nav> </div> </div> </div> <div class="vector-column-end"> <div class="vector-sticky-pinned-container"> <nav class="vector-page-tools-landmark" aria-label="Page tools"> <div id="vector-page-tools-pinned-container" class="vector-pinned-container"> </div> </nav> <nav class="vector-appearance-landmark" aria-label="Appearance"> <div id="vector-appearance-pinned-container" class="vector-pinned-container"> <div id="vector-appearance" class="vector-appearance vector-pinnable-element"> <div class="vector-pinnable-header vector-appearance-pinnable-header vector-pinnable-header-pinned" data-feature-name="appearance-pinned" data-pinnable-element-id="vector-appearance" data-pinned-container-id="vector-appearance-pinned-container" data-unpinned-container-id="vector-appearance-unpinned-container" > <div class="vector-pinnable-header-label">Appearance</div> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-appearance.pin">move to sidebar</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-appearance.unpin">hide</button> </div> </div> </div> </nav> </div> </div> <div id="bodyContent" class="vector-body" aria-labelledby="firstHeading" data-mw-ve-target-container> <div class="vector-body-before-content"> <div class="mw-indicators"> </div> <div id="siteSub" class="noprint">From Wikipedia, the free encyclopedia</div> </div> <div id="contentSub"><div id="mw-content-subtitle"></div></div> <div id="mw-content-text" class="mw-body-content"><div class="mw-content-ltr mw-parser-output" lang="en" dir="ltr"><div class="shortdescription nomobile noexcerpt noprint searchaux" style="display:none">Software development methodology</div> <p class="mw-empty-elt"> </p> <figure class="mw-default-size" typeof="mw:File/Thumb"><a href="/wiki/File:Extreme_Programming.svg" class="mw-file-description"><img src="//upload.wikimedia.org/wikipedia/commons/thumb/8/84/Extreme_Programming.svg/220px-Extreme_Programming.svg.png" decoding="async" width="220" height="202" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/8/84/Extreme_Programming.svg/330px-Extreme_Programming.svg.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/8/84/Extreme_Programming.svg/440px-Extreme_Programming.svg.png 2x" data-file-width="367" data-file-height="337" /></a><figcaption>Planning and feedback loops in extreme programming</figcaption></figure> <style data-mw-deduplicate="TemplateStyles:r1129693374">.mw-parser-output .hlist dl,.mw-parser-output .hlist ol,.mw-parser-output .hlist ul{margin:0;padding:0}.mw-parser-output .hlist dd,.mw-parser-output .hlist dt,.mw-parser-output .hlist li{margin:0;display:inline}.mw-parser-output .hlist.inline,.mw-parser-output .hlist.inline dl,.mw-parser-output .hlist.inline ol,.mw-parser-output .hlist.inline ul,.mw-parser-output .hlist dl dl,.mw-parser-output .hlist dl ol,.mw-parser-output .hlist dl ul,.mw-parser-output .hlist ol dl,.mw-parser-output .hlist ol ol,.mw-parser-output .hlist ol ul,.mw-parser-output .hlist ul dl,.mw-parser-output .hlist ul ol,.mw-parser-output .hlist ul ul{display:inline}.mw-parser-output .hlist .mw-empty-li{display:none}.mw-parser-output .hlist dt::after{content:": "}.mw-parser-output .hlist dd::after,.mw-parser-output .hlist li::after{content:" · ";font-weight:bold}.mw-parser-output .hlist dd:last-child::after,.mw-parser-output .hlist dt:last-child::after,.mw-parser-output .hlist li:last-child::after{content:none}.mw-parser-output .hlist dd dd:first-child::before,.mw-parser-output .hlist dd dt:first-child::before,.mw-parser-output .hlist dd li:first-child::before,.mw-parser-output .hlist dt dd:first-child::before,.mw-parser-output .hlist dt dt:first-child::before,.mw-parser-output .hlist dt li:first-child::before,.mw-parser-output .hlist li dd:first-child::before,.mw-parser-output .hlist li dt:first-child::before,.mw-parser-output .hlist li li:first-child::before{content:" (";font-weight:normal}.mw-parser-output .hlist dd dd:last-child::after,.mw-parser-output .hlist dd dt:last-child::after,.mw-parser-output .hlist dd li:last-child::after,.mw-parser-output .hlist dt dd:last-child::after,.mw-parser-output .hlist dt dt:last-child::after,.mw-parser-output .hlist dt li:last-child::after,.mw-parser-output .hlist li dd:last-child::after,.mw-parser-output .hlist li dt:last-child::after,.mw-parser-output .hlist li li:last-child::after{content:")";font-weight:normal}.mw-parser-output .hlist ol{counter-reset:listitem}.mw-parser-output .hlist ol>li{counter-increment:listitem}.mw-parser-output .hlist ol>li::before{content:" "counter(listitem)"\a0 "}.mw-parser-output .hlist dd ol>li:first-child::before,.mw-parser-output .hlist dt ol>li:first-child::before,.mw-parser-output .hlist li ol>li:first-child::before{content:" ("counter(listitem)"\a0 "}</style><style data-mw-deduplicate="TemplateStyles:r1246091330">.mw-parser-output .sidebar{width:22em;float:right;clear:right;margin:0.5em 0 1em 1em;background:var(--background-color-neutral-subtle,#f8f9fa);border:1px solid var(--border-color-base,#a2a9b1);padding:0.2em;text-align:center;line-height:1.4em;font-size:88%;border-collapse:collapse;display:table}body.skin-minerva .mw-parser-output .sidebar{display:table!important;float:right!important;margin:0.5em 0 1em 1em!important}.mw-parser-output .sidebar-subgroup{width:100%;margin:0;border-spacing:0}.mw-parser-output .sidebar-left{float:left;clear:left;margin:0.5em 1em 1em 0}.mw-parser-output .sidebar-none{float:none;clear:both;margin:0.5em 1em 1em 0}.mw-parser-output .sidebar-outer-title{padding:0 0.4em 0.2em;font-size:125%;line-height:1.2em;font-weight:bold}.mw-parser-output .sidebar-top-image{padding:0.4em}.mw-parser-output .sidebar-top-caption,.mw-parser-output .sidebar-pretitle-with-top-image,.mw-parser-output .sidebar-caption{padding:0.2em 0.4em 0;line-height:1.2em}.mw-parser-output .sidebar-pretitle{padding:0.4em 0.4em 0;line-height:1.2em}.mw-parser-output .sidebar-title,.mw-parser-output .sidebar-title-with-pretitle{padding:0.2em 0.8em;font-size:145%;line-height:1.2em}.mw-parser-output .sidebar-title-with-pretitle{padding:0.1em 0.4em}.mw-parser-output .sidebar-image{padding:0.2em 0.4em 0.4em}.mw-parser-output .sidebar-heading{padding:0.1em 0.4em}.mw-parser-output .sidebar-content{padding:0 0.5em 0.4em}.mw-parser-output .sidebar-content-with-subgroup{padding:0.1em 0.4em 0.2em}.mw-parser-output .sidebar-above,.mw-parser-output .sidebar-below{padding:0.3em 0.8em;font-weight:bold}.mw-parser-output .sidebar-collapse .sidebar-above,.mw-parser-output .sidebar-collapse .sidebar-below{border-top:1px solid #aaa;border-bottom:1px solid #aaa}.mw-parser-output .sidebar-navbar{text-align:right;font-size:115%;padding:0 0.4em 0.4em}.mw-parser-output .sidebar-list-title{padding:0 0.4em;text-align:left;font-weight:bold;line-height:1.6em;font-size:105%}.mw-parser-output .sidebar-list-title-c{padding:0 0.4em;text-align:center;margin:0 3.3em}@media(max-width:640px){body.mediawiki .mw-parser-output .sidebar{width:100%!important;clear:both;float:none!important;margin-left:0!important;margin-right:0!important}}body.skin--responsive .mw-parser-output .sidebar a>img{max-width:none!important}@media screen{html.skin-theme-clientpref-night .mw-parser-output .sidebar:not(.notheme) .sidebar-list-title,html.skin-theme-clientpref-night .mw-parser-output .sidebar:not(.notheme) .sidebar-title-with-pretitle{background:transparent!important}html.skin-theme-clientpref-night .mw-parser-output .sidebar:not(.notheme) .sidebar-title-with-pretitle a{color:var(--color-progressive)!important}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .sidebar:not(.notheme) .sidebar-list-title,html.skin-theme-clientpref-os .mw-parser-output .sidebar:not(.notheme) .sidebar-title-with-pretitle{background:transparent!important}html.skin-theme-clientpref-os .mw-parser-output .sidebar:not(.notheme) .sidebar-title-with-pretitle a{color:var(--color-progressive)!important}}@media print{body.ns-0 .mw-parser-output .sidebar{display:none!important}}</style><table class="sidebar sidebar-collapse nomobile"><tbody><tr><td class="sidebar-pretitle">Part of a series on</td></tr><tr><th class="sidebar-title-with-pretitle"><a href="/wiki/Software_development" title="Software development">Software development</a></th></tr><tr><td class="sidebar-content"> <div class="sidebar-list mw-collapsible mw-collapsed"><div class="sidebar-list-title" style="color: var(--color-base)">Core activities</div><div class="sidebar-list-content mw-collapsible-content hlist"> <ul><li><a href="/wiki/Data_modeling" title="Data modeling">Data modeling</a></li> <li><a href="/wiki/Software_development_process" title="Software development process">Processes</a></li> <li><a href="/wiki/Requirements_analysis" title="Requirements analysis">Requirements</a></li> <li><a href="/wiki/Software_design" title="Software design">Design</a></li> <li><a href="/wiki/Software_construction" title="Software construction">Construction</a></li> <li><a href="/wiki/Software_engineering" title="Software engineering">Engineering</a></li> <li><a href="/wiki/Software_testing" title="Software testing">Testing</a></li> <li><a href="/wiki/Debugging" title="Debugging">Debugging</a></li> <li><a href="/wiki/Software_deployment" title="Software deployment">Deployment</a></li> <li><a href="/wiki/Software_maintenance" title="Software maintenance">Maintenance</a></li></ul></div></div></td> </tr><tr><td class="sidebar-content"> <div class="sidebar-list mw-collapsible mw-collapsed"><div class="sidebar-list-title" style="color: var(--color-base)">Paradigms and models</div><div class="sidebar-list-content mw-collapsible-content hlist"> <ul><li><a href="/wiki/Agile_software_development" title="Agile software development">Agile</a></li> <li><a href="/wiki/Cleanroom_software_engineering" title="Cleanroom software engineering">Cleanroom</a></li> <li><a href="/wiki/Incremental_build_model" title="Incremental build model">Incremental</a></li> <li><a href="/wiki/Software_prototyping" title="Software prototyping">Prototyping</a></li> <li><a href="/wiki/Spiral_model" title="Spiral model">Spiral</a></li> <li><a href="/wiki/V-model_(software_development)" title="V-model (software development)">V model</a></li> <li><a href="/wiki/Waterfall_model" title="Waterfall model">Waterfall</a></li></ul></div></div></td> </tr><tr><td class="sidebar-content"> <div class="sidebar-list mw-collapsible mw-collapsed"><div class="sidebar-list-title" style="color: var(--color-base)"><a href="/wiki/Software_development_methodology" class="mw-redirect" title="Software development methodology">Methodologies</a> and frameworks</div><div class="sidebar-list-content mw-collapsible-content hlist"> <ul><li><a href="/wiki/Adaptive_software_development" title="Adaptive software development">ASD</a></li> <li><a href="/wiki/Disciplined_agile_delivery" title="Disciplined agile delivery">DAD</a></li> <li><a href="/wiki/DevOps" title="DevOps">DevOps</a></li> <li><a href="/wiki/Dynamic_systems_development_method" title="Dynamic systems development method">DSDM</a></li> <li><a href="/wiki/Feature-driven_development" title="Feature-driven development">FDD</a></li> <li><a href="/wiki/Iterative_and_incremental_development" title="Iterative and incremental development">IID</a></li> <li><a href="/wiki/Kanban_(development)" title="Kanban (development)">Kanban</a></li> <li><a href="/wiki/Lean_software_development" title="Lean software development">Lean SD</a></li> <li><a href="/wiki/Scrum_(software_development)#Large-scale_Scrum" title="Scrum (software development)">LeSS</a></li> <li><a href="/wiki/Model-driven_development" class="mw-redirect" title="Model-driven development">MDD</a></li> <li><a href="/wiki/Microsoft_Solutions_Framework" title="Microsoft Solutions Framework">MSF</a></li> <li><a href="/wiki/Personal_software_process" title="Personal software process">PSP</a></li> <li><a href="/wiki/Rapid_application_development" title="Rapid application development">RAD</a></li> <li><a href="/wiki/Rational_unified_process" title="Rational unified process">RUP</a></li> <li><a href="/wiki/Scaled_agile_framework" title="Scaled agile framework">SAFe</a></li> <li><a href="/wiki/Scrum_(software_development)" title="Scrum (software development)">Scrum</a></li> <li><a href="/wiki/SEMAT" title="SEMAT">SEMAT</a></li> <li><a href="/wiki/Test-driven_development" title="Test-driven development">TDD</a></li> <li><a href="/wiki/Team_software_process" title="Team software process">TSP</a></li> <li><a href="/wiki/Unified_process" title="Unified process">UP</a></li> <li><a class="mw-selflink selflink">XP</a></li></ul></div></div></td> </tr><tr><td class="sidebar-content"> <div class="sidebar-list mw-collapsible mw-collapsed"><div class="sidebar-list-title" style="color: var(--color-base)">Supporting disciplines</div><div class="sidebar-list-content mw-collapsible-content hlist"> <ul><li><a href="/wiki/Software_configuration_management" title="Software configuration management">Configuration management</a></li> <li><a href="/wiki/Deployment_management#Computer_science" title="Deployment management">Deployment management</a></li> <li><a href="/wiki/Software_documentation" title="Software documentation">Documentation</a></li> <li><a href="/wiki/Software_project_management" title="Software project management">Project management</a></li> <li><a href="/wiki/Software_quality_assurance" title="Software quality assurance">Quality assurance</a></li> <li><a href="/wiki/User_experience" title="User experience">User experience</a></li></ul></div></div></td> </tr><tr><td class="sidebar-content"> <div class="sidebar-list mw-collapsible mw-collapsed"><div class="sidebar-list-title" style="color: var(--color-base)">Practices</div><div class="sidebar-list-content mw-collapsible-content hlist"> <ul><li><a href="/wiki/Acceptance_test-driven_development" title="Acceptance test-driven development">ATDD</a></li> <li><a href="/wiki/Behavior-driven_development" title="Behavior-driven development">BDD</a></li> <li><a href="/wiki/Extreme_programming_practices#Collective_code_ownership" title="Extreme programming practices">CCO</a></li> <li><a href="/wiki/Continuous_delivery" title="Continuous delivery">CD</a></li> <li><a href="/wiki/Continuous_integration" title="Continuous integration">CI</a></li> <li><a href="/wiki/Domain-driven_design" title="Domain-driven design">DDD</a></li> <li><a href="/wiki/Pair_programming" title="Pair programming">PP</a></li> <li><a href="/wiki/Specification_by_example" title="Specification by example">SBE</a></li> <li><a href="/wiki/Stand-up_meeting" title="Stand-up meeting">Stand-up</a></li> <li><a href="/wiki/Test-driven_development" title="Test-driven development">TDD</a></li></ul></div></div></td> </tr><tr><td class="sidebar-content"> <div class="sidebar-list mw-collapsible mw-collapsed"><div class="sidebar-list-title" style="color: var(--color-base)"><a href="/wiki/Programming_tool" title="Programming tool">Tools</a></div><div class="sidebar-list-content mw-collapsible-content hlist"> <ul><li><a href="/wiki/Build_automation" title="Build automation">Build automation</a></li> <li><a href="/wiki/Compiler" title="Compiler">Compiler</a></li> <li><a href="/wiki/Debugger" title="Debugger">Debugger</a></li> <li><a href="/wiki/Graphical_user_interface_builder" title="Graphical user interface builder">GUI builder</a></li> <li><a href="/wiki/Integrated_development_environment" title="Integrated development environment">IDE</a></li> <li><a href="/wiki/Infrastructure_as_code" title="Infrastructure as code">Infrastructure as code</a></li> <li><a href="/wiki/Profiling_(computer_programming)" title="Profiling (computer programming)">Profiler</a></li> <li><a href="/wiki/Application-release_automation" title="Application-release automation">Release automation</a></li> <li><a href="/wiki/UML_tool" title="UML tool">UML Modeling</a></li></ul></div></div></td> </tr><tr><td class="sidebar-content"> <div class="sidebar-list mw-collapsible mw-collapsed"><div class="sidebar-list-title" style="color: var(--color-base)">Standards and bodies of knowledge</div><div class="sidebar-list-content mw-collapsible-content hlist"> <ul><li><a href="/wiki/Capability_Maturity_Model_Integration" title="Capability Maturity Model Integration">CMMI</a></li> <li><a href="/wiki/IEEE_Standards_Association" title="IEEE Standards Association">IEEE standards</a></li> <li><a href="/wiki/International_Requirements_Engineering_Board" title="International Requirements Engineering Board">IREB</a></li> <li><a href="/wiki/ISO_9001" class="mw-redirect" title="ISO 9001">ISO 9001</a></li> <li><a href="/wiki/ISO/IEC_JTC_1/SC_7" title="ISO/IEC JTC 1/SC 7">ISO/IEC standards</a></li> <li><a href="/wiki/ITIL" title="ITIL">ITIL</a></li> <li><a href="/wiki/Object_Management_Group" title="Object Management Group">OMG</a></li> <li><a href="/wiki/Project_Management_Body_of_Knowledge" title="Project Management Body of Knowledge">PMBOK</a></li> <li><a href="/wiki/Software_Engineering_Body_of_Knowledge" title="Software Engineering Body of Knowledge">SWEBOK</a></li></ul></div></div></td> </tr><tr><td class="sidebar-content"> <div class="sidebar-list mw-collapsible mw-collapsed"><div class="sidebar-list-title" style="color: var(--color-base)">Glossaries</div><div class="sidebar-list-content mw-collapsible-content hlist"> <ul><li><a href="/wiki/Glossary_of_artificial_intelligence" title="Glossary of artificial intelligence">Artificial intelligence</a></li> <li><a href="/wiki/Glossary_of_computer_science" title="Glossary of computer science">Computer science</a></li> <li><a href="/wiki/Glossary_of_electrical_and_electronics_engineering" title="Glossary of electrical and electronics engineering">Electrical and electronics engineering</a></li></ul></div></div></td> </tr><tr><td class="sidebar-content"> <div class="sidebar-list mw-collapsible mw-collapsed"><div class="sidebar-list-title" style="color: var(--color-base)">Outlines</div><div class="sidebar-list-content mw-collapsible-content hlist"> <ul><li><a href="/wiki/Outline_of_software_development" title="Outline of software development">Outline of software development</a></li></ul></div></div></td> </tr><tr><td class="sidebar-navbar"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1129693374" /><style data-mw-deduplicate="TemplateStyles:r1239400231">.mw-parser-output .navbar{display:inline;font-size:88%;font-weight:normal}.mw-parser-output .navbar-collapse{float:left;text-align:left}.mw-parser-output .navbar-boxtext{word-spacing:0}.mw-parser-output .navbar ul{display:inline-block;white-space:nowrap;line-height:inherit}.mw-parser-output .navbar-brackets::before{margin-right:-0.125em;content:"[ "}.mw-parser-output .navbar-brackets::after{margin-left:-0.125em;content:" ]"}.mw-parser-output .navbar li{word-spacing:-0.125em}.mw-parser-output .navbar a>span,.mw-parser-output .navbar a>abbr{text-decoration:inherit}.mw-parser-output .navbar-mini abbr{font-variant:small-caps;border-bottom:none;text-decoration:none;cursor:inherit}.mw-parser-output .navbar-ct-full{font-size:114%;margin:0 7em}.mw-parser-output .navbar-ct-mini{font-size:114%;margin:0 4em}html.skin-theme-clientpref-night .mw-parser-output .navbar li a abbr{color:var(--color-base)!important}@media(prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .navbar li a abbr{color:var(--color-base)!important}}@media print{.mw-parser-output .navbar{display:none!important}}</style><div class="navbar plainlinks hlist navbar-mini"><ul><li class="nv-view"><a href="/wiki/Template:Software_development_process" title="Template:Software development process"><abbr title="View this template">v</abbr></a></li><li class="nv-talk"><a href="/wiki/Template_talk:Software_development_process" title="Template talk:Software development process"><abbr title="Discuss this template">t</abbr></a></li><li class="nv-edit"><a href="/wiki/Special:EditPage/Template:Software_development_process" title="Special:EditPage/Template:Software development process"><abbr title="Edit this template">e</abbr></a></li></ul></div></td></tr></tbody></table> <p><b>Extreme programming</b> (<b>XP</b>) is a <a href="/wiki/Software_development_methodology" class="mw-redirect" title="Software development methodology">software development methodology</a> intended to improve <a href="/wiki/Software_quality" title="Software quality">software quality</a> and responsiveness to changing customer requirements. As a type of <a href="/wiki/Agile_software_development" title="Agile software development">agile software development</a>,<sup id="cite_ref-Informatics85_1-0" class="reference"><a href="#cite_note-Informatics85-1"><span class="cite-bracket">&#91;</span>1<span class="cite-bracket">&#93;</span></a></sup><sup id="cite_ref-UPenn49_2-0" class="reference"><a href="#cite_note-UPenn49-2"><span class="cite-bracket">&#91;</span>2<span class="cite-bracket">&#93;</span></a></sup><sup id="cite_ref-USFCA601_3-0" class="reference"><a href="#cite_note-USFCA601-3"><span class="cite-bracket">&#91;</span>3<span class="cite-bracket">&#93;</span></a></sup> it advocates frequent <a href="/wiki/Software_release_life_cycle" title="Software release life cycle">releases</a> in short development cycles, intended to improve productivity and introduce checkpoints at which new customer requirements can be adopted. </p><p>Other elements of extreme programming include programming <a href="/wiki/Pair_programming" title="Pair programming">in pairs</a> or doing extensive <a href="/wiki/Code_review" title="Code review">code review</a>, <a href="/wiki/Unit_testing" title="Unit testing">unit testing</a> of all code, <a href="/wiki/You_aren%27t_gonna_need_it" title="You aren&#39;t gonna need it">not programming features until they are actually needed</a>, a flat management structure, code simplicity and clarity, expecting changes in the customer's requirements as time passes and the problem is better understood, and frequent communication with the customer and among programmers.<sup id="cite_ref-UPenn49_2-1" class="reference"><a href="#cite_note-UPenn49-2"><span class="cite-bracket">&#91;</span>2<span class="cite-bracket">&#93;</span></a></sup><sup id="cite_ref-USFCA601_3-1" class="reference"><a href="#cite_note-USFCA601-3"><span class="cite-bracket">&#91;</span>3<span class="cite-bracket">&#93;</span></a></sup><sup id="cite_ref-MASD_4-0" class="reference"><a href="#cite_note-MASD-4"><span class="cite-bracket">&#91;</span>4<span class="cite-bracket">&#93;</span></a></sup> The methodology takes its name from the idea that the beneficial elements of traditional software engineering practices are taken to "extreme" levels. As an example, <a href="/wiki/Code_review" title="Code review">code reviews</a> are considered a beneficial practice; taken to the extreme, code can be reviewed <i>continuously</i> (i.e. the practice of <a href="/wiki/Pair_programming" title="Pair programming">pair programming</a>). </p> <style data-mw-deduplicate="TemplateStyles:r886046785">.mw-parser-output .toclimit-2 .toclevel-1 ul,.mw-parser-output .toclimit-3 .toclevel-2 ul,.mw-parser-output .toclimit-4 .toclevel-3 ul,.mw-parser-output .toclimit-5 .toclevel-4 ul,.mw-parser-output .toclimit-6 .toclevel-5 ul,.mw-parser-output .toclimit-7 .toclevel-6 ul{display:none}</style><div class="toclimit-3"><meta property="mw:PageProp/toc" /></div> <div class="mw-heading mw-heading2"><h2 id="History">History</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Extreme_programming&amp;action=edit&amp;section=1" title="Edit section: History"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p><a href="/wiki/Kent_Beck" title="Kent Beck">Kent Beck</a> developed extreme programming during his work on the <a href="/wiki/Chrysler_Comprehensive_Compensation_System" title="Chrysler Comprehensive Compensation System">Chrysler Comprehensive Compensation System</a> (C3) payroll <a href="/wiki/Project" title="Project">project</a>.<sup id="cite_ref-Cworld92_5-0" class="reference"><a href="#cite_note-Cworld92-5"><span class="cite-bracket">&#91;</span>5<span class="cite-bracket">&#93;</span></a></sup> Beck became the C3 <a href="/wiki/Project_management" title="Project management">project leader</a> in March 1996. He began to refine the development methodology used in the project and wrote a book on the methodology (<i>Extreme Programming Explained</i>, published in October 1999).<sup id="cite_ref-Cworld92_5-1" class="reference"><a href="#cite_note-Cworld92-5"><span class="cite-bracket">&#91;</span>5<span class="cite-bracket">&#93;</span></a></sup> <a href="/wiki/Chrysler" title="Chrysler">Chrysler</a> cancelled the C3 project in February 2000, after seven years, when <a href="/wiki/Daimler-Benz" class="mw-redirect" title="Daimler-Benz">Daimler-Benz</a> acquired the company.<sup id="cite_ref-SR_6-0" class="reference"><a href="#cite_note-SR-6"><span class="cite-bracket">&#91;</span>6<span class="cite-bracket">&#93;</span></a></sup> <a href="/wiki/Ward_Cunningham" title="Ward Cunningham">Ward Cunningham</a> was another major influence on XP. </p><p>Many extreme-programming practices have been around for some time; the methodology takes "<a href="/wiki/Best_practices" class="mw-redirect" title="Best practices">best practices</a>" to extreme levels. For example, the "practice of test-first development, planning and writing tests before each micro-increment" was used as early as NASA's <a href="/wiki/Project_Mercury" title="Project Mercury">Project Mercury</a>, in the early 1960s.<sup id="cite_ref-FOOTNOTELarmanBasili2003_7-0" class="reference"><a href="#cite_note-FOOTNOTELarmanBasili2003-7"><span class="cite-bracket">&#91;</span>7<span class="cite-bracket">&#93;</span></a></sup> To shorten the total development time, some formal test documents (such as for <a href="/wiki/Acceptance_testing" title="Acceptance testing">acceptance testing</a>) have been developed in parallel with (or shortly before) the software being ready for testing. A NASA independent test group can write the test procedures, based on formal requirements and logical limits, before programmers write the software and integrate it with the hardware. XP takes this concept to the extreme level, writing automated tests (sometimes inside software modules) which validate the operation of even small sections of software coding, rather than only testing the larger features. </p> <div class="mw-heading mw-heading3"><h3 id="Origins">Origins</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Extreme_programming&amp;action=edit&amp;section=2" title="Edit section: Origins"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Two major influences shaped software development in the 1990s: </p> <ul><li>Internally, <a href="/wiki/Object-oriented_programming" title="Object-oriented programming">object-oriented programming</a> replaced <a href="/wiki/Procedural_programming" title="Procedural programming">procedural programming</a> as the programming paradigm favored by some developers.</li> <li>Externally, the rise of the Internet and the <a href="/wiki/Dot-com_boom" class="mw-redirect" title="Dot-com boom">dot-com boom</a> emphasized speed-to-market and company growth as competitive business factors.</li></ul> <p>Rapidly changing requirements demanded shorter <a href="/wiki/Product_life_cycle_management" class="mw-redirect" title="Product life cycle management">product life-cycles</a>, and often clashed with traditional methods of software development. </p><p>The Chrysler Comprehensive Compensation System (C3) started in order to determine the best way to use object technologies, using the payroll systems at Chrysler as the object of research, with <a href="/wiki/Smalltalk" title="Smalltalk">Smalltalk</a> as the language and <a href="/wiki/Gemstone_Database_Management_System" class="mw-redirect" title="Gemstone Database Management System"> GemStone</a> as the <a href="/wiki/Data_access_layer" title="Data access layer">data access layer</a>. Chrysler brought in <a href="/wiki/Kent_Beck" title="Kent Beck">Kent Beck</a>,<sup id="cite_ref-Cworld92_5-2" class="reference"><a href="#cite_note-Cworld92-5"><span class="cite-bracket">&#91;</span>5<span class="cite-bracket">&#93;</span></a></sup> a prominent Smalltalk practitioner, to do <a href="/wiki/Performance_tuning" title="Performance tuning">performance tuning</a> on the system, but his role expanded as he noted several problems with the development process. He took this opportunity to propose and implement some changes in development practices - based on his work with his frequent collaborator, <a href="/wiki/Ward_Cunningham" title="Ward Cunningham">Ward Cunningham</a>. Beck describes the early conception of the methods:<sup id="cite_ref-8" class="reference"><a href="#cite_note-8"><span class="cite-bracket">&#91;</span>8<span class="cite-bracket">&#93;</span></a></sup> </p> <style data-mw-deduplicate="TemplateStyles:r1244412712">.mw-parser-output .templatequote{overflow:hidden;margin:1em 0;padding:0 32px}.mw-parser-output .templatequotecite{line-height:1.5em;text-align:left;margin-top:0}@media(min-width:500px){.mw-parser-output .templatequotecite{padding-left:1.6em}}</style><blockquote class="templatequote"><p>The first time I was asked to lead a team, I asked them to do a little bit of the things I thought were sensible, like testing and reviews. The second time there was a lot more on the line. I thought, "Damn the torpedoes, at least this will make a good article," [and] asked the team to crank up all the knobs to 10 on the things I thought were essential and leave out everything else.</p></blockquote> <p>Beck invited <a href="/wiki/Ron_Jeffries" title="Ron Jeffries">Ron Jeffries</a> to the project to help develop and refine these methods. Jeffries thereafter acted as a coach to instill the practices as habits in the C3 team. </p><p>Information about the principles and practices behind XP disseminated to the wider world through discussions on the original <a href="/wiki/Wiki" title="Wiki">wiki</a>, Cunningham's <a href="/wiki/WikiWikiWeb" title="WikiWikiWeb">WikiWikiWeb</a>. Various contributors discussed and expanded upon the ideas, and some spin-off methodologies resulted (see <a href="/wiki/Agile_software_development" title="Agile software development">agile software development</a>). Also, XP concepts have been explained<sup class="noprint Inline-Template" style="white-space:nowrap;">&#91;<i><a href="/wiki/Wikipedia:Manual_of_Style/Words_to_watch#Unsupported_attributions" title="Wikipedia:Manual of Style/Words to watch"><span title="The material near this tag may use weasel words or too-vague attribution. (August 2019)">by whom?</span></a></i>&#93;</sup>, for several years, using a <a href="/wiki/Hypertext" title="Hypertext">hypertext</a> system map on the XP website at <a rel="nofollow" class="external free" href="http://www.extremeprogramming.org">http://www.extremeprogramming.org</a> <abbr title="circa">c.</abbr><span style="white-space:nowrap;">&#8201;1999</span>. </p><p>Beck edited a series of books on XP, beginning with his own <i>Extreme Programming Explained</i> (1999, <style data-mw-deduplicate="TemplateStyles:r1238218222">.mw-parser-output cite.citation{font-style:inherit;word-wrap:break-word}.mw-parser-output .citation q{quotes:"\"""\"""'""'"}.mw-parser-output .citation:target{background-color:rgba(0,127,255,0.133)}.mw-parser-output .id-lock-free.id-lock-free a{background:url("//upload.wikimedia.org/wikipedia/commons/6/65/Lock-green.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-limited.id-lock-limited a,.mw-parser-output .id-lock-registration.id-lock-registration a{background:url("//upload.wikimedia.org/wikipedia/commons/d/d6/Lock-gray-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-subscription.id-lock-subscription a{background:url("//upload.wikimedia.org/wikipedia/commons/a/aa/Lock-red-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .cs1-ws-icon a{background:url("//upload.wikimedia.org/wikipedia/commons/4/4c/Wikisource-logo.svg")right 0.1em center/12px no-repeat}body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-free a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-limited a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-registration a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-subscription a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .cs1-ws-icon a{background-size:contain;padding:0 1em 0 0}.mw-parser-output .cs1-code{color:inherit;background:inherit;border:none;padding:inherit}.mw-parser-output .cs1-hidden-error{display:none;color:var(--color-error,#d33)}.mw-parser-output .cs1-visible-error{color:var(--color-error,#d33)}.mw-parser-output .cs1-maint{display:none;color:#085;margin-left:0.3em}.mw-parser-output .cs1-kern-left{padding-left:0.2em}.mw-parser-output .cs1-kern-right{padding-right:0.2em}.mw-parser-output .citation .mw-selflink{font-weight:inherit}@media screen{.mw-parser-output .cs1-format{font-size:95%}html.skin-theme-clientpref-night .mw-parser-output .cs1-maint{color:#18911f}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .cs1-maint{color:#18911f}}</style><a href="/wiki/ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a>&#160;<a href="/wiki/Special:BookSources/0-201-61641-6" title="Special:BookSources/0-201-61641-6">0-201-61641-6</a>), spreading his ideas to a much larger audience. Authors in the series went through various aspects attending XP and its practices. The series included a book critical of the practices. </p> <div class="mw-heading mw-heading3"><h3 id="Current_state">Current state</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Extreme_programming&amp;action=edit&amp;section=3" title="Edit section: Current state"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>XP generated significant interest among software communities in the late 1990s and early 2000s, seeing adoption in a number of environments radically different from its origins. </p><p>The high discipline required by the original practices often went by the wayside, causing some of these practices, such as those thought too rigid, to be deprecated or reduced, or even left unfinished, on individual sites. For example, the practice of end-of-day <a href="/wiki/Integration_test" class="mw-redirect" title="Integration test">integration tests</a> for a particular project could be changed to an end-of-week schedule, or simply reduced to testing on mutually agreed dates. Such a more relaxed schedule could avoid people feeling rushed to generate artificial stubs just to pass the end-of-day testing. A less-rigid schedule allows, instead, the development of complex features over a period of several days. </p><p>Meanwhile, other agile-development practices have not stood still, and as of 2019<sup class="plainlinks noexcerpt noprint asof-tag update" style="display:none;"><a class="external text" href="https://en.wikipedia.org/w/index.php?title=Extreme_programming&amp;action=edit">&#91;update&#93;</a></sup> XP continues to evolve, assimilating more lessons from experiences in the field, to use other practices. In the second edition of <i>Extreme Programming Explained</i> (November 2004), five years after the first edition, Beck added more values and practices and differentiated between primary and corollary practices. </p> <div class="mw-heading mw-heading2"><h2 id="Concept">Concept</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Extreme_programming&amp;action=edit&amp;section=4" title="Edit section: Concept"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <style data-mw-deduplicate="TemplateStyles:r1251242444">.mw-parser-output .ambox{border:1px solid #a2a9b1;border-left:10px solid #36c;background-color:#fbfbfb;box-sizing:border-box}.mw-parser-output .ambox+link+.ambox,.mw-parser-output .ambox+link+style+.ambox,.mw-parser-output .ambox+link+link+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+style+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+link+.ambox{margin-top:-1px}html body.mediawiki .mw-parser-output .ambox.mbox-small-left{margin:4px 1em 4px 0;overflow:hidden;width:238px;border-collapse:collapse;font-size:88%;line-height:1.25em}.mw-parser-output .ambox-speedy{border-left:10px solid #b32424;background-color:#fee7e6}.mw-parser-output .ambox-delete{border-left:10px solid #b32424}.mw-parser-output .ambox-content{border-left:10px solid #f28500}.mw-parser-output .ambox-style{border-left:10px solid #fc3}.mw-parser-output .ambox-move{border-left:10px solid #9932cc}.mw-parser-output .ambox-protection{border-left:10px solid #a2a9b1}.mw-parser-output .ambox .mbox-text{border:none;padding:0.25em 0.5em;width:100%}.mw-parser-output .ambox .mbox-image{border:none;padding:2px 0 2px 0.5em;text-align:center}.mw-parser-output .ambox .mbox-imageright{border:none;padding:2px 0.5em 2px 0;text-align:center}.mw-parser-output .ambox .mbox-empty-cell{border:none;padding:0;width:1px}.mw-parser-output .ambox .mbox-image-div{width:52px}@media(min-width:720px){.mw-parser-output .ambox{margin:0 10%}}@media print{body.ns-0 .mw-parser-output .ambox{display:none!important}}</style><table class="box-More_citations_needed_section plainlinks metadata ambox ambox-content ambox-Refimprove" role="presentation"><tbody><tr><td class="mbox-image"><div class="mbox-image-div"><span typeof="mw:File"><a href="/wiki/File:Question_book-new.svg" class="mw-file-description"><img alt="" src="//upload.wikimedia.org/wikipedia/en/thumb/9/99/Question_book-new.svg/50px-Question_book-new.svg.png" decoding="async" width="50" height="39" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/en/thumb/9/99/Question_book-new.svg/75px-Question_book-new.svg.png 1.5x, //upload.wikimedia.org/wikipedia/en/thumb/9/99/Question_book-new.svg/100px-Question_book-new.svg.png 2x" data-file-width="512" data-file-height="399" /></a></span></div></td><td class="mbox-text"><div class="mbox-text-span">This section <b>needs additional citations for <a href="/wiki/Wikipedia:Verifiability" title="Wikipedia:Verifiability">verification</a></b>.<span class="hide-when-compact"> Please help <a href="/wiki/Special:EditPage/Extreme_programming" title="Special:EditPage/Extreme programming">improve this article</a> by <a href="/wiki/Help:Referencing_for_beginners" title="Help:Referencing for beginners">adding citations to reliable sources</a>&#32;in this section. Unsourced material may be challenged and removed.</span> <span class="date-container"><i>(<span class="date">February 2025</span>)</i></span><span class="hide-when-compact"><i> (<small><a href="/wiki/Help:Maintenance_template_removal" title="Help:Maintenance template removal">Learn how and when to remove this message</a></small>)</i></span></div></td></tr></tbody></table> <div class="mw-heading mw-heading3"><h3 id="Goals">Goals</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Extreme_programming&amp;action=edit&amp;section=5" title="Edit section: Goals"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p><i>Extreme Programming Explained</i> describes extreme programming as a software-development discipline that organizes people to produce higher-quality software more productively. </p><p>XP attempts to reduce the cost of changes in requirements by having multiple short development cycles, rather than a long one. In this doctrine, changes are a natural, inescapable and desirable aspect of software-development projects, and should be planned for, instead of attempting to define a stable set of requirements. </p><p>Extreme programming also introduces a number of basic values, principles and practices on top of the agile methodology. </p> <div class="mw-heading mw-heading3"><h3 id="Activities">Activities</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Extreme_programming&amp;action=edit&amp;section=6" title="Edit section: Activities"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>XP describes four basic activities that are performed within the software development process: coding, testing, listening, and designing. Each of those activities is described below. </p> <div class="mw-heading mw-heading4"><h4 id="Coding">Coding</h4><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Extreme_programming&amp;action=edit&amp;section=7" title="Edit section: Coding"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>The advocates of XP argue that the only truly important product of the system development process is code – software instructions that a computer can interpret. Without code, there is no working product. </p><p>Coding can be used to figure out the most suitable solution. Coding can also help to communicate thoughts about programming problems. A programmer dealing with a complex programming problem, or finding it hard to explain the solution to fellow programmers, might code it in a simplified manner and use the code to demonstrate what they mean. Code, say the proponents of this position, is always clear and concise and cannot be interpreted in more than one way. Other programmers can give feedback on this code by also coding their thoughts. </p> <div class="mw-heading mw-heading4"><h4 id="Testing">Testing</h4><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Extreme_programming&amp;action=edit&amp;section=8" title="Edit section: Testing"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <style data-mw-deduplicate="TemplateStyles:r1236090951">.mw-parser-output .hatnote{font-style:italic}.mw-parser-output div.hatnote{padding-left:1.6em;margin-bottom:0.5em}.mw-parser-output .hatnote i{font-style:normal}.mw-parser-output .hatnote+link+.hatnote{margin-top:-0.5em}@media print{body.ns-0 .mw-parser-output .hatnote{display:none!important}}</style><div role="note" class="hatnote navigation-not-searchable">Main article: <a href="/wiki/Test-driven_development" title="Test-driven development">Test-driven development</a></div> <p>Testing is central to extreme programming.<sup id="cite_ref-9" class="reference"><a href="#cite_note-9"><span class="cite-bracket">&#91;</span>9<span class="cite-bracket">&#93;</span></a></sup> Extreme programming's approach is that if a little testing can eliminate a few flaws, a lot of testing can eliminate many more flaws. </p> <ul><li><a href="/wiki/Unit_test" class="mw-redirect" title="Unit test">Unit tests</a> determine whether a given feature works as intended. Programmers write as many automated tests as they can think of that might "break" the code; if all tests run successfully, then the coding is complete. Every piece of code that is written is tested before moving on to the next feature.</li> <li><a href="/wiki/Acceptance_test" class="mw-redirect" title="Acceptance test">Acceptance tests</a> verify that the requirements as understood by the programmers satisfy the customer's actual requirements.</li></ul> <p>System-wide <a href="/wiki/Integration_testing" title="Integration testing">integration testing</a> was encouraged, initially, as a daily end-of-day activity, for early detection of incompatible interfaces, to reconnect before the separate sections diverged widely from coherent functionality. However, system-wide integration testing has been reduced, to weekly, or less often, depending on the stability of the overall interfaces in the system.<sup class="noprint Inline-Template Template-Fact" style="white-space:nowrap;">&#91;<i><a href="/wiki/Wikipedia:Citation_needed" title="Wikipedia:Citation needed"><span title="This claim needs references to reliable sources. (January 2013)">citation needed</span></a></i>&#93;</sup> </p> <div class="mw-heading mw-heading4"><h4 id="Listening">Listening</h4><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Extreme_programming&amp;action=edit&amp;section=9" title="Edit section: Listening"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Programmers must listen to what the customers need the system to do, what "<a href="/wiki/Business_logic" title="Business logic">business logic</a>" is needed. They must understand these needs well enough to give the customer feedback about the technical aspects of how the problem might be solved, or cannot be solved. Communication between the customer and programmer is further addressed in the <i><a href="/wiki/Planning_game" class="mw-redirect" title="Planning game">planning game</a></i>. </p> <div class="mw-heading mw-heading4"><h4 id="Designing">Designing</h4><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Extreme_programming&amp;action=edit&amp;section=10" title="Edit section: Designing"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>From the point of view of simplicity, of course one could say that system development doesn't need more than coding, testing and listening. If those activities are performed well, the result should always be a system that works. In practice, this will not work. One can come a long way without designing but at a given time one will get stuck. The system becomes too complex and the dependencies within the system cease to be clear. One can avoid this by creating a design structure that organizes the logic in the system. Good design will avoid many dependencies within a system; this means that changing one part of the system will not affect other parts of the system.<sup class="noprint Inline-Template Template-Fact" style="white-space:nowrap;">&#91;<i><a href="/wiki/Wikipedia:Citation_needed" title="Wikipedia:Citation needed"><span title="This claim needs references to reliable sources. (June 2009)">citation needed</span></a></i>&#93;</sup> </p> <div class="mw-heading mw-heading3"><h3 id="Values">Values</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Extreme_programming&amp;action=edit&amp;section=11" title="Edit section: Values"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Extreme programming initially recognized four values in 1999: communication, simplicity, feedback, and courage. A new value, respect, was added in the second edition of <i>Extreme Programming Explained</i>. Those five values are described below. </p> <div class="mw-heading mw-heading4"><h4 id="Communication">Communication</h4><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Extreme_programming&amp;action=edit&amp;section=12" title="Edit section: Communication"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Building software systems requires communicating system requirements to the developers of the system. In formal software development methodologies, this task is accomplished through documentation. Extreme programming techniques can be viewed as methods for rapidly building and disseminating institutional knowledge among members of a development team. The goal is to give all developers a shared view of the system which matches the view held by the users of the system. To this end, extreme programming favors simple designs, common metaphors, collaboration of users and programmers, frequent verbal communication, and feedback. </p> <div class="mw-heading mw-heading4"><h4 id="Simplicity">Simplicity</h4><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Extreme_programming&amp;action=edit&amp;section=13" title="Edit section: Simplicity"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Extreme programming encourages starting with the simplest solution. Extra functionality can then be added later. The difference between this approach and more conventional system development methods is the focus on designing and coding for the needs of today instead of those of tomorrow, next week, or next month. This is sometimes summed up as the "<a href="/wiki/You_aren%27t_gonna_need_it" title="You aren&#39;t gonna need it">You aren't gonna need it</a>" (YAGNI) approach.<sup id="cite_ref-tr_10-0" class="reference"><a href="#cite_note-tr-10"><span class="cite-bracket">&#91;</span>10<span class="cite-bracket">&#93;</span></a></sup> Proponents of XP acknowledge the disadvantage that this can sometimes entail more effort tomorrow to change the system; their claim is that this is more than compensated for by the advantage of not investing in possible future requirements that might change before they become relevant. Coding and designing for uncertain future requirements implies the risk of spending resources on something that might not be needed, while perhaps delaying crucial features. Related to the "communication" value, simplicity in design and coding should improve the quality of communication. A simple design with very simple code could be easily understood by most programmers in the team. </p> <div class="mw-heading mw-heading4"><h4 id="Feedback">Feedback</h4><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Extreme_programming&amp;action=edit&amp;section=14" title="Edit section: Feedback"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Within extreme programming, feedback relates to different dimensions of the system development: </p> <ul><li>Feedback from the system: by writing <a href="/wiki/Unit_test" class="mw-redirect" title="Unit test">unit tests</a>,<sup id="cite_ref-Cworld92_5-3" class="reference"><a href="#cite_note-Cworld92-5"><span class="cite-bracket">&#91;</span>5<span class="cite-bracket">&#93;</span></a></sup> or running periodic integration tests, the programmers have direct feedback from the state of the system after implementing changes.</li> <li>Feedback from the customer: The functional tests (aka <a href="/wiki/Acceptance_tests" class="mw-redirect" title="Acceptance tests">acceptance tests</a>) are written by the customer and the testers. They will get concrete feedback about the current state of their system. This review is planned once in every two or three weeks so the customer can easily steer the development.</li> <li>Feedback from the team: When customers come up with new requirements in the planning game the team directly gives an estimation of the time that it will take to implement.</li></ul> <p>Feedback is closely related to communication and simplicity. Flaws in the system are easily communicated by writing a unit test that proves a certain piece of code will break. The direct feedback from the system tells programmers to recode this part. A customer is able to test the system periodically according to the functional requirements, known as <i><a href="/wiki/User_story" title="User story">user stories</a></i>.<sup id="cite_ref-Cworld92_5-4" class="reference"><a href="#cite_note-Cworld92-5"><span class="cite-bracket">&#91;</span>5<span class="cite-bracket">&#93;</span></a></sup> To quote <a href="/wiki/Kent_Beck" title="Kent Beck">Kent Beck</a>, "Optimism is an occupational hazard of programming. Feedback is the treatment."<sup id="cite_ref-Beck99_11-0" class="reference"><a href="#cite_note-Beck99-11"><span class="cite-bracket">&#91;</span>11<span class="cite-bracket">&#93;</span></a></sup> </p><p><span class="anchor" id="courage"></span> </p> <div class="mw-heading mw-heading4"><h4 id="Courage">Courage</h4><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Extreme_programming&amp;action=edit&amp;section=15" title="Edit section: Courage"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Several practices embody courage. One is the commandment to always design and code for today and not for tomorrow. This is an effort to avoid getting bogged down in design and requiring a lot of effort to implement anything else. Courage enables developers to feel comfortable with <a href="/wiki/Refactoring" class="mw-redirect" title="Refactoring">refactoring</a> their code when necessary.<sup id="cite_ref-Cworld92_5-5" class="reference"><a href="#cite_note-Cworld92-5"><span class="cite-bracket">&#91;</span>5<span class="cite-bracket">&#93;</span></a></sup> This means reviewing the existing system and modifying it so that future changes can be implemented more easily. Another example of courage is knowing when to throw code away: courage to remove source code that is obsolete, no matter how much effort was used to create that source code. Also, courage means persistence: a programmer might be stuck on a complex problem for an entire day, then solve the problem quickly the next day, but only if they are persistent. </p> <div class="mw-heading mw-heading4"><h4 id="Respect">Respect</h4><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Extreme_programming&amp;action=edit&amp;section=16" title="Edit section: Respect"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>The respect value includes respect for others as well as self-respect. Programmers should never commit changes that break compilation, that make existing unit-tests fail, or that otherwise delay the work of their peers. Members respect their own work by always striving for high quality and seeking for the best design for the solution at hand through refactoring. </p><p>Adopting the four earlier values leads to respect gained from others in the team. Nobody on the team should feel unappreciated or ignored. This ensures a high level of motivation and encourages loyalty toward the team and toward the goal of the project. This value is dependent upon the other values, and is oriented toward teamwork. </p> <div class="mw-heading mw-heading3"><h3 id="Rules">Rules</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Extreme_programming&amp;action=edit&amp;section=17" title="Edit section: Rules"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>The first version of rules for XP was published in 1999 by Don Wells<sup id="cite_ref-12" class="reference"><a href="#cite_note-12"><span class="cite-bracket">&#91;</span>12<span class="cite-bracket">&#93;</span></a></sup> at the XP website. 29 rules are given in the categories of planning, managing, designing, coding, and testing. Planning, managing and designing are called out explicitly to counter claims that XP doesn't support those activities. </p><p>Another version of XP rules was proposed by Ken Auer<sup id="cite_ref-13" class="reference"><a href="#cite_note-13"><span class="cite-bracket">&#91;</span>13<span class="cite-bracket">&#93;</span></a></sup> in XP/Agile Universe 2003. He felt XP was defined by its rules, not its practices (which are subject to more variation and ambiguity). He defined two categories: "Rules of Engagement" which dictate the environment in which software development can take place effectively, and "Rules of Play" which define the minute-by-minute activities and rules within the framework of the Rules of Engagement. </p><p>Here are some of the rules (incomplete): </p><p><b>Coding</b> </p> <ul><li>The customer is always available</li> <li>Code the <a href="/wiki/Unit_test" class="mw-redirect" title="Unit test">unit test</a> first</li> <li>Only one pair integrates code at a time</li> <li>Leave <a href="/wiki/Program_optimization" title="Program optimization">optimization</a> until last</li> <li>No <a href="/wiki/Overtime" title="Overtime">overtime</a></li></ul> <p><b>Testing</b> </p> <ul><li>All code must have <a href="/wiki/Unit_tests" class="mw-redirect" title="Unit tests">unit tests</a></li> <li>All code must pass all <a href="/wiki/Unit_tests" class="mw-redirect" title="Unit tests">unit tests</a> before it can be released.</li> <li>When a <a href="/wiki/Software_bug" title="Software bug">bug</a> is found, tests are created before the bug is addressed (a bug is not an error in logic; it is a test that was not written)</li> <li><a href="/wiki/Acceptance_tests" class="mw-redirect" title="Acceptance tests">Acceptance tests</a> are run often and the results are published</li></ul> <div class="mw-heading mw-heading3"><h3 id="Principles">Principles</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Extreme_programming&amp;action=edit&amp;section=18" title="Edit section: Principles"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>The principles that form the basis of XP are based on the values just described and are intended to foster decisions in a system development project. The principles are intended to be more concrete than the values and more easily translated to guidance in a practical situation. </p> <div class="mw-heading mw-heading4"><h4 id="Feedback_2">Feedback</h4><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Extreme_programming&amp;action=edit&amp;section=19" title="Edit section: Feedback"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Extreme programming sees feedback as most useful if it is done frequently and promptly. It stresses that minimal delay between an action and its feedback is critical to learning and making changes. Unlike traditional system development methods, contact with the customer occurs in more frequent iterations. The customer has clear insight into the system that is being developed, and can give feedback and steer the development as needed. With frequent feedback from the customer, a mistaken design decision made by the developer will be noticed and corrected quickly, before the developer spends much time implementing it. </p><p>Unit tests contribute to the rapid feedback principle. When writing code, running the unit test provides direct feedback as to how the system reacts to the changes made. This includes running not only the unit tests that test the developer's code, but running in addition all unit tests against all the software, using an automated process that can be initiated by a single command. That way, if the developer's changes cause a failure in some other portion of the system that the developer knows little or nothing about, the automated all-unit-test suite will reveal the failure immediately, alerting the developer of the incompatibility of their change with other parts of the system, and the necessity of removing or modifying their change. Under traditional development practices, the absence of an automated, comprehensive unit-test suite meant that such a code change, assumed harmless by the developer, would have been left in place, appearing only during integration testing – or worse, only in production; and determining which code change caused the problem, among all the changes made by all the developers during the weeks or even months previous to integration testing, was a formidable task. </p> <div class="mw-heading mw-heading4"><h4 id="Assuming_simplicity">Assuming simplicity</h4><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Extreme_programming&amp;action=edit&amp;section=20" title="Edit section: Assuming simplicity"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>This is about treating every problem as if its solution were "extremely simple". Traditional system development methods say to plan for the future and to code for reusability. Extreme programming rejects these ideas. </p><p>The advocates of extreme programming say that making big changes all at once does not work. Extreme programming applies incremental changes: for example, a system might have small releases every three weeks. When many little steps are made, the customer has more control over the development process and the system that is being developed. </p> <div class="mw-heading mw-heading4"><h4 id="Embracing_change">Embracing change</h4><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Extreme_programming&amp;action=edit&amp;section=21" title="Edit section: Embracing change"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>The principle of embracing change is about not working against changes but embracing them. For instance, if at one of the iterative meetings it appears that the customer's requirements have changed dramatically, programmers are to embrace this and plan the new requirements for the next iteration. </p> <div class="mw-heading mw-heading2"><h2 id="Practices">Practices</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Extreme_programming&amp;action=edit&amp;section=22" title="Edit section: Practices"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1236090951" /><div role="note" class="hatnote navigation-not-searchable">Further information: <a href="/wiki/Extreme_programming_practices" title="Extreme programming practices">Extreme programming practices</a></div> <p>Extreme programming has been described as having 12 practices, grouped into four areas: </p> <div class="mw-heading mw-heading3"><h3 id="Fine-scale_feedback">Fine-scale feedback</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Extreme_programming&amp;action=edit&amp;section=23" title="Edit section: Fine-scale feedback"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <ul><li><a href="/wiki/Pair_programming" title="Pair programming">Pair programming</a><sup id="cite_ref-Cworld92_5-6" class="reference"><a href="#cite_note-Cworld92-5"><span class="cite-bracket">&#91;</span>5<span class="cite-bracket">&#93;</span></a></sup></li> <li><a href="/wiki/Planning_game" class="mw-redirect" title="Planning game">Planning game</a></li> <li><a href="/wiki/Test-driven_development" title="Test-driven development">Test-driven development</a></li> <li><a href="/wiki/Extreme_programming_practices#Whole_team" title="Extreme programming practices">Whole team</a></li></ul> <div class="mw-heading mw-heading3"><h3 id="Continuous_process">Continuous process</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Extreme_programming&amp;action=edit&amp;section=24" title="Edit section: Continuous process"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <ul><li><a href="/wiki/Continuous_integration" title="Continuous integration">Continuous integration</a></li> <li><a href="/wiki/Refactoring" class="mw-redirect" title="Refactoring">Refactoring</a> or design improvement<sup id="cite_ref-Cworld92_5-7" class="reference"><a href="#cite_note-Cworld92-5"><span class="cite-bracket">&#91;</span>5<span class="cite-bracket">&#93;</span></a></sup></li> <li><a href="/wiki/Extreme_programming_practices#Small_releases" title="Extreme programming practices">Small releases</a></li></ul> <div class="mw-heading mw-heading3"><h3 id="Shared_understanding">Shared understanding</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Extreme_programming&amp;action=edit&amp;section=25" title="Edit section: Shared understanding"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <ul><li><a href="/wiki/Extreme_programming_practices#Coding_standard" title="Extreme programming practices">Coding standards</a></li> <li><a href="/wiki/Extreme_programming_practices#Collective_code_ownership" title="Extreme programming practices">Collective code ownership</a><sup id="cite_ref-Cworld92_5-8" class="reference"><a href="#cite_note-Cworld92-5"><span class="cite-bracket">&#91;</span>5<span class="cite-bracket">&#93;</span></a></sup></li> <li><a href="/wiki/Extreme_programming_practices#Simple_design" title="Extreme programming practices">Simple design</a><sup id="cite_ref-Cworld92_5-9" class="reference"><a href="#cite_note-Cworld92-5"><span class="cite-bracket">&#91;</span>5<span class="cite-bracket">&#93;</span></a></sup></li> <li><a href="/wiki/Extreme_programming_practices#System_metaphor" title="Extreme programming practices">System metaphor</a></li></ul> <div class="mw-heading mw-heading3"><h3 id="Programmer_welfare">Programmer welfare</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Extreme_programming&amp;action=edit&amp;section=26" title="Edit section: Programmer welfare"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <ul><li><a href="/wiki/Extreme_programming_practices#Sustainable_pace" title="Extreme programming practices">Sustainable pace</a></li></ul> <div class="mw-heading mw-heading2"><h2 id="Controversial_aspects">Controversial aspects</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Extreme_programming&amp;action=edit&amp;section=27" title="Edit section: Controversial aspects"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>The practices in XP have been heavily debated.<sup id="cite_ref-Cworld92_5-10" class="reference"><a href="#cite_note-Cworld92-5"><span class="cite-bracket">&#91;</span>5<span class="cite-bracket">&#93;</span></a></sup> Proponents of extreme programming claim that by having the on-site customer<sup id="cite_ref-Cworld92_5-11" class="reference"><a href="#cite_note-Cworld92-5"><span class="cite-bracket">&#91;</span>5<span class="cite-bracket">&#93;</span></a></sup> request changes informally, the process becomes flexible, and saves the cost of formal overhead. Critics of XP claim this can lead to costly rework and project <a href="/wiki/Scope_creep" title="Scope creep">scope creep</a> beyond what was previously agreed or funded.<sup class="noprint Inline-Template Template-Fact" style="white-space:nowrap;">&#91;<i><a href="/wiki/Wikipedia:Citation_needed" title="Wikipedia:Citation needed"><span title="This claim needs references to reliable sources. (February 2020)">citation needed</span></a></i>&#93;</sup> </p><p>Change-control boards are a sign that there are potential conflicts in project objectives and constraints between multiple users. XP's expedited methods are somewhat dependent on programmers being able to assume a unified client viewpoint so the programmer can concentrate on coding, rather than documentation of compromise objectives and constraints.<sup id="cite_ref-CarrollMorris2015_14-0" class="reference"><a href="#cite_note-CarrollMorris2015-14"><span class="cite-bracket">&#91;</span>14<span class="cite-bracket">&#93;</span></a></sup> This also applies when multiple programming organizations are involved, particularly organizations which compete for shares of projects.<sup class="noprint Inline-Template Template-Fact" style="white-space:nowrap;">&#91;<i><a href="/wiki/Wikipedia:Citation_needed" title="Wikipedia:Citation needed"><span title="This claim needs references to reliable sources. (July 2008)">citation needed</span></a></i>&#93;</sup> </p><p>Other potentially controversial aspects of extreme programming include: </p> <ul><li>Requirements are expressed as automated acceptance tests rather than specification documents.</li> <li>Requirements are defined incrementally, rather than trying to get them all in advance.</li> <li>Software developers are usually required to work in pairs.</li> <li>There is no <a href="/wiki/Big_design_up_front" title="Big design up front">big design up front</a>. Most of the design activity takes place on the fly and incrementally, starting with "the simplest thing that could possibly work" and adding complexity only when it's required by failing tests. Critics characterize this as "<a href="/wiki/Debugging" title="Debugging">debugging</a> a system into appearance" and fear this will result in more re-design effort than only re-designing when requirements change.</li> <li>A <a href="/wiki/Customer_representative" title="Customer representative">customer representative</a> is attached to the project. This role can become a single-point-of-failure for the project, and some people have found it to be a source of stress. Also, there is the danger of <a href="/wiki/Micro-management" class="mw-redirect" title="Micro-management">micro-management</a> by a non-technical representative trying to dictate the use of technical software features and architecture.</li></ul> <p>Critics have noted several potential drawbacks,<sup id="cite_ref-Cworld92_5-12" class="reference"><a href="#cite_note-Cworld92-5"><span class="cite-bracket">&#91;</span>5<span class="cite-bracket">&#93;</span></a></sup> including problems with unstable requirements, no documented compromises of user conflicts, and a lack of an overall design specification or document. </p> <div class="mw-heading mw-heading3"><h3 id="Scalability">Scalability</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Extreme_programming&amp;action=edit&amp;section=28" title="Edit section: Scalability"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p><a href="/wiki/Thoughtworks" title="Thoughtworks">Thoughtworks</a> has claimed reasonable success on distributed XP projects with up to sixty people.<sup class="noprint Inline-Template Template-Fact" style="white-space:nowrap;">&#91;<i><a href="/wiki/Wikipedia:Citation_needed" title="Wikipedia:Citation needed"><span title="This claim needs references to reliable sources. (August 2009)">citation needed</span></a></i>&#93;</sup> </p><p>In 2004, industrial extreme programming (IXP)<sup id="cite_ref-15" class="reference"><a href="#cite_note-15"><span class="cite-bracket">&#91;</span>15<span class="cite-bracket">&#93;</span></a></sup> was introduced as an evolution of XP. It is intended to bring the ability to work in large and distributed teams. It now has 23 practices and flexible values. </p> <div class="mw-heading mw-heading3"><h3 id="Severability_and_responses">Severability and responses</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Extreme_programming&amp;action=edit&amp;section=29" title="Edit section: Severability and responses"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>In 2003, <a href="/wiki/Matt_Stephens" title="Matt Stephens">Matt Stephens</a> and Doug Rosenberg published <i>Extreme Programming Refactored: The Case Against XP</i>, which questioned the value of the XP process and suggested ways in which it could be improved.<sup id="cite_ref-SR_6-1" class="reference"><a href="#cite_note-SR-6"><span class="cite-bracket">&#91;</span>6<span class="cite-bracket">&#93;</span></a></sup> This triggered a lengthy debate in articles, Internet newsgroups, and web-site chat areas. The core argument of the book is that XP's practices are interdependent but that few practical organizations are willing/able to adopt all the practices; therefore the entire process fails. The book also makes other criticisms, and it draws a likeness of XP's "collective ownership" model to socialism in a negative manner. </p><p>Certain aspects of XP have changed since the publication of <i>Extreme Programming Refactored</i>; in particular, XP now accommodates modifications to the practices as long as the required objectives are still met. XP also uses increasingly generic terms for processes. Some argue that these changes invalidate previous criticisms; others claim that this is simply watering the process down. </p><p>Other authors have tried to reconcile XP with the older methodologies in order to form a unified methodology. Some of these XP sought to replace, such as the <a href="/wiki/Waterfall_model" title="Waterfall model">waterfall methodology</a>; example: Project Lifecycles: Waterfall, <a href="/wiki/Rapid_Application_Development" class="mw-redirect" title="Rapid Application Development">Rapid Application Development</a> (RAD), and All That. <a href="/wiki/JPMorgan_Chase_%26_Co." class="mw-redirect" title="JPMorgan Chase &amp; Co.">JPMorgan Chase &amp; Co.</a> tried combining XP with the computer programming methods of <a href="/wiki/Capability_maturity_model_integration" class="mw-redirect" title="Capability maturity model integration">capability maturity model integration</a> (CMMI), and <a href="/wiki/Six_Sigma" title="Six Sigma">Six Sigma</a>. They found that the three systems reinforced each other well, leading to better development, and did not mutually contradict.<sup id="cite_ref-16" class="reference"><a href="#cite_note-16"><span class="cite-bracket">&#91;</span>16<span class="cite-bracket">&#93;</span></a></sup> </p> <div class="mw-heading mw-heading2"><h2 id="Criticism">Criticism</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Extreme_programming&amp;action=edit&amp;section=30" title="Edit section: Criticism"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Extreme programming's initial buzz and controversial tenets, such as <a href="/wiki/Pair_programming" title="Pair programming">pair programming</a> and <a href="/wiki/Continuous_design" title="Continuous design">continuous design</a>, have attracted particular criticisms, such as the ones coming from McBreen,<sup id="cite_ref-mcbreen_17-0" class="reference"><a href="#cite_note-mcbreen-17"><span class="cite-bracket">&#91;</span>17<span class="cite-bracket">&#93;</span></a></sup> Boehm and Turner,<sup id="cite_ref-boehm2004_18-0" class="reference"><a href="#cite_note-boehm2004-18"><span class="cite-bracket">&#91;</span>18<span class="cite-bracket">&#93;</span></a></sup> Matt Stephens and Doug Rosenberg.<sup id="cite_ref-stephens2004_19-0" class="reference"><a href="#cite_note-stephens2004-19"><span class="cite-bracket">&#91;</span>19<span class="cite-bracket">&#93;</span></a></sup> Many of the criticisms, however, are believed by Agile practitioners to be misunderstandings of agile development.<sup id="cite_ref-sdmagazine1811_20-0" class="reference"><a href="#cite_note-sdmagazine1811-20"><span class="cite-bracket">&#91;</span>20<span class="cite-bracket">&#93;</span></a></sup> </p><p>In particular, extreme programming has been reviewed and critiqued by Matt Stephens's and Doug Rosenberg's <i>Extreme Programming Refactored</i>.<sup id="cite_ref-SR_6-2" class="reference"><a href="#cite_note-SR-6"><span class="cite-bracket">&#91;</span>6<span class="cite-bracket">&#93;</span></a></sup> </p> <div class="mw-heading mw-heading2"><h2 id="See_also">See also</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Extreme_programming&amp;action=edit&amp;section=31" title="Edit section: See also"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <ul><li><a href="/wiki/Agile_software_development" title="Agile software development">Agile software development</a></li> <li><a href="/wiki/Continuous_obsolescence" title="Continuous obsolescence">Continuous obsolescence</a></li> <li><a href="/wiki/EXtreme_Manufacturing" title="EXtreme Manufacturing">EXtreme Manufacturing</a></li> <li><a href="/wiki/Extreme_project_management" title="Extreme project management">Extreme project management</a></li> <li><a href="/wiki/Extreme_programming_practices" title="Extreme programming practices">Extreme programming practices</a></li> <li><a href="/wiki/Kaizen" title="Kaizen">Kaizen</a></li> <li><a href="/wiki/List_of_software_development_philosophies" title="List of software development philosophies">List of software development philosophies</a></li> <li><a href="/wiki/Pair_programming" title="Pair programming">Pair programming</a></li> <li><a href="/wiki/Scrum_(development)" class="mw-redirect" title="Scrum (development)">Scrum (development)</a></li> <li><a href="/wiki/Software_craftsmanship" title="Software craftsmanship">Software craftsmanship</a></li> <li><a href="/wiki/Stand-up_meeting" title="Stand-up meeting">Stand-up meeting</a></li> <li><a href="/wiki/Timeboxing" title="Timeboxing">Timeboxing</a></li></ul> <div class="mw-heading mw-heading2"><h2 id="References">References</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Extreme_programming&amp;action=edit&amp;section=32" title="Edit section: References"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <style data-mw-deduplicate="TemplateStyles:r1239543626">.mw-parser-output .reflist{margin-bottom:0.5em;list-style-type:decimal}@media screen{.mw-parser-output .reflist{font-size:90%}}.mw-parser-output .reflist .references{font-size:100%;margin-bottom:0;list-style-type:inherit}.mw-parser-output .reflist-columns-2{column-width:30em}.mw-parser-output .reflist-columns-3{column-width:25em}.mw-parser-output .reflist-columns{margin-top:0.3em}.mw-parser-output .reflist-columns ol{margin-top:0}.mw-parser-output .reflist-columns li{page-break-inside:avoid;break-inside:avoid-column}.mw-parser-output .reflist-upper-alpha{list-style-type:upper-alpha}.mw-parser-output .reflist-upper-roman{list-style-type:upper-roman}.mw-parser-output .reflist-lower-alpha{list-style-type:lower-alpha}.mw-parser-output .reflist-lower-greek{list-style-type:lower-greek}.mw-parser-output .reflist-lower-roman{list-style-type:lower-roman}</style><div class="reflist reflist-columns references-column-width" style="column-width: 30em;"> <ol class="references"> <li id="cite_note-Informatics85-1"><span class="mw-cite-backlink"><b><a href="#cite_ref-Informatics85_1-0">^</a></b></span> <span class="reference-text">"Human Centred Technology Workshop 2006 ", 2006, PDF, <a rel="nofollow" class="external text" href="http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.465.2140&amp;rep=rep1&amp;type=pdf">Human Centred Technology Workshop 2006 </a></span> </li> <li id="cite_note-UPenn49-2"><span class="mw-cite-backlink">^ <a href="#cite_ref-UPenn49_2-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-UPenn49_2-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text"><a rel="nofollow" class="external text" href="http://www.cis.upenn.edu/~matuszek/cit591-2003/Lectures/49-design-patterns.ppt">UPenn-Lectures-design-patterns "Design Patterns and Refactoring", University of Pennsylvania, 2003</a> <a rel="nofollow" class="external text" href="https://web.archive.org/web/20100802073814/http://www.cis.upenn.edu/%7Ematuszek/cit591-2003/Lectures/49-design-patterns.ppt">Archived</a> August 2, 2010, at the <a href="/wiki/Wayback_Machine" title="Wayback Machine">Wayback Machine</a>.</span> </li> <li id="cite_note-USFCA601-3"><span class="mw-cite-backlink">^ <a href="#cite_ref-USFCA601_3-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-USFCA601_3-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text"><a rel="nofollow" class="external text" href="http://www.cs.usfca.edu/~parrt/course/601/lectures/xp.html">USFCA-edu-601-lecture Extreme Programming</a>.</span> </li> <li id="cite_note-MASD-4"><span class="mw-cite-backlink"><b><a href="#cite_ref-MASD_4-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://agilemanifesto.org">"Manifesto for Agile Software Development"</a>. Agilemanifesto.org. 2001<span class="reference-accessdate">. Retrieved <span class="nowrap">March 26,</span> 2019</span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;rft.genre=unknown&amp;rft.btitle=Manifesto+for+Agile+Software+Development&amp;rft.pub=Agilemanifesto.org&amp;rft.date=2001&amp;rft_id=http%3A%2F%2Fagilemanifesto.org&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AExtreme+programming" class="Z3988"></span></span> </li> <li id="cite_note-Cworld92-5"><span class="mw-cite-backlink">^ <a href="#cite_ref-Cworld92_5-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-Cworld92_5-1"><sup><i><b>b</b></i></sup></a> <a href="#cite_ref-Cworld92_5-2"><sup><i><b>c</b></i></sup></a> <a href="#cite_ref-Cworld92_5-3"><sup><i><b>d</b></i></sup></a> <a href="#cite_ref-Cworld92_5-4"><sup><i><b>e</b></i></sup></a> <a href="#cite_ref-Cworld92_5-5"><sup><i><b>f</b></i></sup></a> <a href="#cite_ref-Cworld92_5-6"><sup><i><b>g</b></i></sup></a> <a href="#cite_ref-Cworld92_5-7"><sup><i><b>h</b></i></sup></a> <a href="#cite_ref-Cworld92_5-8"><sup><i><b>i</b></i></sup></a> <a href="#cite_ref-Cworld92_5-9"><sup><i><b>j</b></i></sup></a> <a href="#cite_ref-Cworld92_5-10"><sup><i><b>k</b></i></sup></a> <a href="#cite_ref-Cworld92_5-11"><sup><i><b>l</b></i></sup></a> <a href="#cite_ref-Cworld92_5-12"><sup><i><b>m</b></i></sup></a></span> <span class="reference-text"><a rel="nofollow" class="external text" href="http://www.computerworld.com/article/2585634/app-development/extreme-programming.html">Computerworld-appdev-92 "Extreme Programming", <i>Computerworld</i> (online), December 2001</a>.</span> </li> <li id="cite_note-SR-6"><span class="mw-cite-backlink">^ <a href="#cite_ref-SR_6-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-SR_6-1"><sup><i><b>b</b></i></sup></a> <a href="#cite_ref-SR_6-2"><sup><i><b>c</b></i></sup></a></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite id="CITEREFRosenbergStephens2003" class="citation book cs1">Rosenberg, Doug; Stephens, Matt (2003). <span class="id-lock-registration" title="Free registration required"><a rel="nofollow" class="external text" href="https://archive.org/details/extremeprogrammi00matt"><i>Extreme Programming Refactored: The Case Against XP</i></a></span>. Apress. <a href="/wiki/ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a>&#160;<a href="/wiki/Special:BookSources/978-1-59059-096-6" title="Special:BookSources/978-1-59059-096-6"><bdi>978-1-59059-096-6</bdi></a>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;rft.genre=book&amp;rft.btitle=Extreme+Programming+Refactored%3A+The+Case+Against+XP&amp;rft.pub=Apress&amp;rft.date=2003&amp;rft.isbn=978-1-59059-096-6&amp;rft.aulast=Rosenberg&amp;rft.aufirst=Doug&amp;rft.au=Stephens%2C+Matt&amp;rft_id=https%3A%2F%2Farchive.org%2Fdetails%2Fextremeprogrammi00matt&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AExtreme+programming" class="Z3988"></span></span> </li> <li id="cite_note-FOOTNOTELarmanBasili2003-7"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTELarmanBasili2003_7-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFLarmanBasili2003">Larman &amp; Basili 2003</a>.</span> </li> <li id="cite_note-8"><span class="mw-cite-backlink"><b><a href="#cite_ref-8">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite class="citation book cs1"><a rel="nofollow" class="external text" href="http://www.informit.com/articles/article.aspx?p=20972"><i>Interview with Kent Beck and Martin Fowler</i></a>. March 23, 2001.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;rft.genre=book&amp;rft.btitle=Interview+with+Kent+Beck+and+Martin+Fowler&amp;rft.date=2001-03-23&amp;rft_id=http%3A%2F%2Fwww.informit.com%2Farticles%2Farticle.aspx%3Fp%3D20972&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AExtreme+programming" class="Z3988"></span> <span class="cs1-visible-error citation-comment"><code class="cs1-code">{{<a href="/wiki/Template:Cite_book" title="Template:Cite book">cite book</a>}}</code>: </span><span class="cs1-visible-error citation-comment"><code class="cs1-code">&#124;work=</code> ignored (<a href="/wiki/Help:CS1_errors#periodical_ignored" title="Help:CS1 errors">help</a>)</span></span> </li> <li id="cite_note-9"><span class="mw-cite-backlink"><b><a href="#cite_ref-9">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite id="CITEREFLisa_CrispinTip_House2003" class="citation book cs1">Lisa Crispin; Tip House (2003). <i>Testing Extreme Programming</i>. Addison-Wesley Professional. <a href="/wiki/ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a>&#160;<a href="/wiki/Special:BookSources/9780321113559" title="Special:BookSources/9780321113559"><bdi>9780321113559</bdi></a>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;rft.genre=book&amp;rft.btitle=Testing+Extreme+Programming&amp;rft.pub=Addison-Wesley+Professional&amp;rft.date=2003&amp;rft.isbn=9780321113559&amp;rft.au=Lisa+Crispin&amp;rft.au=Tip+House&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AExtreme+programming" class="Z3988"></span></span> </li> <li id="cite_note-tr-10"><span class="mw-cite-backlink"><b><a href="#cite_ref-tr_10-0">^</a></b></span> <span class="reference-text">"Everyone's a Programmer" by Clair Tristram. <i>Technology Review</i>, November 2003. p. 39.</span> </li> <li id="cite_note-Beck99-11"><span class="mw-cite-backlink"><b><a href="#cite_ref-Beck99_11-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite id="CITEREFBeck1999" class="citation book cs1"><a href="/wiki/Kent_Beck" title="Kent Beck">Beck, K.</a> (1999). <i>Extreme Programming Explained: Embrace Change</i>. Addison-Wesley. <a href="/wiki/ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a>&#160;<a href="/wiki/Special:BookSources/978-0-321-27865-4" title="Special:BookSources/978-0-321-27865-4"><bdi>978-0-321-27865-4</bdi></a>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;rft.genre=book&amp;rft.btitle=Extreme+Programming+Explained%3A+Embrace+Change&amp;rft.pub=Addison-Wesley&amp;rft.date=1999&amp;rft.isbn=978-0-321-27865-4&amp;rft.aulast=Beck&amp;rft.aufirst=K.&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AExtreme+programming" class="Z3988"></span></span> </li> <li id="cite_note-12"><span class="mw-cite-backlink"><b><a href="#cite_ref-12">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://www.extremeprogramming.org/rules.html">"Extreme Programming Rules"</a>. <i>extremeprogramming.org</i>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.genre=unknown&amp;rft.jtitle=extremeprogramming.org&amp;rft.atitle=Extreme+Programming+Rules&amp;rft_id=http%3A%2F%2Fwww.extremeprogramming.org%2Frules.html&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AExtreme+programming" class="Z3988"></span></span> </li> <li id="cite_note-13"><span class="mw-cite-backlink"><b><a href="#cite_ref-13">^</a></b></span> <span class="reference-text"><a rel="nofollow" class="external text" href="http://www.rolemodelsoftware.com/moreAboutUs/publications/rulesOfXp.php">Ken Auer</a> <a rel="nofollow" class="external text" href="https://web.archive.org/web/20080920062925/http://www.rolemodelsoftware.com/moreAboutUs/publications/rulesOfXp.php">Archived</a> September 20, 2008, at the <a href="/wiki/Wayback_Machine" title="Wayback Machine">Wayback Machine</a></span> </li> <li id="cite_note-CarrollMorris2015-14"><span class="mw-cite-backlink"><b><a href="#cite_ref-CarrollMorris2015_14-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite id="CITEREFJohn_CarrollDavid_Morris2015" class="citation book cs1">John Carroll; David Morris (July 29, 2015). <a rel="nofollow" class="external text" href="https://books.google.com/books?id=oqFKCgAAQBAJ&amp;pg=PT162"><i>Agile Project Management in easy steps, 2nd edition</i></a>. In Easy Steps. p.&#160;162. <a href="/wiki/ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a>&#160;<a href="/wiki/Special:BookSources/978-1-84078-703-0" title="Special:BookSources/978-1-84078-703-0"><bdi>978-1-84078-703-0</bdi></a>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;rft.genre=book&amp;rft.btitle=Agile+Project+Management+in+easy+steps%2C+2nd+edition&amp;rft.pages=162&amp;rft.pub=In+Easy+Steps&amp;rft.date=2015-07-29&amp;rft.isbn=978-1-84078-703-0&amp;rft.au=John+Carroll&amp;rft.au=David+Morris&amp;rft_id=https%3A%2F%2Fbooks.google.com%2Fbooks%3Fid%3DoqFKCgAAQBAJ%26pg%3DPT162&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AExtreme+programming" class="Z3988"></span></span> </li> <li id="cite_note-15"><span class="mw-cite-backlink"><b><a href="#cite_ref-15">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite id="CITEREFCutter_Consortium" class="citation web cs1">Cutter Consortium. <a rel="nofollow" class="external text" href="http://www.cutter.com/content-and-analysis/resource-centers/agile-project-management/sample-our-research/apmr0502.html">"Industrial XP: Making XP Work in Large Organizations - Cutter Consortium"</a>. <i>cutter.com</i>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.genre=unknown&amp;rft.jtitle=cutter.com&amp;rft.atitle=Industrial+XP%3A+Making+XP+Work+in+Large+Organizations+-+Cutter+Consortium&amp;rft.au=Cutter+Consortium&amp;rft_id=http%3A%2F%2Fwww.cutter.com%2Fcontent-and-analysis%2Fresource-centers%2Fagile-project-management%2Fsample-our-research%2Fapmr0502.html&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AExtreme+programming" class="Z3988"></span></span> </li> <li id="cite_note-16"><span class="mw-cite-backlink"><b><a href="#cite_ref-16">^</a></b></span> <span class="reference-text"><a rel="nofollow" class="external text" href="http://www.sei.cmu.edu/library/assets/jarvis-gristock.pdf">Extreme Programming (XP) Six Sigma CMMI</a>.</span> </li> <li id="cite_note-mcbreen-17"><span class="mw-cite-backlink"><b><a href="#cite_ref-mcbreen_17-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite id="CITEREFMcBreen2003" class="citation book cs1">McBreen, P. (2003). <i>Questioning Extreme Programming</i>. Boston, MA: Addison-Wesley. <a href="/wiki/ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a>&#160;<a href="/wiki/Special:BookSources/978-0-201-84457-3" title="Special:BookSources/978-0-201-84457-3"><bdi>978-0-201-84457-3</bdi></a>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;rft.genre=book&amp;rft.btitle=Questioning+Extreme+Programming&amp;rft.place=Boston%2C+MA&amp;rft.pub=Addison-Wesley&amp;rft.date=2003&amp;rft.isbn=978-0-201-84457-3&amp;rft.aulast=McBreen&amp;rft.aufirst=P.&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AExtreme+programming" class="Z3988"></span></span> </li> <li id="cite_note-boehm2004-18"><span class="mw-cite-backlink"><b><a href="#cite_ref-boehm2004_18-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite id="CITEREFBoehmR._Turner2004" class="citation book cs1"><a href="/wiki/Barry_Boehm" title="Barry Boehm">Boehm, B.</a>; <a href="/wiki/Richard_Turner_(computer_scientist)" title="Richard Turner (computer scientist)">R. Turner</a> (2004). <i>Balancing Agility and Discipline: A Guide for the Perplexed</i>. Boston, MA: Addison-Wesley. <a href="/wiki/ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a>&#160;<a href="/wiki/Special:BookSources/978-0-321-18612-6" title="Special:BookSources/978-0-321-18612-6"><bdi>978-0-321-18612-6</bdi></a>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;rft.genre=book&amp;rft.btitle=Balancing+Agility+and+Discipline%3A+A+Guide+for+the+Perplexed&amp;rft.place=Boston%2C+MA&amp;rft.pub=Addison-Wesley&amp;rft.date=2004&amp;rft.isbn=978-0-321-18612-6&amp;rft.aulast=Boehm&amp;rft.aufirst=B.&amp;rft.au=R.+Turner&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AExtreme+programming" class="Z3988"></span></span> </li> <li id="cite_note-stephens2004-19"><span class="mw-cite-backlink"><b><a href="#cite_ref-stephens2004_19-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite id="CITEREFStephensDoug_Rosenberg2004" class="citation book cs1"><a href="/wiki/Matt_Stephens" title="Matt Stephens">Stephens, Matt</a>; Doug Rosenberg (2004). <a rel="nofollow" class="external text" href="http://www.drdobbs.com/the-irony-of-extreme-programming/184405651"><i>The irony of extreme programming</i></a>. MA: Dr Dobbs journal.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;rft.genre=book&amp;rft.btitle=The+irony+of+extreme+programming&amp;rft.place=MA&amp;rft.pub=Dr+Dobbs+journal&amp;rft.date=2004&amp;rft.aulast=Stephens&amp;rft.aufirst=Matt&amp;rft.au=Doug+Rosenberg&amp;rft_id=http%3A%2F%2Fwww.drdobbs.com%2Fthe-irony-of-extreme-programming%2F184405651&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AExtreme+programming" class="Z3988"></span></span> </li> <li id="cite_note-sdmagazine1811-20"><span class="mw-cite-backlink"><b><a href="#cite_ref-sdmagazine1811_20-0">^</a></b></span> <span class="reference-text"><a rel="nofollow" class="external text" href="http://www.sdmagazine.com/documents/s=1811/sdm0112h/0112h.htm">sdmagazine</a> <a rel="nofollow" class="external text" href="https://web.archive.org/web/20060316100811/http://www.sdmagazine.com/documents/s%3D1811/sdm0112h/0112h.htm">Archived</a> March 16, 2006, at the <a href="/wiki/Wayback_Machine" title="Wayback Machine">Wayback Machine</a></span> </li> </ol></div> <div class="mw-heading mw-heading2"><h2 id="Further_reading">Further reading</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Extreme_programming&amp;action=edit&amp;section=33" title="Edit section: Further reading"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <ul><li><a href="/w/index.php?title=Ken_Auer&amp;action=edit&amp;redlink=1" class="new" title="Ken Auer (page does not exist)">Ken Auer</a> and Roy Miller. <i>Extreme Programming Applied: Playing To Win</i>, Addison–Wesley.</li> <li><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite id="CITEREFKen_AuerRon_JeffriesJeff_CannaGlen_B._Alleman2002" class="citation book cs1">Ken Auer; <a href="/wiki/Ron_Jeffries" title="Ron Jeffries">Ron Jeffries</a>; Jeff Canna; Glen B. Alleman; Lisa Crispin; Janet Gregory (2002). "Are Testers eXtinct? How Can Testers Contribute to XP Teams?". <i>Extreme Programming and Agile Methods — XP/Agile Universe 2002</i>. Lecture Notes in Computer Science. Vol.&#160;2418. Springer-Verlag. p.&#160;287. <a href="/wiki/Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1007%2F3-540-45672-4_50">10.1007/3-540-45672-4_50</a>. <a href="/wiki/ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a>&#160;<a href="/wiki/Special:BookSources/978-3-540-44024-6" title="Special:BookSources/978-3-540-44024-6"><bdi>978-3-540-44024-6</bdi></a>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;rft.genre=bookitem&amp;rft.atitle=Are+Testers+eXtinct%3F+How+Can+Testers+Contribute+to+XP+Teams%3F&amp;rft.btitle=Extreme+Programming+and+Agile+Methods+%E2%80%94+XP%2FAgile+Universe+2002&amp;rft.series=Lecture+Notes+in+Computer+Science&amp;rft.pages=287&amp;rft.pub=Springer-Verlag&amp;rft.date=2002&amp;rft_id=info%3Adoi%2F10.1007%2F3-540-45672-4_50&amp;rft.isbn=978-3-540-44024-6&amp;rft.au=Ken+Auer&amp;rft.au=Ron+Jeffries&amp;rft.au=Jeff+Canna&amp;rft.au=Glen+B.+Alleman&amp;rft.au=Lisa+Crispin&amp;rft.au=Janet+Gregory&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AExtreme+programming" class="Z3988"></span></li> <li><a href="/wiki/Kent_Beck" title="Kent Beck">Kent Beck</a>: <i>Extreme Programming Explained: Embrace Change</i>, Addison–Wesley. First edition, 1999. Second edition, with Cynthia Andres, 2004.</li> <li><a href="/wiki/Kent_Beck" title="Kent Beck">Kent Beck</a> and <a href="/wiki/Martin_Fowler_(software_engineer)" title="Martin Fowler (software engineer)">Martin Fowler</a>: <i>Planning Extreme Programming</i>, Addison–Wesley.</li> <li><a href="/wiki/Alistair_Cockburn" title="Alistair Cockburn">Alistair Cockburn</a>: <i>Agile Software Development</i>, Addison–Wesley.</li> <li><a href="/wiki/Martin_Fowler_(software_engineer)" title="Martin Fowler (software engineer)">Martin Fowler</a>: <i>Refactoring: Improving the Design of Existing Code</i>.With Kent Beck, John Brant, William Opdyke, and Don Roberts (1999). Addison-Wesley.</li> <li><a href="/w/index.php?title=Harvey_Herela&amp;action=edit&amp;redlink=1" class="new" title="Harvey Herela (page does not exist)">Harvey Herela</a> (2005). <a rel="nofollow" class="external text" href="https://archive.today/20070715005646/http://calla.ics.uci.edu/histories/ccc/">Case Study: The Chrysler Comprehensive Compensation System</a>. Galen Lab, U.C. Irvine.</li> <li><a href="/wiki/Jim_Highsmith" title="Jim Highsmith">Jim Highsmith</a>. <i>Agile Software Development Ecosystems</i>, Addison–Wesley.</li> <li><a href="/wiki/Ron_Jeffries" title="Ron Jeffries">Ron Jeffries</a>, Ann Anderson and Chet Hendrickson (2000), <i>Extreme Programming Installed</i>, Addison–Wesley.</li> <li><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite id="CITEREFLarmanBasili2003" class="citation journal cs1"><a href="/wiki/Craig_Larman" title="Craig Larman">Larman, C.</a>; Basili, V.R. (June 2003). <a rel="nofollow" class="external text" href="https://www.craiglarman.com/wiki/downloads/misc/history-of-iterative-larman-and-basili-ieee-computer.pdf">"Iterative and incremental developments. a brief history"</a> <span class="cs1-format">(PDF)</span>. <i>Computer</i>. <b>36</b> (6): <span class="nowrap">47–</span>56. <a href="/wiki/Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1109%2FMC.2003.1204375">10.1109/MC.2003.1204375</a>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.genre=article&amp;rft.jtitle=Computer&amp;rft.atitle=Iterative+and+incremental+developments.+a+brief+history&amp;rft.volume=36&amp;rft.issue=6&amp;rft.pages=%3Cspan+class%3D%22nowrap%22%3E47-%3C%2Fspan%3E56&amp;rft.date=2003-06&amp;rft_id=info%3Adoi%2F10.1109%2FMC.2003.1204375&amp;rft.aulast=Larman&amp;rft.aufirst=C.&amp;rft.au=Basili%2C+V.R.&amp;rft_id=https%3A%2F%2Fwww.craiglarman.com%2Fwiki%2Fdownloads%2Fmisc%2Fhistory-of-iterative-larman-and-basili-ieee-computer.pdf&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AExtreme+programming" class="Z3988"></span></li> <li><a href="/wiki/Matt_Stephens" title="Matt Stephens">Matt Stephens</a> and Doug Rosenberg (2003). <i>Extreme Programming Refactored: The Case Against XP</i>, Apress.</li> <li>Waldner, JB. (2008). "Nanocomputers and Swarm Intelligence". In: ISTE, 225–256.</li></ul> <div class="mw-heading mw-heading2"><h2 id="External_links">External links</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Extreme_programming&amp;action=edit&amp;section=34" title="Edit section: External links"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <style data-mw-deduplicate="TemplateStyles:r1235681985">.mw-parser-output .side-box{margin:4px 0;box-sizing:border-box;border:1px solid #aaa;font-size:88%;line-height:1.25em;background-color:var(--background-color-interactive-subtle,#f8f9fa);display:flow-root}.mw-parser-output .side-box-abovebelow,.mw-parser-output .side-box-text{padding:0.25em 0.9em}.mw-parser-output .side-box-image{padding:2px 0 2px 0.9em;text-align:center}.mw-parser-output .side-box-imageright{padding:2px 0.9em 2px 0;text-align:center}@media(min-width:500px){.mw-parser-output .side-box-flex{display:flex;align-items:center}.mw-parser-output .side-box-text{flex:1;min-width:0}}@media(min-width:720px){.mw-parser-output .side-box{width:238px}.mw-parser-output .side-box-right{clear:right;float:right;margin-left:1em}.mw-parser-output .side-box-left{margin-right:1em}}</style><style data-mw-deduplicate="TemplateStyles:r1237033735">@media print{body.ns-0 .mw-parser-output .sistersitebox{display:none!important}}@media screen{html.skin-theme-clientpref-night .mw-parser-output .sistersitebox img[src*="Wiktionary-logo-en-v2.svg"]{background-color:white}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .sistersitebox img[src*="Wiktionary-logo-en-v2.svg"]{background-color:white}}</style><div class="side-box side-box-right plainlinks sistersitebox"><style data-mw-deduplicate="TemplateStyles:r1126788409">.mw-parser-output .plainlist ol,.mw-parser-output .plainlist ul{line-height:inherit;list-style:none;margin:0;padding:0}.mw-parser-output .plainlist ol li,.mw-parser-output .plainlist ul li{margin-bottom:0}</style> <div class="side-box-flex"> <div class="side-box-image"><span class="noviewer" typeof="mw:File"><a href="/wiki/File:Commons-logo.svg" class="mw-file-description"><img alt="" src="//upload.wikimedia.org/wikipedia/en/thumb/4/4a/Commons-logo.svg/30px-Commons-logo.svg.png" decoding="async" width="30" height="40" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/en/thumb/4/4a/Commons-logo.svg/45px-Commons-logo.svg.png 1.5x, //upload.wikimedia.org/wikipedia/en/thumb/4/4a/Commons-logo.svg/59px-Commons-logo.svg.png 2x" data-file-width="1024" data-file-height="1376" /></a></span></div> <div class="side-box-text plainlist">Wikimedia Commons has media related to <span style="font-weight: bold; font-style: italic;"><a href="https://commons.wikimedia.org/wiki/Category:Extreme_programming" class="extiw" title="commons:Category:Extreme programming">Extreme programming</a></span>.</div></div> </div> <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1235681985" /><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1237033735" /><div class="side-box side-box-right plainlinks sistersitebox"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1126788409" /> <div class="side-box-flex"> <div class="side-box-image"><span class="noviewer" typeof="mw:File"><a href="/wiki/File:Wikiquote-logo.svg" class="mw-file-description"><img alt="" src="//upload.wikimedia.org/wikipedia/commons/thumb/f/fa/Wikiquote-logo.svg/34px-Wikiquote-logo.svg.png" decoding="async" width="34" height="40" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/f/fa/Wikiquote-logo.svg/51px-Wikiquote-logo.svg.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/f/fa/Wikiquote-logo.svg/68px-Wikiquote-logo.svg.png 2x" data-file-width="300" data-file-height="355" /></a></span></div> <div class="side-box-text plainlist">Wikiquote has quotations related to <i><b><a href="https://en.wikiquote.org/wiki/Special:Search/Extreme_programming" class="extiw" title="q:Special:Search/Extreme programming">Extreme programming</a></b></i>.</div></div> </div> <ul><li><a rel="nofollow" class="external text" href="http://www.extremeprogramming.org">A gentle introduction</a></li> <li><a rel="nofollow" class="external text" href="http://www.IndustrialXP.org/">Industrial eXtreme Programming</a></li> <li><a rel="nofollow" class="external text" href="http://c2.com/cgi/wiki?ExtremeProgrammingImplementationIssues">Problems and Solutions to XP implementation</a></li> <li><a rel="nofollow" class="external text" href="http://www.martinfowler.com/articles/agileOffshore.html">Using an Agile Software Process with Offshore Development</a> – <a href="/wiki/ThoughtWorks" class="mw-redirect" title="ThoughtWorks">ThoughtWorks</a>' experiences with implementing XP in large distributed projects</li></ul> <div class="navbox-styles"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1129693374" /><style data-mw-deduplicate="TemplateStyles:r1236075235">.mw-parser-output .navbox{box-sizing:border-box;border:1px solid #a2a9b1;width:100%;clear:both;font-size:88%;text-align:center;padding:1px;margin:1em auto 0}.mw-parser-output .navbox .navbox{margin-top:0}.mw-parser-output .navbox+.navbox,.mw-parser-output .navbox+.navbox-styles+.navbox{margin-top:-1px}.mw-parser-output .navbox-inner,.mw-parser-output .navbox-subgroup{width:100%}.mw-parser-output .navbox-group,.mw-parser-output .navbox-title,.mw-parser-output .navbox-abovebelow{padding:0.25em 1em;line-height:1.5em;text-align:center}.mw-parser-output .navbox-group{white-space:nowrap;text-align:right}.mw-parser-output .navbox,.mw-parser-output .navbox-subgroup{background-color:#fdfdfd}.mw-parser-output .navbox-list{line-height:1.5em;border-color:#fdfdfd}.mw-parser-output .navbox-list-with-group{text-align:left;border-left-width:2px;border-left-style:solid}.mw-parser-output tr+tr>.navbox-abovebelow,.mw-parser-output tr+tr>.navbox-group,.mw-parser-output tr+tr>.navbox-image,.mw-parser-output tr+tr>.navbox-list{border-top:2px solid #fdfdfd}.mw-parser-output .navbox-title{background-color:#ccf}.mw-parser-output .navbox-abovebelow,.mw-parser-output .navbox-group,.mw-parser-output .navbox-subgroup .navbox-title{background-color:#ddf}.mw-parser-output .navbox-subgroup .navbox-group,.mw-parser-output .navbox-subgroup .navbox-abovebelow{background-color:#e6e6ff}.mw-parser-output .navbox-even{background-color:#f7f7f7}.mw-parser-output .navbox-odd{background-color:transparent}.mw-parser-output .navbox .hlist td dl,.mw-parser-output .navbox .hlist td ol,.mw-parser-output .navbox .hlist td ul,.mw-parser-output .navbox td.hlist dl,.mw-parser-output .navbox td.hlist ol,.mw-parser-output .navbox td.hlist ul{padding:0.125em 0}.mw-parser-output .navbox .navbar{display:block;font-size:100%}.mw-parser-output .navbox-title .navbar{float:left;text-align:left;margin-right:0.5em}body.skin--responsive .mw-parser-output .navbox-image img{max-width:none!important}@media print{body.ns-0 .mw-parser-output .navbox{display:none!important}}</style></div><div role="navigation" class="navbox" aria-labelledby="Software_engineering318" style="padding:3px"><table class="nowraplinks hlist mw-collapsible autocollapse navbox-inner" style="border-spacing:0;background:transparent;color:inherit"><tbody><tr><th scope="col" class="navbox-title" colspan="2"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1129693374" /><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1239400231" /><div class="navbar plainlinks hlist navbar-mini"><ul><li class="nv-view"><a href="/wiki/Template:Software_engineering" title="Template:Software engineering"><abbr title="View this template">v</abbr></a></li><li class="nv-talk"><a href="/wiki/Template_talk:Software_engineering" title="Template talk:Software engineering"><abbr title="Discuss this template">t</abbr></a></li><li class="nv-edit"><a href="/wiki/Special:EditPage/Template:Software_engineering" title="Special:EditPage/Template:Software engineering"><abbr title="Edit this template">e</abbr></a></li></ul></div><div id="Software_engineering318" style="font-size:114%;margin:0 4em"><a href="/wiki/Software_engineering" title="Software engineering">Software engineering</a></div></th></tr><tr><th scope="row" class="navbox-group" style="width:1%">Fields</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Computer_programming" title="Computer programming">Computer programming</a></li> <li><a href="/wiki/DevOps" title="DevOps">DevOps</a></li> <li><a href="/wiki/Empirical_software_engineering" title="Empirical software engineering">Empirical software engineering</a></li> <li><a href="/wiki/Experimental_software_engineering" title="Experimental software engineering">Experimental software engineering</a></li> <li><a href="/wiki/Formal_methods" title="Formal methods">Formal methods</a></li> <li><a href="/wiki/Requirements_engineering" title="Requirements engineering">Requirements engineering</a></li> <li><a href="/wiki/Search-based_software_engineering" title="Search-based software engineering">Search-based software engineering</a></li> <li><a href="/wiki/Site_reliability_engineering" title="Site reliability engineering">Site reliability engineering</a></li> <li><a href="/wiki/Social_software_engineering" title="Social software engineering">Social software engineering</a></li> <li><a href="/wiki/Software_deployment" title="Software deployment">Software deployment</a></li> <li><a href="/wiki/Software_design" title="Software design">Software design</a></li> <li><a href="/wiki/Software_maintenance" title="Software maintenance">Software maintenance</a></li> <li><a href="/wiki/Software_testing" title="Software testing">Software testing</a></li> <li><a href="/wiki/Systems_analysis" title="Systems analysis">Systems analysis</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Concepts</th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Abstraction_(computer_science)" title="Abstraction (computer science)">Abstraction</a></li> <li><a href="/wiki/CI/CD" title="CI/CD">CI/CD</a></li> <li><a href="/wiki/Computer_compatibility" title="Computer compatibility">Compatibility</a> <ul><li><a href="/wiki/Backward_compatibility" title="Backward compatibility">Backward compatibility</a></li> <li><a href="/wiki/Compatibility_layer" title="Compatibility layer">Compatibility layer</a></li> <li><a href="/wiki/Compatibility_mode" title="Compatibility mode">Compatibility mode</a></li> <li><a href="/wiki/Forward_compatibility" title="Forward compatibility">Forward compatibility</a></li> <li><a href="/wiki/Software_incompatibility" title="Software incompatibility">Software incompatibility</a></li></ul></li> <li><a href="/wiki/Component-based_software_engineering" title="Component-based software engineering">Component-based software engineering</a></li> <li><a href="/wiki/Data_modeling" title="Data modeling">Data modeling</a></li> <li><a href="/wiki/Enterprise_architecture" title="Enterprise architecture">Enterprise architecture</a></li> <li><a href="/wiki/Functional_specification" title="Functional specification">Functional specification</a></li> <li><a href="/wiki/Modeling_language" title="Modeling language">Modeling language</a></li> <li><a href="/wiki/Programming_paradigm" title="Programming paradigm">Programming paradigm</a></li> <li><a href="/wiki/Software" title="Software">Software</a></li> <li><a href="/wiki/Software_archaeology" title="Software archaeology">Software archaeology</a></li> <li><a href="/wiki/Software_architecture" title="Software architecture">Software architecture</a></li> <li><a href="/wiki/Software_configuration_management" title="Software configuration management">Software configuration management</a></li> <li><a href="/wiki/Software_development_process" title="Software development process">Software development process/methodology</a></li> <li><a href="/wiki/Software_quality" title="Software quality">Software quality</a></li> <li><a href="/wiki/Software_quality_assurance" title="Software quality assurance">Software quality assurance</a></li> <li><a href="/wiki/Software_system" title="Software system">Software system</a></li> <li><a href="/wiki/Software_verification_and_validation" title="Software verification and validation">Software verification and validation</a></li> <li><a href="/wiki/Structured_analysis" title="Structured analysis">Structured analysis</a> <ul><li><a href="/wiki/Essential_systems_analysis" title="Essential systems analysis">Essential analysis</a></li></ul></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Orientations</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Agile_software_development" title="Agile software development">Agile</a></li> <li><a href="/wiki/Aspect-oriented_programming" title="Aspect-oriented programming">Aspect-oriented</a></li> <li><a href="/wiki/Object-oriented_programming" title="Object-oriented programming">Object orientation</a></li> <li><a href="/wiki/Ontology_(information_science)" title="Ontology (information science)">Ontology</a></li> <li><a href="/wiki/Systems_development_life_cycle" title="Systems development life cycle">SDLC</a></li> <li><a href="/wiki/Service-oriented_architecture" title="Service-oriented architecture">Service orientation</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Models</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"></div><table class="nowraplinks navbox-subgroup" style="border-spacing:0"><tbody><tr><th scope="row" class="navbox-group" style="width:1%;font-weight:normal;">Developmental</th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Agile_software_development" title="Agile software development">Agile</a></li> <li><a href="/wiki/Enterprise_unified_process" title="Enterprise unified process">EUP</a></li> <li><a href="/wiki/Executable_UML" title="Executable UML">Executable UML</a></li> <li><a href="/wiki/Incremental_build_model" title="Incremental build model">Incremental model</a></li> <li><a href="/wiki/Iterative_and_incremental_development" title="Iterative and incremental development">Iterative model</a></li> <li><a href="/wiki/Software_prototyping" title="Software prototyping">Prototype model</a></li> <li><a href="/wiki/Rapid_application_development" title="Rapid application development">RAD</a></li> <li><a href="/wiki/Scrum_(software_development)" title="Scrum (software development)">Scrum</a></li> <li><a href="/wiki/Spiral_model" title="Spiral model">Spiral model</a></li> <li><a href="/wiki/Unified_process" title="Unified process">UP</a></li> <li><a href="/wiki/V-model_(software_development)" title="V-model (software development)">V-model</a></li> <li><a href="/wiki/Waterfall_model" title="Waterfall model">Waterfall model</a></li> <li><a class="mw-selflink selflink">XP</a></li> <li><a href="/wiki/Model-driven_engineering" title="Model-driven engineering">Model-driven engineering</a></li> <li><a href="/wiki/Round-trip_engineering" title="Round-trip engineering">Round-trip engineering</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%;font-weight:normal;">Other</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Capability_Maturity_Model_Integration" title="Capability Maturity Model Integration">CMMI</a></li> <li><a href="/wiki/Data_model" title="Data model">Data model</a></li> <li><a href="/wiki/Entity%E2%80%93relationship_model" title="Entity–relationship model">ER model</a></li> <li><a href="/wiki/Function_model" title="Function model">Function model</a></li> <li><a href="/wiki/Information_model" title="Information model">Information model</a></li> <li><a href="/wiki/Metamodeling" title="Metamodeling">Metamodeling</a></li> <li><a href="/wiki/Object_model" title="Object model">Object model</a></li> <li><a href="/wiki/ISO/IEC_15504" title="ISO/IEC 15504">SPICE</a></li> <li><a href="/wiki/Systems_modeling" title="Systems modeling">Systems model</a></li> <li><a href="/wiki/View_model" title="View model">View model</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%;font-weight:normal;">Languages</th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/IDEF" title="IDEF">IDEF</a></li> <li><a href="/wiki/Systems_modeling_language" title="Systems modeling language">SysML</a></li> <li><a href="/wiki/Unified_Modeling_Language" title="Unified Modeling Language">UML</a></li> <li><a href="/wiki/Universal_Systems_Language" title="Universal Systems Language">USL</a></li></ul> </div></td></tr></tbody></table><div></div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Related fields</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Computer_engineering" title="Computer engineering">Computer engineering</a></li> <li><a href="/wiki/Computer_science" title="Computer science">Computer science</a></li> <li><a href="/wiki/Information_science" title="Information science">Information science</a></li> <li><a href="/wiki/Project_management" title="Project management">Project management</a></li> <li><a href="/wiki/Risk_management" title="Risk management">Risk management</a></li> <li><a href="/wiki/Systems_engineering" title="Systems engineering">Systems engineering</a></li></ul> </div></td></tr><tr><td class="navbox-abovebelow" colspan="2" style="font-weight:bold;"><div> <ul><li><span class="noviewer" typeof="mw:File"><span title="Category"><img alt="" src="//upload.wikimedia.org/wikipedia/en/thumb/9/96/Symbol_category_class.svg/16px-Symbol_category_class.svg.png" decoding="async" width="16" height="16" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/en/thumb/9/96/Symbol_category_class.svg/23px-Symbol_category_class.svg.png 1.5x, //upload.wikimedia.org/wikipedia/en/thumb/9/96/Symbol_category_class.svg/31px-Symbol_category_class.svg.png 2x" data-file-width="180" data-file-height="185" /></span></span> <a href="/wiki/Category:Software_engineering" title="Category:Software engineering">Category</a></li> <li><span class="noviewer" typeof="mw:File"><span title="Commons page"><img alt="" src="//upload.wikimedia.org/wikipedia/en/thumb/4/4a/Commons-logo.svg/12px-Commons-logo.svg.png" decoding="async" width="12" height="16" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/en/thumb/4/4a/Commons-logo.svg/18px-Commons-logo.svg.png 1.5x, //upload.wikimedia.org/wikipedia/en/thumb/4/4a/Commons-logo.svg/24px-Commons-logo.svg.png 2x" data-file-width="1024" data-file-height="1376" /></span></span> <a href="https://commons.wikimedia.org/wiki/Category:Software_engineering" class="extiw" title="commons:Category:Software engineering">Commons</a></li></ul> </div></td></tr></tbody></table></div> <div class="navbox-styles"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1129693374" /><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1236075235" /><style data-mw-deduplicate="TemplateStyles:r1038841319">.mw-parser-output .tooltip-dotted{border-bottom:1px dotted;cursor:help}</style></div><div role="navigation" class="navbox authority-control" aria-label="Navbox1169" style="padding:3px"><table class="nowraplinks hlist navbox-inner" style="border-spacing:0;background:transparent;color:inherit"><tbody><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Help:Authority_control" title="Help:Authority control">Authority control databases</a>: National <span class="mw-valign-text-top noprint" typeof="mw:File/Frameless"><a href="https://www.wikidata.org/wiki/Q209711#identifiers" title="Edit this at Wikidata"><img alt="Edit this at Wikidata" src="//upload.wikimedia.org/wikipedia/en/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/10px-OOjs_UI_icon_edit-ltr-progressive.svg.png" decoding="async" width="10" height="10" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/en/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/15px-OOjs_UI_icon_edit-ltr-progressive.svg.png 1.5x, //upload.wikimedia.org/wikipedia/en/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/20px-OOjs_UI_icon_edit-ltr-progressive.svg.png 2x" data-file-width="20" data-file-height="20" /></a></span></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"><ul><li><span class="uid"><a rel="nofollow" class="external text" href="https://d-nb.info/gnd/4618499-5">Germany</a></span></li><li><span class="uid"><a rel="nofollow" class="external text" href="https://id.loc.gov/authorities/sh99004731">United States</a></span></li><li><span class="uid"><a rel="nofollow" class="external text" href="https://catalogue.bnf.fr/ark:/12148/cb144400247">France</a></span></li><li><span class="uid"><a rel="nofollow" class="external text" href="https://data.bnf.fr/ark:/12148/cb144400247">BnF data</a></span></li><li><span class="uid"><span class="rt-commentedText tooltip tooltip-dotted" title="extrémní programování"><a rel="nofollow" class="external text" href="https://aleph.nkp.cz/F/?func=find-c&amp;local_base=aut&amp;ccl_term=ica=ph127853&amp;CON_LNG=ENG">Czech Republic</a></span></span></li><li><span class="uid"><a rel="nofollow" class="external text" href="http://catalogo.bne.es/uhtbin/authoritybrowse.cgi?action=display&amp;authority_id=XX550562">Spain</a></span></li><li><span class="uid"><a rel="nofollow" class="external text" href="https://www.nli.org.il/en/authorities/987007539601005171">Israel</a></span></li></ul></div></td></tr></tbody></table></div> <!-- NewPP limit report Parsed by mw‐web.codfw.next‐7fcc84d4c6‐8fnhd Cached time: 20250304130332 Cache expiry: 2592000 Reduced expiry: false Complications: [vary‐revision‐sha1, show‐toc] CPU time usage: 0.677 seconds Real time usage: 0.835 seconds Preprocessor visited node count: 3782/1000000 Post‐expand include size: 95885/2097152 bytes Template argument size: 6312/2097152 bytes Highest expansion depth: 15/100 Expensive parser function count: 12/500 Unstrip recursion depth: 1/20 Unstrip post‐expand size: 81930/5000000 bytes Lua time usage: 0.390/10.000 seconds Lua memory usage: 8860477/52428800 bytes Number of Wikibase entities loaded: 1/400 --> <!-- Transclusion expansion time report (%,ms,calls,template) 100.00% 698.214 1 -total 18.83% 131.477 1 Template:Reflist 12.37% 86.336 1 Template:Software_development_process 12.08% 84.362 1 Template:Sidebar_with_collapsible_lists 9.82% 68.540 1 Template:Short_description 8.92% 62.256 6 Template:Fix 8.66% 60.460 3 Template:Cite_web 7.17% 50.072 1 Template:Commons_category 7.11% 49.658 2 Template:Sister_project 6.84% 47.754 2 Template:Side_box --> <!-- Saved in parser cache with key enwiki:pcache:38634705:|#|:idhash:canonical and timestamp 20250304130332 and revision id 1273996036. Rendering was triggered because: page-view --> </div><!--esi <esi:include src="/esitest-fa8a495983347898/content" /> --><noscript><img src="https://login.wikimedia.org/wiki/Special:CentralAutoLogin/start?useformat=desktop&amp;type=1x1&amp;usesul3=0" alt="" width="1" height="1" style="border: none; position: absolute;"></noscript> <div class="printfooter" data-nosnippet="">Retrieved from "<a dir="ltr" href="https://en.wikipedia.org/w/index.php?title=Extreme_programming&amp;oldid=1273996036">https://en.wikipedia.org/w/index.php?title=Extreme_programming&amp;oldid=1273996036</a>"</div></div> <div id="catlinks" class="catlinks" data-mw="interface"><div id="mw-normal-catlinks" class="mw-normal-catlinks"><a href="/wiki/Help:Category" title="Help:Category">Categories</a>: <ul><li><a href="/wiki/Category:Extreme_programming" title="Category:Extreme programming">Extreme programming</a></li><li><a href="/wiki/Category:Software_development_philosophies" title="Category:Software development philosophies">Software development philosophies</a></li><li><a href="/wiki/Category:Agile_software_development" title="Category:Agile software development">Agile software development</a></li></ul></div><div id="mw-hidden-catlinks" class="mw-hidden-catlinks mw-hidden-cats-hidden">Hidden categories: <ul><li><a href="/wiki/Category:Webarchive_template_wayback_links" title="Category:Webarchive template wayback links">Webarchive template wayback links</a></li><li><a href="/wiki/Category:CS1_errors:_periodical_ignored" title="Category:CS1 errors: periodical ignored">CS1 errors: periodical ignored</a></li><li><a href="/wiki/Category:Articles_with_short_description" title="Category:Articles with short description">Articles with short description</a></li><li><a href="/wiki/Category:Short_description_is_different_from_Wikidata" title="Category:Short description is different from Wikidata">Short description is different from Wikidata</a></li><li><a href="/wiki/Category:Use_mdy_dates_from_May_2021" title="Category:Use mdy dates from May 2021">Use mdy dates from May 2021</a></li><li><a href="/wiki/Category:Articles_with_specifically_marked_weasel-worded_phrases_from_August_2019" title="Category:Articles with specifically marked weasel-worded phrases from August 2019">Articles with specifically marked weasel-worded phrases from August 2019</a></li><li><a href="/wiki/Category:Articles_containing_potentially_dated_statements_from_2019" title="Category:Articles containing potentially dated statements from 2019">Articles containing potentially dated statements from 2019</a></li><li><a href="/wiki/Category:All_articles_containing_potentially_dated_statements" title="Category:All articles containing potentially dated statements">All articles containing potentially dated statements</a></li><li><a href="/wiki/Category:Articles_needing_additional_references_from_February_2025" title="Category:Articles needing additional references from February 2025">Articles needing additional references from February 2025</a></li><li><a href="/wiki/Category:All_articles_needing_additional_references" title="Category:All articles needing additional references">All articles needing additional references</a></li><li><a href="/wiki/Category:All_articles_with_unsourced_statements" title="Category:All articles with unsourced statements">All articles with unsourced statements</a></li><li><a href="/wiki/Category:Articles_with_unsourced_statements_from_January_2013" title="Category:Articles with unsourced statements from January 2013">Articles with unsourced statements from January 2013</a></li><li><a href="/wiki/Category:Articles_with_unsourced_statements_from_June_2009" title="Category:Articles with unsourced statements from June 2009">Articles with unsourced statements from June 2009</a></li><li><a href="/wiki/Category:Articles_with_unsourced_statements_from_February_2020" title="Category:Articles with unsourced statements from February 2020">Articles with unsourced statements from February 2020</a></li><li><a href="/wiki/Category:Articles_with_unsourced_statements_from_July_2008" title="Category:Articles with unsourced statements from July 2008">Articles with unsourced statements from July 2008</a></li><li><a href="/wiki/Category:Articles_with_unsourced_statements_from_August_2009" title="Category:Articles with unsourced statements from August 2009">Articles with unsourced statements from August 2009</a></li><li><a href="/wiki/Category:Commons_category_link_is_on_Wikidata" title="Category:Commons category link is on Wikidata">Commons category link is on Wikidata</a></li></ul></div></div> </div> </main> </div> <div class="mw-footer-container"> <footer id="footer" class="mw-footer" > <ul id="footer-info"> <li id="footer-info-lastmod"> This page was last edited on 4 February 2025, at 23:54<span class="anonymous-show">&#160;(UTC)</span>.</li> <li id="footer-info-copyright">Text is available under the <a href="/wiki/Wikipedia:Text_of_the_Creative_Commons_Attribution-ShareAlike_4.0_International_License" title="Wikipedia:Text of the Creative Commons Attribution-ShareAlike 4.0 International License">Creative Commons Attribution-ShareAlike 4.0 License</a>; additional terms may apply. By using this site, you agree to the <a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Terms_of_Use" class="extiw" title="foundation:Special:MyLanguage/Policy:Terms of Use">Terms of Use</a> and <a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Privacy_policy" class="extiw" title="foundation:Special:MyLanguage/Policy:Privacy policy">Privacy Policy</a>. Wikipedia® is a registered trademark of the <a rel="nofollow" class="external text" href="https://wikimediafoundation.org/">Wikimedia Foundation, Inc.</a>, a non-profit organization.</li> </ul> <ul id="footer-places"> <li id="footer-places-privacy"><a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Privacy_policy">Privacy policy</a></li> <li id="footer-places-about"><a href="/wiki/Wikipedia:About">About Wikipedia</a></li> <li id="footer-places-disclaimers"><a href="/wiki/Wikipedia:General_disclaimer">Disclaimers</a></li> <li id="footer-places-contact"><a href="//en.wikipedia.org/wiki/Wikipedia:Contact_us">Contact Wikipedia</a></li> <li id="footer-places-wm-codeofconduct"><a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Universal_Code_of_Conduct">Code of Conduct</a></li> <li id="footer-places-developers"><a href="https://developer.wikimedia.org">Developers</a></li> <li id="footer-places-statslink"><a href="https://stats.wikimedia.org/#/en.wikipedia.org">Statistics</a></li> <li id="footer-places-cookiestatement"><a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Cookie_statement">Cookie statement</a></li> <li id="footer-places-mobileview"><a href="//en.m.wikipedia.org/w/index.php?title=Extreme_programming&amp;mobileaction=toggle_view_mobile" class="noprint stopMobileRedirectToggle">Mobile view</a></li> </ul> <ul id="footer-icons" class="noprint"> <li id="footer-copyrightico"><a href="https://wikimediafoundation.org/" class="cdx-button cdx-button--fake-button cdx-button--size-large cdx-button--fake-button--enabled"><picture><source media="(min-width: 500px)" srcset="/static/images/footer/wikimedia-button.svg" width="84" height="29"><img src="/static/images/footer/wikimedia.svg" width="25" height="25" alt="Wikimedia Foundation" lang="en" loading="lazy"></picture></a></li> <li id="footer-poweredbyico"><a href="https://www.mediawiki.org/" class="cdx-button cdx-button--fake-button cdx-button--size-large cdx-button--fake-button--enabled"><picture><source media="(min-width: 500px)" srcset="/w/resources/assets/poweredby_mediawiki.svg" width="88" height="31"><img src="/w/resources/assets/mediawiki_compact.svg" alt="Powered by MediaWiki" lang="en" width="25" height="25" loading="lazy"></picture></a></li> </ul> </footer> </div> </div> </div> <div class="vector-header-container vector-sticky-header-container"> <div id="vector-sticky-header" class="vector-sticky-header"> <div class="vector-sticky-header-start"> <div class="vector-sticky-header-icon-start vector-button-flush-left vector-button-flush-right" aria-hidden="true"> <button class="cdx-button cdx-button--weight-quiet cdx-button--icon-only vector-sticky-header-search-toggle" tabindex="-1" data-event-name="ui.vector-sticky-search-form.icon"><span class="vector-icon mw-ui-icon-search mw-ui-icon-wikimedia-search"></span> <span>Search</span> </button> </div> <div role="search" class="vector-search-box-vue vector-search-box-show-thumbnail vector-search-box"> <div class="vector-typeahead-search-container"> <div class="cdx-typeahead-search cdx-typeahead-search--show-thumbnail"> <form action="/w/index.php" id="vector-sticky-search-form" class="cdx-search-input cdx-search-input--has-end-button"> <div class="cdx-search-input__input-wrapper" data-search-loc="header-moved"> <div class="cdx-text-input cdx-text-input--has-start-icon"> <input class="cdx-text-input__input" type="search" name="search" placeholder="Search Wikipedia"> <span class="cdx-text-input__icon cdx-text-input__start-icon"></span> </div> <input type="hidden" name="title" value="Special:Search"> </div> <button class="cdx-button cdx-search-input__end-button">Search</button> </form> </div> </div> </div> <div class="vector-sticky-header-context-bar"> <nav aria-label="Contents" class="vector-toc-landmark"> <div id="vector-sticky-header-toc" class="vector-dropdown mw-portlet mw-portlet-sticky-header-toc vector-sticky-header-toc vector-button-flush-left" > <input type="checkbox" id="vector-sticky-header-toc-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-sticky-header-toc" class="vector-dropdown-checkbox " aria-label="Toggle the table of contents" > <label id="vector-sticky-header-toc-label" for="vector-sticky-header-toc-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-listBullet mw-ui-icon-wikimedia-listBullet"></span> <span class="vector-dropdown-label-text">Toggle the table of contents</span> </label> <div class="vector-dropdown-content"> <div id="vector-sticky-header-toc-unpinned-container" class="vector-unpinned-container"> </div> </div> </div> </nav> <div class="vector-sticky-header-context-bar-primary" aria-hidden="true" ><span class="mw-page-title-main">Extreme programming</span></div> </div> </div> <div class="vector-sticky-header-end" aria-hidden="true"> <div class="vector-sticky-header-icons"> <a href="#" class="cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only" id="ca-talk-sticky-header" tabindex="-1" data-event-name="talk-sticky-header"><span class="vector-icon mw-ui-icon-speechBubbles mw-ui-icon-wikimedia-speechBubbles"></span> <span></span> </a> <a href="#" class="cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only" id="ca-subject-sticky-header" tabindex="-1" data-event-name="subject-sticky-header"><span class="vector-icon mw-ui-icon-article mw-ui-icon-wikimedia-article"></span> <span></span> </a> <a href="#" class="cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only" id="ca-history-sticky-header" tabindex="-1" data-event-name="history-sticky-header"><span class="vector-icon mw-ui-icon-wikimedia-history mw-ui-icon-wikimedia-wikimedia-history"></span> <span></span> </a> <a href="#" class="cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only mw-watchlink" id="ca-watchstar-sticky-header" tabindex="-1" data-event-name="watch-sticky-header"><span class="vector-icon mw-ui-icon-wikimedia-star mw-ui-icon-wikimedia-wikimedia-star"></span> <span></span> </a> <a href="#" class="cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only" id="ca-edit-sticky-header" tabindex="-1" data-event-name="wikitext-edit-sticky-header"><span class="vector-icon mw-ui-icon-wikimedia-wikiText mw-ui-icon-wikimedia-wikimedia-wikiText"></span> <span></span> </a> <a href="#" class="cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only" id="ca-ve-edit-sticky-header" tabindex="-1" data-event-name="ve-edit-sticky-header"><span class="vector-icon mw-ui-icon-wikimedia-edit mw-ui-icon-wikimedia-wikimedia-edit"></span> <span></span> </a> <a href="#" class="cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only" id="ca-viewsource-sticky-header" tabindex="-1" data-event-name="ve-edit-protected-sticky-header"><span class="vector-icon mw-ui-icon-wikimedia-editLock mw-ui-icon-wikimedia-wikimedia-editLock"></span> <span></span> </a> </div> <div class="vector-sticky-header-buttons"> <button class="cdx-button cdx-button--weight-quiet mw-interlanguage-selector" id="p-lang-btn-sticky-header" tabindex="-1" data-event-name="ui.dropdown-p-lang-btn-sticky-header"><span class="vector-icon mw-ui-icon-wikimedia-language mw-ui-icon-wikimedia-wikimedia-language"></span> <span>38 languages</span> </button> <a href="#" class="cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--action-progressive" id="ca-addsection-sticky-header" tabindex="-1" data-event-name="addsection-sticky-header"><span class="vector-icon mw-ui-icon-speechBubbleAdd-progressive mw-ui-icon-wikimedia-speechBubbleAdd-progressive"></span> <span>Add topic</span> </a> </div> <div class="vector-sticky-header-icon-end"> <div class="vector-user-links"> </div> </div> </div> </div> </div> <div class="mw-portlet mw-portlet-dock-bottom emptyPortlet" id="p-dock-bottom"> <ul> </ul> </div> <script>(RLQ=window.RLQ||[]).push(function(){mw.config.set({"wgHostname":"mw-web.codfw.next-8549896fb-fmbpx","wgBackendResponseTime":186,"wgPageParseReport":{"limitreport":{"cputime":"0.677","walltime":"0.835","ppvisitednodes":{"value":3782,"limit":1000000},"postexpandincludesize":{"value":95885,"limit":2097152},"templateargumentsize":{"value":6312,"limit":2097152},"expansiondepth":{"value":15,"limit":100},"expensivefunctioncount":{"value":12,"limit":500},"unstrip-depth":{"value":1,"limit":20},"unstrip-size":{"value":81930,"limit":5000000},"entityaccesscount":{"value":1,"limit":400},"timingprofile":["100.00% 698.214 1 -total"," 18.83% 131.477 1 Template:Reflist"," 12.37% 86.336 1 Template:Software_development_process"," 12.08% 84.362 1 Template:Sidebar_with_collapsible_lists"," 9.82% 68.540 1 Template:Short_description"," 8.92% 62.256 6 Template:Fix"," 8.66% 60.460 3 Template:Cite_web"," 7.17% 50.072 1 Template:Commons_category"," 7.11% 49.658 2 Template:Sister_project"," 6.84% 47.754 2 Template:Side_box"]},"scribunto":{"limitreport-timeusage":{"value":"0.390","limit":"10.000"},"limitreport-memusage":{"value":8860477,"limit":52428800},"limitreport-logs":"anchor_id_list = table#1 {\n [\"CITEREFBeck1999\"] = 1,\n [\"CITEREFBoehmR._Turner2004\"] = 1,\n [\"CITEREFCutter_Consortium\"] = 1,\n [\"CITEREFJohn_CarrollDavid_Morris2015\"] = 1,\n [\"CITEREFKen_AuerRon_JeffriesJeff_CannaGlen_B._Alleman2002\"] = 1,\n [\"CITEREFLarmanBasili2003\"] = 1,\n [\"CITEREFLisa_CrispinTip_House2003\"] = 1,\n [\"CITEREFMcBreen2003\"] = 1,\n [\"CITEREFRosenbergStephens2003\"] = 1,\n [\"CITEREFStephensDoug_Rosenberg2004\"] = 1,\n [\"courage\"] = 1,\n}\ntemplate_list = table#1 {\n [\"Anchor\"] = 1,\n [\"As of\"] = 1,\n [\"Authority control\"] = 1,\n [\"By whom?\"] = 1,\n [\"Circa\"] = 1,\n [\"Citation needed\"] = 5,\n [\"Cite book\"] = 9,\n [\"Cite journal\"] = 1,\n [\"Cite web\"] = 3,\n [\"Commons category\"] = 1,\n [\"Details\"] = 1,\n [\"ISBN\"] = 1,\n [\"Main\"] = 1,\n [\"More citations needed section\"] = 1,\n [\"Quote\"] = 1,\n [\"Reflist\"] = 1,\n [\"Sfn\"] = 1,\n [\"Short description\"] = 1,\n [\"Software development process\"] = 1,\n [\"Software engineering\"] = 1,\n [\"TOC limit\"] = 1,\n [\"Use mdy dates\"] = 1,\n [\"Webarchive\"] = 3,\n [\"Wikiquote\"] = 1,\n}\narticle_whitelist = table#1 {\n}\nciteref_patterns = table#1 {\n}\n"},"cachereport":{"origin":"mw-web.codfw.next-7fcc84d4c6-8fnhd","timestamp":"20250304130332","ttl":2592000,"transientcontent":false}}});});</script> <script type="application/ld+json">{"@context":"https:\/\/schema.org","@type":"Article","name":"Extreme programming","url":"https:\/\/en.wikipedia.org\/wiki\/Extreme_programming","sameAs":"http:\/\/www.wikidata.org\/entity\/Q209711","mainEntity":"http:\/\/www.wikidata.org\/entity\/Q209711","author":{"@type":"Organization","name":"Contributors to Wikimedia projects"},"publisher":{"@type":"Organization","name":"Wikimedia Foundation, Inc.","logo":{"@type":"ImageObject","url":"https:\/\/www.wikimedia.org\/static\/images\/wmf-hor-googpub.png"}},"datePublished":"2001-10-17T09:43:28Z","dateModified":"2025-02-04T23:54:57Z","image":"https:\/\/upload.wikimedia.org\/wikipedia\/commons\/8\/84\/Extreme_Programming.svg","headline":"software development methodology which intends to improve software quality and responsiveness to changing customer requirements"}</script> </body> </html>

Pages: 1 2 3 4 5 6 7 8 9 10