agile code reviews: supporting collaboration and improving production uptime for agile development...

30

Upload: atlassian

Post on 12-Jul-2015

987 views

Category:

Technology


2 download

TRANSCRIPT

Page 1: Agile Code Reviews: Supporting collaboration and improving production uptime for agile development teams
Page 2: Agile Code Reviews: Supporting collaboration and improving production uptime for agile development teams

Agile Code Reviews

Supporting collaboration and improving production uptime for agile development teams

Sean deBardelabenSr. Software Developer

Page 3: Agile Code Reviews: Supporting collaboration and improving production uptime for agile development teams

What is AWS?

• How many folks here have come to expect and rely on wireless connectively to add value to some aspect of their lives?

Page 4: Agile Code Reviews: Supporting collaboration and improving production uptime for agile development teams

What is AWS?

• Nintendo 3DS owners get Wi-Fi freebie, CNET, 6/2/11

• Nintendo 3DS owners will get free Wi-Fi access at 25,000 locations around the U.S., starting Tuesday. The wireless access will be available at nearly 200 malls owned by Simon Property Group, Nintendo said today, as well as in more than 1,000 Best Buy locations. Nintendo has also inked a deal that will allow 3DS owners to connect to AT&T Wi-Fi hot spots at no charge.

Page 5: Agile Code Reviews: Supporting collaboration and improving production uptime for agile development teams

What are our business challenges?

• Network growth

Page 6: Agile Code Reviews: Supporting collaboration and improving production uptime for agile development teams

Network Growth

• 6 months in 2009

• 5 weeks in 2010

• 11 days in 2011

Page 7: Agile Code Reviews: Supporting collaboration and improving production uptime for agile development teams

What are our business challenges?

• Network growth

• Security

• Custom requirements

• Bandwidth utilization

• IPv6

Page 9: Agile Code Reviews: Supporting collaboration and improving production uptime for agile development teams

Challenges for the development team

• Scale infrastructure

• Provide Cross Training

• Collaborate to improve the reliability of our releases

Page 10: Agile Code Reviews: Supporting collaboration and improving production uptime for agile development teams

Show of hands:

• How many folks have ever done a code review?

• How many folks are thinking about asking their developers to add code reviews to their current activities?

Page 11: Agile Code Reviews: Supporting collaboration and improving production uptime for agile development teams

Code Review Initiative

• Position for growth and improve engineering practices• Provide mechanism for cross-training and engineer on-boarding• Improve product quality and reduce downtime• Goal is focused (code review), and timeline is short• Demonstrate the value of this Process Improvement approach• Improve quality and velocity

• minimize defects that go past the development phase• Reduce lifecycle maintenance costs• Ensure all code follows coding standards and coding style

Page 12: Agile Code Reviews: Supporting collaboration and improving production uptime for agile development teams

Initial Environment

• Jira 4.1.2

• 17 active Jira projects• Multiple Jira plugins

• Links Hierarchy

• Tags• Balsamiq• Reporting• Worklog Assistant• Workflow Reports

• GreenHopper 5.2.412 Kanban and Scrum Teams

Page 13: Agile Code Reviews: Supporting collaboration and improving production uptime for agile development teams

Tools Selected

FishEye, Crucible and Crowd

• Benefits:

•interfaces with JIRA

•ease of use

•support online review

•all comments automatically archived

•tracks time spent, amount of code reviewed

•powerful and flexible (eg. RSS feed of code updates)

13

Page 14: Agile Code Reviews: Supporting collaboration and improving production uptime for agile development teams

Tool Versions

Crowd

–Version 2.1.0 Build #431

FishEye and Crucible

–Version:2.4.4 Build:20110111045701

Crowd used for user mapping

FishEye used for source code browsing

Crucible used for code review process

14

Page 15: Agile Code Reviews: Supporting collaboration and improving production uptime for agile development teams

AT&T Proprietary & Confidential

Light weight Process

Author / Developer Driven

