Post on 12-Jul-2015
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
Agile at AWS
• Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.
• Continuous attention to technical excellence and good design enhances agility.
• The better we are at what we do, the less frequently we have to cut corners in order to go fast. Ron Jeffries -http://xprogramming.com/articles/quality-speed-tradeoff-or-skill-deficit/
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