Advertisement

More Related Content

Advertisement
Advertisement

Use case+2-0

  1. Use-Case 2.0: Scaling up, scaling out, scaling in for agile projects Dr Ivar Jacobson with Ian Spence ivar@ivarjacobson.com
  2. Scaling up, scaling out, scaling in – what is that? Scaling up To deal with larger development: more people, more requirements, more complex software systems Use Cases Scaling out To deal with greater breath of the development lifecycle Scaling in To provide more guidance to individuals. 2 Copyright © 2011 Ivar Jacobson International SA. All rights reserved
  3. Agenda •  A Brief History of Use Cases •  Use-Case 2.0 – What is new •  Use-Case 2.0 in practice •  Wrap Up 3 Copyright © 2011 Ivar Jacobson International SA. All rights reserved
  4. A brief history of use cases A practice that has learnt ‘87 – ‘96 Use-Case Driven to adapt and evolve Development Paper, OOPSLA, 87 A practice that has stood The Objectory Process and Object-Oriented Software Engineering, the test of time Addison Wesley, 1992 UML, OOPSLA, 1995 ’96 -’00 The Rational Objectory Process, 1997 The Unified Software Development Process, Addison Wesley, 1999 Company X, Y & Z Methods EssUP More and more books and methods using use cases. RUP Use-Case And now use-case 2.0… Essentials 4 Copyright © 2011 Ivar Jacobson International SA. All rights reserved
  5. What made use cases so popular? Requirements •  They effectively communicate what Reuse a system is supposed to do Architecture •  They place the requirements into the context of a specific user’s goals Iteration Use Software Planning Cases Design •  They are the test cases •  They are the starting point for the design of effective user experiences Business Test •  They ‘drive’ the development Modeling through design and code User Experience Design Use-Case Modeling – A very simple idea. To get to the heart of what a system must do, you should focus on who, (or what) will use it, and then look at what the system must do for them to help them achieve something useful. 5 Copyright © 2011 Ivar Jacobson International SA. All rights reserved
  6. Why do we still need use cases? “There are lots of other popular requirement related practices, haven’t they replaced the need for use cases?” •  User Stories – great for small systems and small teams •  Features – great for product management •  Declarative Requirements – great for capturing independent, atomic qualities •  Domain Modeling – great for information rich, functionally simple systems There a lots of great techniques but they lack something to pull them together, and provide a simple, scalable solution. 6 Copyright © 2011 Ivar Jacobson International SA. All rights reserved
  7. Why do we need use case 2.0? •  To correct some of the common misunderstandings: –  Use-cases are lightweight not heavy-weight –  Use-cases are stories not functions –  Use-cases are simple not complicated –  Use-cases are for all types of development not just green field application development •  To re-focus on the essentials •  To better support innovations and improvements such as test- driven development, Kanban, and Scrum Use-Case 2.0 Scaling up, scaling out, scaling in. The lightness of user stories with the power of modelling. 7 Copyright © 2011 Ivar Jacobson International SA. All rights reserved
  8. Agenda •  A Brief History of Use Cases •  Use-Case 2.0 – What is new •  Use-Case 2.0 in practice •  Wrap Up 8 Copyright © 2011 Ivar Jacobson International SA. All rights reserved
  9. A use case is still a use case  A use case is all the ways of using a system to achieve a particular goal for a particular user. •  Use cases can be shown in UML diagrams •  Use cases are described as narratives Withdraw Cash –  Which tell the story of how the system and its users Bank Customer work together to achieve a particular goal …but the way we describe and apply them has evolved. 9 Copyright © 2011 Ivar Jacobson International SA. All rights reserved
  10. Use cases act as placeholders for conversations A set of use cases visualizes the scope and goals of a system in an easily accessible form. A Simple Telephone System The use cases provide context for our conversations. The use cases are our epics and themes. 10 Copyright © 2011 Ivar Jacobson International SA. All rights reserved
  11. A use case is represented by many stories…. • Basic Flow  Alternative Flows 1. Insert Card A1 Invalid Card 2. Validate Card A2 Non-Standard Amount A3 Receipt Required 3. Select Cash Withdrawal A4 Insufficient Funds in ATM 4. Select Amount A5 Insufficient Funds in Acct 5. Confirm Availability of A6 Would Cause Overdraft Funds A7 Card Stuck 6. Return Card A8 Cash Left Behind 7. Dispense Cash Etc… … often too many to code and test in one go. 11 Copyright © 2011 Ivar Jacobson International SA. All rights reserved
  12. Too many stories for a single release Purchase Refill and Service Goods Purchase the Machine Tickets Withdraw ATM Configure the Cash Engineer Machine Check the Machine is in Deposit Working Order Customer Funds Analyze System Transfer Performance Funds Reconcile Transaction Logs Charge Device With Manage Funds Account ATM Operator Run Advertising Campaign Update System Configuration Burglar Break Into Machine Change Pricing Release 1: , Release 2: , Release 3: , Release 4: , Out of Scope: 12 Copyright © 2011 Ivar Jacobson International SA. All rights reserved
  13. Too many stories for a single increment Start
