Slide 1

Slide 1 text

Goodbye Code Review, Hello Pair Programming Appdevcon 2020 Ryosuke Hiramatsu, Shizuna Ito

Slide 2

Slide 2 text

Ryosuke Hiramatsu iOS Engineer iOS Engineer Shizuna Ito

Slide 3

Slide 3 text

Our team • C2C e-commerce app • 6 iOS developers • released the app 8 months after formed • 5,000,000 DLs • developing with pair programming

Slide 4

Slide 4 text

What is pair programming? A development method in which
 two engineers write code jointly.

Slide 5

Slide 5 text

Working online with “Tuple” https://tuple.app

Slide 6

Slide 6 text

Two elements of pair programming TDD Pair Rotation

Slide 7

Slide 7 text

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

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

TDD RED GREEN Refactor

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

TDD • Failing test • Implementation code to pass the test • Refactor the code Keep the rhythm of pair programming RED GREEN Refactor

Slide 15

Slide 15 text

DEMO

Slide 16

Slide 16 text

Appdevcon Sticker ¥3,000

Slide 17

Slide 17 text

Demo • Simple app making demo

Slide 18

Slide 18 text

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

Slide 19

Slide 19 text

Demo • Simple app making demo • No documents • test code = specification • concentrate on coding • Always teaching • Util class, shortcuts, and etc…

Slide 20

Slide 20 text

“Is development speed halved when working in pairs?”

Slide 21

Slide 21 text

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)

Slide 22

Slide 22 text

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)

Slide 23

Slide 23 text

Familiar with specifications “Did you become more familiar?” YES 81% 81% NO 19%

Slide 24

Slide 24 text

Recap of pair programming

Slide 25

Slide 25 text

Recap of pair programming • 1 code with 2 people


Slide 26

Slide 26 text

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

Slide 27

Slide 27 text

Recap of pair programming • 1 code with 2 people • more effective with pair-rotation and TDD • always develop with feedback


Slide 28

Slide 28 text

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

Slide 29

Slide 29 text

Great Team High Quality Products

Slide 30

Slide 30 text

Question @himara2 @shizuna_it