About code reviews and BUGS
by
Giovanni Toraldo
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
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