19
www.eng.it IFPUG Agile Interest Group (IG) Webinar - May 17 2012 Luigi Buglione Buglione, Ph.D. Process Improvement & Measurement Specialist Industry Business Unit Engineering.IT Improving estimates by a 4- pieces puzzle Agile-4-FSM

Agile-4-FSM - Improving estimates by a 4-pieces puzzle

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Agile-4-FSM - Improving estimates by a 4-pieces puzzle

www.eng.it

IFPUG Agile Interest Group (IG) Webinar - May 17 2012

Luigi BuglioneBuglione, Ph.D.Process Improvement & Measurement Specialist

Industry Business UnitEngineering.IT

Improving estimates by a 4-pieces puzzle

Agile-4-FSM

Page 2: Agile-4-FSM - Improving estimates by a 4-pieces puzzle

www.eng.it

Engineering At a glance

ERP ECMIT Security

Plant ManagementSystem

Broadband & MediaManaged Operations

System Int. & System Int. & ConsultancyConsultancy

OutsourcingOutsourcing

SoftwareSoftware

7070

1010

2020

8080

2020

5454

2727

1919

8080

1010

1010

FinanceFinance IndustryIndustry TELCOTELCO UtilitiesUtilities

%%

%%

%%

ResearchResearch and and DevelopmentDevelopment

3535

1919

4646

PA & HCPA & HC

_ The first Italian ICT player

_ more than 730 M/€ revenues_ 1000 clients_ 6,300 IT specialists

www.eng.it

Page 3: Agile-4-FSM - Improving estimates by a 4-pieces puzzle

3 IFPUG Agile IG – May 17, 2012 – © 2012 L.Buglione

Goals of the presentation

G1. Introduce the ‘Agile-4-FSM’ puzzle G2. Analyze each piece of the puzzle G3. Propose possible solutions for improving estimates

Agile-4-FSM

Page 4: Agile-4-FSM - Improving estimates by a 4-pieces puzzle

4 IFPUG Agile IG – May 17, 2012 – © 2012 L.Buglione

Introduction Some initial questions...

Why does it seem so difficult to apply FSM methods to Agile projects?

What about NFRs? Do they need to be sized and managed? Eventually, how?

Which kind of changes do I need to introduce in my Estimation process for achieving better estimates?

What about the maturity of my organization in the ‘sizing & estimation’ process?

Page 5: Agile-4-FSM - Improving estimates by a 4-pieces puzzle

5 IFPUG Agile IG – May 17, 2012 – © 2012 L.Buglione

Some pieces of the puzzle...

1. Requirements 1. Requirements

2. NFRs 2. NFRs

3. Size Measures3. Size Measures 4. Estimating & 4. Estimating & PlanningPlanning

Agile-4-FSM

Page 6: Agile-4-FSM - Improving estimates by a 4-pieces puzzle

6 IFPUG Agile IG – May 17, 2012 – © 2012 L.Buglione

Piece #1#1 – Requirements (US – User Stories)Agile-4-FSM

US Title

Relative Productivity /Estimation

High Level FUR

Implementation Priority

Functional Test

Functional Req (FUR)

Non-functional Reqs (NFR)

Org/Project related Reqs

Page 7: Agile-4-FSM - Improving estimates by a 4-pieces puzzle

7 IFPUG Agile IG – May 17, 2012 – © 2012 L.Buglione

Piece #1#1 – Requirements (US2)Agile-4-FSM

Type 1 (F/Q/T)

Type 2 (Q/T)

Functionality + Q/T

complementary issues

Architectural/Project-

related issues, not

strictly linked to a functionalit

y

• US2 – 2°-generation User Stories A US writes and ‘sizes’ expressly only FUR, NFRs are implicit, not easily manageable At least, two types of US2 can be manage

Reference: Buglione L., Meglio Agili o Veloci? Alcune riflessioni sulle stime nei progetti XP, XPM.it, February 2007, URL: www.xpm.it (in Italian)

