Code Review as a Great Tool in the Agile Toolbox Matthias Sohn, Stefan Lay (SAP)

Slides:



Advertisements
Similar presentations
Applying Agile Methodologies to Traditional Publishing Kristen McLean Bookigee, Inc. February 12 th, 2011.
Advertisements

EGit wird erwachsen Git, Github und Gerrit – alles in der IDE += Dr. Stefan Lay (SAP AG)
Program Management School Agile & ADDIE Add-Up (AAAU) Elliott Masies Learning 2012 October 21-24, 2012.
Feb Alten Group Started in France in 1988 Currently more than people Presence in 10 countries Active in The Netherlands since 2002.
Agile Software Development Robert Moore Senior Developer Curtin University.
Jenkins User Conference San Francisco, Sept #jenkinsconf Business Process Model & Notation (BPMN) Workflows in Jenkins Max Spring Cisco
AGILE DEVELOPMENT Outlines : Quick Look of agile development Agility
Chapter 2 Modeling the Process and Life Cycle Shari L. Pfleeger
Systems Analysis and Design in a Changing World, 6th Edition
Systems Analysis and Design in a Changing World, 6th Edition
Sharif University of Technology Session # 3.  Contents  Systems Analysis and Design Sharif University of Technology MIS (Management Information System),
Agile 101.
Alternate Software Development Methodologies
Copyright © 2012 Pearson Education, Inc. Publishing as Prentice Hall B.1.
Agile Process Models. Prescriptive models don’t work It is unrealistic to not have changes. Why? The Agile Manifesto: Individuals and interactions over.
Agile development By Sam Chamberlain. First a bit of history..
Agile Software Development. Traditional Software Development 1.Initiation (RFP) 2.Feasibility study Technical – can we build it? Economic – should we.
Agile Methods and Extreme Programming CSSE 376, Software Quality Assurance Rose-Hulman Institute of Technology March 23, 2007.
Extreme Programming Team Members Gowri Devi Yalamanchi Sandhya Ravi.
Computer Engineering 203 R Smith Agile Development 1/ Agile Methods What are Agile Methods? – Extreme Programming is the best known example – SCRUM.
The Challenge to Survive in Today’s Software Development Environment Evaluating the Agile Methodology.
Managing a Project Using an Agile Approach and the PMBOK® Guide
Introduction to Agile.
An Overview of Agile L e a d i n g C h a n g e T h r o u g h C o l l a b o r a t i o n.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
Get quality results faster: Agile Projects and your team Presenters: Laurie Barnas and Wendy Taylor, Associate Registrars, University of Victoria.
Agile Software Development What is Agile? And How are we implementing Agile?
Chapter 3 – Agile Software Development 1Chapter 3 Agile software development.
Chapter 3 – Agile Software Development Lecture 1 1Chapter 3 Agile software development.
Chapter 5 Software Process Models. Problems with “Traditional” Processes 1.Focused on and oriented towards “large projects” and lengthy development time.
..OR SOMETHING THAT LOOKS LIKE IT SCOTT TURNBULL SOFTWARE ENGINEERING MANAGER EMORY UNIVERSITY LIBRARIES Agile Development.
Agile and XP Development Dan Fleck 2008 Dan Fleck 2008.
Extreme programming overview Agenda  Extreme programming goals  Extreme programming values  Extreme programming practices  The Extreme programming.
By Saravanan Bala. General Report 31 % of Software projects are cancelled 75 % of the software projects are considered failures by the people who initiated.
Chapter 3 – Agile Software Development Pepper modification of Sommerville presentation & Colm O’hEocha – AgileInnovation Ltd presentation 1Chapter 3 Agile.
Systems Analysis and Design in a Changing World, 6th Edition 1 Chapter 8 - Approaches to System Development.
© 2006 Cisco Systems, Inc. All rights reserved.Cisco ConfidentialPresentation_ID 1 Agile Assessment Gadi Lifshitz, Ayelet Kroskin, Barak Yagour, Yael Dubinsky.
Coming up: What is Agile? XP Development Dan Fleck 2010 Dan Fleck 2010.
Extreme Programming (XP). Agile Software Development Paradigm Values individuals and interactions over processes and tools. Values working software over.
Chapter 3 Agile Software Development (1/2) Yonsei University 2 nd Semester, 2015 Sanghyun Park.
Systems Analysis and Design in a Changing World, 6th Edition
© 2007 BigVisible Solutions, Inc. All Rights Reserved Training Solutions Agile Training Game v
Agile Methodology Paul Mohrbacher. Agile Manifesto We are uncovering better ways of developing software by doing it and helping others do it. Through.
Lecture 4 – XP and Agile 17/9/15. Plan-driven and agile development Plan-driven development A plan-driven approach to software engineering is based around.
Requirements Engineering Requirements Engineering in Agile Methods Lecture-28.
Copyright © 2009 Pearson Education, Inc. Publishing as Prentice Hall Appendix B Agile Methodologies B.1.
Agenda: Overview of Agile testing Difference between Agile and traditional Methodology Agile Development Methodologies Extreme Programming Test Driven.
AGILE - IMPLEMENTATION (C) CLARION TECHNOLOGIES. ability to move quickly and easily…. AGILE MEANING (LITERALLY)
10 key principles of agile software development
CS223: Software Engineering Lecture 16: The Agile Methodology.
Agile 101. Feasibility Study SDLC – What is it? Systems Development Life Cycle: The most commonly used, and generally accepted, project management approach..
Agile Development Chapter 10 - part 2. Agile Philosophy  A guiding philosophy and set of guidelines for : developing information systems in an unknown,
Copyright 2015, Robert W. Hasker. Classic Model Gathering Requirements Specification Scenarios Sequences Design Architecture Class, state models Implementation.
Extreme Programming מתודולוגיה לפיתוח פרויקטי תוכנה.
Extreme programming (XP) Advanced Software Engineering Dr Nuha El-Khalili.
Agile Methodology. -Dhanashree Kumkar -Plus91 Technologies.
Informed Traveler Program and Applications Agile / Scrum Overview Jerry Inberg.
Coming up: What is Agile? XP Development Dan Fleck 2010 Dan Fleck 2010.
Embedded Systems Software Engineering
Software engineering (cs3529) target classes: cs14: A,B
Agile Methodology and Scrum
Flight Software Conference 2016
Appendix B Agile Methodologies
Approaches to Systems Development
Agile and XP Development
CS 577b: Software Engineering II
Agile and XP Development
Scrum Science NGSS: Engineering, Technology, Applications of Science
Appendix B Agile Methodologies
System Development Methods
Presentation transcript:

