Using Perforce to Facilitate Agility



Similar documents
Introduction to Agile Software Development Process. Software Development Life Cycles

Scrum. SE Presentation. Anurag Dodeja Spring 2010

Introduction to Agile Scrum

Agile Software Development

Scrum: A disciplined approach to product quality and project success.

Agile in Financial Services A Framework in Focus

AGILE & SCRUM. Revised 9/29/2015

Agile Software Development and Service Science

Water-Scrum-Fall Agile Reality for Large Organisations. By Manav Mehan Principal Agile consultant

Agile Project Management Mapping the PMBOK Guide to Agile Practices. Michele Sliger

Agile Software Development. Stefan Balbo / Patrick Dolemieux

"Bezpieczny Projekt"

Agile Development Overview

Agile Software Development and Service Science

RISK MANAGMENT ON AN AGILE PROJECT

Agile Project Management

The Agile Movement An introduction to agile software development

IT Home 2015 DevOps 研 討 會

Agile and Secure: Can We Be Both?

How to manage agile development? Rose Pruyne Jack Reed

Introduction to Agile and Scrum

Topics covered. Agile methods Plan-driven and agile development Extreme programming Agile project management Scaling agile methods

Getting Agile with Scrum. Mike Cohn - background

TSG Quick Reference Guide to Agile Development & Testing Enabling Successful Business Outcomes

Agile Project Management: Adapting project behaviors to the software development environment

Scrum for Managers, Zurich March 2010

The traditional project management uses conventional methods in software project management process.

Software Life Cycles and Configuration Management

Capstone Agile Model (CAM)

Agile Project Management

When is Agile the Best Project Management Method? Lana Tylka

An Introduction to Scrum

Agile Project Management By Mark C. Layton

Agile Scrum Workshop

What is Scrum? Scrum Roles. A lean approach to software development. A simple framework. A time-tested process

Certified Scrum Master Workshop

Agile Information Management Development

Software Development Methodologies

Scrum and Testing The end of the test role Bryan Bakker 20 maart 2012

Applying Lean on Agile Scrum Development Methodology

Software Engineering

D25-2. Agile and Scrum Introduction

What does it mean to be Agile. Marek Majchrzak, Andrzej Bednarz Wrocław,

USCIS/SPAS: Product Backlog Items and User Stories 4/16/2015. Dr. Patrick McConnell

Comparative Study of Agile Methods and Their Comparison with Heavyweight Methods in Indian Organizations

Applying Agile Project Management to a Customized Moodle Implementation

Agile Software Development with Scrum. Jeff Sutherland Gabrielle Benefield

PLM - Agile. Design Code Test. Sprints 1, 2, 3, 4.. Define requirements, perform system design, develop and test the system. Updated Project Plan

Agile Systems Engineering: What is it and What Have We Learned?

Issues in Internet Design and Development

How Product Management Must Change To Enable the Agile Enterprise

Agile and Secure Can We Be Both? Chicago OWASP. June 20 th, 2007

Agile and Secure: OWASP AppSec Seattle Oct The OWASP Foundation

Mastering the Iteration: An Agile White Paper

Agile Project Management and the Real World. Emily Lynema DLF Fall 2010 November 1, 2010

Introduction to Agile

Sprint with Scrum and get the work done. Kiran Honavalli, Manager Deloitte Consulting LLP March 2011

Testing in the Enterprise using SCRUM Stretching Scrum to Accommodate Legacy & Large- Scale Testing Activity

Lean QA: The Agile Way. Chris Lawson, Quality Manager

An Introduction to Scrum. The Agile Manifesto a statement of values

Introduction to Agile Software Development

Atern The latest version of the DSDM approach which makes DSDM appropriate to all types of project.

CSSE 372 Software Project Management: More Agile Project Management

How To Understand The Limitations Of An Agile Software Development

CHAPTER 3 : AGILE METHODOLOGIES. 3.3 Various Agile Software development methodologies. 3.4 Advantage and Disadvantage of Agile Methodology

Certified ScrumMaster Workshop

Agility via Software Engineering Practices

Business Analysts in an Agile World. Christian Antoine

Lean Agile Scrum Business Value Development and Delivery using Agility. Brenden McGlinchey Software Done Right, Inc.

Test Driven Development Part III: Continuous Integration Venkat Subramaniam

Product Development with Scrum

5 Levels of Agile Planning: From Enterprise Product Vision to Team Stand-up

Agile Fundamentals, ROI and Engineering Best Practices. Rich Mironov Principal, Mironov Consulting

The Agile Project Manager

Certified Agile Software Test Professional (CASTP)

1. CMMI and Scrum TWO BRANCHES OF SOFTWARE DEVELOPMENT

Applying Agile Methods in Rapidly Changing Environments

Lean and Agile Development With Scrum (Part 2) Lucio Davide Spano

Agile Software Engineering Practice to Improve Project Success

Project Management in Software: Origin of Agile

CSPO Learning Objectives Preamble. Scrum Basics

PMP vs. Scrum Master

