Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Goodbye Code Review, Hello Pair Programming

61fe6537eed31e8d1999ce1c1d5bf988?s=47 himaratsu
December 01, 2020

Goodbye Code Review, Hello Pair Programming

presentation at Appdevcon 2020
https://appdevcon.nl/session/good-bye-code-review-hello-pair-programming

---

Summary:

Code review is a good method to maintain a high code quality. However, there are some concerns that are introduced when this method is used too often.

For example, many members would request their code reviews to their lead engineers, which ends up having their lead engineers to shoulder more burden.

Besides, it takes up a lot of effort to communicate with the reviewer, and code reviews are often returned with many corrections, which is sometimes time-consuming. The solution to this problem is pair programming.

In this session, we would like to explain about pair programming, and share how we make use of it with TDD in our daily development.

61fe6537eed31e8d1999ce1c1d5bf988?s=128

himaratsu

December 01, 2020
Tweet

Transcript

  1. Goodbye Code Review, Hello Pair Programming Appdevcon 2020 Ryosuke Hiramatsu,

    Shizuna Ito
  2. Ryosuke Hiramatsu iOS Engineer iOS Engineer Shizuna Ito

  3. Our team • C2C e-commerce app • 6 iOS developers

    • released the app 8 months after formed • 5,000,000 DLs • developing with pair programming
  4. What is pair programming? A development method in which
 two

    engineers write code jointly.
  5. Working online with “Tuple” https://tuple.app

  6. Two elements of pair programming TDD Pair Rotation

  7. Pair Rotation • develop 1 feature per 1 pair 1

    2 3
  8. Pair Rotation • develop 1 feature per 1 pair •

    1st day: A and B develop jointly 1 2 3
  9. Pair Rotation • develop 1 feature per 1 pair •

    1st day: A and B develop jointly • 2nd day: A remains and B rotates
 1 2 3 
  10. Pair Rotation • develop 1 feature per 1 pair •

    1st day: A and B develop jointly • 2nd day: A remains and B rotates • 3rd day: A rotates 1 2 3
  11. Pair Rotation • develop 1 feature per 1 pair •

    1st day: A and B develop jointly • 2nd day: A remains and B rotates • 3rd day: A rotates Avoid relying on individual abilities. Share know-how with the team. 1 2 3
  12. TDD RED GREEN Refactor

  13. TDD • Failing test • Implementation code to pass the

    test • Refactor the code RED GREEN Refactor
  14. TDD • Failing test • Implementation code to pass the

    test • Refactor the code Keep the rhythm of pair programming RED GREEN Refactor
  15. DEMO

  16. Appdevcon Sticker ¥3,000

  17. Demo • Simple app making demo

  18. Demo • Simple app making demo • No documents •

    test code = specification • concentrate on coding
  19. Demo • Simple app making demo • No documents •

    test code = specification • concentrate on coding • Always teaching • Util class, shortcuts, and etc…
  20. “Is development speed halved when working in pairs?”

  21. Number of releases 0 10,000 2,500 5.000 7,500 1,173 1,185

    2,829 8,221 Number of Releases Project A B C Our Project (Pair Programming)
  22. Acceptance failure rate 0% 20% 5% 10% 15% Project A

    B C Our Project failure rate 11.3% 13.5% 8.6% 0.1% (Pair Programming)
  23. Familiar with specifications “Did you become more familiar?” YES 81%

    81% NO 19%
  24. Recap of pair programming

  25. Recap of pair programming • 1 code with 2 people


  26. Recap of pair programming • 1 code with 2 people

    • more effective with pair-rotation and TDD
  27. Recap of pair programming • 1 code with 2 people

    • more effective with pair-rotation and TDD • always develop with feedback

  28. What I felt from experience • Always talk. A lot

    of communication • Communication brings respect and understanding • Essential for creativity of the team
 Respect High quality products Communication
  29. Great Team High Quality Products

  30. Question @himara2 @shizuna_it