YOUR COMPANY IS A SOFTWARECOMPANYIGNORANCESTOP FEIGNING !Is a website software?Is an iPhone or iPad app software?Is Rich Media software?YES! Absolutely! No doubt about it!Your company definitely IS a software companyIs your company a world-class, best-in-class Software Company?Do you know how much software you produce?Per year? Per Month? Per Day?How much software - exactly, specifically?How productive are you - exactly?
BEST IN CLASS SOFTWARE COMPANIESBest in Class Software Companies Have: ● higher productivity ● higher quality Best in Class ● small project growth rates ● 28% Requirements ● 36% Design ● less overtime ● 20% Coding ● 16% Testing ● less redundancy ● more specialization Worst In Class ● 11% Requirements ● software ● 16% Design measurement programs! ● 37% Coding ● 37% Testing
PRODUCTIVITY“Goods or services per unit of labor or expenses”Productivity = outputs/inputsSoftware Productivity = functionality/hours● Unit cost of software goes up with size● Marginal costs for software increase with size● There are different costs for each component
MEASUREMENT● Standard units● Houses can be measured in square feet● Software can be measured too● Measuring things is repeatable ○ an inch today is an inch tomorrow● Measuring eliminates wasteful guessing and introduces accurate and justifiable
LINES OF CODE● Language dependent● Skill dependent● Unknown until written● No Standards● Function Points are better
FUNCTION POINTS ARE STANDARDIZEDLarge user groupIFPUG - http://ifpug.org1,200 members in 30 countries around the worldISO StandardIFPUG v4.3 is an ISO standardDe-facto standardestimating packages: Cocomo II, Construx Estimate, etc.Certified Function Point Specialistofficial IFPUG certification testCounting Practices Manualofficial manual by IFPUGFP data repositorieslarge repositories of data
HISTORY● 1979 FPs introduced by Alan Albrecht● 1984 First FP guidelines● 1986 First IFPUG Board of Directors● 1994 CPM Release 4.02003ISO standard● 2003 ISO standard● Adoption rate is increasing
OVERVIEW● Measured from the users perspective● Technology-independent● Low cost (once the system is in place)● Repeatable● Works well with use cases● Answers lots of questions● Can be automated
TYPES OF COUNTS1. Development ○ all phases through deployment ○ forms a baseline2. Enhancement ○ in production, has a baseline ○ count the size of successive enhancements3. Application ○ in production, no baseline ○ forms a baseline
BENEFITS AND USES● Accurate and justifiable estimations of ○ Cost ○ Duration ○ Staffing● Actionable productivity metrics, including ○ Defect rate ○ Cost per function point ○ Velocity (fp/hr)● Competitive advantages ○ Fixed prices ○ Real data and facts to drive decisions
BENEFITS AND USES● software sizing ● when and what to re-engineer● communication ● test case estimation● over-time reduction ● productivity● project inventory ● scope creep● estimates ● true cost● repeatability ● contracts● organization portfolio
APPLY THE DATAGiven: ● a team of developers that average 18 FP/month (velocity) ● at an average cost of $5200/month per developer ● with requirements doc that contains 197 FPDerive: ● months of effort ○ 197 / 18 = 11 man-months ● cost ○ 11 x 5200 = 57,200 dollars ● duration ○ 2.5 x 2.2 = 5.5 months ● minimum duration ○ .75 x 2.2 = 1.65 months ● staff ○ square root of 11 = 3.3 developers ● and many, many more magical formulas!
WHEN NOT TO USE● when sizing maintenance efforts ○ detective work ○ maintenance productivity can vary● when analyzing performance issues ○ may not be related to functionality ○ more likely about throughput & processing
CHALLENGESMust be an ongoing corporate software metrics program initiative, not anafterthought or on-the-side pet projectMust be systematized and well-managed in order to be accurateCounting requires special training and/or special softwareUsage of count data will challenge andtransform existing management practices