2015 Defense Health Information Technology Symposium Implementation of Agile SCRUM Software Development Methodology

Comparing Agile Software Processes Based on the Software Development Project Requirements

Mitigating Risk with Agile Development. Rich Mironov CMO, Enthiosys

Why All the Fuss About Agile (And Why You Should Care)

Transitioning Your Software Process To Agile Jeffery Payne Chief Executive Officer Coveros, Inc.

Automated Acceptance Testing of High Capacity Network Gateway

SWEN - Software Engineering Network Donnerstag 06. Mai. 2010

How NOT to Do Scrum. Patterns and Anti-patterns. Revised July First presented at New York City Scrum User Group June 17, 2010

Agile Project Management

Agile Practitioner: PMI-ACP and ScrumMaster Aligned

Laboratório de Desenvolvimento de Software

Test Automation in Agile. Archana Ramesh Senior Manager QA Ariba Technologies, Bangalore Jan 2008

Neglecting Agile Principles and Practices: A Case Study

Transcription:

Using Perforce to Facilitate Agility Victoria Hall Sr. SW Engineering Manager Bio-Rad Laboratories Topics Bio-Rad & system backgrounder Agile introduction SCRUM focus Software engineering best practices Continuous integration Perforce in a real world agile implementation 1

Backgrounder Bio-Rad 1.7 B laboratory device and diagnostic company Best known for delivering high quality medical testing equipment and consumables to diagnostic laboratories and academics involved in biological research and clinical practice Who am I? 20 years software development & management Certified Scrum Master/ Practitioner and agile proponent Released numerous multi-tiered web and enterprise systems, concentrated in last ten years on bioinformatics and biological sciences S E L D I The instrument PCS 4000 Surface Enhanced Laser Desorption Ionization (SELDI) Mass Spectrometer Applications proteomics, life science biology, drug discovery, food safety 2

Data analysis software Instrument Control Data aggregation Data analysis What do we build Instrument client Linux / Apache Tomcat Java, C++, JESS Data manager server Win XP / Java Jetty mysql/oracle/derby Data manager clients Win XP / Java HASP licensing, 3 rd party libs 3

Tools we use Junit (www.junit.org) Silk (www.borland.com) Perforce (www.perforce.com) Ant (ant.apache.org) Shell scripts Rally (www.rallydev.com) Agile Processes: a brief history Taylor 1911 The principles of scientific management Ford 1915 JIT, DFM 1948-1975 - Toyota Production System Deming 1950 - Statistical methods of process control Six sigma 1986 CMM 1989 RUP 1995 UML 1997 Extreme Programming, 1999 SCRUM - 2000 Agile manifesto - 2001 4

Waterfall Information known up front Manage and reduce risk Change is expensive Contractual ( sign off ) Document-centric Why Change? Source: Standish Group - Chaos Reports 5

Defined vs. Empirical processes It is typical to adopt the defined (theoretical) modeling approach when the underlying mechanisms by which a process operates are reasonably well understood When the process is too complicated for the defined approach, the empirical approach is the appropriate choice Process Theory Process Dynamics, Modeling, and Control Ogunnaike and Ray, Oxford University Press, 1992 Agile Project Vision Drives the Features Project vision drives features Waterfall The Plan creates cost/schedule estimates Agile The Vision creates feature estimates Fix These Features Cost Schedule Plan Driven Value / Vision Driven Estimate These Cost Schedule Features 6

Agile Manifesto We value Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiations Responding to change over following a plan That is, while there is value in the items on the right, we value the items on the left more. www.agilemanifesto.org Many Agile Flavors Test Driven Development (TDD) Feature Drive Development (FDD) Extreme Programming (XP) SCRUM Crystal RUP 7

S C R U M? Maree Reveley Jade Stadium, Christchurch, New Zealand. Rugby Super 14, Crusaders vs Brumbies S C R U M. An implementation of ceremonies, roles and documents for process control Roles Team members SCRUM Master Product Owner Ceremonies Sprint Planning Daily Stand-ups Sprint Review Documents Product backlog Sprint backlog 8

The SCRUM Framework Vision Daily Scrum Done yesterday Plan for today Road blocks? stand up Sprint Planning Review Product Backlog Choose / Estimate Sprint Backlog Commit to iteration stand up 2 weeks Potentially Shippable Product Increment Backlog: Prioritized list of Features & Activities Sprint Backlog Features assigned to Sprint Estimated by team Backlog tasks Expanded by team Sprint Review Meeting Demo features to all Retrospective Agile Principle: Satisfy the customer through delivery of valuable software Vision Backlog: Prioritized list of Features & Activities 9

Agile Principle: Deliver working software Potentially Shippable Product Increment Agile Principle: Deliver working software frequently stand up stand up 2 weeks 10

Agile Principle: Welcome change Vision Sprint Planning Review Product Backlog Choose / Estimate Sprint Backlog Commit to iteration Backlog tasks Expanded by team Sprint Backlog Features assigned to Sprint Estimated by team Agile Principle: Individuals and interactions Vision Meet every 24 hours Daily Scrum Done yesterday Plan for today Road blocks? stand up stand up 11

