Temat: Programowanie w parach - doświadczenia...
Witam,
W naszej firmie (8 programistów) programujemy w parach 95% czasu. Zasadniczym problemem dla "księgowych" jest właśnie koszt takiego podejścia - lecz jest ono wyłącznie spowodowane niezrozumieniem korzyści jakie pair-porogramming przynosi.
Według mnie to:
1. Ciągle podejście do kodu w dwóch rożnych płaszczyznach abstrakcji: driver - na poziomie kodu, instrukcji - bardzo niskopoziomowe - partner - na znacznie wyższym poziomie abstrakcji - co znacznie poprawia jakość kodu.
2. Dzielenie się wiedza - przy tym podejściu i stosowaniu Agile każdy programista zna praktycznie całość kodu, bardzo szybko wyrównują się różnice w wiedzy i umiejętnościach (aczkolwiek może to stanowić pewien problem - o czym za chwilę). Kolejna zaleta z tym związana są wszelkie urlopy i choroby - prawdopodobieństwo tego ze obaj programiści z pary się rozchorują jest nikle - nagle urlopy dla obu - również mało prawdopodobne - co pozwala w razie potrzeby kontynuować prace nad danym elementem bez większych problemów.
Zaleta jest również łatwiejsze wdrażanie nowych członków zespołu, którzy mogą poznawać projekt poprzez programowanie z starszym członkiem zespołu - aczkolwiek tu widzę niekiedy wadę - w postaci frustracji i znudzenia doświadczonego programisty w momencie gdy nowa osoba znacznie odstaje umiejętnościami i doświadczeniem - a do tego nauka przychodzi jej trudno - wiec nie ma wyjścia - należy zagęścić sito przy zatrudnianiu ;)
3. Znacznie mniejsza ilość błędów (aczkolwiek - to chyba wynika z pkt. 1)
4. Znacznie - aczkolwiek nigdy nie dwukrotnie wyższa wydajność pary niż pojedynczego programisty - przy czym mowa tu o prostej mierze ilości napisanego kodu/funkcjonalności. Gdy by brać pod uwagę również jakość i ilość błędów to według mnie wydajność jest więcej niż dwukrotnie wyższa.
5. No i to co "księgowi" lobią najbardziej - mówiąc delikatnie - programując parami nie zapomnisz się i nie przesiedzisz pół dniówki na jakimś portalu społecznościowymi :)
Pozdrawiam
Konrad