JDD Effective Code Review In Agile Teams

27
Effective Code Review for Agile Java Developers Wojciech Seliga & Sławomir Ginter Tag cloud generated with http://www.wordle.net/ Licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License.

description

Presentation about effective code review for agile developers.Slides were used during sessions at Agile2009 in Chicago and JDD09 in Krakow.

Transcript of JDD Effective Code Review In Agile Teams

Page 1: JDD Effective Code Review In Agile Teams

Effective Code Review for Agile Java Developers

Wojciech Seliga & Sławomir Ginter

Tag cloud generated withhttp://www.wordle.net/Licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License.

Page 2: JDD Effective Code Review In Agile Teams

An Evil Plan

Picture courtesy of HelicoCC BY 2.0

Page 3: JDD Effective Code Review In Agile Teams
Page 4: JDD Effective Code Review In Agile Teams

What code review

has to do with Agile

Page 5: JDD Effective Code Review In Agile Teams

Picture courtesy of Cat and GirlCC A-NC-SA 2.5

Page 6: JDD Effective Code Review In Agile Teams

Picture courtesy of mil8 / CC BY 2.0

reusable components

do's and don'tsAPIs

design

style/conventions

Page 7: JDD Effective Code Review In Agile Teams

Mentoring junior developers

Non-intrusive

Asynchronous

Less frustration / interruption for senior devs

Picture courtesy of eddidit / CC BY 2.0

Page 8: JDD Effective Code Review In Agile Teams

Sharing good engineering practices

Picture courtesy of Hey Paul / CC BY 2.0

Page 9: JDD Effective Code Review In Agile Teams

Picture courtesy of Jordan Miller / CC 2.5

Page 10: JDD Effective Code Review In Agile Teams

Photo Courtesy of U.S. Army

Page 11: JDD Effective Code Review In Agile Teams

Picture courtesy of tinyfroglet / CC 3.0

Page 12: JDD Effective Code Review In Agile Teams

Preparation is difficult

selecting the code

organizing reviewers

booking conference room

scheduling

printing

...

Picture courtesy of jfdervin / CC BY-SA 2.0

Page 13: JDD Effective Code Review In Agile Teams

synchronized meetings

de-focusing

Page 14: JDD Effective Code Review In Agile Teams

Picture courtesy of gadl / CC BY-SA 2.0

Page 15: JDD Effective Code Review In Agile Teams

Risk of animosities

Page 16: JDD Effective Code Review In Agile Teams

No concrete measureable results

Picture courtesy of aussiegall / CC BY 2.0

Page 17: JDD Effective Code Review In Agile Teams

Successful code review

Lightweight - simple & flexible process

Asynchronous

Continuous

Efficient tool support

Diff-oriented whenever applicable

Transparent and persistent

Page 18: JDD Effective Code Review In Agile Teams

Time for a longer demo

++

Page 19: JDD Effective Code Review In Agile Teams

Agile code review misconceptions

a fanatic bug-hunt

false confidence about no bugs left

tracking results of every single comment

expecting hard metrics

Picture courtesy of Juria Yoshikawa / CC BY-SA 2.0

Page 20: JDD Effective Code Review In Agile Teams

Rigid Process

Metrics

Micro-management

But teams evolve...

The greatest initial Enemies

Picture courtesy of tms. / CC BY-NC-ND 2.0

Page 21: JDD Effective Code Review In Agile Teams

Some rules of agile code revieweveryone can join review & comment

everyone can modify the scope of the review

everyone can invite other people

everything is public across the company

it's about learning, it's not about blaming

Picture courtesy of PantoDX / CC BY 2.0

Page 22: JDD Effective Code Review In Agile Teams

Unexpected advantages

Facilitation of distributed teams

Collaboration on low level design

Easier to introducethan pair-programming

Time-zone differencemay help you

Knowledge BasePicture courtesy of david.nathan.cox / CC BY 2.0

Page 23: JDD Effective Code Review In Agile Teams

Code Review vs. Pair Programming

creation

collaboration

asynchronous synchronous

distributed co-located

”repression” ”prevention”

sharingknowledge

&responsibility

improved qualitylower barrier higher barrier

permanent

intensive

verification

extensive

volatile

later now

Page 24: JDD Effective Code Review In Agile Teams

Picture courtesy of Kevin Dooley / CC BY 2.0

Page 25: JDD Effective Code Review In Agile Teams

About us

[email protected] [email protected]

Tag clouds generated with http://www.wordle.net/

Page 26: JDD Effective Code Review In Agile Teams

Q&A

Picture courtesy of Mykl Roventine / CC BY 2.0

Page 27: JDD Effective Code Review In Agile Teams

Thank you