XP (Extreme Programming) Mudel - JOstapjuk/Konspeekt_Agiil GitHub Wiki

XP (Extreme Programming) Mudel

  • Definitsioon oma sõnadega

    XP ehk Extreme Programming on tarkvaraarenduse meetod, mis kuulub Agile’i pere hulka. See keskendub kvaliteetse koodi loomisele, pidevale tagasisidele ja tihedale koostööle. XP rõhutab testide põhist arendust, paarisprogrammeerimist ja lühikesi arendustsükleid, et pakkuda kiiresti töötavat ja usaldusväärset tarkvara.

  • Peamised omadused

    1. Lühikesed iteratsioonid: XP kasutab väga lühikesi arendustsükleid (tavaliselt 1 nädal), kus iga tsükli lõpus peab valmima töötav tarkvaraversioon.
    2. Paarisprogrammeerimine: Kaks arendajat töötavad korraga ühe arvuti taga, et tagada koodi kvaliteet ja teadmiste jagamine.
    3. Testide põhine arendus (TDD): Kõigepealt kirjutatakse testid ja alles siis kood, et testid läbiksid — see suurendab töökindlust.
    4. Pidev integratsioon: Koodi ühendatakse keskserverisse mitu korda päevas, et vältida konflikte ja hoida süsteem stabiilsena.
    5. Kliendi pidev kaasamine: Klient on tiimi liige, kes annab regulaarselt tagasisidet ja seab prioriteedid.
  • Iteratsiooni näide

    Näide: Meeskond arendab mobiilirakendust. Esimeses iteratsioonis keskenduvad nad sisselogimisfunktsiooni loomisele ja selle testimisele. Arendajad töötavad paaris, kirjutavad esmalt testid ja seejärel vajaliku koodi. Teise iteratsiooni ajal lisatakse profiili redigeerimise võimalus. Iga iteratsiooni lõpus on valmis funktsioon, mida klient saab proovida ja kommenteerida.

  • Lisa skeem või joonis

image

  • Eelised

    1. Kõrge koodikvaliteet: Tänu testimisele ja paarisprogrammeerimisele on kood puhtam ja vähem vigane.
    2. Kiire kohanemine: XP sobib hästi muutuvatesse keskkondadesse, kuna muudatusi saab kiiresti ellu viia.
    3. Kliendikesksus: Kliendi tihe kaasamine tagab, et arendus on suunatud tegelikele vajadustele.
  • Puudused

    1. Ressursimahukus: Paarisprogrammeerimine ja pidev testimine võivad vajada rohkem aega ja tööjõudu.
    2. Vajab distsipliini: Meeskond peab rangelt järgima XP praktikaid, vastasel juhul kaob metoodika efektiivsus.
    3. Ei sobi igasse organisatsiooni: Väga hierarhilised või dokumentatsioonikesksed ettevõtted võivad XP-d raskemini rakendada.

2. Võrdlus: XP vs Waterfall

  • Tabel või nimekiri võrdluseks

    Võrdle XP ja Waterfall mudeleid järgmiste omaduste alusel:

Kriteerium XP (Extreme Programming) Waterfall
Lähenemine Iteratiivne, testipõhine Lineaarne ja järjestikune
Tagasiside sagedus Igapäevane ja iteratsioonide lõpus Harv, ainult lõpus
Sobivus projekti tüübi järgi Kiirelt muutuvad, väiksemad projektid Suured, stabiilsete nõuetega projektid
Riskide juhtimine Väheneb läbi pideva testimise Riskid võivad ilmneda hiljem
Funktsionaalsuse valmimine Iga nädal uus töötav osa Lõpus kõik korraga

XP (Extreme Programming) Model

  • Definition in Your Own Words

    XP, or Extreme Programming, is a software development method that belongs to the Agile family. It focuses on creating high-quality code, constant feedback, and close collaboration. XP emphasizes test-driven development, pair programming, and short development cycles to deliver fast, reliable, and working software.

  • Key Features

    1. Short Iterations: XP uses very short development cycles (typically one week), where a working version of the software must be ready at the end of each cycle.
    2. Pair Programming: Two developers work together on one computer to ensure high-quality code and knowledge sharing.
    3. Test-Driven Development (TDD): Tests are written before the code to ensure that the tests pass — this increases reliability.
    4. Continuous Integration: Code is integrated into a central server multiple times a day to avoid conflicts and maintain system stability.
    5. Continuous Customer Involvement: The customer is an active member of the team, providing regular feedback and setting priorities.
  • Example of an Iteration

    Scenario: A team is developing a mobile app. In the first iteration, they focus on creating and testing the login functionality. Developers work in pairs, first writing tests and then coding the necessary features. During the second iteration, they add the profile editing functionality. At the end of each iteration, a working feature is ready for the customer to try and give feedback.

  • Diagram

    image

  • Advantages

    1. High Code Quality: Thanks to testing and pair programming, the code is cleaner and less error-prone.
    2. Rapid Adaptability: XP works well in changing environments because modifications can be implemented quickly.
    3. Customer-Centric: Continuous customer involvement ensures the development is focused on real needs.
  • Disadvantages

    1. Resource Intensive: Pair programming and continuous testing require more time and manpower.
    2. Requires Discipline: The team must strictly adhere to XP practices, or the methodology may lose effectiveness.
    3. Not Suitable for Every Organization: Highly hierarchical or documentation-heavy companies might find it difficult to implement XP.

2. Comparison: XP vs Waterfall

  • Comparison Table

    Compare the XP and Waterfall models based on the following criteria:

Criterion XP (Extreme Programming) Waterfall
Approach Iterative, test-driven Linear and sequential
Feedback Frequency Daily and at the end of iterations Rare, only at the end
Project Suitability Suitable for fast-changing, smaller projects Suitable for large, stable-scope projects
Risk Management Reduced through continuous testing Risks may emerge later
Function Delivery A new working piece every week All functions delivered at the end