37
Effective Product Development using Agile Methods Bapiraju Nandury Ramchandra Takkar Cúram Software

Effective Product Development Using Agile Methods

Embed Size (px)

DESCRIPTION

Effective Product Development Using Agile Methods presentation by Baps for Agile Chennai 2007 conference http://agileindia.org/agilechennai07/index.htm

Citation preview

Page 1: Effective Product Development Using Agile Methods

Effective Product Development using Agile Methods

Bapiraju Nandury

Ramchandra Takkar

Cúram Software

Page 2: Effective Product Development Using Agile Methods

Agenda

• Introduction to Cúram

• New product development process

• Agile methods come to rescue – Best Practices

• Lessons learnt

Page 3: Effective Product Development Using Agile Methods

Cúram – World Leader in SEM

• Cúram

– Gaelic for “Care and Protection”

– Is a Commercial-Off-The-Shelf (COTS) Business Application Suite for Social Enterprise Management.

– Is specifically designed for social enterprises such as Human Services, Labour, Health, Social Security, Workers Compensation and Veteran’s Affairs etc.

© Copyright 2006 Cúram Software Limited

Compensation and Veteran’s Affairs etc.

– Supports both welfare and insurance business models

– Based on a Buy and Build philosophy

– Uses J2EE and related technologies. XML, Web Services and UML used extensively

– Has a workflow engine, code generators and rules engine as part of the framework

– Runs on Windows, Unix and Mainframes

Page 4: Effective Product Development Using Agile Methods

What is SEM?

• Social Enterprise Management

– A business and technology blueprint that supports the transformation from a Program-driven business model to a client-centered, integrated service delivery model

© Copyright 2006 Cúram Software Limited

TANF

Food Stamps

Medicaid

Child Welfare

Child Support

Child Care

Disability Services

Return to Work

Workers’ Compensation

Loans

Medicaid

WIC

Mental Health

Adult Services

EIS

Disability Services

Income Support

Disability Services

Pensions

Workers’ Compensation

Contributions

Loans

UI BenefitsUI TaxEmployment ServicesWorkers Compensation

LaborHuman Services

Military & Veterans Affairs

HealthSocial Security

& Pensions

Page 5: Effective Product Development Using Agile Methods

Development Process

Page 6: Effective Product Development Using Agile Methods

Product Development Overview

Source: http://scrumone.typepad.com/

Page 7: Effective Product Development Using Agile Methods

The Team

• Product Management Team

• Product Development Team

– Application Development Team

© Copyright 2006 Cúram Software Limited

– Technical Product Management Team

– Technical Infrastructure Team

– Testing Team

Page 8: Effective Product Development Using Agile Methods

Team Interactions

Product Product DevelopmentDevelopment

Product Product ManagementManagement

Requirements documentation, Support, Handovers

TechnicalTechnicalInfrastructureInfrastructure

Technical Product Management Team

Technical Product Management Team

© Copyright 2006 Cúram Software Limited

T

DevelopmentDevelopment

TestTest

ManagementManagementEngineering Resources (Brainstorming Workshops)Reviews

Support, Scenarios,Reviews

Release builds,Bug Fixes, Support

Identification & retesting of bugs

Page 9: Effective Product Development Using Agile Methods

Development Process

• Requirements Analysis and Elaboration

– Q&A Sessions

– Workshops with all Stakeholders: Business, Development, Quality And Deployment

© Copyright 2006 Cúram Software Limited

– Functional Specifications

Page 10: Effective Product Development Using Agile Methods

Development Process

• Release Level Planning – Agile process

– Stories

– Release Level Estimates

© Copyright 2006 Cúram Software Limited

– Define Iterations

– Release Wall

Page 11: Effective Product Development Using Agile Methods

Development Process

• Iteration Level Planning

– Stories

– Iteration Level Estimates

© Copyright 2006 Cúram Software Limited

– Backlogs

– Bugs

– Iteration Tracker Wall

Page 12: Effective Product Development Using Agile Methods

Development Process

• Tracking

– Master Story List on SharePoint

– Release Tracker Wall

© Copyright 2006 Cúram Software Limited

– Iteration Tracker Wall

– Daily Stand-ups

Page 13: Effective Product Development Using Agile Methods

Development Process

• Testing

– On Developers machines

– On Integration box (BAs - Bangalore)

© Copyright 2006 Cúram Software Limited

– Testing Environment (Testers – Dublin)

– Tracking

– Harp – the online bug tracking system

– Weekly Status Reports on Bug Status

Page 14: Effective Product Development Using Agile Methods

• Different phases of development

– Ready To Play

– In Progress

Development Process

© Copyright 2006 Cúram Software Limited

– Development complete

– BA Testing Complete

– Testing Complete

– Testing Signoff

Page 15: Effective Product Development Using Agile Methods

Development Process

• Change Control and Issue Resolution

– Defined process

– Product Management team logs issues in “Change Control” document and posts it on Sharepoint

– Developers review and agree upon requirement changes which are

© Copyright 2006 Cúram Software Limited

– Developers review and agree upon requirement changes which are scheduled and implemented in subsequent iterations