Page 8: Agile-4-FSM - Improving estimates by a 4-pieces puzzle

8 IFPUG Agile IG – May 17, 2012 – © 2012 L.Buglione

Piece #1#1 – Requirements (US2) – Type1/2Type1/2Agile-4-FSM

• US2 – Type 1Type 1 This is a typical, complete US It includes the FUR-part (F) as well, after

the interplaying between Customer and Provider, the related Q/T parts

Its value besides in making visible those NFR parts requiring effort, that otherwise risk to be underestimated, even if taken into account by experience

The more you make explicit, the less the probability for a higher estimation error

Example: as in the left-side figure• US2 – Type 2Type 2

Looking at the typical activities to be run in Software Life Cycle, also in iterative SLCs as in Agile methods, some non-functional/organizational activities that need to be run, sizing zero (0) FPs but can be generically classified as Q/T (non-functional)

Since of course they need effort and must be estimated and planned, a different way is needed for being expressed

They can be simply estimated in m/d or – for the product NFR-requirements – using e.g. The IFPUG SNAP method or an elaboration of ISO/IEC 25010:2011 standard

Example: as in the right-side figure

Page 9: Agile-4-FSM - Improving estimates by a 4-pieces puzzle

9 IFPUG Agile IG – May 17, 2012 – © 2012 L.Buglione

Piece #1#1 – Requirements (INVEST)Agile-4-FSM

• Evaluate Requirements – The INVEST GridINVEST Grid “INVEST” are six criteria from Mike Cohn for evaluating each US/US2

The INVEST Grid (Buglione, 2007) Create your own definitions over an ordinal scale (e.g. 0-3 as in ISO/IEC 14598-x std)

Fill cells as in a maturity model for each criterion Customer and Provider have to jointly evaluate the achieved level US/US2 will pass in production and be assigned to an iteration/Sprint only when the agreed

thresholds for the six criteria will be achieved

INVEST Description0 1 2 3

Poor /Absent Fair Good Excellent

I -Independent User Stories should be as independent as possible between them

The start of construction of the US is tied to the completion of at least another US

The completion of such US represents a constraint for starting the construction of at least another US

US can be produced with any constraint, but its release can be constrained to the completion of at least another US

US is fully independent, and it can be realized and released with any constraint

N – Negotiable User Stories should be "open"  as much as possible reportingany relevant details

US is written with so much details to be a technical specification (Design phase), not allowing to negotiate any element

US is written with so much details to be a functional specification (Analysis phase), not allowing a sufficient negotiation

US is written with an informative content defining a User Requirement in a consolidated manner, yet shared between Customer and Provider

US is written with an informative content typical of a high-level need, allowing a series of feedbacks between Customer and Provider

V - Valuable User Stories should give a value for end users of the solution

US functional (F) side does not contain functionalities requested from the Customer

US functional (F) side expresses mostly qualitative (Q) and technical (T) requirements about the system, needs to be more developed on the ‘F’ side

US functional (F) side expresses mostly functional requirements as requested by the Customer, but includes also qualitative (Q) and technical (T) requirements

US functional (F) side correctly expresses only functional requirements as requested by the Customer

E – Estimable Each User Story must be able to be estimated in terms of relative size and effort

US shows only its Functional (F) side filled by the Customer, but without sufficient detailed level for allowing the Provider filling the Q/T parts

US shows only its Functional (F) side filled by the Customer, but validated with the Provider

US is complete for Q/T issues by the Provider, but needs to be validated jointly with the Customer

US shows all useful parts (F/Q/T) allowing to size and estimate needed effort, validated by both parts

S – Small Each User Story should be sufficiently granular, not too high-level defined

US has a very large size, and it can not be completed within a Sprint

US has a very large size, and it can be completed within a Sprint, but it cannot allow to create/deliver other US

US has a size allowing to be completed within a Sprint, jointly with other US, but it’s so small to create an overhead about the Testing phase

