65
© 2010 Mayflower GmbH Martin Ruprecht I 11. Juni 2010 Pair Programming Mythbusters Dienstag, 11. Juni 13

Pair Programming Mythbusters

Embed Size (px)

DESCRIPTION

Aussagen wie "Pair Programming ist langsam", "Pair Programming ist nur was für Junior Entwickler zum Übertragen von Domainwissen", "Pair Programming verbrennt zu viele Resourcen und ist nichts für mein Projekt", "Meine Tasks sind zu komplex fürs Pair Programming" oder "Im Moment haben wir keine Zeit fürs Pair Programming, wir müssen liefern (fertig werden)" werden oft als Argumente gegen Pair Programming vorgebracht. Mit diesem Talk/Webinar möchte Martin Ruprecht den Aussagen entgegentreten und seine Erfahrungen aus den letzten Kundenprojekten weitergeben und zeigen, wann Pair Programming sinnvoll eingesetzt werden kann und warum in jedem Projekt im Pair programmiert werden sollte. Zielgruppe: Wenn Sie Entwickler oder Projektverantwortlicher sind, dann ist dieser Talk/dieses Webinar genau richtig für Sie. Über Martin Ruprecht: Martin Ruprecht arbeitet seit mehreren Jahren bei Mayflower und ist JavaScript und PHP-Entwickler. Zuvor studierte er erfolgreich Medientechnik/Medieninformatik an der FH Deggendorf. Neben seiner Tätigkeit als Entwickler bei Mayflower organisiert Martin regelmäßig Coding Dojos in München, tritt auf Konferenzen auf und hält Vorträge und Workshops zum Thema JavaScript, Testing und Qualitätssicherung in Webprojekten.

Citation preview

Page 1: Pair Programming Mythbusters

© 2010 Mayflower GmbH

Martin Ruprecht I 11. Juni 2010

Pair Programming Mythbusters

Dienstag, 11. Juni 13

Page 2: Pair Programming Mythbusters

Wer bin ich?

• Martin Ruprecht

• PHP/ JS- Entwickler bei Mayflower in München

[email protected]

• #mrupilo

Dienstag, 11. Juni 13

Page 3: Pair Programming Mythbusters

Pair Programming

Mythen, Fehler & Tipps + Tricks

Dienstag, 11. Juni 13

Page 4: Pair Programming Mythbusters

„Pair Programming ist langsam!“

Mythos #1

©pk210

Dienstag, 11. Juni 13

Page 5: Pair Programming Mythbusters

„Pair Programming ist schneller!“

© Thomas Helbig

Dienstag, 11. Juni 13

Page 6: Pair Programming Mythbusters

„Pair Programming ist schneller!“

Dienstag, 11. Juni 13

Page 7: Pair Programming Mythbusters

Mythos #2

„Pair Programming verbrennt zu viele Resourcen und ist nichts für mein Projekt!“

© Images of Money

Dienstag, 11. Juni 13

Page 8: Pair Programming Mythbusters

Kosten

Zeit

Pair Programming

klassische Entwicklung

„Pair Programming ist effektiver!“Dienstag, 11. Juni 13

Page 9: Pair Programming Mythbusters

„Pair Programming ist nur was für Junior-Entwickler um Wissen zu übertragen!“

Mythos #3

© Christoph Polus

Dienstag, 11. Juni 13

Page 10: Pair Programming Mythbusters

Wissensaustausch findet in beide Richtungen statt!

Dienstag, 11. Juni 13

Page 11: Pair Programming Mythbusters

„Meine Tasks sind zu komplex fürs Pair Programming!“

Mythos #4

© Enrico Strocchi

Dienstag, 11. Juni 13

Page 12: Pair Programming Mythbusters

Bei komplexen Aufgaben muss im Pair programmiert werden!

© Charles Rincheval

Dienstag, 11. Juni 13

Page 13: Pair Programming Mythbusters

„Im Moment haben wir keine Zeit fürs Pair Programming- wir müssen liefern!“

Mythos #5

© Alan Dayley

Dienstag, 11. Juni 13

Page 14: Pair Programming Mythbusters

Pair Programming ist schnell!

© Zach Dill

Dienstag, 11. Juni 13

Page 15: Pair Programming Mythbusters

Pair Testing ist schnell!

© Zach Dill

Dienstag, 11. Juni 13

Page 16: Pair Programming Mythbusters

Pair Debugging ist schnell!

© Zach Dill

Dienstag, 11. Juni 13

Page 17: Pair Programming Mythbusters

Pair Bugfixing ist schnell!

© Zach Dill

Dienstag, 11. Juni 13

Page 18: Pair Programming Mythbusters

„Pair Programming löst all unsere Probleme!“

Mythos #6

© Shell Eco-Marathon

