Escolar Documentos
Profissional Documentos
Cultura Documentos
MEASURING PRODUCTIVITY OF
SOFTWARE DEVELOPMENT TEAMS
Abstract
This paper gives an exhaustive literature review of the techniques and models available to
measure the productivity of software development teams. Definition of productivity, measuring
individual programmer’s productivity, and measuring software development team productivity are
discussed. Based on the literature review it was found that software productivity measurement can
be done using SLOC (Source Lines of Code), function points, use case points, object points, and
feature points. Secondary research findings indicate that the team size, response time, task
complexity, team climate and team cohesion have an impact on software development team
productivity. List of factors affecting the software development team productivity are studied and
reviewed.
DOI: 10.5937/sjm1201065S
66 G. P. Sudhakar / SJM 7 (1) (2012) 65 - 75
cross functional teams to meet the includes complexities of both software and
organizational objectives. More than 70% of people. According to them software
the Fortune 500 organizations have teams in productivity can be calculated by dividing
their organizations. Particularly software software size with cost of development.
development is done by teams in According to Card (2006), Productivity is
organizations. Onsite, offshore teams, virtualdefined as the ratio of outputs produced to
teams, globally distributed teams, high the resources consumed.
performance teams, and self managed teams Earlier researchers like Albrecht (1979)
are some of the terminology we hear in have developed Function Points at IBM and
software industry in current days. The Jones (1986) has studied the productivity and
objective of any software business quality of the software projects. Jones (1986)
organization is to achieve maximum team work on productivity is published in his
productivity to reduce costs and to increase popular book Programming Productivity.
profitability. With the advent of process Researcher Lakhanpal (1993) has studied the
maturity models such as CMMI and PCMM, characteristics of groups and their impact on
software services organizations in Asian productivity (Wagner & Ruhe, 2008a). Study
countries are even thriving for continuous of software development team productivity
improvement. The definition of productivity involves disciplines such as Software
follows. Engineering, Management and
Organizational Psychology. Banker, Datar
and Femerer (1991) have studied the
2. DEFINITION OF PRODUCTIVITY variables impacting the productivity of
software maintenance projects with the help
Traditionally Productivity can be defined of an empirical study of 65 software
as a ratio of output units produced to the maintenance projects of a large commercial
input units of effort (Scacchi, 1995; bank.
Maxwell, 2001; Wagner & Ruhe, 2008a;
Nwelih & Amadin, 2008). Output units can
be the number of lines of source code and 3. WHY MEASURE TEAM
input units can be the person months of time. PRODUCTIVITY?
Traditionally the lines of code (LOC) or the
Function Points are used for measurement of According to Scacchi (1995), Software
productivity in software development team productivity is to be measured to
(Wagner & Ruhe, 2008a). According to reduce the software development costs, to
Wagner and Ruhe (2008a), the number of improve the quality of deliverables, and to
lines of code written or the number of increase the rate at which software is to be
function points implemented per man hour developed. According to him, the software
by the developer is used as a measure of productivity is to be measured to recognize
productivity. Previous software team the top performers to reward and identify the
productivity studies were conducted in bottom performers to provide the training.
organizations such as IBM, NASA, ITT, and The major productivity improvements can
HP. According to Nwelih and Amadin result into substantial amount of savings in
(2008), software productivity definition development costs (Scacchi, 1995).
G. P. Sudhakar / SJM 7 (1) (2012) 65 - 75 67
Measuring productivity helps in identifying cohesion, platform experience,
under utilized resources (Nwelih & Amadin, programmer’s programming languages and
2008). The study of software productivity is tools experience, software applications
important because higher productivity leads experience, and analyst capability.
to lower costs (Bouchaib & Charboneau, Setting goals to the programmer,
2005). Bouchaib and Charboneau (2005) providing training, giving periodic feedback
have studied the comparison of productivity on his or her performance improves the
of in-house developed projects and individual productivity of programmer
productivity of outsourced projects to third (Wagner & Ruhe, 2008). According to
party with a sample of 1085 projects Chiang and Mookerjee (2004), improving
developed worldwide. software development productivity depends
Krishnan, Kriebel, Kekre and on people, technology and process.
Mukhopadhyay (1999) have studied the The constraints which control the
software life cycle productivity, which programmer productivity are the time
includes both development and maintenance constraints, financial constraints, software
costs and drivers of software team specifications, corporate environment and
productivity and quality such as personnel programming methodology (Vyhmeister,
capability, product size, usage of tools and 1996). According to Vyhmeister (1996), one
software process factors. According to can use Lines of code (LOC), Function
Banker and Kauffman (1991), software Points (FPs), and Object points (OPs) to
productivity can be found from the following measure the productivity of software
formula. programmer.
Individual programmer’s productivity can
Productivity = (Size of Application vary between 1 to 10 times in the same
Developed) / (Labor consumed during experience level programmers and team
development) (1) productivity can have variations of a factor
of 5 (White, 1999). People related issues are
the critical factors of individual
4. MEASURING INDIVIDUAL programmer’s productivity.
PROGRAMMER’S PRODUCTIVITY According to M. Pinkowska, team
productivity is dependent on individual team
According to Wagner and Ruhe (2008), member’s productivity and the team
software productivity can be measured member’s experience of success impacts his
traditionally using the lines of code or or her motivation, team cohesiveness and
function points and the productivity is the work atmosphere. Teams with high
LOC or FP produced per hour by the cohesiveness exhibit lower tension and
programmer. The productivity and cost anxiety, less variations of productivity,
estimation model COCOMO developed by improved team member satisfaction,
Boehm (1981) also considers the individual improved team communication, and
programmer’s productivity as a decisive role. commitment. Team members in cohesive
The factors identified by Barry Boehm and teams enjoy team membership, experience
team which affect software productivity and low personnel turnover, and they are very
cost include programmer capability, team productive (M. Pinkowska’s Research).
68 G. P. Sudhakar / SJM 7 (1) (2012) 65 - 75
5. Model of Correlated Software Team productivity = KLOC per Provides a simulation model Potok and Vouk
Team Behavior Calendar month. which supports correlated (1999)
team behavior.
6. Productive Ratio (Į) Į = % of Direct Development time / % of Idle The model suggested Nogueira, Luqi,
time considered productivity, Berzins and Nada
requirements volatility and (2000)
complexity.
7. Productivity Model Productivity = Number of Function Points / This model considers the Blackburn, Lapre and
Effort in Man months factors such as Experience of Van Wassenhove
Project Manager, size, (2002)
requirements ambiguity,
complexity, stable standards,
user requirements, usage of
tools, etc.
G. P. Sudhakar / SJM 7 (1) (2012) 65 - 75 69
8. Simple Model of Physical Productivity = Number of LOC / man This model considers the Card (2006)
Productivity hours or days or months entities such as Product,
Process or Sub-process,
Functional Productivity = Number of Function Requirements, Value, Cost,
Points / Man hours or days or months and Effort.
Where
ri = Reuse
fi = Functionality
li = Length
ci = Complexity
I = Effort
(Source: Author Compiled, 2010)
Овај рад даје исцрпни литературни преглед техника и модела доступних за мерење
продуктивности тимова за развој софтвера. Дискутовани су дефиниција продуктивности,
мерење индивидуалне продуктивности програмера и мерење продуктивности тимова за развој
софтвера. Засновано на литературном прегледу утврђено је да мерење продуктивности тимова
за развој софтвера може да се учини употребом SLOC (Source Lines of Code), функционалних
тачака, употребом кључних тачака, објектних тачака, и особинских тачака. Секундарни
резултати истраживања индицирају да су величина тима, време одговора, комплексност
задатака, клима у тиму као и кохезија тима од великог значаја на продуктивност. Проучена је
листа фактора који утичу на продуктивност тимова за развој софтвера.