Up
 Release
Ready
 Handover
 releasable
value
 releasable
value
 releasable
value
 releasable
value
 releasable
value
 releasable
value
 releasable
value
 Product Released releasable
value
 releasable
value
 Release Product releasable
value
 Use Case 1 Use Case 2 Use Case 3 Use Case 4 You need to slice up the use cases to provide stories suitable for iterative development, Kanban or Scrum. 13 Copyright © 2011 Ivar Jacobson International SA. All rights reserved
  14. So we slice up the use cases to drive the development A Use Case A Use-Case Slice •  Is described by a set of •  Is created by selecting one or structured stories in more stories for implementation the form of: •  …, acts as a placeholder for all –  A use-case narrative the work required to complete containing flows and special the implementation of the requirements stories –  And a set of matching Test •  …, and evolves to include the Cases equivalent slices through design, implementation and test. 14 Copyright © 2011 Ivar Jacobson International SA. All rights reserved
  15. Use-Cases drive the development Use-Case Model Project Plans Class... Pass Fail Glossary / Analysis Design Implementation Tests & Test Domain Model Model Model Model Results Use case slices are more than just the stories. 15 Copyright © 2011 Ivar Jacobson International SA. All rights reserved
  16. A use case may generate several slices covering all its functionality … Use Case 1 Basic Flow plus 15 Alternatives … Use-Case Use-Case Use-Case Use-Case Slice1.1 Slice1.2 Slice1.3 Slice1.N Basic Flow Alt Flows Alt Flows Alt Flows plus 1-4 plus 5-7 plus M-15 plus Test Cases Test Cases Test Cases Test Cases 1.1 – 1.5 1.6 – 1.10 1.11 – 1.15 1.x – 1.Y The Use-Case Slices split the use case up into a number of smaller, separately deliverable parts 16 Copyright © 2011 Ivar Jacobson International SA. All rights reserved
  17. …,and other quality attributes Use-Case Use-Case Use-Case Slice 2.1 Slice 2.2 Slice 2.3 Basic Flow – Basic Flow – Basic Flow – Rest of Scenarios + Supp Req’t A, Scenario 1 plus B&C plus Test Cases Test Cases Test Case 2.1 2.2 – 2.8 2.9 – 2.10 Slice1 – Build the Slice 3 – Use the basic Slice 2 – Complete the basic flow and flow to performance implementation and Test with one key and stress test the testing of the basic flow. scenario. system. You don’t even need the whole use case before you start slicing  17 Copyright © 2011 Ivar Jacobson International SA. All rights reserved
  18. You only need to outline the flows to create the slices Use-Case 1: Withdraw Cash • Basic Flow  Handling Errors! 1.3 CardAlternative Flows 1. Insert Card A1 Invalid Card Story: Wrong type of card. ! 2. Validate Card Flows:A2 Non-Standard Amount BF, A1! A3 Receipt Required Test Conditions: Invalid card ! 3. Select Cash Withdrawal ! A4 Insufficient Funds in ATM Story: Card Stuck on Cashor Exit! 1.2 Full Entry Withdrawal! 4. Select Amount Flows:A5 Insufficient Funds in Acct BF, A7! 5. Confirm Availability of Test Conditions: Default Card, Default Story: Empty an Account! A6 Would Cause Overdraft Funds Account, Default Amount ! Flows: BF! A7 Card Stuck Test Conditions: Card 001, Account 001 6. Return Card Points: A8 Cash Left £200 ! containing Behind 7. Dispense Cash Story: Withdraw Daily Limit! Etc…Flows: BF! 1.1 Normal CashConditions: Card 002, Account Test Withdrawal! 002! Use case narratives can be described at different Story: Withdraw Beer Money! Points: levels of detail. Flows: BF! Test Conditions: Default Card, Default They start very lightweight by outlining the flows. Account, Default Amounts ! ! This is enough detail to identify our stories and define our slices. Points: 18 Copyright © 2011 Ivar Jacobson International SA. All rights reserved
  19. You can slice up your use cases to support product owners and development teams Done Doable Where time runs out. At risk Building a backlog, tracking done, and knowing how much more you can do. 19 Copyright © 2011 Ivar Jacobson International SA. All rights reserved
  20. You only need to model what is important to you 1.1 Normal Cash Withdrawal! Story: Withdraw Beer Money! Flows: BF! Test Conditions: Default Card, Default Account, Default Amounts ! To get started you! only need one use case and one Points: slice. The use-case model provides the big picture needed for effective scope management and release planning. 20 Copyright © 2011 Ivar Jacobson International SA. All rights reserved
  21. Agenda •  A Brief History of Use Cases •  Use-Case 2.0 – What is new •  Use-Case 2.0 in practice •  Wrap Up 21 Copyright © 2011 Ivar Jacobson International SA. All rights reserved
  22. The agile sweet spot: Use-Case 2.0 with a small agile team Building a web-based insurance application •  Small, co-located project team •  On-site product owner •  4 then 2 week iterations •  Previous experience of use cases •  No experience of iterating The team wrote their First working Lightweight use-case test cases up front as software within four narratives to identify they prepared their weeks. use-case slices. use case slices. 22 Copyright © 2011 Ivar Jacobson International SA. All rights reserved
  23. Working on very large-systems: Use-Case 2.0 with systems engineering Building a new banking straight-through processing engine •  Large distributed project team •  Many stakeholders and sponsors •  6 then 4 and now 2 week iterations •  New to agile and iteration Started with more Became more agile Delivered on-time formal use-case as they grew in and on-budget. narratives and longer confidence. iterations. 23 Copyright © 2011 Ivar Jacobson International SA. All rights reserved
  24. Working with external suppliers Using Use Case 2.0 with out-sourcing or off-shoring •  Innovation for Telecoms operations •  Working iteratively and incrementally through-out •  Requirements and testing in Holland •  All software development and testing out-sourced (much to India) •  Contractually need a formal requirements specification •  Many distributed teams – difficult to have timely conversations Created test cases Used outlines and Evolved the use-case up front and use use-case slices to slices to provide these to QA the identify deliverable clean clear orders for releases delivered by pieces of work. each iteration. the supplier. 24 Copyright © 2011 Ivar Jacobson International SA. All rights reserved
  25. Working with the business: Using Use Case 2.0 for business change •  Agile business programs working iteratively and incrementally •  Business product managers creating software intensive products •  Adding these new products to existing enterprise IT systems •  Business requires synchronized up dates to multiple applications to meet their business needs •  Apply use-case 2.0 to the business as well as the software Analyzed the Created “business” Used outlines and business use-case test cases up front use-case slices to slices to identify the and used these to QA identify slices of applications to be the integrated set of business change. changed and their applications provided use-case slices. by the IT Department. 25 Copyright © 2011 Ivar Jacobson International SA. All rights reserved
  26. Use Case 2.0 with Scrum: A winning combination 1.
