Párové programování

Programování párů (anglické párové programování ), někdy nazývané programování vrstevníky nebo binômage, je pracovní metoda, při které dva vývojáři spolupracují na stejné pracovní stanici. Osoba, která kód napíše, se nazývá řidič . Druhá osoba, zvaná pozorovatel ( pozorujte ), pomáhá řidiči detekováním nedokonalostí, zajištěním, že správný kód implementuje design a navrhuje alternativní vývoj. Role se během programování pravidelně mění. Párové programování je jedním z nejlepších postupů v extrémním programování .

Výhody

Kvalita a produktivita

Jednou z překážek přijetí párového programování v podnikání je myšlenka, že dva lidé pracující na stejném projektu jsou plýtvání lidskými zdroji. Několik studií zkoumalo relativní produktivitu párů ve srovnání s samotnými programátory. Aby se zabránilo nejednoznačnosti mezi časem stráveným a celkovým časem na programátora, definuje Kim Man Lui  (en) míru relativního úsilí vynaloženého párem (z anglického relativního úsilí poskytovaného páry , zkráceně REAP) jako další: kde představuje čas strávený párem a čas strávený samotným programátorem.

Nulová hodnota REAP naznačuje, že pár používá přesně polovinu času, který je zapotřebí k tomu, aby jeden programátor dokončil stejnou úlohu. Hodnota REAP mezi 0 a 100% naznačuje, že dvojice provádí úkol rychleji, ale vyžaduje více člověkohodin . První studie provedená v roce 1998 uvádí hodnotu 59,4%. Jiná studie doplňuje tyto výsledky tím, že naznačuje, že po období přizpůsobení tato míra klesne na 15%. Párové programování je proto obzvláště užitečné, když je nutné zkrátit dobu uvádění softwaru na trh.

Párové programování také umožňuje rychlejší detekci chyb , zejména prostřednictvím nepřetržité aplikace kontroly kódu pozorovatelem. Obecně platí, že pár navrhuje kvalitnější aplikace než jeden programátor. Tento rozdíl je vysvětlen nutností dvojice předem se dohodnout na návrhu aplikace, která má být vytvořena, předložením oprávněného odůvodnění. Párové programování pak vede k tomu, že aplikace absolvují více testů a mají implementovanou funkčnost s menším počtem řádků kódu.

Ekonomicky jsou dodatečné osobní náklady vynaložené na párové programování kompenzovány zvýšením kvality vytvořené aplikace. Čím později je závada zjištěna, tím nákladnější je její odstranění. Pozdní oprava dalších defektů v aplikaci vyvinuté samotným programátorem je tedy patnáct až šedesátkrát dražší.

Sdělení

Párové programování je sociální aktivita, která vyžaduje naučit se pracovat s ostatními. Podporuje tak komunikaci v týmu tím, že podporuje vývojáře, aby spolu hovořili. Kromě toho zlepšuje komunikační dovednosti, na kterých se během počítačového učení obecně málo pracuje. Tato praxe má také za následek posílení vazeb mezi vývojáři a vytvoření týmového ducha.

Párové programování navíc zlepšuje požitek programátorů a důvěru v jejich práci. Mnoho průzkumů ukazuje, že více než 90% vývojářů dává přednost programování ve dvojicích, nikoli samostatně.

Učení se

Univerzitní prostředí

Použití párového programování aplikovaného na akademické půdě umožňuje celkové zlepšení známek nejslabších studentů, aniž by se snížily známky nejsilnějších; navíc umožňuje lepší integraci žen a menšin do kurzů IT. A konečně, zvyšuje se snaha o studium u studentů, kteří pracovali ve dvojicích .

Vytváření dvojic v rámci kurzu na univerzitě také zlepšuje kvalitu prováděné práce. Práce ve dvojici navíc umožňuje snadnější výměnu mezi studenty, ale také s učitelem, a dokonce snižuje rozdíly ve vzdělávání mezi učiteli.

Ve společnosti

