how fpa made me a better ba

30
Robert T. Merrill, Principal uFunctional LLC How Function Point Analysis Made Me a Better BA WI BADD ® 2012

Upload: ufunctional

Post on 29-Nov-2014

598 views

Category:

Technology


0 download

DESCRIPTION

Function Point Analysis is an ISO standard measure of the amount of functionality provided by software.Because of the apparent complexity of the technique, it's not as widely used as it should be. In addition to producing valuable quantitative information for estimation and process improvement benchmarking, the process of FPA is also a powerful requirements analysis tool. It drives the analyst to concentrate on the users' view of the system. It keeps the analyst constantly aware of the system boundary. And it ties data and functions together, explicitly, and detects many implied requirements that might otherwise go missed until later in the project.

TRANSCRIPT

Page 1: How FPA  made me a better BA

Robert T. Merrill, Principal

uFunctional LLC

How Function Point Analysis Made Me a Better BA

WI BADD® 2012

Page 2: How FPA  made me a better BA

2w w w . u f u n c t i o n a l . c o m

Objectives

1. Reinforce User View focus for Stakeholder Requirements

2. Use Application Boundary to clarify scope

3. Leverage File Type Referenced for Requirements Analysis

Make an informed recommendation about using Function Point Analysis in your firm

05/01/2012 ©Robert T. Merrill

Page 3: How FPA  made me a better BA

3w w w . u f u n c t i o n a l . c o m

What is Function Point Analysis?“Function Point Analysis is a standard method for measuring software development from the user’s point of view.” –CPM 4.2, p2-2

Late 70’s Allan Albrecht (IBM)1984 First publication1986 IFPUG founded2003 CPM 4.2 adopted as ISO Standard

05/01/2012 ©Robert T. Merrill

Page 4: How FPA  made me a better BA

w w w . u f u n c t i o n a l . c o m

Agile “Story Points?”

405/01/2012 ©Robert T. Merrill

Function PointsAbsolute

User view only

Correlated w/effort

Compare projects

Beginning & end

Selection & set-up

Story PointsRelative

Implementation view too

Estimates of effort

Within a project

In progress

Project Management

Page 5: How FPA  made me a better BA

w w w . u f u n c t i o n a l . c o m

Example Requirements

505/01/2012 ©Robert T. Merrill

“Chirper” Requirements

1. I can create a Chirper profile including a username and password, log in, and log out

2. I can search Chirper for Chirps containing a keyword and/or Chirper name, anonymously

3. As a logged-in Chirper, I can send a Chirp (up to 140 characters)

4. As a logged-in Chirper, I see my recent Chirps and Chirps of people I’m following

5. As a logged-in Chirper, I can follow and un-follow other Chirpers

6. As a ChirpMeister, I can delete objectionable Chirps

7. As a ChirpMeister, I can disable the accounts of evil Chirpers.

Page 6: How FPA  made me a better BA

w w w . u f u n c t i o n a l . c o m

Example—Logical Data Model

605/01/2012 ©Robert T. Merrill

Chirper• Username• Password• Name &

photo• Login state• Disabled?

Chirp• Chirped by• Text string with

$keywords• Time chirped

Followed Chirpers

ChirpMeister• Credential

Page 7: How FPA  made me a better BA

w w w . u f u n c t i o n a l . c o m

Example—Data Elements

705/01/2012 ©Robert T. Merrill

• ILF—maintained• EIF—referenced only• RET—Record Element Type (“not quite an

ILF”)• DET—Data Element Type, a.k.a “Field”

Page 8: How FPA  made me a better BA

w w w . u f u n c t i o n a l . c o m

Example—Xactional Functions

805/01/2012 ©Robert T. Merrill

• Input EI, Query EQ, “Output” EO (side effects)

• FTR=File Types Referenced

Page 9: How FPA  made me a better BA

w w w . u f u n c t i o n a l . c o m

Determine Complexity

905/01/2012 ©Robert T. Merrill

