Upload
naresh-jain
View
8.856
Download
1
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
Effective Product Development using Agile Methods
Bapiraju Nandury
Ramchandra Takkar
Cúram Software
Agenda
• Introduction to Cúram
• New product development process
• Agile methods come to rescue – Best Practices
• Lessons learnt
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
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
Development Process
Product Development Overview
Source: http://scrumone.typepad.com/
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
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
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
Development Process
• Release Level Planning – Agile process
– Stories
– Release Level Estimates
© Copyright 2006 Cúram Software Limited
– Define Iterations
– Release Wall
Development Process
• Iteration Level Planning
– Stories
– Iteration Level Estimates
© Copyright 2006 Cúram Software Limited
– Backlogs
– Bugs
– Iteration Tracker Wall
Development Process
• Tracking
– Master Story List on SharePoint
– Release Tracker Wall
© Copyright 2006 Cúram Software Limited
– Iteration Tracker Wall
– Daily Stand-ups
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
• 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
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
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?
Best Practices
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
Best Practices – Agile Process
• Visual Cues – Everyone is in the loop!
– Release Tracker Wall
© Copyright 2006 Cúram Software Limited
• Visual Cues – Everyone is in the loop!
– Iteration Tracker Wall
Best Practices – Agile Process
© Copyright 2006 Cúram Software Limited
• Visual Cues – Everyone is in the loop!
– Retrospective Wall
Best Practices – Agile Process
© Copyright 2006 Cúram Software Limited
• Story Cards
Best Practices – Agile Process
© Copyright 2006 Cúram Software Limited
• Task breakup of stories and estimation based on such tasks
Best Practices – Agile Process
© Copyright 2006 Cúram Software Limited
• Daily Stand-ups
Best Practices – Agile Process
© Copyright 2006 Cúram Software Limited
• 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
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
• 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
• Transparency achieved through Sharepoint
Best Practices
© Copyright 2006 Cúram Software Limited
• Master Story List updates (status of Release/Iteration)
Best Practices
© Copyright 2006 Cúram Software Limited
• Daily Status updates (also used for timesheets)
Best Practices
© Copyright 2006 Cúram Software Limited
• Team Outings
Best Practices
© Copyright 2006 Cúram Software Limited
Best Practices
• Build leadership to drive self-empowered teams
© Copyright 2006 Cúram Software Limited
Lessons Learnt
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
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
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