|
Extrémne programovanie
je taký prístup k tvorbe počítačových programov, pri ktorom sa využíva
jednoduchosť, komunikatívnosť, spätná väzba a odvaha. Je určený
pre malé tímy, ktoré potrebujú vyvinúť softvér rýchlo a najmä v
podmienkach meniacich sa požiadaviek...
Nedávno sa mi dostala
do rúk kniha Bruce Eckel – Myslíme v jazyku C++. Preklad z anglického
originálu tejto knihy vyšiel vo vydavateľstve Grada v roku 2000.
Ak ste ju nečítali a máte záujem o preniknutie do tajov C++, vrelo
vám ju odporúčam. Pre mňa bola táto kniha zaujímavá aj tým, že v
nej som sa prvýkrát stretol s pojmom extrémne programovanie (XP).
Bruce Eckel tak presvedčivo uviedol stručnú charakteristiku tohto
nového prúdu v programovaní, že som sa pustil do hľadania ďalších
informácií o XP. Dozvedel som sa, že za pôvodcu myšlienky XP je
považovaný Kent Beck. Jeho knihu Extreme programming Explained (výklad
extrémneho programovania) sa mi nepodarilo zohnať. Na Internete
som však našiel veľa zaujímavých stránok, ktoré sa venujú tejto
téme. Sú jej venované viaceré diskusné skupiny, organizujú sa konferencie.
Extrémne programovanie má svojich stúpencov, aj odporcov. Základom
extrémneho programovania je dvanásť odporúčaní. Uvediem ich stručnú
charakteristiku.
Plánovanie -
v procese plánovania sa zadávateľovi umožňuje ohodnotiť požadované
vlastnosti (črty) tvoreného programového diela z obchodného hľadiska.
Programátori robia odhad ceny, ktorou sa zabezpečenie tejto vlastnosti
bude podieľať na celkovej cene za vytvorenie diela. To umožňuje
stanoviť priority a rozhodnúť, čo je skutočne potrebné vyriešiť
a čo je druhoradé. Takémuto procesu plánovania sa tiež hovorí plánovacia
hra (Planning Game). Význam takéhoto plánovania je v tom, že umožňuje
efektívne vedenie projektu k úspechu.
Rýchly výstup
- programátorský tím zabezpečí prvý funkčný vzor tvoreného systéme
v čo najkratšom čase a v krátkych cykloch robí jeho rozširovanie
so zohľadnenými pripomienkami používateľa.
Metafora - programátorský
tím používa spoločné názvoslovie a spoločný opis systému. Je to
základ efektívnej komunikácie v tíme.
Jednoduchosť
–výsledný program by mal byť čo najjednoduchší, ale pritom musí
spĺňať aktuálne požiadavky. Mal by obsahovať čo možno najmenej kódu
určeného "pre budúcnosť". Namiesto toho by mala byť pozornosť venovaná
jeho "obchodnej hodnote".
Testovanie –
programátorský tím po celý čas vývoja venuje zvláštnu pozornosť
overovaniu vytvoreného kódu. Testy sa pripravujú dokonca skôr než
vlastný program. Používatelia potvrdzujú opodstatnenosť testov,
lebo im zaručujú, že ich požiadavky budú splnené.
Prebudovávanie
– počas celého vývoja sa programové riešenie vylepšuje. Dosahuje
sa to "vyčisťovaním" programu – odstraňujú sa duplicity, zjednodušuje
sa riešenie, ale zachováva sa kompletnosť. Využíva sa k tomu nepretržitá
komunikácie v rámci riešiteľského tímu, ale aj komunikácia s používateľom.
Párové programovanie
– programátori píšu kódy programov v dvojiciach pri jednom stroji.
Mnohé experimenty potvrdili, že v dvojiciach sa vytvára lepší softvér
a rýchlejšie, než v prípade samostatnej práce jednotlivých programátorov.
Kolektívne vlastníctvo
– všetky zdrojové kódy patria všetkým programátorom. To umožňuje
tímu rýchlo napredovať v riešení, pretože je možné úpravy a zmeny
robiť bez zbytočných prieťahov.
Neustála integrácia
– softvérový produkt sa kompiluje a spája veľakrát počas jedného
dňa. Umožňuje sa tým udržať v strehu všetkých programátorov a rýchle
napredovať v riešení.
40 hodinový pracovný
týždeň – unavení programátori robia viac chýb. Programátorský
tím nesmie pracovať extenzívne a v nadčasoch. Programátori sa musia
udržiavať svieži, zdraví a efektívni. Taký bude potom aj celý tím.
Strana používateľa
– projekt je vedený určeným zástupcom, ktorý je oprávnený stanovovať
požiadavky, priority a odpovedá na otázky kladené programátormi.
Zlepšuje to komunikáciu s používateľom a redukuje papierovú dokumentáciu,
ktorá je často najnákladnejšou zložkou softvérového projektu.
Štandardy kódovania
– pre efektívnu prácu v tíme, kde sa pracuje v dvojiciach a je spoločné
vlastníctvo kódu, je dôležité písať zdrojový kód rovnakým spôsobom
a podľa rovnakých zásad (štábna kultúra).
Vstup do sveta extrémneho
programovania sa dá uskutočniť cez webovú stránku:
www.xprogramming.com.
Keď som získal podrobnejšie
informácie o extrémnom programovaní, nadobudol som dojem, že uvedené
princípy sa najviac uplatňujú v tímoch, ktorých programové riešenie
sa zakladá na využití programovacieho jazyka Smalltalk. Takým je
napríklad aj tím Chrysler Comprehensive Compensation (C3), ktorého
skúsenosti sa dajú nájsť na stránke:
www.xprogramming.com/Practices/xpractices.htm.
Ak sa však hlbšie
zamyslíme nad podstatou odporúčaní extrémneho programovania, musíme
pripustiť, že mnohé z nich sa dajú použiť aj v tímoch, ktoré používajú
iné programovacie jazyky než Smalltalk. Dá sa o tom presvedčiť aj
z obsahu stránok, na ktoré sa dostanete z adresy:
www.objectmentor.com/xp/why.html.
Extrémne programovanie
si za päť rokov svojej existencie získalo svojich priaznivcov aj
odporcov. Dôkazom toho sú aj niektoré príspevky v diskusnej skupine
extrémneho programovania na portáli www.yahoo.com,
alebo aj článok:
www.sdmagazine.com/articles/2001/0104/0104a/0104a.htm,
ktorému autor – propagátor
UML – prisúdil názov "Is Design Dead ?" (Je návrh mŕtvy ?). V tomto
článku je viacero výhrad k jednotlivým odporúčaniam pre extrémne
programovanie.
Sme svedkami toho,
že neustále hľadajú cesty k zvýšeniu efektívnosti práce programátorov.
Pre menšie programátorské tímy sa teraz ponúka cesta extrémneho
programovania. Až budúcnosť ukáže, či sa oplatí ísť touto cestou.
Ak by sme aj odmietli extrémne programovanie ako celok, mnohé odporúčania
tohto smeru programovania stoja za zamyslenie.
|