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

Post on 12-Jul-2015

987 Views

Category:

Technology

2 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Agile Code Reviews

Supporting collaboration and improving production uptime for agile development teams

Sean deBardelabenSr. Software Developer

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?

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.

What are our business challenges?

• Network growth

Network Growth

• 6 months in 2009

• 5 weeks in 2010

• 11 days in 2011

What are our business challenges?

• Network growth

• Security

• Custom requirements

• Bandwidth utilization

• IPv6

Challenges for the development team

• Scale infrastructure

• Provide Cross Training

• Collaborate to improve the reliability of our releases

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?

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

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

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

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

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

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

Pilot

• Technical Challenges:

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

• Personnel Challenges:

• Get engineers involved in process• Collect meaningful feedback

Developer Friendly

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

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

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

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

Reports

• Release reports

• Scrum team reports

• User reports

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

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)

User Report

• Activity Stream

Focus on the important

top related