for Teams Thomas M. Fehlmann Euro Project Office AG www.e-p-o.com es
Dr. Dr. Thomas Fehlmann 1981: Dr. Math. ETHZ 1982-89: Manager Software Development 1990-95: for Systems Integration 1996-99: Sales Support Manager Proposal Center 1999ff: Euro Project Office AG, Zürich Akao Price 2001 for original contributions to QFD Member of the Board of QFD Institute Germany QFD Architect es SwiSMA: Software, Functional Sizing 2000ff: Black Belt Banking, Manufacturing, Communications ISO 9001 Management System for Software Development and Operations New Lanchester Theory for gaining Market Share Net Promoter Certified Associate 2
Agenda es Software Development Good Point and Pain Points Sizing Sequence Diagrams Contributions to The Buglione Trudel Matrix Some Conclusions 3
Goal of this Talk es Sizing User Stories in in Real Time Promote Sequence Diagrams use for counting Cosmic FPs 4
Manifesto es Acquiring Knowledge over managing Bug Lists 5
What is? fail Independent Testing pass 24h 10 day es Product Backlog Sprint Backlog Sprint Work Increment Planning Session of finished software To select User Stories for the Sprint Daily Scrum With Daily Stand-Up Meetings: Achievements? Next Steps? Obstacles? Independent Testing Green Bar on JUnit Create a Working System every day Such that customer can provide feedback immediately Sponsor needed for guidance! 6
the Good and the Ugly es Embrace Change Software development isn t Civil Engineering! Involve Stakeholders Harvest on developer s experience and know-how Acquire Knowledge Build up domain knowledge as work progresses Communicate Explain, discuss Reach consensus Not : Sizing with Story Points Estimation in Planning Poker When is it finished? What is finished? What means finished? What are the priorities? For the Product Backlog? For the Sprint Backlog? Was the project successful? Business goals reached? Benchmarks??? 7
What are Story Points? es Sizing User Stories by Repeat this Team Meetings Everybody writes down his/her size estimate Using a Fibonacci scale Uncovers the note Average results and discuss opinion gaps Until agreement is reached Sort of Delphi Technique 8
What is? es Reduce Variation Reduce Variation Predict the Outcome! 9
Sample User Story: Search Books by Title es (Courtesy by Grant Rule, SW Measurement Services Ltd.) Three functional Story Items: Four quality Story Items: Enter Book Title Read from Data Store Include Subtitle Search Increased Search Speed exit with Book List Forgiving Grammar Check Pattern Matching Search 10
COSMIC Contribution to Functional Size using ISO/IEC 19761 standard es Functional es ID Story Item X.1 Search Book by Title Yes Yes Yes Yes f-1.1 Enter Book by Title 1 Yes Yes Yes Yes f-1.2 Read from Data Store 1 Yes Yes Yes Yes f-1.3 Present Book List 1 No Yes Yes No q-1.1 Include Subtitle search No No No No q-1.2 Increase Search Speed No Yes Yes Yes q-1.3 Forgiving Spell Check No Yes No Yes q-1.4 Pattern Matching Search Does it operate on a unique and ordered set of data movements performing a set of FURs? Is it triggered by an event? Does the triggering event occur outside the boundary of the software? Does the process execute all that is required to be done in response to the triggering event? Triggering Event Data Group Entry (E) Read (R) Write (W) exit (X) CFP per Data Movement Type 1 1 0 1 Total CFP 3 11
User Device, or Engineered Device Persistent Data Functional Sizing with ISO/IEC 19761 The COSMIC method (ISO/IEC 19761) sizes requirements from different viewpoints Functional User Requirements (FURs) No. of Entry/Exits to/from Elementary Functional es No. of Read and Writes to/from Persistent Data Storage es Trigger Boundary Entry (E) Exit (X) Entry (E) Exit (X) Write (W) Read (R) 2 E + 2 X + 1 W + 1 R = 6 CFP (COSMIC Function Points) 12
Functional Sizing with ISO/IEC 19761 PrintJobs 1. // Prepare Geo Data GeoData 2. // Retrieve Address Data 3. // Get Address Data 4. // Compare with Geo Data 5. // Add Geo Data 6. // Geo Data Search Results 7. // Deliverable? es 8. // Update Print Job Monitor 9. // Report Address Not Found 10. // Set Entry Status Create the Sequence Diagrams Identify the Story Items 13
Functional Sizing with ISO/IEC 19761 es PrintJobs E X 1. // Prepare Geo Data W R E X 8. // Update Print Job Monitor X W 7. // Deliverable? GeoData 2. // Retrieve Address Data 3. // Get Address Data 4. // Compare with Geo Data W 6. // Geo Data Search Results 9. // Report Address Not Found 10. // Set Entry Status 5. // Add Geo Data 1. Does it operate on a unique and ordered set of data movements performing a set of FURs? 2. Is it triggered by an event? 3. Does the triggering event occur outside the boundary of the software? 4. Does the process execute all that is required to be done in response to the triggering event? Apply the 4 COSMIC Rules: Fulfills FUR? Triggered by event? Event outside boundary? complete? 14
Structural Testing with ISO/IEC 19761 PrintJobs E1. // Prepare Geo Data GeoData W2. // Retrieve Address Data R3. // Get Address Data E4. // Compare with Geo Data X6. // Geo Data Search Results 7. // Deliverable? W5. // Add Geo Data Test Story What if Address Found but GeoData not available? Supplier Comments Expected Result 1. Mailing becomes undeliverable 2. Observed Result es X8. // Update Print Job Monitor X9. // Report Address Not Found W10. // Set Entry Status Importance: Essential Problematic High Rating: OK P5 P4 P3 P2 P1 Tester: <Enter your name here> Date: <Enter last test date here> Analyze the Sequence Diagrams Visually identify Risks in critical areas Create test cases for identified risks At the Pin Wall together with the team and the sponsor 15
The Developers' Rights Manifesto We value Knowing Story Items more than Pointless Ceremonies We value Uncover Risks more than Team Agreement & Social Bias es 16
The Trade-Off in Planning Poker es Story Points Are a team ceremony Are not a measurement Help to reach team agreement Involve the sponsor However, sometime Story Points are misunderstood as a measurement Story Items Make Story Points obsolete Can be drawn from User Stories and Sequence Diagrams Yield o Size Measurement o Risk Identification o Story Items Incept informed team discussions Team agrees about Story Items Save time Are lean However, sequence diagramming for large projects requires a skills and a suitable tool 17
2 nd Contribution to es Sprint Backlog Result ID X 1 Six Steps to Completion User Story / Story Item Search Books by Title f 1.1 Enter Book Title He f 1.3 Present Book List He q 1.1 Include Subtitle Search He q 1.4 Pattern Matching Search He Resp. f 1.2 Read from Data Store She q 1.2 Increase Search Speed She q 1.3 Forgiving Grammar Check She 27% 62% 7% 0% 100% 0% 3% 20% 10% 30% 15% 20% 15% 10% Test Ready Draft Ready Review Done Finalised Approved Delivers Functionality = Completed; green = Work in Progress; yellow = Blocked; red X 1 = User Story f 1.1 f 1.3 q 1.1 q 1.4 = Story Items 18
Input Method for Project Tracking es 19
What is? es Avoid Waste! 20
Contribution to Prioritization & Validation Select Story Items & identify Stop Criteria = strong relationship; many contributions with strong weight = medium relationship, some contributions with medium weight = weak relationship, few contributions with light weight Response y 1 9 Planned Contributions 3 6 Planned / Expected Response es y 2 y 3 1 9 9 9 3 y 4 3 1 9 Expected Response T (x) Planned Response y Convergence Gap! 0.18 User Stories x 1 x 2 x 3 x 4 x 5 Solution Profile x found by weighting contributions 21
Expected Response for Function T Response Planned Contributions Planned Response y 1 y 2 es y 3 y 4 Planned Response y 22
Prioritization by Planned Function T Response Planned Contributions Planned Response y 1 y 2 es y 3 y 4 Planned Response y User Stories x 1 x 2 x 3 x 4 x 5 23
Validation for Planned Function T Response = strong relationship; many contributions with strong weight = medium relationship, some contributions with medium weight = weak relationship, few contributions with light weight Planned Contributions Planned / Expected Response y 1 y 2 9 9 3 9 6 es y 3 y 4 1 3 1 9 3 9 Planned Response y Expected Response T (x) Convergence Gap! 0.18 User Stories x 1 x 2 x 3 x 4 x 5 Solution Profile x found by weighting contributions 24
Identifying Story Items for Function T Response = strong relationship; many contributions with strong weight = medium relationship, some contributions with medium weight = weak relationship, few contributions with light weight Actual Story Items Planned / Achieved Response y 1 y 2 es y 3 y 4 = 1 Story Item Planned Response y Achieved Response T (x ) Convergence Gap! 0.09 User Stories x 1 x 2 x 3 x 4 x 5 Solution Profile x found by measuring Story Items 25
6 3 1 = Non-functional Story Item with strong impact on Business Driver = Non-functional Story Item with medium impact on Business Driver = Non-functional Story Item with weak impact on Business Driver = Functional Story Item with no impact on any particular Business Driver Buglione Trudel Matrix Business Drivers y 1 Story Items Planned / Achieved Response y 2 y 3 y 4 es User Story Priorities Functional Story Items User Stories x 1 x 2 x 3 x 4 x 5 Convergence Gap! 0.04 = 98% Confidence Interval Functional Size (ISO/IEC 19761) 23 CFP 26
6 3 1 = Non-functional Story Item with strong impact on Business Driver = Non-functional Story Item with medium impact on Business Driver = Non-functional Story Item with weak impact on Business Driver = Functional Story Item with no impact on any particular Business Driver Unfinished State Business Drivers y 1 Story Items Planned / Achieved Response y 2 y 3 y 4 es User Story Priorities 0.92 Convergence Gap! = 63% Functional Story Items User Stories x 1 x 2 x 3 x 4 x 5 Confidence Interval Functional Size (ISO/IEC 19761) 19/23 CFP 27
6 3 1 = Non-functional Story Item with strong impact on Business Driver = Non-functional Story Item with medium impact on Business Driver = Non-functional Story Item with weak impact on Business Driver = Functional Story Item with no impact on any particular Business Driver Premature Project Stop Business Drivers y 1 Story Items Planned / Achieved Response y 2 y 3 y 4 es User Story Priorities Functional Story Items User Stories 0.14 0.21 x 1 x 2 x 3 x 4 x 5 Convergence Gap! = 86% Confidence Interval Functional Size (ISO/IEC 19761) 22 CFP 28
6 3 1 = Non-functional Story Item with strong impact on Business Driver = Non-functional Story Item with medium impact on Business Driver = Non-functional Story Item with weak impact on Business Driver = Functional Story Item with no impact on any particular Business Driver Diligent Project Completion Business Drivers y 1 Story Items Planned / Achieved Response y 2 y 3 y 4 es Convergence Gap! User Story Priorities 0.04 Functional Story Items User Stories x 1 x 2 x 3 x 4 x 5 = 99% Confidence Interval Functional Size (ISO/IEC 19761) 23 CFP 29
Buglione Trudel Matrix Structure Diagrams Business Drivers y 1 Story Items Planned / Achieved Response y 2 y 3 y 4 es User Story Priorities Functional Story Items User Stories x 1 x 2 x 3 x 4 x 5 Functional Size (ISO/IEC 19761) 23 CFP 30
Tracked Quality Story Item Business Drivers y 1 Story Items Planned / Achieved Response y 2 y 3 y 4 es User Story Priorities Functional Story Items User Stories x 1 x 2 x 3 x 4 x 5 Functional Size (ISO/IEC 19761) 23 CFP 31
Tracked Functional Story Item Business Drivers y 1 Story Items Planned / Achieved Response y 2 y 3 y 4 es User Story Priorities Functional Story Items User Stories x 1 x 2 x 3 x 4 x 5 Functional Size (ISO/IEC 19761) 23 CFP 32
Buglione-Trudel Matrix Estimations Business Drivers y 1 Story Items Planned / Achieved Response y 2 y 3 y 4 es User Story Priorities Functional Story Items User Stories x 1 x 2 x 3 x 4 x 5 9 7 13 7 7 StI Functional Size (ISO/IEC 19761) 23 CFP 33
Sample Small Project Buglione-Trudel Matrix es Outlook 34
Dynamics of the Buglione-Trudel Matrix es Lower half is functionality Sponsor s responsibility Upper half is quality Developer s kingdom! All data is open Related to Developer s Work No PMI, no Key Performance Indicators! There are always two instances of the matrix The planned, final state with convergence gap closed The actual, unfinished state with convergence gap open Visualization Rendering tracking data from a database Can be implemented in a spreadsheet program Preferred input method: The Wall 35
Reporting Template es Functional Size: Planned: 145 CFP Completed: 98 CFP Changed: +16 CFP Total: 161 CFP User Stories: Completed: 12 In Work: 7 Scheduled: 11 Total: 30 Progress: Velocity CFP per Sprint: o Minimum 12 CFP/Sprint o Median 21 CFP/Sprint o Maximum 28 CFP/Sprint 3 Sprints remaining until: o July 22, 2011 (+ 30 days) Business Goals Achieved: Currently 64% o Actual Gap 0.91 o Due to technical constraints Estimate at Completion 98% o Target Gap 0.04 [Achieved = 100% 40*Convergence Gap] 36
es = +Measurements+Convergence Gap Use Sequence Diagramming Uncover the Story Items needed to implement an User Story Agree on how it is done Stop-the-Line if Business Goals get missed when goals are reached Involve the team Acquiring knowledge not ceremonies 37
Questions? es 38
Backup es 39
Planned Functional Story Item Story Item for User Story x 1 f 1,1 : Enter Book Title Functional Size: 1 0 x refactored Test is Draft is Review Ready Ready Done Finalized Appro- Delivers ved Funct. Description Business Impact: es Create input form for entering Book Title Author Publisher ISDN Media type and start search using search book API of library service Functional Story Item Related to some data movement, or To some persistent data store As an Entry, exit, Read, or Write 40
Planned Quality Story Item Story Item for User Story x 1 q 1,2 : Increase Search Speed Description Functional Business Size: 0 Impact: y 1,6; y 4,3 0 x refactored Test is Draft is Review Ready Ready Done Finalized Appro- Delivers ved Funct. Find a method to increase search speed, e.g. Indexing Frequent search hash table Others es Quality Story Item ( Non-Functional ) Related to some desired quality o depends on identified Business Drivers With high, medium, or low impact (6 3 1) o on one or more Business Drivers Has different levels of impact on specific Business Drivers o e.g., Impact = y 1,6; y 4,3 41
Tracked Functional Story Item es Refactoring Count: Can be increased only when all stages are marked green Whenever a defect is encountered while the Story Item already delivers functionality the Six Steps to Completion count is reset to all yellow! Or to red, if the issue is a blocker. Refactoring counts code improvements f Not failures! 1,1 : Enter Book Title Description Functional Size: 2 Business Impact: Prompt with input form for entering Book Title Author Publisher Media type Upon confirm by user, trigger search using the book API of library service 1 x refactored Test is Draft is Review Final- Appro- Delivers Story Ready Item Ready for Done User ized Story ved Funct. x 1 42
The Software Development Blueprint Complaint s & Wishes (CW) #Help Desk Topics BD CW Net Promoter Score (NPS) #Opinion Poll BD NPS Realization Decision Business Drivers (BD) UC BD MT BD es Enablers Market Test (MT) #Weaknesses CtQ BD User Stories (US) AT US Critical to Quality (CtQ) Application Test (AT) #BPE Score #Defects 43
The Convergence Gap y' m y j1.. m j m j 2!!! es = Minimum! Goals (WHAT) Influence Factors (HOW) Goal vs. Effect Profile 9 9 3 9 9 9 3 1 1 3 44
The Convergence Gap If y = T (T T (y)) then y y is the Convergence Gap es The Convergence Gap describes how much the achieved response from a Function T differs from the planned response 45
What do we need? They must transfer control information into response Response y is usually well known and measurable Controls x are less well known and less measurable The Function itself must be measured: es y = T (x) If both Response and Controls are measurable and known, the Function can be validated from these measurements 46
What can be measured es The Response is known By measurement customer preferences By business strategy decisions The Function is customizable Relationship corresponds to work effort o Up to constraints Is selectable for services o such as work instructions for software development Physical constraints play no big role for agile SW development Security constraints impact relationship x i y j The Controls are measurable Functional Size Total Effort Total Cost T (x) = y 47
Adjust Function User Stories Deployment Combinator Response Profile Training User Stories IT Infrastructure Salary Work Place Effective Profile User Stories Deployment Combinator Response Profile Training User Stories IT Infrastructure Salary Work Place Effective Profile es Business Drivers x-1 x-2 x-3 x-4 0.47 y-1 Friendliness 3.5 9 3 3.0 y-2 Responsiveness 2.9 9 7 3.5 y-3 Correctness 2.1 1 5 3 1.8 Control Profile for User Stories 3.1 2.4 1.9 2.5 Convergence Gap 0.47 0.2 Convergence Range 0.5 Convergence Limit Business Drivers x-1 x-2 x-3 x-4 0.09 y-1 Friendliness 3.5 9 3 3.6 y-2 Responsiveness 2.9 7 6 2.8 y-3 Correctness 2.1 1 5 3 2.1 Control Profile for User Stories 3.3 2.0 2.1 2.4 Convergence Gap 0.09 0.2 Convergence Range 0.5 Convergence Limit 48
Eigenvector of a Function T Math! es The goal profile y = <y 1, y 2, y m > describes business goals Solution with profile x = <x 1, x 2, x n > such that T (x) = y is requested Quality is linear: Thus T can be written as an n x m matrix The transpose T T is an m x n matrix Note T T T is a square matrix (m x m); [T T T ](y) = T (T T ((y)), y Note that T T T is not the Identity function! Since cause/effect cannot be reversed! An Eigenvector y fulfills the equation [T T T ](y) = l y l is a scalar number; we can set it to l = 1 by normalization If y is an Eigenvector then x = T T (y) is the solution! We need to know how good the solution x is for the goal y The vector distance T (x) l y is called the Convergence Gap A small Convergence Gap means a good prediction, because It can be repeated! [T T T ](y) = [T T T ]([T T T ](y ) ) is decision metrics! 49
Eigenvector of a Function T Easy! es The customer knows what he wants: y The goal profile Developers know their business domain They know how T works on solution x! They know how x transforms into business benefits T (x) Does T (x) meet customer s business goals y? Look at the difference between y and T (x)! This is the Convergence Gap y T (x) This is a measurement for meeting requirements! This measurement validates the process We can predict whether we will meet customer s business goal! 50