Extrémní programování

Anotace

Extrémní programování je kompletní metodika vývoje software spojující v sobě praktiky, týmové role, týmové hodnoty a proces. Snad proto, že za XP stojí Kent Beck, původem vývojář, jsou nejosvědčenější částí XP právě praktiky softwarového vývoje.

When people hear me talk about XP they say, „But you make it sound so simple.“ Well, that’s because it is simple. It doesn’t take a Ph.D. in computer science to contribute to an XP project (in fact, the Ph.D.’s sometimes have the most trouble). XP is simple in its details, but it is hard to execute.

(Kent Beck, Extreme Programming Explained)

Historie

V roce 1996 byl Kent Beck přizván jako expert na Smalltalk k projektu C3 společnosti Chrysler. C3 byla účetní aplikace, která měla nahradit několik do té doby samostatných aplikací pro mzdové účetnictví.

Po rozhovorech se zaměstnanci Beck zjistil, že se aplikace C3 v současném stavu nikdy nemůže dostat do produkční fáze. Při prezentaci vedení následně poukázal na mnoho nedostatků v metodice vývoje. Beck byl záhy společností Chrysler najat a do týmu pracujícím na C3 přivedl mnoho ověřených praktik, které spojil do jedné metodiky nazvané Extrémní programování.

Extrémní programování je jako puzzle. Jednotlivé praktiky byly známy již dlouho předtím, nicméně až Kent Beck z nich vytvořil kompletní a efektivní systém.

XP bylo pravděpodobně nejrozšířenější agilní metodikou v 90. letech a na počátku milénia. Až ve druhém desetiletí začal převažovat Scrum. První kniha shrnující základy XP vyšla v roce 1999 (Extreme Programming Explained).

Extrémní programování v kostce

Praktiky

Specialitou XP není jen výběr vývojářských praktik, ale dotažení těchto praktik do extrému. Pokud shledáme unit-testy užitečné, pokryjeme jimi celý kód. Je-li přínosná diskuze se zákazníkem, zajistíme, aby byl zákazník neustále k dispozici atd.

Jádro dobrých praktik tvoří párové programování, refaktoring a unit-testování. Dohromady je praktik dvanáct:

  • plánovací hra,
  • zákazník na pracovišti,
  • vydávání malých verzí,
  • metafora,
  • párové programování,
  • společné vlastnictví kódu,
  • kódovací předpis,
  • žádné přesčasy,
  • průběžná integrace,
  • jednoduchý návrh,
  • refaktorizace kódu,
  • unit-testování.

XP Practices

XP je extrémní také v počtu zpětných vazeb:

  • „zákazník na pracovišti“ dává zpětnou vazbu k produktu,
  • párové programování a unit testy umožňují kontrolovat kvalitu kódu,
  • párové programování a rotace v týmu dávají vývojářům zpětnou vazbu k jejich znalostem,
  • měření tzv. velocity pomáhá při plánování,
  • častou integrací zjistíme, jak dobře do sebe komponenty zapadají.

Role

Jeden člověk může mít více rolí, ale některé role není dobré spolu kombinovat. XP uznává sedm rolí:

  • tracker (stopař),
  • customer (zákazník),
  • programmer (vývojář),
  • coach (kouč),
  • tester (tester),
  • doomsayer (předvídač katastrof),
  • manager (manažer).

Pojetí kouče je v XP odlišné. Kouč je vedoucí týmu s velmi dobrou znalostí programovacího jazyka a používaných frameworků. Kouč je mentor, metodolog a má vizi o dalším vývoji architektury kódu.

Hodnoty

XP sympatizuje s pěti základními hodnotami:

  • komunikace,
  • jednoduchost,
  • respekt,
  • odvaha,
  • zpětná vazba.

Kritika

Zastánci XP kladou důraz na párové programování a vývoj způsobem test firts, což jsou praktiky, které nevyhovují každému. Párové programování je samo o sobě relativně kontroverzní, protože jeho efektivnost velmi závisí na dobrém zvládnutí, praxi a konkrétních lidech.

Certifikace

Za XP stojí komunita lidí a neexistuje žádná dominantní certifikační autorita.