Dienstag, 11. Juni 13

Page 19: Pair Programming Mythbusters

ähh- Sorry!

© Ken Conley

Dienstag, 11. Juni 13

Page 20: Pair Programming Mythbusters

„Im Pair geschriebener Code ist IMMER besser!“

Mythos #7

© kennysarmy

Dienstag, 11. Juni 13

Page 21: Pair Programming Mythbusters

Nein!© Angelica Portales

Dienstag, 11. Juni 13

Page 22: Pair Programming Mythbusters

Verzichte nie auf QA!Dienstag, 11. Juni 13

Page 23: Pair Programming Mythbusters

Fehler im Pair Programming

Dienstag, 11. Juni 13

Page 24: Pair Programming Mythbusters

Navigator nervt

Fehler

© Wikipedia

Dienstag, 11. Juni 13

Page 25: Pair Programming Mythbusters

Der Navigator ist nicht zur Prüfung der

korrekten Syntax da!

Dienstag, 11. Juni 13

Page 26: Pair Programming Mythbusters

Der Navigator sollte bereits einen Schritt

voraus denken!

Dienstag, 11. Juni 13

Page 27: Pair Programming Mythbusters

Driver nervt

Fehler

© Images of Monkey

Dienstag, 11. Juni 13

Page 28: Pair Programming Mythbusters

Der Driver sitzt zwar an der Tastatur und ist KEIN Coding Monkey!

Dienstag, 11. Juni 13

Page 29: Pair Programming Mythbusters

Der Driver ist gleichberechtigt an den Entscheidungen im

Code beteiligt!

Dienstag, 11. Juni 13

Page 30: Pair Programming Mythbusters

Bereits getroffene

Entscheidungen werden negativ

bewertet

Fehler

© Collin Jenkins

Dienstag, 11. Juni 13

Page 31: Pair Programming Mythbusters

Entscheidungen werden gemeinsam getroffen!

Dienstag, 11. Juni 13

Page 32: Pair Programming Mythbusters

Navigator wechselt eigenständig in die Driver Rolle

Fehler

© Marianne Muegenburg Cothem

Dienstag, 11. Juni 13

Page 33: Pair Programming Mythbusters

Respektiere deinen Partner und halte dich

an die Regeln!

Dienstag, 11. Juni 13

Page 34: Pair Programming Mythbusters

Driver startet mit der Implementierung ohne Navigator

Fehler

Dienstag, 11. Juni 13

Page 35: Pair Programming Mythbusters

Respektiere deinen Partner und halte dich

an die Regeln!

Dienstag, 11. Juni 13

Page 36: Pair Programming Mythbusters

Es findet keine Kommunikation statt

Fehler

© Dr Zoidberg

Dienstag, 11. Juni 13

Page 37: Pair Programming Mythbusters

Pair Programming lebt von der Kommunikation

der beiden Partner!

Dienstag, 11. Juni 13

Page 38: Pair Programming Mythbusters

Weitere Herausforderungen

Dienstag, 11. Juni 13

Page 39: Pair Programming Mythbusters

Verhältnis zwischen Driver und Navigator ist angespannt

Herausforderungen

Dienstag, 11. Juni 13

Page 40: Pair Programming Mythbusters

Häufiger Perspektivenwechsel

hilft den Partnern

Verhältnis zwischen Driver und Navigator ist angespannt

Dienstag, 11. Juni 13

Page 41: Pair Programming Mythbusters

Klare Regeln definieren

Verhältnis zwischen Driver und Navigator ist angespannt

Dienstag, 11. Juni 13

Page 42: Pair Programming Mythbusters

Driver, Navigator, Coach

Verhältnis zwischen Driver und Navigator ist angespannt

Dienstag, 11. Juni 13

Page 43: Pair Programming Mythbusters

Andere, freundliche, „neutrale“ Umgebung

auswählen

Verhältnis zwischen Driver und Navigator ist angespannt

Dienstag, 11. Juni 13

Page 44: Pair Programming Mythbusters

Toleriere und wertschätze die Argumente deines

Partners

Verhältnis zwischen Driver und Navigator ist angespannt

Dienstag, 11. Juni 13

Page 45: Pair Programming Mythbusters

Wissen ist nicht gleich verteilt

Herausforderungen

Dienstag, 11. Juni 13

Page 46: Pair Programming Mythbusters

Vorher definierte Aufgaben geben die Möglichkeit sich in ein Thema einzuarbeiten!

Wissen ist nicht gleich verteilt

Dienstag, 11. Juni 13

Page 47: Pair Programming Mythbusters

„Mentoren“ können beim Wissensaufbau

eines Partners helfen!

Wissen ist nicht gleich verteilt

Dienstag, 11. Juni 13

Page 48: Pair Programming Mythbusters

Körpergerüche

