Understanding Software Productivity:
An Interactive Tutorial


Walt Scacchi, ATRIUM Laboratory, Information and Operations Management Dept., School of Business Administration, and, Center for Software Engineering, University of Southern California. 213-740-4782, 213-740-8494 (fax) (Scacchi@gilligan.usc.edu).


(c) Copyright, Walt Scacchi 1996

This presentation can be accessed via the World Wide Web at: http://www.usc.edu/dept/ATRIUM/Papers/sp-tutor.html

See the companion paper on the WWW at:
http://www.usc.edu/dept/ATRIUM/Papers/Software_Productivity.ps


Overview

Return to Top

Table of Contents

Return to Top

Introduction


Introduction (con't)


Return to Overview or return to Table of Contents.


Notes on the Science of Measurement

Return to Overview or return to Table of Contents.


A Sample of Software Productivity Measurement Studies

Return to Overview or return to Table of Contents.


IBM Federal Systems Division (mid 1970's)


Return to Sample of Software Productivity Studies, return to Overview, or return to Table of Contents.


IBM DP Services Organization (late 1970's)

  • Use of these techniques may tend to naturally increase number of function points found in software.
  • Albrecht's formula for determining productivity relies upon "weighting multipliers" of unclear origin.
  • Albrecht, as department manager, required his programming supervisors to collect function point data, and then reward them if their productivity improved.
  • Thus, it is unclear what lead to the 3X improvement in software productivity he reports.
  • Return to Sample of Software Productivity Studies, return to Overview, or return to Table of Contents.


    Equitable Life Organizations (1980-81)

    Return to Sample of Software Productivity Studies, return to Overview, or return to Table of Contents.


    TRW Defense Systems Group (late 1970's)

    Return to Sample of Software Productivity Studies, return to Overview, or return to Table of Contents.


    Australia-70 Study (late 1970's)

    Return to Sample of Software Productivity Studies, return to Overview, or return to Table of Contents.


    NASA/SEL (late 1970's)

    Return to Sample of Software Productivity Studies, return to Overview, or return to Table of Contents.


    IBM (early 1980's)

    Return to Sample of Software Productivity Studies, return to Overview, or return to Table of Contents.


    ITT Advanced Technology Center (early 1980's)


    ITT Advanced Technology Center (con't)

    Process-related factors (more easily controlled)

    Program-related factors (not easily controlled)

    Return to Sample of Software Productivity Studies, return to Overview, or return to Table of Contents.


    Australia-80 Study (mid 1980's)

    Return to Sample of Software Productivity Studies, return to Overview, or return to Table of Contents.


    Commerical U.S. Banks (mid 1980's)

    Return to Sample of Software Productivity Studies, return to Overview, or return to Table of Contents.


    U.S. vs. Japan Study (late 1980's)

    Return to Sample of Software Productivity Studies, return to Overview, or return to Table of Contents.


    Other studies of Software Productivity and Cost

    Return to Sample of Software Productivity Studies, return to Overview, or return to Table of Contents.


    Jones78 [27]

    Return to Other studies of Software Productivity and Cost return to Overview, or return to Table of Contents.


    Chrysler78 [16]

    Return to Other studies of Software Productivity and Cost return to Overview, or return to Table of Contents.


    King and Schrems78 [34]

    Return to Other studies of Software Productivity and Cost return to Overview, or return to Table of Contents.


    Mohanty81 [44]

    Return to Other studies of Software Productivity and Cost return to Overview, or return to Table of Contents.


    Romeu and Gloss83 [48]

    Return to Other studies of Software Productivity and Cost return to Overview, or return to Table of Contents.


    Scacchi84 [50]

    Return to Other studies of Software Productivity and Cost return to Overview, or return to Table of Contents.


    Boehm et al.84 [11]

    Return to Other studies of Software Productivity and Cost return to Overview, or return to Table of Contents.


    Jones86 [28]

    Return to Other studies of Software Productivity and Cost return to Overview, or return to Table of Contents.


    Boehm87 [10]

    Return to Other studies of Software Productivity and Cost return to Overview, or return to Table of Contents.


    Bendifallah and Scacchi89 [7]

    Return to Other studies of Software Productivity and Cost return to Overview, or return to Table of Contents.


    Norman and Nunamaker89 [45]

    Return to Other studies of Software Productivity and Cost return to Overview, or return to Table of Contents.


    Kraut et al.89 [36]

    Return to Other studies of Software Productivity and Cost return to Overview, or return to Table of Contents.


    Bhansali et al.91 [8]

    Return to Other studies of Software Productivity and Cost return to Overview, or return to Table of Contents.


    Information Technology and Productivity

    Return to Sample of Software Productivity Studies, return to Overview, or return to Table of Contents.


    Summary of Software Productivity Drivers

    Return to Summary of Software Productivity Drivers return to Overview, or return to Table of Contents.


    Software development environment attributes

    Return to Summary of Software Productivity Drivers return to Overview, or return to Table of Contents.


    Software system product attributes

    Return to Summary of Software Productivity Drivers return to Overview, or return to Table of Contents.


    Project staff attributes

    Return to Sample of Software Productivity Studies, return to Overview, or return to Table of Contents.


    Challenges for Software Productivity Measurement

    Return to Overview or return to Table of Contents.


    Why measure software productivity?

    Return to Challenges for software productivity measurement, return to Overview or return to Table of Contents.


    Who should measure software productivity data?

    Return to Challenges for software productivity measurement, return to Overview or return to Table of Contents.


    What should be measured?

    Return to Challenges for software productivity measurement, return to Overview or return to Table of Contents.


    Software Products

    Return to What should be measured, return to Overview or return to Table of Contents.


    Software Production Process

    Return to What should be measured, return to Overview or return to Table of Contents.


    Software Production Process Structure

    Return to What should be measured, return to Overview or return to Table of Contents.


    Software Production Setting

    Return to What should be measured, return to Overview or return to Table of Contents.


    How to measure software productivity?

    Return to Challenges for software productivity measurement, return to Overview or return to Table of Contents.


    Productivity measurement research design and sampling strategy

    Return to How to measure software productivity, return to Overview or return to Table of Contents.


    Unit of analysis

    Return to How to measure software productivity, return to Overview or return to Table of Contents.


    Level and terms of analysis

    Levels:
    Terms (Perspectives):

    Return to How to measure software productivity, return to Overview or return to Table of Contents.


    How to improve software productivity?

    Return to Challenges for software productivity measurement, return to Overview or return to Table of Contents.


    Summary of Challenges

    Return to Challenges for software productivity measurement, return to Overview or return to Table of Contents.


    Alternative Directions for Software Productivity Measurement and Improvement

    Return to Overview or return to Table of Contents.


    Develop Setting-Specific Theories of Software Production

    Return to Alternative directions for software productivity measurement and improvement, return to Overview or return to Table of Contents.


    Identify and Cultivate Software Productivity Drivers

    Return to Alternative directions for software productivity measurement and improvement, return to Overview or return to Table of Contents.


    Develop Symbolic and Qualitative Measures of Software Productivity

    Return to Alternative directions for software productivity measurement and improvement, return to Overview or return to Table of Contents.


    Develop Knowledge-Based Systems that Model Software Production

    Return to Alternative directions for software productivity measurement and improvement, return to Overview or return to Table of Contents.


    Knowledge acquisition

    Return to Develop Knowledge-Based Systems that Model Software Production, return to Overview or return to Table of Contents.


    Knowledge representation

    Return to Develop Knowledge-Based Systems that Model Software Production, return to Overview or return to Table of Contents.


    Knowledge operationalization

    Return to Develop Knowledge-Based Systems that Model Software Production return to Overview or return to Table of Contents.


    Simulate and measure the effects of productivity enhancements

    Return to Alternative directions for software productivity measurement and improvement, return to Overview or return to Table of Contents.


    An Approach

    Return to Alternative directions for software productivity measurement and improvement, return to Overview or return to Table of Contents.


    Conclusions

    What affects software productivity and how do we improve it?

    Return to Top, or return to Overview or return to Table of Contents.


    References

    1. Abdel-Hamid, T. and S. Madnick, Impact of Schedule Estimation on Software Project Behavior. IEEE Software 3(4), (1986), 70-75.

    2. Albrecht, A., "Measuring Application Development Productivity", Proc. Joint SHARE/GUIDE/IBM Application Development Symposium (October, 1979), 83-92.

    3. Albrecht, A. and J. Gaffney, "Software Function, Source Lines of Code, and Development Effort Prediction: A Software Science Validation", IEEE Trans. Soft. Engr. SE-9(6), (1983), 639-648.

    4. Bailey, J. and V. Basili, "A Meta-Model for Software Development Resource Expenditures", Proc. 5th. Intern. Conf. Soft. Engr., IEEE Computer Society, (1981), 107-116.

    5. Behrens, C.A., "Measuring the Productivity of Computer Systems Development Activities with Function Points", IEEE Trans. Soft. Engr. SE-9(6), (1983), 648-652.

    6. Bendifallah, S. and W. Scacchi, "Understanding Software Maintenance Work", IEEE Trans. Soft. Engr. SE-13(3), (1987), 311-323.

    7. Bendifallah, S. and W. Scacchi, "Work Structures and Shifts: An Empirical Analysis of Software Specification Teamwork", Proc. 11th. Intern. Conf. Soft. Engr., IEEE Computer Society, (1989), 345-357.

    8. Bhansali, P.V., B.K. Pflug, J.A. Taylor, and J.D. Wooley, "Ada Technology: Current Status and Cost Impact", Proceedings IEEE, 79(1), (1991), 22-29.

    9. Boehm, B., Software Engineering Economics Prentice-Hall, Englewood Cliffs, NJ (1981)

    10. Boehm, B.W., "Improving Software Productivity", Computer, 20(8), (1987), 43-58.

    11. Boehm, B., M.. Penedo, E.D. Stuckle, R.D. Williams, and A.B. Pyster, "A Software Development Environment for Improving Productivity", Computer 17(6), (1984), 30-44.

    12. Boehm, B. and R.W. Wolverton, "Software Cost Modelling: Some Lessons Learned", J. Systems and Software 1 (1980), 195-201.

    13. van den Bosch, F., J. Ellis, P. Freeman, L. Johnson, C. McClure, D. Robinson, W. Scacchi, B. Scheft, A. van Staa, and L. Tripp, "Evaluating the Implementation of Software Development Life Cycle Methodology", ACM Software Engineering Notes, 7(1), (1982), 45-61.

    14. Brynjolfsson, E., "The Productivity Paradox of Information Technology," Communications ACM, 36(12), (1993), 67-77.

    15. Cerveny, R.P., and D.A. Joseph, "A Study of the Effects of Three Commonly Used Software Engineering Strategies on Software Enhancement Productivity", Information & Management, 14, (1988), 243-251.

    16. Chrysler, E., "Some Basic Determinants of Computer Programming Productivity", Communications ACM 21(6), (1978), 472-483.

    17. Conte, S., D. Dunsmore, and V. Shen, Software Engineering: Models and Measures Benjamin-Cummings, Palo Alto, CA (1986).

    18. Curtis, B., "Measurement and Experimentation in Software Engineering", Proc. IEEE 68(9), (1980), 1103-1119.

    19. Curtis, B., "Substantiating Programmer Variability", Proc. IEEE, 69(7), (1981).

    20. Cusumano, M., Japan's Software Factories, Oxford Univ. Press, New York, (1991).

    21. Cusumano, M. and C.F. Kemerer, "A Quantitative Analysis of U.S. and Japanese Practice and Performance in Software Development", Management Science, 36(11), (1990), 1384-1406.

    22. Garg, P.K., P. Mi, T. Pham, W. Scacchi, and G. Thunquest, "The SMART Approach to Software Process Engineering," Proc. 16th. Intern. Conf. Software Engineering, Sorrento, Italy, IEEE Computer Society, (1994), 341-350.

    23. Garg. P.K. and W. Scacchi, "On Designing Intelligent Software Hypertext Systems", IEEE Expert, 4, (1989), 52-63.

    24. Hanson, S.J. and R.R. Kosinski, "Programmer Perceptions of Productivity and Programming Tools", Communications ACM, 28(2), (1985), 180-189.

    25. Irving, R., C. Higgins, and F. Safayeni, Computerized Performance Monitoring Systems: Use and Abuse, Communications ACM, 29(8), (1986), 794-801.

    26. Jeffrey, D.R., "A Software Development Productivity Model for MIS Environments", J. Systems and Soft., 7, (1987), 115-125.

    27. Jones, T.C., "Measuring Programming Quality and Productivity", IBM System J. 17(1), (1978), 39-63.

    28. Jones, C., Programming Productivity, McGraw-Hill, New York, (1986).

    29. Keen, P.G.W., "Information Systems and Organizational Change", Communications ACM, 24(1), (1981), 24-33.

    30. Kemerer, C.F., "An Empirical Validation of Software Cost Estimation Models", Communications ACM, 30(5), (1987), 416-429.

    31. Kemerer, C.F., "Improving the Reliability of Function Point Measurement -- An Empirical Study," IEEE Trans. Software Engineering, 18(11), (1992), 1011-1024.

    32. Kemerer, C.F., "Reliability of Function Point Measurement -- A Field Experiment", Communications ACM, 36(2), (1993), 85-97.

    33. Kidder, T. The Soul of a New Machine, Atlantic Monthly Press, (1981).

    34. King, J.L. and E. Schrems, "Cost-Benefit Analysis in Information Systems Development and Operation", ACM Computing Surveys 10(1), (1978), 19-34.

    35. Kling, R. and W. Scacchi, "The Web of Computing: Computing Technology as Social Organization", Advances in Computers 21 (1982), 3-87.

    36. Kraut, R., S. Dumais, and S. Koch, "Computerization, Productivity, and Quality of Work-Life", Communications ACM, 32(2), (1989), 220-238.

    37. Lambert, G.N., "A Comparative Study of System Response Time on Programmer Development Productivity", IBM Systems J. 23(1), (1984), 36-43.

    38. Lakhanpal, B., "Understanding the Factors Influencing the Performance of Software Development Groups: An Exploratory Group-Level Analysis," Information and Software Technology, 35(8), (1993), 468-471.

    39. Lawrence, M.J., "Programming Methodology, Organizational Environment, and Programming Productivity", J. Systems and Software 2 (1981), 257-269.

    40. Mi, P. and W. Scacchi, "A Knowledge-Based Environment for Modeling and Simulating Software Engineering Processes", IEEE Trans. Knowledge and Data Engr., 2(3), (1990), 283-294. Reprinted in Nikkei Artificial Intelligence, 20(1) (1991), 176-191 (in Japanese).

    41. Mi. P. and W. Scacchi, "Modeling Articulation Work in Software Engineering Processes," Proc. 1st. Intern. Conf. Software Process, IEEE Computer Society, Redondo Beach, CA, (1991)

    42. Mi, P. and W. Scacchi, "Process Integration for CASE Environments," IEEE Software, 9(2), (May 1992), 45-53. Reprinted in Computer-Aided Software Engineering, 2nd. Edition. Chikofsky (ed.), IEEE Computer Society, (1993).

    43. Mittal, R., M. Kim, and R. Berg, "A Case Study of Workstation Usage During Early Phases of the Software Development Life Cycle", Proc. ACM SIGSOFT/SIGPLAN Software Engineering Symposium on Practical Software Development Environments, (1986), 70-76.

    44. Mohanty, S.N., "Software Cost Estimation: Present and Future", Software-Practice and Experience 11 (1981), 103-121.

    45. Norman, R.J. and J.F. Nunamaker, "CASE Productivity Perceptions of Software Engineering Professionals", Communications ACM, 32(9), (1989), 1102-1108.

    46. Pengelly, A, M. Norris, R. Higham, "Software Process Modelling and Measurement -- A QMS Case Study," Information and Software Technology, 35(6-7), (1993), 375-380.

    47. Reddy, Y.V., M.S. Fox, N. Husain, and M. McRoberts, "The Knowledge-Based Simulation System", IEEE Software 3(2), (1986), 26-37.

    48. Romeu, J.L. and S.A. Gloss-Soler, "Some Measurement Problems Detected in the Analysis of Software Productivity Data and their Statistical Significance", Proc. COMPSAC 83, IEEE Computer Society, (1983), 17-24.

    49. Sathi, A., M.S. Fox, M. Greenberg, "Representation of Activity Knowledge for Project Management", IEEE Trans. Pattern Analysis and Machine Intelligence, 7(5), (1985), 531-552.

    50. Scacchi, W., "Managing Software Engineering Projects: A Social Analysis", IEEE Trans. Soft. Engr., SE-10(1), (1984), 49-59.

    51. Scacchi, W., "On the Power of Domain-Specific Hypertext Environments", J. Amer. Soc. Info. Sci., 40(5), (1989a).

    52. Scacchi, W., "Designing Software Systems to Facilitate Social Organization", in M.J. Smith and G. Salvendy (eds.), Work with Computers, Vol. 12A, Advances in Humans Factors and Ergonomics, Elsevier, New York, (1989b), 64-72.

    53. Scacchi, W., "The Software Infrastructure for a Distributed System Factory", Soft. Engr. J., 6(5), (September 1991), 355-369.

    54. Thadhani, A.J., "Factors Affecting Programmer Productivity During Application Development", IBM Systems J. 23(1), (1984), 19-35.

    55. Vosburg, J., B. Curtis, R. Wolverton, B. Albert, H. Malec, S. Hoben and Y. Liu "Productivity Factors and Programming Environments", Proc. 7th. Intern. Conf. Soft. Engr., IEEE Computer Society, (1984), 143-152.

    56. Walston, C.E. and C.P. Felix, "A Method of Programming Measurement and Estimation", IBM Systems J. 16(1), (1977), 54-65.

    Return to Top, or return to Overview or return to Table of Contents.


    This interactive presentation page is maintained by Walt Scacchi who can be reached at the e-mail address noted above. This page was last updated on 28 March 1996. Return to Top