code reviews and how to improve them. · local amdram, glastonbury, edfringe. reviewing code review...
TRANSCRIPT
Reviewing Code Review
Lee Stone ! @leesto
1
Code Reviews and How To Improve Them.Improving the process of improving
Reviewing Code Review
Lee Stone ! @leesto
2
Reviewing Code Review.Improving the process of improving
Reviewing Code Review
Lee Stone ! @leesto
3
Hi. I’m Lee.
Organiser of PHPSWOne of a great team to make sure nights like tonight happen
#Web Team Lead at GradwellLead a team producing web applications for selling & managing Gradwell services
$Theatre TechnicianLocal Amdram, Glastonbury, edFringe
Reviewing Code Review
Lee Stone ! @leesto
4
What is Code Review?
Reviewing Code Review
Lee Stone ! @leesto
5
The activity of checking another developer’s code for defects and
improvement opportunities
Reviewing Code Review
Lee Stone ! @leesto
6
Checking code through a dedicated toolprior to merge upstream
Reviewing Code Review
Lee Stone ! @leesto
7
Why Should We Review Code?
Reviewing Code Review
Lee Stone ! @leesto
8
Prevent Bugs Reaching Production.
Security
Business Logic
Coding Standards
Reviewing Code Review
Lee Stone ! @leesto
9
Knowledge Share
Ideal to mentor new developers
Shared business logic - Remove SPOFs
Discover Technical Approaches
Reviewing Code Review
Lee Stone ! @leesto
10
Other Benefits.
Improve Estimates
Making Sure Solutions Meet Requirements
Reviewing Code Review
Lee Stone ! @leesto
11
What Code Review Isn’t
Reviewing Code Review
Lee Stone ! @leesto
12
It does not replace training
Reviewing Code Review
Lee Stone ! @leesto
13
It does not replace demos
Reviewing Code Review
Lee Stone ! @leesto
14
My Environment
Reviewing Code Review
Lee Stone ! @leesto
15
Service Delivery
Web Dev
VoIP team
CEO, Office Manager/HR
Meeting Room 3
Meeting Room 2
Finance
Spare desks
Info AssurPG
FinanceInfo Assur
CEO
Reviewing Code Review
Lee Stone ! @leesto
15
Service Delivery
Web Dev
VoIP team
CEO, Office Manager/HR
Meeting Room 3
Meeting Room 2
Finance
Spare desks
Info AssurPG
FinanceInfo Assur
CEO
Reviewing Code Review
Lee Stone ! @leesto
16
Reviewing Code Review
Lee Stone ! @leesto
16
Senior DeveloperVladimir
Senior DeveloperJosip
Mid-Level DeveloperDanijel
Junior DeveloperNebojsa
Junior DeveloperJovana
QANemanja
Junior DeveloperJames
Web Team LeadLee
Reviewing Code Review
Lee Stone ! @leesto
17
How We Complete Code Reviews
Reviewing Code Review
Lee Stone ! @leesto
18
Crucible.Links with Atlassian SuiteSee the reviews on Jira tickets‘One Stop Shop’ for us
Indicate DefectsOn a comment, can mark it is a defect which is shown separately
Easily See Differences Between CommitsHighlights added/removed linesCan drag between commits to see history
Auto Update for Changes on BranchDeveloper doesn’t have to update review on making changes & can’t forget
Reviewing Code Review
Lee Stone ! @leesto
18
Crucible.Links with Atlassian SuiteSee the reviews on Jira tickets‘One Stop Shop’ for us
Indicate DefectsOn a comment, can mark it is a defect which is shown separately
Easily See Differences Between CommitsHighlights added/removed linesCan drag between commits to see history
Auto Update for Changes on BranchDeveloper doesn’t have to update review on making changes & can’t forget
Reviewing Code Review
Lee Stone ! @leesto
18
Crucible.Links with Atlassian SuiteSee the reviews on Jira tickets‘One Stop Shop’ for us
Indicate DefectsOn a comment, can mark it is a defect which is shown separately
Easily See Differences Between CommitsHighlights added/removed linesCan drag between commits to see history
Auto Update for Changes on BranchDeveloper doesn’t have to update review on making changes & can’t forget
Reviewing Code Review
Lee Stone ! @leesto
18
Crucible.Links with Atlassian SuiteSee the reviews on Jira tickets‘One Stop Shop’ for us
Indicate DefectsOn a comment, can mark it is a defect which is shown separately
Easily See Differences Between CommitsHighlights added/removed linesCan drag between commits to see history
Auto Update for Changes on BranchDeveloper doesn’t have to update review on making changes & can’t forget
Reviewing Code Review
Lee Stone ! @leesto
18
Crucible.Links with Atlassian SuiteSee the reviews on Jira tickets‘One Stop Shop’ for us
Indicate DefectsOn a comment, can mark it is a defect which is shown separately
Easily See Differences Between CommitsHighlights added/removed linesCan drag between commits to see history
Auto Update for Changes on BranchDeveloper doesn’t have to update review on making changes & can’t forget
Reviewing Code Review
Lee Stone ! @leesto
19
Everything is Reviewed.
Reviewing Code Review
Lee Stone ! @leesto
20
Everything Should be Reviewed Within 2 Days
Reviewing Code Review
Lee Stone ! @leesto
21
Everyone is invited to the review
Reviewing Code Review
Lee Stone ! @leesto
21
Everyone is invited to the review
1 x Senior must sign off
Reviewing Code Review
Lee Stone ! @leesto
21
Everyone is invited to the review
1 x Senior must sign off
1 x Other must sign off
Reviewing Code Review
Lee Stone ! @leesto
21
Everyone is invited to the review
1 x Senior must sign off
1 x Other must sign off
No defects
Reviewing Code Review
Lee Stone ! @leesto
22
HipChat BotBecause we all forget
Reviewing Code Review
Lee Stone ! @leesto
23
Effective Code Reviews
Reviewing Code Review
Lee Stone ! @leesto
24
Don’t Make it Personal.
Reviewing Code Review
Lee Stone ! @leesto
24
Don’t Take it Personally.
Reviewing Code Review
Lee Stone ! @leesto
25
I find using “we” rather than “I” or “You” helps
Reviewing Code Review
Lee Stone ! @leesto
26
Don’t just point out the error or problem and move on
Provide Solutions
Reviewing Code Review
Lee Stone ! @leesto
27
Put whitespace only changes into separate commits
Reviewing Code Review
Lee Stone ! @leesto
28
Put ‘library’ code and ‘application’ code intoseparate reviews
Reviewing Code Review
Lee Stone ! @leesto
29
What Has Gone Well For Us?
Reviewing Code Review
Lee Stone ! @leesto
30
Increased knowledge of similar work at sprintplanning sessions.
Reviewing Code Review
Lee Stone ! @leesto
31
Tended towards standard approachesin a quicker fashion.
Reviewing Code Review
Lee Stone ! @leesto
32
Seen opportunities to refactor and producemore generic libraries earlier.
Reviewing Code Review
Lee Stone ! @leesto
33
Caught Security Issues Before Hitting Production
SQL Injection
Modifying Other Customer’s Settings
Producing a List of Customer Emails
Partners Seeing Gradwell Only Pages
Reviewing Code Review
Lee Stone ! @leesto
34
Improved In-line Documentation
Reviewing Code Review
Lee Stone ! @leesto
35
The business is completely on-board
Reviewing Code Review
Lee Stone ! @leesto
36
Increased Confidence From The Rest of The Business
Reviewing Code Review
Lee Stone ! @leesto
37
Given Individual Developers More Freedom
Reviewing Code Review
Lee Stone ! @leesto
38
Where Do I Have To Encourage The Team?
Reviewing Code Review
Lee Stone ! @leesto
39
What are the most difficult reviews toget feedback on?
Reviewing Code Review
Lee Stone ! @leesto
40
Anything by
This Guy
Reviewing Code Review
Lee Stone ! @leesto
41
A new developer to the team is more cautious about commenting on anyone else’s code.
How to Encourage Newer Developers.
Reviewing Code Review
Lee Stone ! @leesto
41
A new developer to the team is more cautious about commenting on anyone else’s code.
How to Encourage Newer Developers.
%
Start Small.Typos and coding styles are still important and are ‘less risky’ to
comment on.
Reviewing Code Review
Lee Stone ! @leesto
41
A new developer to the team is more cautious about commenting on anyone else’s code.
How to Encourage Newer Developers.
%
Start Small.Typos and coding styles are still important and are ‘less risky’ to
comment on.
%
Ask Why.Code reviews don’t have to be just for pointing out problems.
Asking why an approach was taken can be a good learning
opportunity.
Reviewing Code Review
Lee Stone ! @leesto
41
A new developer to the team is more cautious about commenting on anyone else’s code.
How to Encourage Newer Developers.
%
Start Small.Typos and coding styles are still important and are ‘less risky’ to
comment on.
%
Ask Why.Code reviews don’t have to be just for pointing out problems.
Asking why an approach was taken can be a good learning
opportunity.
%
Say If You Don’t Understand.
We all have to maintain the code and readability is one of our most
important considerations.
If you don’t understand what is happening, we have probably
done something wrong. Even if the code works.
Reviewing Code Review
Lee Stone ! @leesto
41
A new developer to the team is more cautious about commenting on anyone else’s code.
How to Encourage Newer Developers.
%
Start Small.Typos and coding styles are still important and are ‘less risky’ to
comment on.
%
Ask Why.Code reviews don’t have to be just for pointing out problems.
Asking why an approach was taken can be a good learning
opportunity.
%
Say If You Don’t Understand.
We all have to maintain the code and readability is one of our most
important considerations.
If you don’t understand what is happening, we have probably
done something wrong. Even if the code works.
%
Bring Fresh IdeasEveryone can bring different
experiences and suggest new and improved ways of
approaching something.
Reviewing Code Review
Lee Stone ! @leesto
42
Move Beyond Coding Standards
Reviewing Code Review
Lee Stone ! @leesto
42
Move Beyond Coding Standards
Reviewing Code Review
Lee Stone ! @leesto
43
Don’t stick to giving the same feedback
Especially on a ‘minor benefit’ point
Reviewing Code Review
Lee Stone ! @leesto
44
What Do We Need To Improve?
Reviewing Code Review
Lee Stone ! @leesto
45
Introduce Code Coverage Reports
Reviewing Code Review
Lee Stone ! @leesto
46
Get Reviews Completed Quicker
Reviewing Code Review
Lee Stone ! @leesto
47
Reviewing Code Review
Lee Stone ! @leesto
47
Reviewing Code Review
Lee Stone ! @leesto
48
Why so Long?Reviewers Don’t Want to Interrupt FlowOther developers don’t look until they have finished their task, or at an ideal break point
Reviewing Code Review
Lee Stone ! @leesto
48
Why so Long?Reviewers Don’t Want to Interrupt FlowOther developers don’t look until they have finished their task, or at an ideal break point
Developers Move on to Something NewResistant to context switch back to make any suggested changes
Reviewing Code Review
Lee Stone ! @leesto
48
Why so Long?Reviewers Don’t Want to Interrupt FlowOther developers don’t look until they have finished their task, or at an ideal break point
Developers Move on to Something NewResistant to context switch back to make any suggested changes
Large Reviews are Harder to StartPeople see ’67 files changed’ and delay
Reviewing Code Review
Lee Stone ! @leesto
48
Why so Long?Reviewers Don’t Want to Interrupt FlowOther developers don’t look until they have finished their task, or at an ideal break point
Developers Move on to Something NewResistant to context switch back to make any suggested changes
Large Reviews are Harder to StartPeople see ’67 files changed’ and delay
It Gets WorseThe more cycles, the longer since the code was written, the longer it takes to switch
Reviewing Code Review
Lee Stone ! @leesto
49
These Delays Hurt Our Release Pace
Reviewing Code Review
Lee Stone ! @leesto
50
How to Speed Up?Encourage Smaller Reviews- More partial reviews early on- Fundamentally create smaller stories to work on
Reviewing Code Review
Lee Stone ! @leesto
50
How to Speed Up?Encourage Smaller Reviews- More partial reviews early on- Fundamentally create smaller stories to work on
Encourage Use of Small Time Periods- Before / after meetings- Before / after lunch.- End of day
Reviewing Code Review
Lee Stone ! @leesto
50
How to Speed Up?Encourage Smaller Reviews- More partial reviews early on- Fundamentally create smaller stories to work on
Encourage Use of Small Time Periods- Before / after meetings- Before / after lunch.- End of day
‘Fixed’ Review TimesI want to avoid this
Reviewing Code Review
Lee Stone ! @leesto
51
How to Speed Up…. Completion?Ownership of Work- Although we work as a team, we need a ‘champion’- Encouraging others to do reviews & acting on
feedback
Reviewing Code Review
Lee Stone ! @leesto
51
How to Speed Up…. Completion?Ownership of Work- Although we work as a team, we need a ‘champion’- Encouraging others to do reviews & acting on
feedback
Increase Recognition of Shipping- Verbal Recognition- How to handle for a remote team?
Reviewing Code Review
Lee Stone ! @leesto
52
More Business Logic Feedback
Reviewing Code Review
Lee Stone ! @leesto
53
Lets Recap
Reviewing Code Review
Lee Stone ! @leesto
54
Code reviews take time, but bring benefits to teams.Your approach needs to be customised to suit your team.
In Summary…
Reviewing Code Review
Lee Stone ! @leesto
54
Code reviews take time, but bring benefits to teams.Your approach needs to be customised to suit your team.
In Summary…
&
Think About….
What Do You Want To Get Out Of The Reviews?
Reviewing Code Review
Lee Stone ! @leesto
54
Code reviews take time, but bring benefits to teams.Your approach needs to be customised to suit your team.
In Summary…
&
Think About….
What Do You Want To Get Out Of The Reviews?
&
Think About….
How Do You Get Buy In From The Team?
Reviewing Code Review
Lee Stone ! @leesto
54
Code reviews take time, but bring benefits to teams.Your approach needs to be customised to suit your team.
In Summary…
&
Think About….
What Do You Want To Get Out Of The Reviews?
&
Think About….
How Do You Get Buy In From The Team?
&
Think About….
What Tooling Can Fit Into Your Workflow?
Reviewing Code Review
Lee Stone ! @leesto
54
Code reviews take time, but bring benefits to teams.Your approach needs to be customised to suit your team.
In Summary…
&
Think About….
What Do You Want To Get Out Of The Reviews?
&
Think About….
How Do You Get Buy In From The Team?
&
Think About….
What Tooling Can Fit Into Your Workflow?
&
Think About….
How Do You Not Considerably Slow Your
Release Pace?
Reviewing Code Review
Lee Stone ! @leesto
55
Thank You.Any Questions?
Reviewing Code Review
Lee Stone ! @leesto
56
https://joind.in/talk/e62d8