www.testing-solutions.com TSG Quick Reference Guide to Agile Development & Testing Enabling Successful Business Outcomes



Similar documents
Introduction to Agile and Scrum

The Agile Manifesto is based on 12 principles:

Sometimes: 16 % Often: 13 % Always: 7 %

A Viable Systems Engineering Approach. Presented by: Dick Carlson

Agile Notetaker & Scrum Reference. Designed by Axosoft, the creators of OnTime the #1 selling scrum software.

Agile Scrum Workshop

Scrum, User Stories, and More! CSCI 5828: Foundations of Software Engineering Lecture 22 11/06/2014

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

Introduction to Agile

Agile Projects 7. Agile Project Management 21

LEAN AGILE POCKET GUIDE

Agile Development Overview

AGILE & SCRUM. Revised 9/29/2015

Agile So)ware Development

26 May 2010 CQAA Lunch & Learn Paul I. Pazderski (CSM/CSP, OD-CM, CSQA) spcinc13@yahoo.com Cell: AGILE THROUGH SCRUM

Moderator: Albert Jeffrey Moore, ASA, MAAA. Presenters: Albert Jeffrey Moore, ASA, MAAA Kelly J. Rabin, FSA, MAAA Steven L. Stockman, ASA, MAAA

Agile Software Development

Agile Development with Agile Business Suite

SCRUM BODY OF KNOWLEDGE (SBOK Guide)

AGILE - QUICK GUIDE AGILE - PRIMER

How to manage agile development? Rose Pruyne Jack Reed

CompSci Fall 2014 Professors: Robert Duvall, Ajay Patel, Salman Azhar (rcd@cs, ajay.patel, azhar@cs)

D25-2. Agile and Scrum Introduction

Agile Software Development. Stefan Balbo / Patrick Dolemieux

Basic Trends of Modern Software Development

Issues in Internet Design and Development

Taking the first step to agile digital services

Chapter 6. Iteration 0: Preparing for the First Iteration

Agile Beyond The Team 1

This handbook is meant to be a quick-starter guide to Agile Project Management. It is meant for the following people:

Agile Project Management By Mark C. Layton

Capstone Agile Model (CAM)

Mastering the Iteration: An Agile White Paper

Introduction to Agile Software Development Process. Software Development Life Cycles

AGILE METHODOLOGY IN SOFTWARE DEVELOPMENT

SCALING AGILE. minutes

SECC Agile Foundation Certificate Examination Handbook

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

Scaling Scrum. Colin Bird & Rachel Davies Scrum Gathering London conchango

Agile Software Development with Scrum. Jeff Sutherland Gabrielle Benefield

Handling Requirements in Agile: BA vs. PO. April 14 th, Agile NYC Pecha Kucha Presentation By Gene Gendel, PMP, CSM, CSP

SESSION 303 Wednesday, March 25, 3:00 PM - 4:00 PM Track: Support Center Optimization

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

Bridging the Gap: Traditional to Agile Project Management. I. S. Parente 1. Susan Parente, PMP, PMI ACP, CISSP, PMI RMP, ITIL, MSEM;

Governments information technology

Agile Software Development

When User Experience Met Agile: A Case Study

Who Doesn t Want to be Agile? By: Steve Dine President, Datasource Consulting, LLC 7/10/2008

Atomate Development Process. Quick Guide

Comparing Agile Software Processes Based on the Software Development Project Requirements

Course Title: Managing the Agile Product Development Life Cycle

Waterfall to Agile. DFI Case Study By Nick Van, PMP

Agile Software Development. Mohsen Afsharchi

How To Plan An Agile Project

Whitepaper. Agile Methodology: An Airline Business Case YOUR SUCCESS IS OUR FOCUS. Published on: Jun-09 Author: Ramesh & Lakshmi Narasimhan

IMPLEMENTING SCRUM. PART 1 of 5: KEYS TO SUCCESSFUL CHANGE

Iteration Planning. also called Iteration Kickoff

Adapting Agile Software Development to Regulated Industry. Paul Buckley Section 706 Section Event June 16, 2015