US has a size allowing to be completed within a Sprint, jointly with other US, assuring a proper balancing between development and testing activities

T – Testable Each User Story must be formulated trying to stress useful details  for creating tests

US does not include tips about Acceptance Tests

US includes formal indication on Acceptance Tests, still to be completed

US includes indication of Acceptance Tests, complete, yet to be validated

US includes indication of Acceptance Tests, complete and already validated

Page 10: Agile-4-FSM - Improving estimates by a 4-pieces puzzle

10 IFPUG Agile IG – May 17, 2012 – © 2012 L.Buglione

Piece #2#2 – NFRsAgile-4-FSM

URL: http://goo.gl/MIJZU

• NFRs – Non Functional Requirements NFR (IFPUG CPM v4.3.1) = Quality reqs + Technical Reqs (IFPUG CPM v4.2.1)

Quality Reqs = “any requirements relating to software quality as defined in ISO 9126:1991” Tech Reqs = “requirements relating to the technology and environment, for the development,

maintenance, support and execution of the software” Non-Functional Reqs = “a software requirement that describes not what the software will

do but how the software will do it’ ...SNAP (IFPUG Software Non-functional Assessment Process)

Page 11: Agile-4-FSM - Improving estimates by a 4-pieces puzzle

11 IFPUG Agile IG – May 17, 2012 – © 2012 L.Buglione

Piece #2#2 – NFRsAgile-4-FSM

Source:: ITPC, Software Non-functional Assessment Process (SNAP) – Assessment Practice Manual (APM), v1.0, September 2011ITPC webpage: http://ifpug.org/about/ITperformance.htm

IFPUG CPM v4.3.1 (excerpts) page 1-2: IFPUG Strategic Decision: "IFPUG’s method for function point

analysis is an ISO standard and must be conformant to ISO/IEC 14143-1:2007. The method can measure “functional size” only and not “non-functional size”. This does not mean that the nonfunctional size cannot, or should not, be measured, only that it must be clearly stated as a separate measure (“A Framework for Functional Sizing” [IFPUG, 2003]).”

page 4-20: "This maintenance includes a wide range of activities that are performed during this phase of the application life cycle, some of which involve functional changes that are applicable to FPA” (thus, not all types of mainteinance)

page 4-21: Mainteinance requests: "Regardless of duration or level of work effort required, it is the type of activity that determines how the work is classified. Function Point Analysis should not be used to size perfective or corrective maintenance work”

Page 12: Agile-4-FSM - Improving estimates by a 4-pieces puzzle

12 IFPUG Agile IG – May 17, 2012 – © 2012 L.Buglione

Piece #2#2 – NFRs (SNAP)Agile-4-FSM

Source:: ITPC, Software Non-functional Assessment Process (SNAP) – Assessment Practice Manual (APM), v1.0, September 2011ITPC webpage: http://ifpug.org/about/ITperformance.htm

NFR unit of measure: SNAP Points (SP) Counting base: SCU (SNAP Counting Unit) 4 categories and 17 sub-categories

o C1 – Data Operations (5 sc)

o C2 – Interface Design (4 sc)

o C3 – Technical Environment (4 sc)

o C4 – Architecture (3 sc)

3 parts in the APMo 1 – The method

o 2 – Examples

o 3 - Annexes

Update: H1/2012

Page 13: Agile-4-FSM - Improving estimates by a 4-pieces puzzle

13 IFPUG Agile IG – May 17, 2012 – © 2012 L.Buglione

Piece #3#3 – Size Measures

• Size Measures Agile methods (ASD, APM) typically use time-based measures for estimating (Story

Points, Velocity, ...) and have not a standard definition for being consistently applied No/Few historical data also for using analogy estimates But the estimation logical chain is... Q (quantity) T (Time: Effort Duration) C (Costs) FUR can be sized with a FSM method, but facing the requirement granularity issue FUR is only one side of the ‘story’ ‘Functionalize’ NFRs e.g. http://goo.gl/AWZjU Again, not all iterations/Sprints are the same, they plan and release differently