– Issues are resolved by constant communication with BAs on the floor and conference calls with Product Management team

Page 16: Effective Product Development Using Agile Methods

Development Process

• Retrospectives are held at the end of every iteration

• Prime Directive

– Regardless of what we discover, we understand and truly believe that everyone did the best job they could, given what they knew at the time, their skills and abilities, the resources available, and the situation at hand

© Copyright 2006 Cúram Software Limited

available, and the situation at hand

• The Four Key questions

– What did we do well, that if we don’t discuss we might forget?

– What did not go well?

– What should we continue to do?

– What should we change?

Page 17: Effective Product Development Using Agile Methods

Best Practices

Page 18: Effective Product Development Using Agile Methods

Project kick-start hiccups

• Planning and Estimation

• Framework-related technical issues

• Setting up new development stream

© Copyright 2006 Cúram Software Limited

• New team

• Functional dependencies

• Integration Testing

Page 19: Effective Product Development Using Agile Methods

Best Practices – Agile Process

• Visual Cues – Everyone is in the loop!

– Release Tracker Wall

© Copyright 2006 Cúram Software Limited

Page 20: Effective Product Development Using Agile Methods

• Visual Cues – Everyone is in the loop!

– Iteration Tracker Wall

Best Practices – Agile Process

© Copyright 2006 Cúram Software Limited

Page 21: Effective Product Development Using Agile Methods

• Visual Cues – Everyone is in the loop!

– Retrospective Wall

Best Practices – Agile Process

© Copyright 2006 Cúram Software Limited

Page 22: Effective Product Development Using Agile Methods

• Story Cards

Best Practices – Agile Process

© Copyright 2006 Cúram Software Limited

Page 23: Effective Product Development Using Agile Methods

• Task breakup of stories and estimation based on such tasks

Best Practices – Agile Process

© Copyright 2006 Cúram Software Limited

Page 24: Effective Product Development Using Agile Methods

• Daily Stand-ups

Best Practices – Agile Process

© Copyright 2006 Cúram Software Limited

Page 25: Effective Product Development Using Agile Methods

• Iterative Development – 2 Weeks Iterations

• Focus on delivering value

• Collaborative Code Ownership (up to an extent)

Best Practices – Agile Process

© Copyright 2006 Cúram Software Limited

• Plan such that developers are not overloaded (occasional burn-outs are expected to meet deadlines)

• Infrastructure

• Design Reviews

Page 26: Effective Product Development Using Agile Methods

Best Practices

• Functional Test Scenarios

• Design Discussions

• Involve developers in end-to-end work

© Copyright 2006 Cúram Software Limited

• Tightly coupled team (Business Analysts and Developers) empowered to take ownership and deliver

• Requirements Workshops

Page 27: Effective Product Development Using Agile Methods

• Winning Trust of ALL stakeholders

– Critical factor for success in distributed software development

– Can be achieved through establishing transparency in development process

Best Practices

© Copyright 2006 Cúram Software Limited

– Our team effectively used Sharepoint for “information-at-your-finger-tips”

– In addition to this, we had weekly status meetings

– Set right expectations with ALL stakeholders

Page 28: Effective Product Development Using Agile Methods

• Transparency achieved through Sharepoint

Best Practices

© Copyright 2006 Cúram Software Limited

Page 29: Effective Product Development Using Agile Methods

• Master Story List updates (status of Release/Iteration)

Best Practices

© Copyright 2006 Cúram Software Limited

Page 30: Effective Product Development Using Agile Methods

• Daily Status updates (also used for timesheets)

Best Practices

© Copyright 2006 Cúram Software Limited

Page 31: Effective Product Development Using Agile Methods

• Team Outings

Best Practices

© Copyright 2006 Cúram Software Limited

Page 32: Effective Product Development Using Agile Methods

Best Practices

• Build leadership to drive self-empowered teams

© Copyright 2006 Cúram Software Limited

Page 33: Effective Product Development Using Agile Methods

Lessons Learnt

Page 34: Effective Product Development Using Agile Methods

Lessons Learnt

• A well defined “Change Control Process” helps to review and implement changes in a systematic way

• Testing of cards by BAs as soon as they are done (instead of piling them up)

• Unit Testing should be planned along with development of story

© Copyright 2006 Cúram Software Limited

• Unit Testing should be planned along with development of story cards

• External dependencies can be resolved by scheduling weekly calls with respective teams

• Common vocabulary

Page 35: Effective Product Development Using Agile Methods

Lessons Learnt

• A process for bug fixing should be defined to NOT to break the code of current development

• Refactoring is required to make code-base stable

• Pair signups for reading specs and peer review

© Copyright 2006 Cúram Software Limited

• Pre-IPM for better planning

• Small teams are extremely useful in resolving coordination issues

• Build knowledge base with tech-pool, tech discussions, tech-forums

Page 36: Effective Product Development Using Agile Methods

Recap

• Agile Manifesto works for Product Development too!

– Individuals and interactions over processes and tools

– Working software over comprehensive documentation

– Customer collaboration over contract negotiation

– Responding to change over following a plan

• Customize agile methods to suit your needs

• Continuous feedback is the key

• Empower the teams