Agile and lean methods for managing application development process

1. Sprint Planning. Agile Ceremonies Demystified. A four part series written by Angela Boardman, CSM, CSP ATG (4284)

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

Nova Software Quality Assurance Process

Life Cycle Models. V. Paúl Pauca. CSC Fall Department of Computer Science Wake Forest University. Object Oriented Software Engineering

When to use Agile/Scrum

Testing in Scrum Projects

Quality Assurance in an Agile Environment

ACP Exam Prep Plus Desk Reference including the Project Management Agile Body of Knowledge TM (PMABOK TM )

Process Methodology. Wegmans Deli Kiosk. for. Version 1.0. Prepared by DELI-cious Developers. Rochester Institute of Technology

Introduction to Agile Scrum

Agile Software Development and Service Science

Scrum. SE Presentation. Anurag Dodeja Spring 2010

Agile and lean methods for managing application development process

SPECIFICATION BY EXAMPLE. Gojko Adzic. How successful teams deliver the right software. MANNING Shelter Island

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

Agile Scrum Training. Nice to meet you. Erik Philippus. Erik Philippus (1951)

Agile Project Management A Primer. Brian Stewart AVU ACEP Nairobi 17 th 2013

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

Are waterfall and agile project management techniques mutually exclusive? by Eve Mitchell, PwC. 22 MARCH

Agile extreme Development & Project Management Strategy Mentored/Component-based Workshop Series

Agile Project. Management FOR DUMME&* by Mark C. Layton WILEY. John Wiley & Sons, Inc.

Course Title: Planning and Managing Agile Projects

Agile Software Project Management Methodologies

Scaling Agile Is Hard, Here s How You Do It!

TecEd White Paper User-Centered Design and the Agile Software Development Process: 7 Tips for Success

AGILE GAME DEVELOPMENT WITH SCRUM

The Team... 1 The Backlog... 2 The Release... 4 The Sprint... 5 Quick Summary Stakeholders. Business Owner. Product Owner.

How Silk Central brings flexibility to agile development

Software Development Methodologies

serena.com An Introduction to Agile Software Development

Scrum in a Large Project Theory and Practice

Agile Extension to the BABOK Guide

RAPID ENGINEERING WITH AGILE RIGHTSHORE DELIVERY (REWARD)

Testing in Agile methodologies easier or more difficult?

An Introduction to Agile Performance Management

Bridging the Gap Between Acceptance Criteria and Definition of Done

Introduction to OpenUP (Open Unified Process)

ScrumMaster Certification Workshop: Preparatory Reading

Transcription:

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

What is Agile Development? There are various opinions on what defines agile development, but most would agree that the following describe a set of basic principles. Incremental development - delivering a number of (useful, usable) deliveries; Iterative development - allowing requirements to evolve (change and be added to) as the project develops; People-oriented development - relying on the quality of developers and testers rather than well-defined processes; allowing the agile team to manage themselves; expecting daily interaction between developers and the business; Technical and engineering excellence achieved through disciplined approaches to the development, integration and test of products. Naturally, agile projects in the real world do not all necessarily conform to the ideal, but most would incorporate the above principles.

Better, faster, together... Manifesto for Agile Software Development The manifesto below describes the non-profit Agile Alliance s view of agile as an alternative to traditional, process-led, highlydocumented methodologies (www.agilemanifesto.org). We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value: Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation 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. As it says, and is seen on agile projects, the items on the right are still valuable. For instance, we still need documentation, but not to excess and we generally find that agile projects are highlydependent on a fair degree of automation.

Scrum Intro Scrum is by far the most popular approach to managing agile projects; it was initially used in 1993, and the first book on it was published in 2001. Scrum is not an anagram it comes from sport (either rugby or American football) and refers to the idea of people putting their heads together to decide on their next action (teams working with Scrum have a short daily scrum meeting to communicate progress). Scrum is not officially a development methodology (i.e. it does not tell you what method to use for describing requirements, or how to write code) and is better described as a project management framework within which an agile methodology is applied by the developers (XP is popular although many organizations create their own hybrid methodology).

