Project Management and Testing in an Agile Environment


Published on

Published in: Business, Technology
  • Be the first to comment

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

Project Management and Testing in an Agile Environment

  1. 1. Project Management and Testing in an Agile Environment Project Management and Testing in an Agile Environment Johanna Rothman Rothman Consulting Group, Inc. 781-641-4046 Agile Project Context • You don’t know all the requirements at the beginning of the project • Your project’s requirements will change • You’d like to be able to release at a moment’s notice • Your organization believes in at least some part of the agile manifesto: “Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan That is, while there is value in the items on the right, we value the items on the left more.” • Remember YAGNI (You Aren’t Going to Need It) © 2003 Johanna Rothman 2 © 2003 Johanna Rothman 781-641-4046 1
  2. 2. Project Management and Testing in an Agile Environment What Do Project Managers Do? • From the PMBOK: • Agile Project Managers: – Initiate – Initiate – Plan – Plan an iteration – Execute Plan daily work – Control Execute – Close Steer/Guide (help the team organize and manage their work) Close the iteration Review effort expended and progress made – Until enough iterations are done – Close © 2003 Johanna Rothman 3 What Do Testers Do? • In “traditional” projects • In “agile” projects – Read documentation – Develop tests with customer – Develop tests based on – Develop requirements for product requirements documentation – Develop tests based on – Develop tests based on API documentation – Report problems – Develop tests based on API – Report on state of software – Report problems – Report on state of software – Frequently, after code is available – Before development © 2003 Johanna Rothman 4 © 2003 Johanna Rothman 781-641-4046 2
  3. 3. Project Management and Testing in an Agile Environment Agile Projects Make Traditional PM Problems Obvious • We can’t fully plan before we start, because we don’t know where we’re going – We can plan a little and continue to iterate the planning • When we execute, things will happen – Risk management is essential • During the “control” phase, we need to measure what’s happening, so we have a chance of guiding the project – What do you measure, so you know where you are and can move to where you want to be? • If we knew when we were done, we’d close – So if we’re ready to release at a moment’s notice, we can close any time © 2003 Johanna Rothman 5 Agile Projects Change the Nature of Testing • So far, agile testers look a lot like developers – Their perspective is different • Test-first development means the developers wait on the testers for the requirements – But not very long. Hours, maybe a day… • Build is always available • Cycles of testing have to complete quickly (less than a day) • Changes the nature of how we plan to test and how we develop tests © 2003 Johanna Rothman 6 © 2003 Johanna Rothman 781-641-4046 3
  4. 4. Project Management and Testing in an Agile Environment What Agile Project Managers Do • Guide projects • Negotiate each iteration’s content – “But can’t you fit in one more user story?” • Track iteration’s progress • Facilitate 15-minute daily standup meetings to expose progress and obstacles – Here’s what I finished. Here’s what I’m working on today. Here’s what would prevent me from completing it. • Facilitate customer/team working together – Agitate for customer involvement • Use previous iteration’s completion to plan next iteration – Use velocity (number of user stories/iteration completed) and prioritized user stories left to predict the next iteration • Agile project managers require more of the “soft” skills to be effective – Negotiation, oral communication, influence © 2003 Johanna Rothman 7 Project Initiation • Question: – How many of you write project charters? – How many of you jump directly to the project schedule? • Project charters can be invaluable – Why we want this project, return for the project, risks, people • Especially needed when – One customer can’t represent the entire customer set – The customer can’t/won’t sit with the team – You’re a pilot project trying out agile methods © 2003 Johanna Rothman 8 © 2003 Johanna Rothman 781-641-4046 4
  5. 5. Project Management and Testing in an Agile Environment Project Planning • Question: – How many of you plan the whole project at the beginning? – How many of you plan to replan? • Agile projects practice schedule and planning iteration, as well as development iteration • About planning: – Planning is not the holy grail of a successful project – However, without a plan, you can’t be successful – Plan what you need to plan, and don’t bother with the rest © 2003 Johanna Rothman 9 Steer/Guide an Agile Project • Daily 15-minute standup meetings • Measure each iteration’s velocity – Earned value at its best – How many people, how many user stories completed, in how much time • Monitor fault feedback ratio – High FFR implies not enough refactoring Refactoring is updating the code, not the design – Tells you whether you need to change pairs or institute other peer review techniques © 2003 Johanna Rothman 10 © 2003 Johanna Rothman 781-641-4046 5
  6. 6. Project Management and Testing in an Agile Environment Close an Iteration • Iteration close criteria – “Did we accomplish all the user stories we thought we could do?” – “Is it time to complete an iteration?” – “Can the customer use what’s in this iteration?” • Can perform a quick retrospective © 2003 Johanna Rothman 11 Test Planning • How many of you develop test strategy documents? – Release criteria, what you will and will not test – Which configurations • How many of you plan for X iterations of testing? • How many of you plan for test automation? • Agile projects practice testing iteration, as well as development iteration © 2003 Johanna Rothman 12 © 2003 Johanna Rothman 781-641-4046 6
  7. 7. Project Management and Testing in an Agile Environment Testing in an Agile Project • Develop automated tests at the top level – Developers develop unit tests • Develop automated tests at the integration level (it depends) • Refactor the tests • Agile projects demand automated tests (as the main driver for tests) © 2003 Johanna Rothman 13 Completing Testing for an Agile Project • If you’ve been testing with the user all along, you don’t need user acceptance testing • Some projects plan for a short iteration with exploratory testing to run through all the system tests and fix problems they missed • Measure code coverage to see if large holes © 2003 Johanna Rothman 14 © 2003 Johanna Rothman 781-641-4046 7
  8. 8. Project Management and Testing in an Agile Environment Example of an Agile Project • Please arrange yourselves into groups of 10: Project staff (7 people) Observers (3 people) 1 Project manager 1 PM observer 3 developers 1 developer observer 1 customer and 1 tester 1 customer/tester observer • We’ll debrief together: – Observers (PM, Customer/tester, developer): What did you see and hear? – Project staff (PM, Developers, Customer/testers): What stood out for you? Where were you challenged? surprised? What’s one thing you learned about agile projects? What’s one thing you’re going to apply when you go back to work? © 2003 Johanna Rothman 15 Define Project Quality to Determine Which Agile Techniques to Use • Define quality: Value to someone – You have many someones, which someones do you care about the most? – Do you have multiple users, each with their own agenda? Make sure you have one customer from each user set assigned to the project Facilitate their discussions • Why should you care about what quality means for your project – You won’t have time to do everything. Defining quality means you can make appropriate choices Rank user stories – You can use agile project management and techniques no matter what your customers want © 2003 Johanna Rothman 16 © 2003 Johanna Rothman 781-641-4046 8
  9. 9. Project Management and Testing in an Agile Environment Assess Your Project’s Requirements and Constraints • Every project has requirements and constraints Peo nt • What do your customers care about me ple the most? Feature set ron and – Time to market nvi – Feature set the rk e – Defect levels ir c Wo • Internal perspectives or constraints: Ti apa Your customers don’t care about these. me ts fec bil You do. to De M itie – Cost to market ark ow s – People and their capabilities L et – Work environment Cost to market © 2003 Johanna Rothman 17 Different Projects Have Different Customer Focus Main Street Tornado Early Market The Mainstream End of Life Chasm Market Te Vis Pr Co Sk c En hno ion Bowling ag ma ns ep tic ar er th log us ies Alley tis ts va tiv s ias y es ts Introduction Early Adopters Mainstream Late Majority Skeptics 1. Time to Market 1. Time to Market 1. Low Defects 1. Low Defects 1. Low Defects 2. Feature Set 2. Feature Set 2. Time to Market 2. Feature Set 2. Feature Set 3. Low Defects 3. Low Defects 3. Feature Set 3. Time to Market 3. Time to Market © 2003 Johanna Rothman 18 © 2003 Johanna Rothman 781-641-4046 9
  10. 10. Project Management and Testing in an Agile Environment About Iterations • Two-six weeks long (2-3 weeks is better) – An iteration should be as long/short as you are willing to throw the iteration’s work away – Team decides what they can accomplish within an iteration – Team monitors its velocity: number user stories/iteration • Customer and team develop user story cards (not a formal requirements document) • Customer and team work together to understand each user story • Testers and customer write acceptance tests • All code is developed test-first (unit tests) • Use some sort of peer review technique (pair programming, informal review) © 2003 Johanna Rothman 19 Choose What to Measure • Don’t be afraid to apply YAGNI to measurement also – EQF (Estimation Quality Factor) – FFR (Fault Feedback Ratio) – Cost to fix a defect – When people work on the project vs. when they are assigned © 2003 Johanna Rothman 20 © 2003 Johanna Rothman 781-641-4046 10
  11. 11. Project Management and Testing in an Agile Environment Summary • Using agile techniques can help your project management and testing – The project staff have to be ready, as well as your management • Agile project management requires much more monitoring throughout the project (and less upfront planning) • Test first means reporting is easy • Inch-pebbles and earned value are your friends • Choose iteration durations so that if you have to throw out an entire iteration’s work, it’s ok • Move from project control to project steering • Have fun! © 2003 Johanna Rothman 21 References and Reading • Beck, Kent, Extreme Programming Explained: Embrace Change, Addison-Wesley, Reading, MA. 2000. • Beck, Kent and Martin Fowler, Planning Extreme Programming, Addison-Wesley, Reading, MA. 2001. • Highsmith, Jim, Adaptive Software Development, Dorset House, New York, 2000. • Highsmith, Jim. Agile Software Development Ecosystems, Addison-Wesley, Reading, MA. 2002. • Martin, Robert C. Agile Software Development:Principles, Patterns, Practices, Prentice Hall, Upper Saddle River, NJ. 2003. • Schwaber, Ken et al. Agile Software Development with Scrum, Prentice Hall, Upper Saddle River, NJ. 2001. • I have a variety of articles on my website, and in my Managing Product Development blog: • Agile Alliance is at © 2003 Johanna Rothman 22 © 2003 Johanna Rothman 781-641-4046 11
  12. 12. Project Management and Testing in an Agile Environment Questions? • If you have questions later, email me, © 2003 Johanna Rothman 23 © 2003 Johanna Rothman 781-641-4046 12