420 likes | 596 Views
Agile Project Management: Breaking Old Software Management Paradigms. Presented by Ryan Martens President & Founder, Rally SDC. Background on Speaker. Ryan Martens President & Founder, Rally Software Development Corp. Former Director Product Management, BEA Systems
E N D
Agile Project Management: Breaking Old Software Management Paradigms Presented by Ryan Martens President & Founder, Rally SDC
Background on Speaker • Ryan Martens • President & Founder, Rally Software Development Corp. • Former Director Product Management, BEA Systems • VP Services, Avitek (Custom Java Development Firm) • Director/Project Manager, BDM Technologies (Systems Integrator) • MBA, BSCE (Construction Mgmt) & Minor CS The Most Agile Route Between Two Points On Course On Time Rally increases the reliability and responsiveness of software-driven companies by enhancing development productivity and agility
What part of the software industry do you work in? Software (ISV, ASP) Corporate (IT) Services (ISV, Consultant) Other How many people are PMP certified? YES NO Audience Survey
Objectives for Today • Thesis: Agile Project Management is becoming a mainstream alternative to “Plan Driven” Project Management. Agile is both disciplined and innovative; it makes your team more reliable and responsive. • What you will learn: • What does Agile look like? • What project management paradigms are we breaking with Agile versus Plan-Driven Development? • How do you get to Agile? • How does it change the “Day-in-the-life” of a PM? • How do you get started? • What tools and resources are available?
Agile Adoption Survey • What is your current level of experience in Agile Project Management and Development? • Know the concept • Learning • Some experience on a team using it • Active practitioner
Survey of Agile Methods • Dynamic System Development Method (Dane Faulkner) • Adaptive Software Development (Jim Highsmith) • Crystal (Alistair Cockburn) • SCRUM (Ken Schwaber) • XP (Kent Beck) • Lean Software Development (Mary Poppendieck) • Feature Driven Development (Jeff DeLuca) • Agile RUP
A Generalized Agile Process Release Iteration 3 Iteration … Iteration 1 Iteration 2 Backlog • Feature 1 • Feature 2 • Feature 3a • Feature 3b • Feature 4a • Feature 4b • Feature 5 • Feature 4c • Feature 6 • Feature 7 • Feature 8 • Feature 9 • ….
Big Design Up Front Continuous Big Test on Backend Highly specific Fully Integrated Continuous What Paradigms Are We Breaking? Agile Development WaterfallDevelopment Iterative Development Iterative and Incremental Development Parallel Development AcceptanceTest Driven Development Process Measure of Success Conformance to Plan Response to Change Culture Command-and-Control Leadership /Collaborative Design QA Tool Support
Critical Path ------------------------- Work Breakdown Structure ----------------------------------------- % Complete of tasks -------------- Serial functions -------------------- Procedural process ----------------- Fixed scope ------------------------- Critical Chain Feature Breakdown Structure # of Features accepted Parallel functions Empirical time boxes Fixed time and resources New Measures of Success Agile Development WaterfallDevelopment Iterative Development Iterative and Incremental Development Parallel Development AcceptanceTest Driven Development Process Measure of Success Conformance to Plan Response to Change
Culture of sign-offs ----------------- High-level plans = Roll-up of detailed plans ------------------------ Detailed Planning early ------------ Protect the Project Scope ---------- Demonstrate at End ----------------- Weekly PM meetings -------------- Culture of learning Gross estimates of backlog create the high-level plans Detailed Planning in chunks Protect the Iteration Scope Demonstrate every Iteration Daily Stand-up meetings Culture of Discipline and Collaboration Agile Development WaterfallDevelopment Iterative Development Iterative and Incremental Development Parallel Development AcceptanceTest Driven Development Process Culture Command-and-Control Leadership /Collaborative
Contract with Customer ---------- Big Design sign off --------------- Dreaded Integration phase ------- Never miss Dev. Cmpt date ----- Work in big phases --------------- Testing squeezed ----------------- Partner with Customer LPM Design Decisions Continuous Integration Never break the build Work in small chunks Low Features squeezed Big Design Up Front Continuous Big Test on Backend Continuous Continuous Design & Test Agile Development WaterfallDevelopment Iterative Development Iterative and Incremental Development Parallel Development AcceptanceTest Driven Development Process Design QA
Focus on Individuals ------------- Optimize the parts ---------------- Integrate with batch update ----- Manage large inventories -------- Un-integrated with the WBS ---- Visibility through manual PM report -------------------------------- Focus on the team Optimize the whole Tight integration Manage rapid throughput Manage the FBS Real-time visibility up, down and across the team Highly specific Fully Integrated Agile Project Tooling Agile Development WaterfallDevelopment Iterative Development Iterative and Incremental Development Parallel Development AcceptanceTest Driven Development Process Tool Support
Benefits from Implementing Agile • Deliver benefits early (First Iteration is demonstrable) • Avoid significant rework by only doing just-in-time detailed design • Avoid dead-end design decisions by managing with LPM decisions and trade-off matrix • Raise quality by moving testing forward in the process • Become responsive by supporting scope adjustments every iteration • Become reliable by instituting regular heartbeats to the team • Increase estimating accuracy by working in small chunks • Decrease risk by always having working software • Increase throughput via real-time visibility • Increase team moral by dropping the “death marches.”
Four Paths to Great Software(Consistently Responsive) Culture of Discipline Hierarchical High Great Organization Agility &Innovation Low High Bureaucratic Start-up Low (Adapted from Collins’ Good-to-Great Matrix of Creative Discipline, 2002)
Four Paths to Great Software(Consistently Responsive) Culture of Discipline Hierarchical High Great Organization Agile Organization Waterfall Agility &Innovation Agile Development Low High Solo Virtuosos Chaos Bureaucratic Start-up Low (Adapted from Collins’ Good-to-Great Matrix of Creative Discipline, 2002)
Four Paths to Great Software(Consistently Responsive) Culture of Discipline Hierarchical High Great Organization Agile Organization Path 4 – Scaling & Extending Agile Path 1 – Agility Waterfall Agility &Innovation Agile Development Low High Path 3 – Agility & Discipline Path 2 – Discipline Solo Virtuosos Chaos Bureaucratic Start-up Low (Adapted from Collins’ Good-to-Great Matrix of Creative Discipline, 2002)
How Organizations Become More Responsive *D. Anderson: Agile Software Management Accounting for Systems
WaterfallDevelopment Iterative Development Iterative and Incremental Development Parallel Development AcceptanceTest Driven Development Agile = Increasing Success Agile Development Cycle Time Increasing Throughput Detailed Inventory Decreasing Investment Feedback Delays Decreasing Operating Expense Increasing Success Risks
WaterfallDevelopment Iterative Development Iterative and Incremental Development Parallel Development AcceptanceTest Driven Development Incremental and Iterative Agile Development Cycle Time Year + Quarters Months Detailed Inventory Whole Project Phase Iteration Feedback Delays Across Job Functions Across Phase Across Iteration Risks Entire Business Project Iteration
Incremental & Iterative Cadence Development Complete Demonstration Detailed Iteration Planning & Design Develop all Features in Parallel Automate Tests Elaborate Features Into Requirements Fix Deferred Defects Manual Test & Bug Fix Elaborate Manual Tests Iteration N-1 Iteration N+1 Iteration N
Parallel Development Cadence Development Complete Demonstration Detailed Iteration Planning & Design Dev Feature Priority 1 Test & Fix Automate Tests Elab. Tests Feature 1 Elaborate Features Into Requirements Dev Feature Priority 2 Test & Fix Fix Deferred Defects Elab. Tests Feature 2 Dev Feature Priority 3 Test & Fix Elab. Tests Feature 3 Iteration N-1 Iteration N+1 Iteration N
Acceptance Test Driven Development Cadence Demonstration Detailed Iteration Planning & Design Dev Feature Priority 1 Dev Feature Priority 4 Auto. Tests Feature 1 Auto. Tests Feature 4 Elaborate Features Into Requirements and Test Cases Dev Feature Priority 2 Dev Feature Priority 5 Auto. Tests Feature 2 Auto. Tests Feature 5 Dev Feature Priority 3 Auto. Tests Feature 3 Iteration N-1 Iteration N+1 Iteration N
WaterfallDevelopment Iterative Development Iterative and Incremental Development Parallel Development AcceptanceTest Driven Development Increasing Agility & Success Agile Development Cycle Time Year + Quarters Months Weeks < week Detailed Inventory Whole Project Phase Iteration Increment Feature Feedback Delays Across Job Functions Across Phase Across Iteration Across Increment Across Feature Risks Entire Business Project Iteration Increment Feature
Customer Success Story • Before • 8 month release, 2 month iterations • Dilemma • Still missing the opportunities & Iteration goals • After • 2 week iterations exposed issues • Separate Patch & Support team • Lowered defect inventory • As a results: • Reliably Responsive to new opportunities
Evolution of Agile inside a team • Rollover • Implement daily stand-up meetings, create an automated build process to always be close to shippable code • Apply Agile Project Management (APM) practices • Create and track a Backlog of stories, a Release, and its Iterations through to Acceptance • Create short iterations and release small batches • Extend APM upstream into requirements elaboration • Capture use cases, scenarios for richer requirements statements, and build parent-child relationships to pull testing forward • Build tight link to the customer for feedback • Extend APM into test to increase quality measures • Track test case results to story cards, manage defects from iteration to iteration • Implement an automated acceptance testing framework
Technical Team Disciplines • Develop coding and naming standards • Track remaining on tasks • Automate the build process and share results • Implement a Testing Framework that includes unit test, application tests and GUI tests • Develop a continuous integration process and server • Move toward collective code ownership • Cross-train through pair programming to increase flexibility, domain knowledge and reduce risk
Suggested Process Internal champion Suggested reading Brown bag discussions Guest lectures Local Agile/XP user groups Agile Conferences Agile Development XP / Agile Universe Software Development Where to start on the web www.agilealliance.org Articles, events & user groups Great resource for getting started with Agile Suggested Reading Home of SCRUM www.controlchaos.com/ Agile & Iterative Development www.craiglarman.com Lean Software Development www.poppendieck.com/ Agile Project Management www.jimhighsmith.com/ Rally Whitepaper Tactical Management of Iterative Development: Achieving Competitive Advantage, www.rallydev.com Resources to Self-teach Agile
Training Opportunities Lean Manager & Practitioners Classes www.poppendieck.com/courses.htm SCRUM Master Class www.controlchaos.com/certifiedscrum/ eXtreme Programming www.xprogramming.com/xpmag/services.htm Rally’s 1-day Agile Workshop Mentoring Programs Individual consulting: Ken Schwaber Mary & Tom Poppendieck Jim Highsmith Mike Cohn Or see www.agilealliance.org Rally Agile Pilot Program 1-day team workshop Developing the Agile Management Team Delivering the first Agile iterations Professional Help
Pick a date two weeks from this Friday. Call it “Iteration 1 End Date.” Schedule a demo for stakeholders. Decide which feature the team will accomplish (the bite-size chunk that can be completed). Define the tasks required to achieve the objective and have the team bid each task. Adjust scope until it looks like it might fit. Commit. Execute - Have daily standup meetings for 15 minutes. Be accountable. Hold the demo exactly when planned no matter how much you have achieved. Reflect on what you’ve learned. Do it again. “Just give me two weeks”
Audience Survey • How many people use these Project Management Tools for planning and tracking? • MS-Project Stand alone • MS-Project Enterprise (or other Project Servers) • Spreadsheets
Open Source M-ASE Story Server TWiki XPTrackerPlugin UserStory.NET XPlanner XpCgi XPWeb XPSwiki Commercial Rally AgilePlan VersionOne Iterate Scope Manager ScrumWorks DevPlanner XpPlanIt Tools Most co-located teams start with paper, note cards and a whiteboard
Planning an Agile Project • Prioritized Backlog of features with gross estimates • Estimate of team velocity • Creates Release & Iterations • Draft Iteration FBS • Detailed Planning for the next Iteration
Tracking an Agile Project • Complete detailed estimates & tasks • Rank FBS for Iteration • Start work & update status • Track status of tasks, tests & defects • Demonstrate new features • Collect metrics
Report on an Agile Project • Remaining burn-down • Accepted features • Velocity of team • Prioritized Backlog • Test Coverage • Outstanding bugs • Current Iteration dates
Objectives for Today • Thesis: Agile Project Management is becoming a mainstream alternative to “Plan-Driven” Project Management. Agile is both disciplined and innovative; it makes your team more reliable and responsive. • What you learned: • What does Agile look like? • What project management paradigms are we breaking with Agile versus Plan-Driven Development? • How do you get to Agile? • How does it change the “Day-in-the-life” of a PM? • How do you get started? • What tools and resources are available?
Questions?Ryan.martens@rallydev.com ORAgilecoach@rallydev.com