Managing Software Projects using Agile/Scrum Nimat Haque Code71, Inc. (www.code71.com) Syed H. Rayhan Code71, Inc. (www.code71.com) Richard Lawrence Humanizing Work (www.humanizingwork.com)
Agenda • Agile 101 – NimatHaque • Issues with Traditional Software Development • What is Agile? And Why should you use it? • Scrum Framework • User Experience #1 – SyedRayhan • Implementing Agile/Scrum in an Waterfall organization • Adopting Agile in Non-Profit Organizations – Richard Lawrence • Challenges • Benefits • 7 tips for your agile adoption • Q&A
Agile 101 Nimat Haque - Co-Founder, Code71 Inc. - Worked for a Fortune 500 company for 9 years - Certified Scrum Master - Currently managing software projects in a remote distributed software development environment. - Interested in Distributed Agile/Scrum
Traditional Software Project Lifecycle Requirements Design Implementation Varification Maintenance Feedback loop Waterfall
Assumptions of Waterfall Projects Project can be accurately planned in details
Assumptions of Waterfall Projects Words are precise Entrée comes with soup or salad and bread Soup or (salad and bread)? (Soup or salad) and bread?
And the result… According to the Standish group, only 34% IT projects are successful Data Source: Standish Group Survey Report
A Few Top Reasons for Failure 1 . Unrealistic or unarticulated project goals Inaccurate estimates Badly defined system requirements Poor communication among customers, developers, and users Stakeholder politics Poor software development process and practices 2 3 4 5 6
Birth of Agile Software Development There has to be a better way to reduce the failure rate….. In 2001, a group of thought leaders in the software industry defined “Agile Manifesto”
Birth of Agile Software Development Agile Manifesto • Individuals and interactions • Working software • Customer collaboration • Responding to change • Processes and tools • Comprehensive documentation • Contract negotiation • Following a plan Over That is, while there is value in the items on the right, we value the items on the left more.
What is Agile Software Development? “Agile Software Development" is an umbrella term ….. Any process that incorporates the Agile Manifesto is called Agile process Scrum XP DSDM FDD Agile RUP
Survey Results from “State of Agile Development” Survey conducted in June 2007, 1700 individuals from 71 countries participated Metric >=10% >=25% Increased productivity 90% 55% Cost reduction 66% 28% Reduced software defects 85% 54% Quicker implementation 83% 54% Most popular Agile Methodology Scrum 37% Scrum/XP Hybrid 23% XP 12% DSDM 5% Source:http://www.versionone.com/pdf/StateOfAgileDevelopmet2_FullDataReport.pdf
Scrum Framework “Scrum is an agile process that allows us to focus on delivering the highest business value in the shortest time.” Tools or Artifacts Roles and Responsibilities Rituals • Product Owner • Scrum Team • Scrum Master • Product Backlog • Sprint Backlog • Burndown Chart • Sprint Planning • Daily Scrum • Sprint Review • Sprint Retrospect
Roles and Responsibilities Product Owner • Defines the features of the product • Manages product backlog in priority order • Represents all stakeholders’ needs • Accepts or Rejects the product Symbiotic Relationship through cooperation yet keeps each other focused Development Team Scrum Master • Removes impediments to allow the team to make progress at constant/desired pace • Facilitates communication/interaction among all parties • Promotes Scrum Values and Practices • Cross Functional and 5-9 in size • Performs the actual development work • Decides on how works get done • Responsible for managing the sprint backlog and meeting the self-defined target
Scrum Processes What did I do yesterday? What will I do today? Any Impediments? Track done Stories broken down into tasks
Key Elements / Concepts Self-managing Team Inspect & Adapt Prioritization
Diverse projects, organizations are using Scrum • Nielsen Media • First American Real Estate • BMC Software • John Deere • Lexis Nexis • Sabre • Salesforce.com • Time Warner • Turner Broadcasting • Microsoft • Yahoo • Google • Electronic Arts • High Moon Studios • Lockheed Martin • Philips • Siemens • Nokia • Capital One • BBC • Intuit Scrum has been used for projects of all shapes and sizes.
User Experience #1- A US Government Agency Syed H. Rayhan - Co-founder, Code71, Inc. - 14+ years of total experience - Certified Scrum Practitioner - Co-author of “Enterprise Java with UML” - Expertise include Technology planning and architecture - Interests include Scrum for projects delivered remotely, Agile engineering practices
User Experience #1- A US Government Agency Project • A sate agency is replacing a legacy database that is used by multiple agencies • The project is funded by federal grant Challenges • Diverse user base- multiple agencies • New technology • Dependencies on multiple on-going projects across multiple agencies • Fixed budget Result • First release delivered with 2.4% above budget, 2-weeks delay in 6 months • Customer was able to adjust the scope of release#1 as late as a month before the release • Customers are extremely happy because they participated throughout the process
How to assimilate a new team? A team assembled with people working together for the first time No experience with iterative development Problem Use “retrospect” effectively Nudge the team to “storming” stage Strategy Had to let go two people who could not fit in Took three months for the team to start storming Result Lessons Learned Be ready to make the difficult decision of “letting go” Make sure the conflict do not permeate outside the team
How to create a “self-organizing” team? A team habituated in command and control environment A team expects to get detailed direction Problem Ensure team ownership of Sprint planning Use “Progress/Commitment and Impediment board” effectively Use “Daily Scrum” and “Burndown Chart” effectively Strategy Still an on-going learning for the team Silos by technology/functionality resulted Result Lessons Learned Watch for unintended silos that may result Nudge the team to think in terms “We vs. I”
How to create a sense of urgency? Laid-back environment Financial incentives are not designed for performance No clear product ownership Problem Strategy Invite clients to sprint reviews (demo) Motivated the team to forge ahead at a constant pace Created a sense of excitement in the minds of clients Helped accelerate procurement and setup of environments Result Lessons Learned The team may start to take short-cuts to have perfect demo
How to leverage organizational politics? Agencies have tensions between each other Individuals have personal agendas Decisions seem to get stuck in a “black hole” Problem Use TARB (Technology Architecture Review Board) Use rules of engagement for decision making Identify team spokesperson for each area of interests Strategy Result After formation of TARB, the team was able to make technical decisions quickly Scrum Master should be extra vigilant about protecting the team from organization politics Lessons Learned
How to plan around waterfall elements in a Sprint? Procurement is handled by an external agency Project is dependent on external people who are transient Problem Strategy Get resource commitments prior to start of a sprint 50% stories dependent on waterfall resources got de-scoped Used a proxy to represent waterfall resources in daily Scrum Result Determine the lead time required to get resource commitment Look for workarounds Lessons Learned
Bridging the two worlds using documentation Scrum Waterfall • Sprint Backlog • Sprint Estimates • Release Backlog • Release Estimates Project Plan • MS Project • Sprint Burndown • Progress Board • Impediment List • Release Burndown • MS Project • Issues List Tracking Risk Management • Anticipated impediment list • Risk list • Architecture document • Business requirements • Use-case document • QA test plan • Run book • Class/Sequence diagrams Others
Adopting Agile in Non-Profit Organizations • Richard Lawrence • - Founder of Humanizing Work • - Certified Scrum Coach • - Software Developer for a decade • - Practicing Agile for 8 years • - Expert in XP, Scrum, Lean, Theory of Constraints
Natural Cultural Fit (sometimes)
#1 Know what “value” means.
#2 Pilot agile on a single project.
#3 Protect the pilot project.
#4 Keep it simple. (especially tools)
#5 Release fast.
#6 Be willing to let agile change your organization.
#7 Get help.
Contact Information Syed H. Rayhan Phone: 804-306-5111 Email: firstname.lastname@example.org Blog: http://blog.syedrayhan.com Twitter: srayhan Richard Lawrence Phone: 303-895-7688 Email: email@example.com Blog: www.richardlawrence.info/ Twitter: rslawrence NimatHaque Phone: 804-647-7208 Email: firstname.lastname@example.org Twitter: nimathaque
TXT Your Session Evaluation! TXT ntc140to 69866 Or complete online at http://nten.org/ntc-eval or on a paper evaluation available in the session room. Each completed session evaluation enters you to win a FREE 2010 NTC Registration!