Slide 1

Slide 1 text

About code reviews and BUGS

Slide 2

Slide 2 text

Famous software in history ● 1962 - NASA Mariner 1 mission, spacecraft destroyed ○ 18 million USD ● 1988 - Morris Worm experiment at MIT ○ 50.000 USD ● 1994 - Pentium FDIV ○ 475 million USD ● 2010 - Mt. Gox bitcoin exchange ○ 850.000 bitcoins ● 2012 - Knight Capital Group investments ○ 440 million USD

Slide 3

Slide 3 text

The cost of a

Slide 4

Slide 4 text

Test failure while coding, immediate fix 1 €

Slide 5

Slide 5 text

A colleague spots a bug during code review, few minutes fix 10 €

Slide 6

Slide 6 text

During QA testing, receive a vague bug report, spend time reproducing it, write the fix and release after an hour 100 €

Slide 7

Slide 7 text

In production, different users spot the a bug “it just don’t work”, 8 hours of work 1000 €

Slide 8

Slide 8 text

Too many defects, release postponed by few weeks 10.000 €

Slide 9

Slide 9 text

Too many defects and missing features, release postponed by months 100.000 €

Slide 10

Slide 10 text

Release to production even with many defects and missing features: bad user experience, loss of credibility project failure

Slide 11

Slide 11 text

No content

Slide 12

Slide 12 text

Good to have practices to the rescue ● Source code VC ● Bug tracker ● Dependency Management ● Configuration Management ● Automated deployment ● Continuous Integration ● Data management ● Continuous delivery ● Code reviews

Slide 13

Slide 13 text

CODE REVIEWS

Slide 14

Slide 14 text

1. Write code 2. Ask for feedback 3. Repeat until OK

Slide 15

Slide 15 text

WHY

Slide 16

Slide 16 text

Find bugs before your customers do

Slide 17

Slide 17 text

Meets specifications

Slide 18

Slide 18 text

Shared ownership

Slide 19

Slide 19 text

Keep the bar high

Slide 20

Slide 20 text

Leave a written trail

Slide 21

Slide 21 text

Mentorship by default

Slide 22

Slide 22 text

Asynchronous feedback

Slide 23

Slide 23 text

HOW (as a submitter)

Slide 24

Slide 24 text

Avoid wall of diff

Slide 25

Slide 25 text

Contain not interesting changes

Slide 26

Slide 26 text

Solve one thing at a time

Slide 27

Slide 27 text

Provide context

Slide 28

Slide 28 text

Highlight most interesting points

Slide 29

Slide 29 text

Respect for your colleagues time

Slide 30

Slide 30 text

HOW (as a reviewer)

Slide 31

Slide 31 text

Be polite

Slide 32

Slide 32 text

Learn context before starting

Slide 33

Slide 33 text

Give feedback that helps

Slide 34

Slide 34 text

Look for missing tests and edge cases

Slide 35

Slide 35 text

Pay attention to what tools can’t find

Slide 36

Slide 36 text

our process

Slide 37

Slide 37 text

No content

Slide 38

Slide 38 text

No content

Slide 39

Slide 39 text

No content

Slide 40

Slide 40 text

No content

Slide 41

Slide 41 text

No content