Agile Principle: Reflect regularly on process and product Sprint Review Meeting Demo features to all Retrospective The Scrum Framework Vision Daily Scrum Done yesterday Plan for today Road blocks? stand up Sprint Planning Review Product Backlog Choose / Estimate Sprint Backlog Commit to iteration stand up 2 weeks Potentially Shippable Product Increment Backlog: Prioritized list of Features & Activities Sprint Backlog Features assigned to Sprint Estimated by team Backlog tasks Expanded by team Sprint Review Meeting Demo features to all Retrospective 12

One SCRUM implementation 4 week cycles RallyDev project management Junit/Silktest for automation Perforce for continuous integration in conjunction with Ant/batch scripts Test automation/execution is done in parallel with development Best Practices SW engineering best practices enable successful agile implementations What are the important ones? Short cycle iterative development. Propagating the notion of DONE. User story driven development. Infrastructure to enable easy change. Automated testing Code/ design reviews Continuous integration 13

Infrastructure is important! especially for successful agile implementations Continuous Integration Overview Wash, rinse, repeat If changes are checked in, do build. If build completes, install and smoke test. If smoke test passes, fully regression test. 14

Continuous Integration In Detail If changes are If build is complete, checked in, do build. install and smoke test. Pull system - poll perforce for changes If smoke test passes, fully regression test. Deploy the build candidate using installer and smoke test. Full regression tests are run on the latest daily build. SILK test scripts are self documenting and a pass/ fail web page is generated. The whole process takes several hours. Development Agile practices made real Check in early and often. Test as you go. Keep the build line clean, that is buildable and passing all unit tests. Work in a sandbox but integrate. 15

It s not done until it passes all tests! Full source get Agile practices made real Integrate other s changes Local build using actual build scripts Run unit tests locally and fix any defects found Finally check in Agile practices made real Integration Test Formal builds fully regression tested. We do these daily at night. Separation of hardware and roles for build, test, and development. Develop and implement testing as you go. Expand your regression suite over time if you are starting at a deficit as we were. 16

Deployment Code freeze Manual tests emphasizing actual (not simulated) instrument data acquisition and processing. Defect fix cycle (as needed). Post acceptance tests, label based on change list build number as release candidate. Post alpha and beta testing, update the label to RELEASED. Launch to our internal manufacturing processes. Other important uses of Perforce Track design documents, test results, test source changes, installation and documentation source changes. Control change and add predictability and sanity to your development and release process. A good thing 17

Scripting Extensive library of custom developed Windows shell scripts. Same thing can be done with Unix/Linux shells, with Perl and with Python. Automation alternatives. Anthill, Hudson, or CruiseControl H u d s o n Extensible continuous integration engine Challenges People getting the right people with the right skills can be challenging. Culture changes slowly. Key hires Experienced build/deploy person not afraid of scripting. Experienced automated tester in our case experienced with Silk4Test language. Developers who can learn to appreciate, or who already appreciate, building quality in as you go. 18

Challenges Seamless transitions Ensuring development is using the same scripts/libraries/ tools as the final build, install, test, release cycle. It can be tricky to get developers to change their behavior. Use regression tests as a check on progress. Quality focus for delivery helps appreciably with this attitude migration. Summary Infrastructure is important for facilitating rapid specification, development, release and incorporation of customer feedback. Perforce is easy to integrate with and very easy to build a continuous integration system around. You can integrate with any build/test system using minimal scripting. Perforce is robust and fast. It behaves as promised without corrupting data. 19

Recommendations Facilitate agile practices daily through continuous integration Be disciplined and patient Get some training if you have budget; teach yourself if not Executive or other champion can help Resources Resources Home of Scrum www.controlchaos.com The SCRUM Alliance www.scrumalliance.org Agile University www.agileuniversity.org Agile Project Leadership Network www.apln.org Agile Alliance www.agilealliance.org Yahoo Groups: scrumdevelopment, XP, XPUK, agiletesting 20

Suggested Reading Agile Software Development with Scrum, Ken Schwaber and Mike Beedle, Prentice Hall 2002 Agile Project Management with Scrum, Ken Schwaber, Microsoft Press, 2004 Collaboration Explained: Facilitation Skills for Software Project Leaders Jean Tabaka, Pearson Education Addison Weasley, 2006 Iterative and incremental developments. a brief history Larman, C. Basili, V.R. - Computer Publication Date: June 2003, Volume: 36, Issue: 6, pp 47-56 SD Times, Standish Group Report: There s Less Development Chaos Today, David Rubenstein http:// www.sdtimes.com/content/article.aspx?articleid=30247 Thank you s Bio-Rad Laboratories: Iztok Marjanovic, John Dunaway, Niels Thomsen, Sangeeta Ahuja, Conan Nado, and Brian Robertson Santa Cruz Software Release Specialists: Curt Patrick, Tom Greer, & Robin Patrick 21