Better, faster, together... Scrum Sprints A Scrum project comprises a number of sprints, with each sprint resulting in new functionality that can be delivered to the customer. New functionality may build on previously-delivered functionality or introduce new features. Each sprint will typically last between one and four weeks and the number of sprints needed to complete the project will often be unknown at the start. This is because on typical agile projects the requirements are not fully understood (let alone specified) at the beginning of the project they are allowed to evolve like in real life. Customer requirements are collected in the Product Backlog. The high level requirements (often known as epics ) are broken down into stories.

Story Cards Stories are often written on A5 cards, which can then be moved across task boards on the wall to show progress with the story; their small size forces concise stories consisting (at a minimum) of: the business requirement along with any corresponding non-functional constraints, such as required response times or security requirements; how it may be tested; and an estimate of its size. This means that the integration of layers that can be a late 'challenge' in traditional projects is typically addressed 'up front' on agile projects. This normally means that early agile sprints deliver only small chunks of user functionality, but it also means that integration risks are addressed early in the project, thus reducing the chance of unwanted surprises late in the project.

Better, faster, together... Inside the Scrum Sprint At the start of the sprint the Scrum Players (see later) agree which stories from the Product Backlog should be implemented in this sprint. The selected stories make up the Sprint Backlog. Next, planning for the sprint is carried out (yes, you plan in agile!), to decide both the scheduling of development and test activities (e.g. which stories will be implemented first) and team members roles and responsibilities. Agile follows the same generic process used across all software development and testing as can be seen in the representation of a Scrum sprint below:

The stories are coded and tested (ideally using test-driven development), and immediately integrated into a new system build, whereupon automated regression testing ensures the new code does not adversely affect any of the rest of the system. New functionality is next tested against the story s original acceptance criteria, before, where appropriate, acceptance testing by the users is performed. Towards the end of the sprint, before delivery to the user, a final regression test is carried out to ensure all the newly implemented stories work together and with the rest of the system. The deliverable from the sprint is demonstrated to the end users at the sprint showcase meeting, where the team have the opportunity to show the users (and management) what they have created. The final activity carried out by the sprint team is the sprint retrospective, in which the team review how well they performed in this sprint and identify where improvements will be made in future sprints thus process improvement is built-in to the Scrum framework. Throughout the sprint, standup scrum meetings are held at the start of each day to ensure everyone on the team knows what everyone else is doing, and for the Scrum Master to determine what impediments need to be removed to allow the

Better, faster, together... team to progress most efficiently. Impediments may be distractions arising from previous projects, the lack of suitable tool support, etc. These meeting are carefully managed and kept short no longer than 15 minutes. The stories are often created within the sprint by a team member in the role of a business analyst - the completed stories are deposited in the product backlog to be considered for implementation in future sprints. Issues with the system are raised both by the sprint team and by external stakeholders, such as customers and users and may include bug fixes and enhancements. These can be treated similarly to stories and are entered into the product backlog so that they can be selected (or not) for inclusion in the next sprint. When an issue is selected for handling in a sprint then it appears in the sprint backlog and the issue is fixed and tested in much the same way as a story. The Scrum Players Sprint Team performs the sprint, ideally cross-functional (everyone can do everything), but in reality it s more likely to be a mix of developers, testers and, sometimes business analysts. Scrum Master - who protects his team from interference by management and others. Product Owner the representative of the business.

Scrum Deliverables The deliverable from each sprint: is agreed between the customer and the sprint team at the start of that sprint; generally comprises the highest priority stories currently in the Product Backlog, e.g. the functionality that the customer wants as soon as possible. must be an achievable set of work that is good enough to give to the users and that the team believe they can implement in the sprint. If there are unfinished stories at the end of a sprint they are put back into the product backlog. Normally these are picked up and completed in the next sprint, although if project priorities have changed during the course of the sprint or there is a technologybased reason for not doing them they may be left in the product backlog. Scrum & Testing Typical practices used by the sprint team in the area of testing are: Test-driven development (TDD), where the code is written to pass tests that were written in advance. o the tests are based on the stories; o generally uses automated unit test tools; o TDD is normally seen as a form of programming.