Review for standards

Review for business process adherence

Review for training

Reviewers on scrum team

Page 15

Page 16: Agile Code Reviews: Supporting collaboration and improving production uptime for agile development teams

Overview of the process

cvs commit –c “SAR-1025 Updating makefile” Makefile

– author creates Review from Jira Ticket

– author addresses concerns

– review session is marked complete

– author moves JIRA task to the DONE state

– ~10% overhead per reviewer

Page 16 AT&T Proprietary & Confidential

Page 17: Agile Code Reviews: Supporting collaboration and improving production uptime for agile development teams
Page 18: Agile Code Reviews: Supporting collaboration and improving production uptime for agile development teams
Page 19: Agile Code Reviews: Supporting collaboration and improving production uptime for agile development teams

Pilot

• Technical Challenges:

• Index a very large cvs repository• Index a growing svn repository

• Personnel Challenges:

• Get engineers involved in process• Collect meaningful feedback

Page 20: Agile Code Reviews: Supporting collaboration and improving production uptime for agile development teams

Developer Friendly

Page 21: Agile Code Reviews: Supporting collaboration and improving production uptime for agile development teams

CVS configuration

• Cvs rsync

• rsync --verbose --progress --stats --recursive /prod/cvs/root/os/admin/* sd181r@machinename:/cat/cvs/os/admin

• rsync --verbose --progress --stats --recursive /prod/cvs/root/os/configs/* sd181r@machinename:/cat/cvs/os/configs

Page 22: Agile Code Reviews: Supporting collaboration and improving production uptime for agile development teams
Page 23: Agile Code Reviews: Supporting collaboration and improving production uptime for agile development teams

svn configuration

Regular Expression Name Logical Path Prefix

Trunk (([^/]+)/)+trunk(/|$) trunk ${1}

Branch (([^/]+)/)+branches/([^/]+)

${1}-${3} ${1}

Tags (([^/]+)/)+tags/([^/]+) ${1}-${3} ${1}

https://svn.server.com/svn No support for Kerberos

Page 24: Agile Code Reviews: Supporting collaboration and improving production uptime for agile development teams

Stumbling blocks

• Large cvs repository took months to scan

• Large svn repository took weeks to scan

• Tagged builds showing up as unreviewed code

• Mapping users ids between CVS repository, Jira and AD

• Large code set reviews had poor performance

24

Page 25: Agile Code Reviews: Supporting collaboration and improving production uptime for agile development teams

Unexpected Benefits

• Activity steam gave architects visibility in key deliverables

• RSS feed gave teams better ownership of projects

• Integration into Jira gave Product Owners and Project Managers insight into feature sets

25

Page 26: Agile Code Reviews: Supporting collaboration and improving production uptime for agile development teams

Reports

• Release reports

• Scrum team reports

• User reports

Page 27: Agile Code Reviews: Supporting collaboration and improving production uptime for agile development teams

Release Reports

• select revisions from dir "/" where ((comment matches "TZ-1420" or comment matches "TZ-1635" or comment matches "TZ-1623" or comment matches "TZ-1621" or comment matches "TZ-1619") and date >= 2011-03-01T06:00:00.00Z) order by date desc group by changeset return path, revision, author, date, csid, totalLines, linesAdded, linesRemoved, reviews

27

Page 28: Agile Code Reviews: Supporting collaboration and improving production uptime for agile development teams

Scrum Team Reports

• select revisions from dir "/" where ((comment matches "DOGS" or author in(bs9162,dr213u,ri950d,rk9847,sd9393,sg002j,sr170u,tm214k,wwiggins)) and date in [now-P21D , now ] ) order by date desc group by changesetreturn csid, author ,count(distinct reviews)

Page 29: Agile Code Reviews: Supporting collaboration and improving production uptime for agile development teams

User Report

• Activity Stream

Page 30: Agile Code Reviews: Supporting collaboration and improving production uptime for agile development teams

Focus on the important