Software Sizing - an Introduction
Software Size measures the functional requirements of a software application. It is used for comparing software applications and also for estimating the effort and subsequently the cost of developing a software application. Explaining Software Size as an analogy: We use Square Meter or Square Feet as a measure for knowing the carpet area required for a room, in software engineering, we use software size to measure the 'functional user requirements' of the features built or to be built in a software application.
The process of determining Software Size focus on the user's functional requirements that are imbibed in the application product, and is independent of the 'technology' used in application development.
Functional Size is measured in terms of Function Points (FP). Organizations like IFPUG, NESMA, COSMIC, FISMA have standardized the size measurement techniques and provided counting practice manuals and guides for the software developer community. Methods provided by these organizations are ISO standards, and are elaborate. The respective organizations strive for providing the guidelines, improve and upgrade the sizing procedure from time to time to cope up with the changing environment. Many blogs explains the different procedure of Function Point (FP) Analysis, if necessary, I will explain the methodologies in subsequent blogs. However, the scope of this blog is to explain the basic level meaning of Functional Sizing.
The main objective of measuring the functional size is to estimate the human resource effort/ cost of developing a software application, so the next question is how to arrive at the resource cost from the size estimate? As a first step to achieve this, we need to know the productivity of developing the requirements in the chosen language. Productivity rate in different languages are available in industry publications or research websites. However, it would be good to use the internally developed productivity numbers based on the past performance figures in the organization.
The following example will elaborate the procedure of arriving at the effort estimate from Size (FP) :
Let us assume that the size arrive is 160 FP and the productivity is (say .NET environment) is 8 hours per FP, then the estimated effort of the software application development is 160 / 8 = 20 hours.
If we have a blended human resourse rate is say USD 100 per hour, then the cost of development is: 20 x 100 = USD 2000
The above explained Software cost estimation is widely used across the globe to arrive at the estimated cost of the software application project at very early stages of the project say at the budgeting or bidding for the development project.
---------------------------------------------------------------------------------------------------------------
Abbreviations Used:
IFPUG : International Function Point Users Group,
NESMA : Netherlands Software Metrics users Association
COSMIC : Common Software Measurement International Consortium
FISMA : Finnish Software Measurement Association