Transcript of "HostingCon - Using agile to deliver projects that transform customers from doubters into raving fans"
Using Agile Methodology toDeliver Projects that TransformCustomers from Doubters into Raving Fans Michael Harris VP of Information Technology, Ecommerce Inc.
Goals• Demonstrate How Agile Can Help to Transform Customer Perception• Share Insight Into The Ecommerce Agile Approach• Provide You With a Set of Practices That Can Be Deployed on Your Own Agile Teams
Who is the Customer?From Dictionary.com 1. a person who purchases goods or services from another;buyer; patron. 2.Informal . a person one has to deal with: a tough customer;a cool customer.For the purpose of this talk a customer can be anyinternal or external project sponsor or decision maker.
What Do Customers Expect?• To Get What They Asked or Paid For• To Have Predictable Costs• To Get Timely Results• To Be Kept in the Loop (i.e. No Surprises)• To Focus On The Business While We Deliver the Technology
What Do Customers Often Get? • Experience Tells Them... IT Project = Confusion + Frustration (#FAIL) • From Their Perspective We... - Have a Poor Project Delivery Track Record - Fail to Hold Our Commitments - Have Fluid, Out of Control Costs - Misinterpret/Misunderstand What They Want
Why Do We Need Change?• Because We Do In Fact Have a Poor Project Delivery Track Record• As an Industry IT Misses Approximately 7 Out of 10 Times (Cost, Features, Time) - Standish Group - Chaos Summary 2009 - University of Missouri, St. Louis (December 2003)• This is Performance Only a Baseball Player Could Appreciate
How Do We Improve Our Batting Average and Get More Fans? • Hold Our Commitments • Build Conﬁdence Through Transparency & Shared Success • Actively Engage the Customer • Communicate & Adjust
So What is Agile?• Agile Provides a Set of Practices and Processes Based on Iterative and Incremental Development With a Focus on Collaboration and Feedback• Agile Manifesto (http://agilemanifesto.org/) - Individuals and interactions over processes and tools - Working software over comprehensive documentation - Customer collaboration over contract negotiation - Responding to change over following a plan
But Agile Will...• Enable Us To (Grow Fans): 1. Hold Our Commitments 2. Build Conﬁdence 3. Engage The Customer 4. Communicate and Adjust
How Does Agile Helps Us To Hold Our Commitments?• We Break Down Work Into Manageable Chunks Called Stories• We Employ “Manage a Day” Theory• We Plan for Change and Change the Plan• We Use Fact Based, Collaborative Planning
How Does Agile Help Us To Build Conﬁdence?• Demonstrate Working Code Early and Often• Do the Most Valuable and/ or Hardest Things First• Maintain a “Change” Buffer in the Plan• When We Don’t Know... We Prototype
How Does Agile Helps Us To Engage The Customer?• Customers Actively Participate in Story Building• Customers Deﬁne Success & Failure Criteria• Customers Help to Plan Iterations• Customers Provide Feedback on Working Code
How Does Agile Helps Us To Communicate and Adjust?• Agile is All About Communication and Feedback• Continuous Improvement is Built Into the Process via Retrospectives• “Do More of What Works and Less of What Doesn’t”• We Clearly Deﬁne Done
Next Lets Examine Our Approach toSolving this Challenge at Ecommerce
How We Practice Agile• We Will Cover - Planning - Managing - Delivery - Team Makeup
Agile Planning• Key Practices - Story Building (Requirements Gathering) - Planning Poker (Estimation) - Iteration Planning (Slotting and Prioritization)
Agile Story BuildingAnatomy of a StoryAs a <actor/role> I want to <action> sothat <reason>.Acceptance Criteria Failure Conditions• What does success • What exceptions do look like? we handle and how?
Example StoryAs a presenter, I want to determine thebackground of the audience so I can caterthe presentation to their needs. Success Failure Conditions• The majority of the audience self • If no one raises their hands make identiﬁes as (customer or IT) and sure you are in the right room! as (agile novice or agile expert) • If less than the majority raise their hand then keep trying until you get a majority
Another ExampleAs a presenter, I want to teach the audiencehow to use agile to win over customers sothat they can be more successful with theirfuture projects. Success Failure Conditions• Members of the audience learn about • If the audience is bored tell a joke important aspects of agile • If the audience glassy eyed then re-• Members of the audience leverage agile on query background information their future projects • If the audience fails to applaud at the• The audience applauds at the end of the end apologize and hand out candy presentation
Planning Poker• We Estimate Each Story Point Scale Story Using Story - 0 is <= 2 hours Points - 1 is <= 8 hours -• Members Use 2 is <= 16 hours - 3 is <= 40 hours Playing Cards To - 5 is > 40 hours Cast Their Vote• Capture Tasks * Stories scored a 5 need to be broken down
Iteration Planning Backlog• An Iteration Contains 2 Weeks Worth of 3 3 00 Stories Stories Minus a 20% 3 1 1 Change Buffer (Plan Change for Change) Prioritize Buffer• Collaborative Effort Between Development and the Customer Velocity• We Package 2-3 Iteration Iterations in Advance
Agile Planning Toolbox• Tools We Use - Pivotal Tracker for managing backlog, iteration planning and work tracking. www.pivotaltracker.com - www.planningpoker.com for story estimation. - Redmine for project documentation www.redmine.org.
Daily Stand Ups• Must Be Prepared To Answer The Following: - Yesterday I Committed To And Completed... (verify) - Today I Commit To Completing... (commit) - My Roadblocks Are... (escalate)• And Yes We Stand The Entire Time :)
Retrospectives Not Honest!• Requires “Brutal Honesty”• Answers Two Simple Questions - What Worked - What Did Not Work• Turn the WDNW’s Into Stories or Chores and Incorporate Into Future Iterations
Demonstrations• Gives Customer a Chance to Interact With Working Code• Demos Verify Customer Acceptance of Stories• Demos Should Be Engaging• Capture Failures as Bug Stories
Agile Delivery• Key Practices - Clear Deﬁnition Of Done - Automated Testing Is Critical To Success - Continuous Integration - Agile Coaching
Deﬁnition Of Done• Working, Demonstratable Code• All Tests Pass - Tests Prove Acceptance Criteria & Failure Handling• Story Accepted By Customer
Automated Testing• Test First, Test After... Just Test!• Tests are as Much for the Developer as the Customer• Regression Testing Prevents Indirect Feature Breakage• Integration Testing Ensures That Units Function Correctly Together
Continuous Integration• Instant Feedback For Build & Test Validity Upon Code Check In• Broken Build = Fire Alarm• Provides Metrics for Code Coverage• We Use Hudson (hudson-ci.org) But There Are Many Good Ones Available
Agile Coaching• Continuous Coaching is Critical for New Agile Teams• Developers Pair as Needed• Peer Code Reviews Required - Ensures Consistency - Spreads Knowledge• Team is Self Organizing
Building an Agile Team• A Typical Project Will Have - 1 Project Manager - 1 Business Analyst - 3-6 Developers - 1-2 Designers/Web Developers - 1-2 QA• We Use a 1-3-1 Ratio for Designers to Developers to QA
Our Agile Team• Customer/Sponsor/ • Communicate Project Goals/ Background SME’s • Write Stories• Business Analyst • Write Success/Failure• PM/Dev Manager Criteria • Provide Reference (Scrum Master) Information• Designers/UX • Help Plan/Prioritize Iterations• Developers • Provide Feedback in Demos • Participate in Daily Stand Up• QA (Optional)
Our Agile Team• Customer/Sponsor/ • Facilitate Story Building SME’s • Challenge Customer to Dig• Business Analyst Deeper & Work Through Scenarios• PM/Dev Manager • Story Clariﬁcation (Scrum Master) • Participate in Planning Poker • Liaison Between IT & Customer• Designers/UX • Demo Presenter• Developers • Participate in Daily Standup• QA • Participate in Retrospectives
Our Agile Team• Customer/Sponsor/ • Lead Iteration Planning SME’s • Lead Planning Poker• Business Analyst • Lead Daily Stand Up• PM/Dev Manager • Lead Retrospectives (Scrum Master) • Assign Work• Designers/UX • Eliminate Roadblocks• Developers • Review Code• QA • Lead Release Planning
Our Agile Team• Customer/Sponsor/ • Break Stories into Tasks SME’s • Deliver Stories (Code & Unit• Business Analyst Test) • Pair & Mentor• PM/Dev Manager • Participate in Planning Poker (Scrum Master) • Participate in Demos• Designers/UX • Manage Continuous Integration Server• Developers • Participate in Daily Stand Up• QA • Participate in Retrospectives
Our Agile Team• Customer/Sponsor/ • Participate in Story Building SME’s • Develop Integration Test• Business Analyst Plans • Execute Integration Tests• PM/Dev Manager • Record/Prioritize Defects (Scrum Master) • Certify Release for• Designers/UX Production • Participate in Demos• Developers • Participate in Daily Stand Up• QA • Participate in Retrospectives
In Summary• To Win Fans - Do What We Say and Say What We Do - Customers Want To Be Heard - Demonstrate Consistency and Transparency Using Agile• Like Anything Else, Agile Takes Practice and Coaching But Everyone Can Do IT