Pair Programming
pragmatycznie

Krzysztof Szabelski
Technical Consultant w Future Processing
Future Processing

Pair Programming

pomaga stworzyć

Działające i potrzebne klientowi oprogramowanie na czas

poprzez wspieranie celów pośrednich

Tworzenie oprogramowania lepszej jakości

Podnoszenie kompetencji zespołu

Likwidowanie silosów wiedzy

Plan na dzisiaj

  • Trochę teorii
    • Historia Extreme Programming
    • Pair Programming w teorii
    • Badania naukowe
  • Więcej praktyki
    • Rodzaje pracy w parach
      • Klasycznie
      • Mentoring
      • Pair sitting
    • Przeszkody
    • Rozwiązania

Extreme Programming

  • „Extreme Programming Explained”, Kent Beck, 1999, 2004
  • WikiWikiWeb at c2.com by Ward Cunningham
  • Projekt C3 w Chrysler
  • Extreme Programming - zbiór najlepszych praktyk programistycznych, zastosowanych na ekstremalnym poziomie

Pair Programming - teoria

  • Dwie półkule mózgu
  • "Driver" używa lewej, "Navigator" prawej
  • Analogie

Mądrość ludowa

Badania naukowe

  • Najczęściej cytowane: 

Pairs spend about 15% more time on programs than individuals. However, the resulting code has about 15% fewer defects

  • Duża rozbieżność, mała powtarzalność
  • „Cannot measure productivity” - Martin Fowler

Klasyczny Pair Programming

  • Cel: Lepsza jakość rozwiązań
  • Przykład
  • Dwa rodzaje trudnych problemów
  • Trudna rola nawigatora
  • Dodatkowe korzyści: wymiana wiedzy, wzajemna kontrola

Mentoring przez
Pair Programming

  • Cel: Efektywna nauka mentorowanego
  • Trudna rola mentora
  • Czy to się opłaca?
  • Przykład
  • Dodatkowa korzyść: motywacja

Pair Sitting

  • Gry proces myślowy trafi na blokadę...
  • ... warto poprosić o pomoc.

Pair Sitting

  • „Attention span”

Pair Sitting

  • Przede wszystkim nie szkodzić

Przeszkody w osiąganiu korzyści

  • Naruszenie strefy intymnej
    • Społeczna
    • Geekowa
  • Zbyt spersonalizowane środowisko
  • Brak przekonania o słuszności

Rozwiązania

  • Zaplanuj sesję:
    • nad czym będziemy pracować
    • kiedy będziemy to robić
  • Kontrakt:
    • polityka zmian przy klawiaturze
    • kiedy przerwy
    • kiedy ucinamy pracę
    • jaka jest rola nawigatora

Kończymy ...

  • Tworzenie rozwiązania wysokiej jakości 
    • Klasyczny Pair Programming
  • Podnoszenie kompetencji zespołu
    • Mentoring przez programowanie w parach
  • Likwidowanie silosów wiedzy
    • Mentoring i Pair Sitting jako lekarstwo
    • Klasyczny Pair Programming jako metoda unikania

... teraz już naprawdę kończymy

Nie przesadzajcie na początku

Powodzenia!

i zapraszam na wspólną sesję Pair Programmingu

Linki

Dzięki! Pytania?

Krzysztof Szabelski
Technical Consultant w Future Processing
Future Processing