Extreme programming practices: Difference between revisions

Content deleted Content added
Adding local short description: "Software development methodology", overriding Wikidata description "agile software development methodology"
 
(3 intermediate revisions by 3 users not shown)
Line 1:
{{Short description|Software development methodology}}
'''[[Extreme programming]]''' ('''XP''') is an [[agile software development]] methodology used to implement [[software]] systems. This article details the practices used in this methodology. Extreme programming has 12 practices, grouped into four areas, derived from the [[best practices]] of [[software engineering]].<ref name="XPExplained">Beck, K. ''Extreme Programming Explained: Embrace Change'' 2nd. ed. Addison-Wesley, 2000 pp. 54</ref>
 
==Fine -scale feedback==
 
=== Pair programming ===
{{Confusing|date=June 2023|reason=the first sentence of the following paragraph seems to be an incomplete sentence. Where is the verb phrase?}}
[[Pair programming]] is a waymethod of programming wherein which code is produced by two people programming together on one task. One programmer has control over the workstation and is thinking mostly about the coding in detail. The other programmer is more focused on the big picture, and is continually reviewing the code that is being produced by the first programmer. Programmers trade roles after minute to hour periods.
 
The pairs are not fixed; programmers switch partners frequently, so that everyone knows what everyone is doing, and everybody remains familiar with the whole system, even the parts outside their skill set. This way, pair programming also can enhance team-wide communication. (This also goes hand-in-hand with the concept of Collective Ownership).
Line 112 ⟶ 113:
 
* Get a task card: The programmer gets the task card for one of the tasks to which he or she has committed.
* Find a Partnerpartner: The programmer will implement this task along with another programmer. This is further discussed in the practice of [[Pairpair Programmingprogramming]].
* Design the task: If needed, the programmers will design the functionality of the task.
* Implement the task using [[Testtest-driven development]] (TDD) (see below)
* Run Functionalfunctional test: Functional tests (based on the requirements in the associated user story and task card) are run.
 
=== Test driven development ===
Line 178 ⟶ 179:
 
== See also ==
* [[Extreme programming]]
* [[Continuous integration]]
* [[Multi-stage continuous integration]]