Agile-4-FSM

URL: http://goo.gl/Qls7B

URL: http://goo.gl/4UCht

Page 14: Agile-4-FSM - Improving estimates by a 4-pieces puzzle

14 IFPUG Agile IG – May 17, 2012 – © 2012 L.Buglione

Piece #4#4 – Estimating & PlanningAgile-4-FSM

Sprint #1 Sprint #2 Sprint #3 Sprint #4

• Estimating & Planning Each iteration/Sprint can be managed as a ‘project’ (or a ‘sub-project’) because it has

different characteristics Not all iterations/Sprints are the same, they need to be planned differently Type-1 and Type-2 US2 are placed differently within iterations use different

productivity levels according to the different balancing of FUR vs NFR related effort Nominal productivity’ (FP/Effort) www.semq.eu/pdf/fsm-prod.pdf

Page 15: Agile-4-FSM - Improving estimates by a 4-pieces puzzle

15 IFPUG Agile IG – May 17, 2012 – © 2012 L.Buglione

Agile-4-FSM

• Splitting effort... Separate approx FUR vs

NFR-related efforts Increased R2 values Refine your own effort

data gathering introducing some more filters (e.g. # of layers and/or peer components measured)

Start using SNAP and/or other NFR-related approaches!

Piece #4#4 – Estimating & Planning

Page 16: Agile-4-FSM - Improving estimates by a 4-pieces puzzle

16 IFPUG Agile IG – May 17, 2012 – © 2012 L.Buglione

Conclusions && Perspectives

• Agile & Requirements FURs represent a large part of User Stories, but not the whole NFRs need to be properly represented also in Agile environments, because the effort they take US2 is a simple way to start writing them and the INVEST grid could be a way to improve agile

planning, matching common-sense and a more quantitative view

• Agile & Sizing measures “Q T C” is the common-sense, logical chain to be followed and ‘Quantity’ cannot be

skipped FSM methods can be easily applied to agile projects, many experiences yet ready and applicable ‘One size DOESN’T fits all’...Only FURs are not sufficient for representing the real PROJECT

effort Sizing NFRs is the next challenge IFPUG SNAP is one possible way to start doing it!

Agile & Estimating+Planning Classifying US2 in Type-1 and Type-2 can help in better allocating resources and schedule

iterations according to the distribution of FUR vs NFR-related effort Some lessons learned

Agile is based on Experience Experience means Data Gather Data and share among the organization

Skill people on better eliciting requirements (e.g. CMMI-DEV RD process, ML3), separating FURs and NFRs

Share experiences and apply common definitions and levels of granularity across the several agile project teams, overcoming the ‘Story Point’-syndrome...it’s about Simplicity!Simplicity is prerequisite for reliability

(Edsger Dijkstra, Mathematician)

Agile-4-FSM

Page 17: Agile-4-FSM - Improving estimates by a 4-pieces puzzle

17 IFPUG Agile IG – May 17, 2012 – © 2012 L.Buglione

What is (should be) Agile?Agile-4-FSM

Page 18: Agile-4-FSM - Improving estimates by a 4-pieces puzzle

18 IFPUG Agile IG – May 17, 2012 – © 2012 L.Buglione

Q && A

Grazie mille per l’attenzioneGrazie mille per l’attenzione!!Thanks for your attentionThanks for your attention!!

Agile-4-FSM

Page 19: Agile-4-FSM - Improving estimates by a 4-pieces puzzle

19 IFPUG Agile IG – May 17, 2012 – © 2012 L.Buglione

We care of your problems and we have in mind a solution

Luigi Buglione

Industry & Service Dept

Tel. +39 - 06.8307.4472Fax +39 - 06.8307.4200Cell. +39 - 335.1214813

Via R. Morandi 3200148 Roma

www.eng.it [email protected]

Process Improvement & Measurement Specialist

ContactsAgile-4-FSM