V rámci společnosti podporuje vývoj ve dvojicích přenos technických znalostí mezi členy týmu, zejména když vývojář považovaný za nováčka pracuje s odborníkem. Nováček se může nejen naučit nové technologie od odborníka, ale také se naučit osvědčené postupy nebo objevit nový software užitečný pro vývoj.

Ukazatele neplnění

Většina vývojářů musí pracovat samostatně a přijetí párového programování může být obtížné. Pokud je přechod obecně úspěšný, existuje několik indikátorů, že pár nefunguje:

Vzdálené programování

Párové programování lze také navázat na dálku. V tomto případě jsou často nastaveny nástroje určené ke spolupráci, zejména za účelem sdílení displeje (Mikogo) nebo zdrojového kódu (XPairtise, Saros, Cloud9), vzdálené komunikace ( Skype ) nebo dokonce k '' provádět pokyny na vzdáleném počítači ( SSH ).

Komunikace v páru může být narušena několika prvky. Různé technické problémy, jako je výpadek sítě nebo chybové zprávy v softwaru, mohou dvojici ztrácet čas. Navíc nedostatek neverbální komunikace někdy ztěžuje výměnu. Tyto komunikační problémy však mohou kompenzovat kreslicí nástroje, výběr kódu nebo kurzor. Nakonec existují i ​​některé výhody, například drobné změny kódu bez narušení dvojice.

Vzdálené programování párů mění role definované tradičním programováním párů. Skutečnost, že máte dvě obrazovky zobrazující stejný zdrojový kód, často dělá pozorovatele aktivnějším. Lze pozorovat dvě situace:

Související články

Reference

  1. McDowell a kol. 2003 , s.  1
  2. Cockburn a Williams 2000 , str.  1
  3. Lui a Chan 2006 , str.  2
  4. Nosek 1998 , s.  2
  5. Williams a kol. 2000 , s.  4
  6. Cockburn a Williams 2000 , str.  6
  7. Dybå et al. 2007 , s.  4
  8. Li a Kraemer 2014 , s.  4
  9. Williams a kol. 2000 , s.  5
  10. Cockburn a Williams 2000 , str.  5
  11. Cockburn a Williams 2000 , str.  4
  12. Zarb 2012 , s.  1
  13. Ally, Darroch a Toleman 2005 , s.  3
  14. Williams a kol. 2000 , s.  6
  15. McDowell a kol. 2003 , s.  3
  16. Braught, Wahls a Eby 2011 , s.  17
  17. Braught, Wahls a Eby 2011 , s.  2
  18. Zarb, Hughes a Richards 2014 , s.  4
  19. Radermacher, Walia a Rummelt 2012 , s.  1
  20. Braught, Eby a Wahls 2008 , s. 1.  5
  21. Cockburn a Williams 2000 , str.  7
  22. Williams a Kessler 2000 , s.  2
  23. (in) „  Agile Pair Programming  “ [ archiv 28. května 2011] (zpřístupněno 11. prosince 2014 )
  24. (in) „  Průvodce po agilních praktikách  “ (zpřístupněno 11. prosince 2014 )
  25. Schenk, Prechelt a Salinger 2014 , s.  2
  26. (in) „  XPairtise - Distribuovaný párový programový plugin pro Eclipse  “ (zpřístupněno 9. ledna 2015 )
  27. (in) „  Real-Time Distributed Software Development  “ (přístup k 9. lednu 2015 )
  28. „  Easy dálkové pair-programování  “ , 4. dubna 2014(zpřístupněno 11. prosince 2014 )
  29. Schenk, Prechelt a Salinger 2014 , s.  7
  30. Schenk, Prechelt a Salinger 2014 , s.  6
  31. (en-US) „  Co je programování mobů? | Agilní aliance  “ ,11. ledna 2019(zpřístupněno 16. dubna 2020 )

Bibliografie

<img src="https://fr.wikipedia.org/wiki/Special:CentralAutoLogin/start?type=1x1" alt="" title="" width="1" height="1" style="border: none; position: absolute;">