Slice
early
 2.
Test
early
 3.
Deliver
early
 and
o2en
 and
o2en
 Use
lightweight
use
 case
narra0ves
to
 Write
test
cases

up
 Use the use-case front

to
clearly
define
 model to identfy the iden0fy
use‐case
slices
 done,
use
these
to
 right slices to generate and
populate
the
 a usable system as backlog.
 demonstrate
working
 so?ware.
 early as possible. Time Done 26 Copyright © 2011 Ivar Jacobson International SA. All rights reserved
  27. Use Case 2.0 with Kanban: A winning combination Time 27 Copyright © 2011 Ivar Jacobson International SA. All rights reserved
  28. Agenda •  A Brief History of Use Cases •  Use-Case 2.0 – What is new •  Use-Case 2.0 in practice •  Wrap Up 28 Copyright © 2011 Ivar Jacobson International SA. All rights reserved
  29. Introducing Use-Case 2.0 •  Use cases are still use cases •  They provide context for our conversations •  We only model what is important •  We slice our use cases to drive the development •  We eliminate waste by using the lightest level of detail •  We include test cases (as part of the use case) to define done •  We use cards and backlogs to support agile ways-of-working •  We add detail to cope with out-sourcing and off-shoring •  We apply the techniques recursively to handle large projects, programs and business change Use-Case 2.0 Agility in action. The lightness of user stories with the power of modeling. 29 Copyright © 2011 Ivar Jacobson International SA. All rights reserved
  30. Use Case 2.0 -- Distinctive Features •  It helps you quickly understand the big picture •  As light as you want it to be •  Enabling incremental delivery •  It’s not just about requirements, it’s for the whole lifecycle •  It’s also for non-functional requirements •  It’s also for embedded software •  It’s not just for software development – it’s for business development as well •  Scaling to meet your needs – scaling in, scaling out and scaling up Register for the free Use-Case 2.0 e-book. 30 Copyright © 2011 Ivar Jacobson International SA. All rights reserved
  31. 31 Copyright © 2011 Ivar Jacobson International SA. All rights reserved
  32. For questions, feel free to contact me, Ivar Jacobson, at ivar@ivarjacobson.com White papers and other resources can be downloaded from www.ivarjacobson.com 32 Copyright © 2011 Ivar Jacobson International SA. All rights reserved
Advertisement