Herausforderungen

Dienstag, 11. Juni 13

Page 49: Pair Programming Mythbusters

Dienstag, 11. Juni 13

Page 50: Pair Programming Mythbusters

Tipps

Dienstag, 11. Juni 13

Page 51: Pair Programming Mythbusters

Plane Pair Programming fix in deinen Tagesablauf

mit ein!

Tipps

Dienstag, 11. Juni 13

Page 52: Pair Programming Mythbusters

1 täglich für 25- 30min.

Dienstag, 11. Juni 13

Page 53: Pair Programming Mythbusters

„Pair Programming Sessions“(à 2 Std)

Dienstag, 11. Juni 13

Page 54: Pair Programming Mythbusters

Partner sollten nicht vom Management bestimmt

werden!

Tipps

Dienstag, 11. Juni 13

Page 55: Pair Programming Mythbusters

Pair Stair / Pair MatrixDienstag, 11. Juni 13

Page 56: Pair Programming Mythbusters

Pairing auch beim Design, Testen,

Debuggen...

Tipps

Dienstag, 11. Juni 13

Page 58: Pair Programming Mythbusters

Test Driven Development eignet sich optimal fürs

Pair Programming!

Dienstag, 11. Juni 13

Page 60: Pair Programming Mythbusters

Im Coding Dojos lässt sich mit Code Katas

hervorragend Pair Programming trainieren!

Dienstag, 11. Juni 13

Page 61: Pair Programming Mythbusters

„... komm wir machens jetzt einfach mal!“

Tipps

Dienstag, 11. Juni 13

Page 62: Pair Programming Mythbusters

© 2010 Mayflower GmbH

Fragen?

Dienstag, 11. Juni 13

Page 63: Pair Programming Mythbusters

© 2010 Mayflower GmbH

[email protected]

#mrupilo

Feedback please!

Dienstag, 11. Juni 13

Page 64: Pair Programming Mythbusters

Vielen Dank für Ihre Aufmerksamkeit!

© 2010 Mayflower GmbH

Kontakt Martin [email protected]+49 89 24 20 54 1116

Mayflower GmbHMannhardtstr. 680538 München

Dienstag, 11. Juni 13

Page 65: Pair Programming Mythbusters

Bildnachweis• http://www.flickr.com/photos/ujh/4307773392/sizes/l/in/photostream/

• http://www.flickr.com/photos/pk210/8720825865

• http://www.flickr.com/photos/8727395@N04/2879253933/in/photolist-5oqVTc-5C62UF-6qNjZV-6tWgVe-6tWgVi-6AcxBu-7ebryx-7ebrQi-7ebseF-7ebski-7ebsxF-7ebsCH-7ebsZz-7ebtev-7ebtri-7efjWS-7efk2q-7efkfW-7efkmY-7efksw-7efkN9-7efm6m-7efmgN-7efmvy-7efmFE-7efmTN-7fwRvj-7pQstR-7pQutt-7pQvFT-7pQwPp-7pQy6k-7pQzPM-7pQEoK-7pQFbX-7pUneL-7pUotA-7pUu7d-7pUwt7-7pUxfE-7pUxV7-7pUBtu-czP9NU-7JotBq-azxgAm-7EUKXs-84NPeG-7PHVof-8qeSR1-7GBXrE

• http://www.flickr.com/photos/59937401@N07/5930176734/in/photolist-a32GWs-8qTEUF-8VHkSg-bxMVzZ-ddeNXZ-d9DmTm-e32C4B-9VxMg2-9fKcip-dctnst-e3ou3E-9fjJ3M-dVhKs1-9WCV3h-dUML5q-9WA3Hp-dtQm2V-7CSL2z-8ibtjk-8ieDQo-8ibsV4-8ibtDV-8ieFFY-8ieECW-8ibsLB-8ieGBN-8ieDsu-8ieJcE-8ibrXH-8ieFvW-8ibuEP-8ieE2L-8ibsbt-8ibrfX-8ibt7P-8ibvg8-8ibrFK-8ieEPu-8ieEeA-8ieDgN-8ieHZG-7QJq72-7QMG7N-7QMKP9-7QJF1H-7QMBJs-7QMEwo-7QJHSp-7QJDQt-7QJm7p-7QMZRf

• http://www.flickr.com/photos/93361362@N00/260968967/in/photolist-p4wYX

• http://www.flickr.com/photos/strocchi/1451285663/

• http://www.flickr.com/photos/hugokernel/5027492067/