Code Review as a Great Tool in the Agile Toolbox Matthias Sohn, Stefan Lay

Agenda How we became agile What we learned from Open Source Why we embraced Code Review How we scale up agile with Open Source processes

Agile Feedback cycles Source:

Agile Feedback cycles Pair Programming Ralph and Karsten hacking on E4

Agile Feedback cycles Test Driven Development

Agile Feedback cycles Continuous Integration Q: Who is who?

Agile Feedback cycles Code Review? Sometimes formal Code Review (Fagan style inspection) Pair Programming is considered to be more agile Higher bandwidth (Faster feedback) Leads to faster integration than Code Review Individuals and interactions over processes and tools

Agile Software Engineering Engineering practices are key SAP trained its developers > 4000 participants 1 week training 3 weeks coaching Focus on Scrum Pair programming Test Driven Development Continuous Integration Acceptance Tests

Code Review in Open Source Maintainer Hierarchy / Contributors Public peer review on mailing list Committer / Contributor model Public peer review Patch in Bugzilla Gerrit Github

Code Review vs. Pair Programming

Code Review leads to small, self-contained increments ensures that ideas can be understood from code leads to review discussions visible to everybody leaves room to develop alternative solutions Ideal complement to Pair Programming which is great to explore unknown terrain onboard new developer combine complementary skills

Code Review is asynchronous Can be done when there is time The whole team can review (also external reviewers) Review takes time, but also leaves time This leads to parallel workflow Git perfectly supports this Some aspects can be automated Rule checking Build and test Deployment to staging environment All checks happen before submit

Code Review Best Practices Small changes are much easier to review A change should logically do one thing (not many) No change shall break build or tests Split big changes into series of digestible changes - These changes depend on each other - Last change should switch the new feature on Commit message should explain Why - The What should be obvious from the code change

Code Review and Scrum Successful code review required for a task to be finished Many Done Criteria already checked during code review Make review visible on Scrum Board Reserve time for review Everybody should review

Code Review and Scrum Scrum Board StoryBug FixReviewStory AStory BStory C … Open In Progress In Review Done

Code Review with Git and Gerrit Gerrit is a Code Review system based on JGit Also serves as a Git server Adding access control and workflow Used by Android Eclipse Google, QualComm, SAP, WikiMedia…

Code Review with Git and Gerrit

Gerrit usage at SAP started 2010 Projects: > Users: > Changes: > Run by a small team of developers (us) Training is important (> 400 developers) Recently Git and Gerrit were approved as standard infrastructure

Scaling Agile with Open Source Processes Agile processes work great for small teams Collaboration between teams of a large project? High level planning of cross team topics still necessary Open Source like processes can replace detailed top- down planning Contribute to components owned by other teams Review relevant changes of other teams Scale up Pair Programming -> Hackathons

Contributions between teams Find project information easily Standardized infrastructure Contributor Guide

Finding project info

Finding project info - Skalli

Standardized infrastructure git clone mvn clean install Eclipse CBI:

Project specific Standardized Contributor Guide Where to get the sources How to setup the project How to build Review process Communication channels Correction Process Coding conventions How to test Review rules …

Conclusion Code Review brings additional value to agile teams Git and Gerrit help a lot Improves collaboration within and between teams Standardization helps to scale

Questions & Answers

Agile Manifesto Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan In a complex and changing environment feedback is key!