how fpa made me a better ba
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
Robert T. Merrill, Principal
uFunctional LLC
How Function Point Analysis Made Me a Better BA
WI BADD® 2012
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
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
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
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.
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
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”
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
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
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
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
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
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
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
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
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?
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
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
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?
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
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
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
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!
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!
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
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)
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!
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.)
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?
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