• http://www.flickr.com/photos/78832226@N00/2780700767/in/photolist-5eHPsF-5qgTZF-5qmfgq-5uuH3v-5vM7gB-5Lwcux-5UuR9Y-5UESLm-662P7W-6atRtx-6ay1oQ-6gFrrD-6o5g3N-6yBV6g-6yG1uw-6CyLoV-6Vno36-6WjY8C-6WKux1-6XB6NY-6XB7hG-72km4i-72pmnC-7hBQyB-7hRgHp-7jxFvV-7pVq1D-7pVq6M-7pVqo4-7viPMa-8aDCvD-7UmPrC-dACPHD-e4XtaU-87afpr-e4XegU-e4RQrz-e4RArX-e4XtR9-e4Xtho-e4RQTT-e4RR8z-7NQz4b-a1fwkq-9RPAVm-dAGVQo-aZyVVB-9G3KTW-9ZuiS7-dhio4Z-cMaKXL

• http://www.flickr.com/photos/46144172@N00/3688012537/in/photolist-6BU2D4-6LcjYz-6Nnyhu-6Noygb-6SR6v6-6WeMWW-6WiF2W-72YYrx-74cB3E-74u9uj-7bSfK8-7cXRW8-7eCEUj-7jvovC-7jQKG8-7jQKZc-7jUDC5-7sHAnQ-eGFgMh-8PSmG1-8dqacC-87tdVE-9epvNS-82mE3Z-8LPbXY-7Ru7bk-9k2rtm-djg6xs-8yNZyA-9ZimvU-9ZfsWt-9Zinbd-9ZimGw-8y81WS-duCDsK-ak2Lwe-dSve1Q-bBAkTy-9zpur8-8z8HDF-b7STKc-8D1q7n-aJRfYa-9jJH3f-8ENVSy-8ENVyj-8ENVEb-8ENVYu-8Ubqau-aMuGYc-9FgnLf

• http://www.flickr.com/photos/60317050@N08/8735098936/in/photolist-eiTEA5-86Wb8N-9dnfuP-bPN8PD-bqAMAU-7J9DM3-9nghvm-9zoEpY-7J5GAX-bDxg4v-9sTWHH-bR9oLV-ax5ZrM-ax8F2B-axbo7J-ax8F6t-9d6if2-ax8H9A-ax61h6-ax8GwU-ax8HhA-ax8FXS-ax8Gno-ax5ZzF-ax612F-ax8GRm-ax61vF-ax5Z2T-ax5ZD8-ax61n2-ax8FEu-ax8GpW-ax61oH-ax8via-ax8GjY-ax5Z8T-ax614v-ax61BP-ax61cX-ax8H1A-ax8Hbb-ax8FUd-ax5ZdM-axbdk9-ax8H7s-ax61f2-ax8GBo-ax8Gg5-ax8vjH-ax619a-ax8GuG

• http://www.flickr.com/photos/36101700372@N01/118533175/in/photolist-btvMr-btvMV-btvNG-cZNst-fAe3K-k2YXC-nfAia-rzNug-rzNz2-rzNCH-rzNGu-rzNKC-rzNPr-rzNTx-rzNWH-2Jcbeo-3JrHhh-4kRTBW-4MiqXn-4Tu5KR-4Tu5Nn-4Tu5Qp-4Tu5Wi-4Tu5WZ-4Tu5YP-4Tu6cP-4Tu6pk-4Tyic9-4TyipS-4TyirS-4TyisJ-4Tyiuy-5DWfaD-5QVV7Q-6rUsDX-6CfoT4-6J9HfP-6J9HEv-6LyNV4-6NUg9e-6NYqwh-6NYrn5-6SYi6G-6UTkEz-6UTkS4-6UXq8Y-6UXqfE-73qzea-7efoZa-7xdQyH-7xdQJX

• http://www.flickr.com/photos/kennysarmy/6318447093/

• http://www.flickr.com/photos/49835901@N00/1493377591/in/photolist-3gXX8v-3KsoCc-3Zd9d2-4bPFUR-4cZqH4-4gCgwn-4jWqei-4k1sVo-4sFkee-4FjisX-4KJMZH-4L8eTZ-4L8fWp-4Lcwd9-4SrtWe-4SxziS-5g2LRH-5iahV3-5jowbd-5rW1Uz-5tgwom-5wgc6H-5DSs8i-5DWHQU-5KUNJA-5XLPKK-63yLkt-63yMfc-63yN96-63yNy6-67K2V7-69p1R6-6hgkPZ-6hvgxv-6uyz2m-6ATdwA-6EMm6L-6LzBuW-6NtqMH-6QoRtH-6QUz9C-6SttAQ-6SYzaB-6TEDt6-6TRB3e-6WxGtg-72uRAq-797jqv-79bc1S-7hcGmZ-7hcJDT

• http://upload.wikimedia.org/wikipedia/commons/thumb/a/af/Pair_programming_1.jpg/330px-Pair_programming_1.jpg

• http://www.flickr.com/photos/shazwildcat/194598532/

Dienstag, 11. Juni 13