O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.

How pair programming can strengthen teams

232 visualizações

Publicada em

In software teams how pair programming can strengthen teams

  • Seja o primeiro a comentar

How pair programming can strengthen teams

  1. 1. how pair programming can strengthen teams Tommy Sullivan, BroTommy
  2. 2. Tommy Sullivan • software engineer at PivotalLabs KMKOnline • ~45 startups in San Francisco and Singapore • worked with a few billion dollar companies - telecom ~200B - music label ~2B - advertising ~1B - banking ~ 60B - KMKOnline 😁
  3. 3. • Anecdotal - based on my experience and theirs • KMK doesn’t do everything right • Where we are and want to go • What we think works, love to know what works for you WARNING!
  4. 4. KMK is: ● BBM.com ○ Millions of daily active users on iOS & Android ○ Indonesia’s local messenger ○ 1M requests per second 🔥 ● Vidio.com ○ Peaks of 600k concurrent users ○ Best video content in Indonesia ○ 25k events per second 🔥 • Extreme Programming Investors of 💵 in: ○ dana.id ○ bukalapak.com ○ rumah.com (Property Guru) ○ kly.id ○ reservasi.com ○ oto.com ○ hijup.com ○ bobobobo.com ○ bridestory.com ○ suitmedia.com ○ hometestersclub.com
  5. 5. xp rules‽ http://www.extremeprogramming.org/rules.html
  6. 6. One of the quotes that I used to flash around people was "if you're doing Extreme Programming the same way as you were doing it a year ago, you're no longer doing Extreme Programming". Because if you don't take charge and you don't alter things to fit your circumstance, then you are missing the key part of it. - Martin Fowler https://martinfowler.com/articles/agile-aus-2018.html
  7. 7. enterprise fun • EMC bought VMWare • EMC bought Pivotal • EMC moved all the enterprisey software to Pivotal (including CF & Spring) • Dell bought EMC • Dell/EMC spun off Pivotal
  8. 8. “The thing I found most interesting is that this project should have failed. A HUGE incredibly complicated body of enterprise software with near-100% team turnover? I would have bet against it ever working. But all that pair programming and rotation and writing stories and backfilling tests etc just eventually ground the problem down. It was expensive as hell and it took years but it looks like a success story now. I don't know of any other big takeover project like this that worked.” - Hacker News comments on Pivotal’s ~ 5B IPO https://news.ycombinator.com/item?id=16664024
  9. 9. “Most of the over 100 companies Pivotal works with every year come to them because they think they just need more development support to ship faster or manage their growth. But more often than not, Hieatt believes the problem is actually related to the broader issue of development culture…” - Edward Hieatt
  10. 10. KMK’s Culture: • Build & release incrementally • Work in cross functional teams • Code by pair programming • Deploy with continous integration • Use test driven development • Automate the boring stuff • Engineer at a sustainable pace
  11. 11. Pair Programming Non-Solo Development! (less buzzwordy)
  12. 12. why?
  13. 13. why?
  14. 14. where to start?
  15. 15. ONBOARDING!
  16. 16. why?
  17. 17. https://thedailywtf.com
  18. 18. TRAINING!
  19. 19. why?
  20. 20. where’s the bug!?
  21. 21. it’s not just you :-)
  22. 22. tetapi lemot‽
  23. 23. tetapi mahal‽
  24. 24. ok... • People development: training! • No silos • Higher “bus count” • Greater team cohesion through rotation • More flexibility for people to move between teams
  25. 25. ok... • Higher code quality • More maintainable code • More job satisfaction
  26. 26. proof!
  27. 27. CS141 • Share • Play Fair • Clean Up • Hold hands and stay together • Say you’re sorry cs.wm.edu/~noonan/pairprog.html
  28. 28. • Plan - What are we working on today? What do we plan to achieve? - Syncronize breaks - pomodoro or otherwise, but opposite-sync is silly • Respect - Pairing is a democratic process, not a competition where another individual is made to feel inferior - Type at a reasonable speed lah! • Take Notes! - When your pair is coding, take notes on things you think will need attention later. Do not interrupt or flag issues immediately – breaking their flow. Once your pair is done with the typing, discuss • Vocalize / Communicate - What was just done, what is being done, and what is going to be done next. - Pre-empt and analyze expected test results. • Team Leads: Check in, evaluate, rotate - Not always easy, but team leads need to work on how to do it KMK’s pairing rules:
  29. 29. caviats
  30. 30. not pairing • Build nonproduction code • Improve documentation • Spikes for future stories • Identify refactorings • Refactor tests • Improve test coverage
  31. 31. pairing problems • Unequal access • Keyboard domination • Unhealthy relationships • Worker/rester • “Everyone does their own work” • Endless debate
  32. 32. Ok, super cool.. Let’s do it!
  33. 33. how to fail! • Forcing people to pair They will sandbag the project • Totally flexible hours • Taking on too many changes at the same time: Scrum, TDD, DevOps... • Not adquate seating / infrastructure
  34. 34. coalition of the willing!
  35. 35. how to succeed! • Solicit people actually interested in pairing! • Coordinate their schedule Come & leave on time • Step-by-step if implementing XP Solve your main pain points first • Give them keyboard, mice, and proper desk space
  36. 36. Thank you! Questions? GO PAIR!
  37. 37. Join a great engineering team behind the media in Indonesia. Take a leap for your career! https://www.kmkonline.co.id/careers
  38. 38. encore
  39. 39. Pomodoro Technique • Decide on the task to be done • Set the pomodoro timer to n minutes (traditionally 25) • Work on the task until the timer rings • Take a short break (3–5 minutes) • After four pomodori, take a longer break (15–30 minutes)