Better, faster, together... Automated builds and continuous integration. o the system is continuously updated and regression-tested as code is booked-in; o ensures speedy identification and correction of integration and regression issues. Story testing (both functional and nonfunctional) against the user stories. Acceptance testing (which may include organizing the end users). Regression testing, to ensure any last minute changes have no adverse sideeffects. Within a truly cross-functional sprint team all testing tasks could be performed by any team member, but in most projects each task is performed by a particular role (e.g. TDD by developer, final regression testing by tester, story testing by BA). Testing within Sprints In an ideal sprint the deliverable is ready for use by the users, which means all the aforementioned testing is performed within the sprint (as shown previously). At the end of a sprint, when a story is done that means it is built, tested and acceptable for use in production. Many projects find this difficult, which leads to two alternatives; testing being performed as a parallel, but offset activity, or testing being handled in an occasional special testing sprint.

Parallel Test Sprints In the parallel test sprint the testers first prepare and then test the output from the last development sprint before sending fault reports back to the development team, who are now working on their next sprint. Thus, the developers have two distinct tasks to perform in their sprint they will develop their next deliverable, but they will also have to debug the faults found by the testers in their previous deliverable. They end up having to work on two versions at the same time so configuration control and managing their development/test environments will be more difficult. Debugged code is returned from the development team, re-tested and finally the system is acceptance and regression tested before shipping to the users. With this parallel and offset test sprint you

Better, faster, together... can see that the time between the business user requesting the implementation of a story and it being delivered to them is extended to considerably longer than the simple sprint length. Done at the end of the development sprint no longer means done, tested and acceptable for production. Occasional Test Sprints An alternative to running parallel test sprints is to decide that after a number of normal development sprints the sprint team will perform a test sprint on the deliverables produced in the preceding development sprints. In a cross-functional team, the whole team may be involved both in the development and in the test sprints. The most obvious disadvantage of this approach is that the response time between accepting a user story for development and delivery back to the user can now be quite long. Done at the end of the development sprint no longer means done, tested and acceptable for production.

Supporting disciplines Agile only succeeds when supporting disciplines are in place. Most importantly, the continuous change must be supported by configuration management. Communication is frequent ideally daily with the customer and continuously between the team members. Techniques and tools to aid communication must be in place. White boards and post-it notes physical communication tools are best to allow good communication. For teams who are not co-located, video conferencing, use of a WIKI and other low-effort methods and tools are necessary. Attitudes of mind that support agile will be built over time: trust between managers, customers and the team will build up over a series of successful deliveries and through honesty between team members, the customer and managers. Fast feedback loops at each scrum and sprint cycle allow a customer focus to be maintained, together with the ability to embrace change and to implement continuous improvements.

Better, faster, together... Key People: customer (product owner) scrum master team cross-functional developer, business analyst and test skills Key Processes: sprint planning meeting with sprint backlog prioritization daily scrum meeting with daily priorities and problem solving sprint retrospective with continuous improvement ideas Key Techniques: self-managing teams story cards white-boarding of designs test-driven development extreme programming (XP) continuous integration continuous automated regression testing story testing configuration management communication tools and techniques (face to face, frequent) documentation tools and techniques (white board, wiki) continuous improvement Key Words: trust, honesty, feedback, customer focus, embracing change.

Testing Solutions Group: The Software Testing Experts The innovative testing consultancy that works with you to solve specific problems to help achieve your corporate objectives and maximize the return on investment you ve made in your people, process and tools in three key, linked areas: Learning & Development to give people the skills they need through ISEB/ISTQB certificated, agile and practical courses Consultancy agile and lean solutions for successful business outcomes Managed Services to reduce the risk of systems failure and increase business satisfaction Enabling Successful Business Outcomes Testing Solutions Group Ltd. 117-119 Houndsditch, London EC3A 7BT Tel: +44 (0)20 7469 1500 Fax: +44 (0)20 3411 8637 info@ Follow TSG on: TSGTSG Page: TSG Testing Solutions Group