#RET, #DET, #FTR => Low, Average, or High

Data Elements

Transactional Functions

Page 10: How FPA  made me a better BA

w w w . u f u n c t i o n a l . c o m

Determine Points

1005/01/2012 ©Robert T. Merrill

Data 5-15 pointsTransaction 3-7 points

Page 11: How FPA  made me a better BA

w w w . u f u n c t i o n a l . c o m

Add them up

1105/01/2012 ©Robert T. Merrill

ILFs, 21 (3 at 7)EIs, 21 (7 at 3)EOs, 9 (1 at 4, 1 at 5)EQs, 3 (1 at 3)

54 Function Points

Page 12: How FPA  made me a better BA

w w w . u f u n c t i o n a l . c o m

What’s FPA good for?

• The Great Normalizer: $$/FP, defect/FP, etc.

• Estimation, especially early

• Process improvement

1205/01/2012 ©Robert T. Merrill

Page 13: How FPA  made me a better BA

w w w . u f u n c t i o n a l . c o m

What’s FPA good for?

1305/01/2012 ©Robert T. Merrill

Jul-98 Dec-99 Apr-01 Sep-02 Jan-04 May-05 Oct-06 Feb-08 Jul-090.1

1.0

10.0

100.0

App Dev Projects -- Efficiency over time

Hours/Delivered FP

Ship Date

Ho

urs

/Del

iver

ed F

un

ctio

n P

oin

t

(Robert’s MS Ac-

cess projects)2000 2005

10

1

0.1

100Productivity Gains

Hoursper FP

Page 14: How FPA  made me a better BA

w w w . u f u n c t i o n a l . c o m

Why I learned FPA

1405/01/2012 ©Robert T. Merrill

And it made me a better Business Analyst!

Project Estimates for Proposals

• Independent of other estimates

• More convincing

• Minimal added effort

Page 15: How FPA  made me a better BA

w w w . u f u n c t i o n a l . c o m

Concept #1: User View

“A user view represents a formal description of the user’s business needs in the user’s language…A function point count is accomplished using the information in a language that is common to both user(s) and developers.” –CPM 4.2, p3-2.

1505/01/2012 ©Robert T. Merrill

“But how would a user talk about it?”—exasperated Function Point trainer

Page 16: How FPA  made me a better BA

w w w . u f u n c t i o n a l . c o m

User View—Practice

1605/01/2012 ©Robert T. Merrill

“An ILF is a user-identifiable group of logically related data or control information maintained within the boundary of the application. The primary intent of an ILF is to hold data maintained through one or more elementary processes…” CPM 4.2, p6-3.

Chirper• Username• Password• Name &

photo• Login state• Disabled?

ChirpMeister• Credential

• One ILF, or two?• Why?

Page 17: How FPA  made me a better BA

w w w . u f u n c t i o n a l . c o m

Concept #2: App Boundary

“The application boundary:• Is dependent on the user’s external business

view of the application. It is independent of technical and/or implementation considerations

• Acts as a “membrane” through which data processed by transactions (EIs, EOs, and EQs) pass into and out from the application

• Encloses the logical data maintained by the application (ILFs)”

—From CPM 4.2, p5-41705/01/2012 ©Robert T. Merrill

Page 18: How FPA  made me a better BA

w w w . u f u n c t i o n a l . c o m

Visualizing Scope

1805/01/2012 ©Robert T. Merrill

Before FPA After FPA

In ScopeLorem ipsumDolor sit amedConsectetur adipiscing Elit phasellus fringilla

Out of ScopeFaucibus libero Quisque sed dapibus

Page 19: How FPA  made me a better BA

w w w . u f u n c t i o n a l . c o m

App Boundary—Practice

1905/01/2012 ©Robert T. Merrill

“Chirper” Enhancements

1. ChirpMeisters log in through a separate screen and authenticate against our enterprise directory.

2. I can log into Chirper using my Friendface username and password, and Chirper will populate my profile if I allow it in Friendface.

Chirper

ChirpMeister

Chirp (text)

Friendface Profile

Directory Profile

• Where’s the app boundary?

• What (if anything) goes away?

• Which are ILFs and EIFs?

Page 20: How FPA  made me a better BA

w w w . u f u n c t i o n a l . c o m

Concept #3: FTR

A file type referenced is• An internal logical file read or maintained by a

transactional function or• An external interface file read by a

transactional function—CPM 4.2, p7-13

05/01/2012 2005/01/2012 ©Robert T. Merrill

Page 21: How FPA  made me a better BA

w w w . u f u n c t i o n a l . c o m

FTR Example

05/01/2012 2105/01/2012 ©Robert T. Merrill

I can log into Chirper using my Friendface username and password, and Chirper will populate my profile if I allow it in Friendface.

Chirper

Chirp (text)

Friendface Profile

Directory Profile

• What are the FTRs?FTR

FTR

Page 22: How FPA  made me a better BA

w w w . u f u n c t i o n a l . c o m

FTR Practice

05/01/2012 2205/01/2012 ©Robert T. Merrill

Chirper Enhancement

As a Chirper writes a Chirp, the system auto-completes keywords as they match a list of sponsored keywords or keywords the Chirper has used before.

Chirper

Chirp (text)

• What data functions (logical files) need to be added?

• Are they external (EIF) or internal (ILF)?

• What transactional functions might we need to add?Sponsored

Keywords

Keywords

Add/Edit Sponsored Keyword

Report Sponsored

Keyword Use

Page 23: How FPA  made me a better BA

w w w . u f u n c t i o n a l . c o m

The biggest BA mistake…

05/01/2012 2305/01/2012 ©Robert T. Merrill

Missed implied requirements!

Page 24: How FPA  made me a better BA

w w w . u f u n c t i o n a l . c o m

Implied Requirements

05/01/2012 2405/01/2012 ©Robert T. Merrill

1. Functional requirements expose implied data

2. Implied data must come from somewhere

3. Implied maintained data (ILFs) expose implied functional requirements

4. Implied application interfaces (EIFs) expose implied integration points

5. Exposed functional requirements and integration points may expose additional stakeholders!

Page 25: How FPA  made me a better BA

w w w . u f u n c t i o n a l . c o m

Implied Requirements

05/01/2012 2505/01/2012 ©Robert T. Merrill

Logical File

Stated “I can <<verb>> with <<noun>>.”

What are my FTRs?

ImpliedILF

Where’s the app boundary? Where am I maintained?

Implied

Implied EIF

Page 26: How FPA  made me a better BA

w w w . u f u n c t i o n a l . c o m

The power of FTR and ILF

05/01/2012 2605/01/2012 ©Robert T. Merrill

FPA makes you check every:

• Functional requirement against your data model to determine the FTRs

• Logical file for Inputs and Outputs (queries with side-effects) to determine where it’s maintained (ILF or EIF)

Page 27: How FPA  made me a better BA

w w w . u f u n c t i o n a l . c o m

Implied requirements exposed

2705/01/2012 ©Robert T. Merrill

SAVED!

Page 28: How FPA  made me a better BA

w w w . u f u n c t i o n a l . c o m

Implied requirements practice

2805/01/2012 ©Robert T. Merrill

(Distribute handout if we have time.We probably won’t.)

Page 29: How FPA  made me a better BA

29w w w . u f u n c t i o n a l . c o m

Objectives—Review

1. User View

2. Application Boundary

3. File Types Referenced

05/01/2012 ©Robert T. Merrill

“But how would a user talk about it?”

“Walk around the app!”

“What data does this function touch?”“Where are these data maintained?

Page 30: How FPA  made me a better BA

30w w w . u f u n c t i o n a l . c o m

Thank You!

Robert T. [email protected]@rtmerrill

05/01/2012 ©Robert T. Merrill