This Article 
 Bibliographic References 
 Add to: 
A Dynamic Coordination Policy for Software System Construction
July 2002 (vol. 28 no. 7)
pp. 684-694

In constructing a software system, extended periods of coding without adequate coordination (such as system integration and testing) can result in considerable fault correction effort. On the other hand, too much coordination can also prove counterproductive by disrupting the smooth flow of development work. The goal, therefore, is to find an optimal level of coordination so as to minimize system construction effort while adhering to functionality and schedule constraints. Previous research, however, has not considered dynamic project factors such as system growth, system stability, and team learning when addressing the above coordination problem. Dynamic factors are important because they could lead to differences in the intensity (frequency) of coordination needed at different stages of system construction. Unlike existing studies, we propose a dynamic coordination policy that places coordination activities at optimal (and often nonuniform) intervals during the construction of a system. Our analysis shows that, if a system stabilizes slowly, more intense coordination should occur early in the project. Also, if the team's knowledge of the system improves with time (i.e., learning effects are present), more intense coordination should occur both near the beginning and near the end of the project. Our analysis also shows that, by encouraging more frequent coordination, superior development tools could facilitate team learning. Finally, the application of the coordination model to data from a NASA software project demonstrates that optimally coordinating a project could significantly reduce system construction cost.

[1] M. Deriche, M.K. Huang, and Q.T. Tsai, “Dynamic Load-Balancing in Distributed Heterogeneous Systems under Stationary and Bursty Traffics,” Proc. 32nd Midwest Symp. Circuits and Systems, vol. 1, pp. 669-672, 1990.
[2] A.J. Albrecht and J.E. Gaffney, “Software Function, Source Lines of Code, and Development Effort Prediction: A Software Science Validation,” IEEE Trans. Software Eng., vol. 9, no. 6, pp. 639-648, 1983.
[3] D.H. Andres, P.E. Heartquist, and G.R. LaCroix, “Experience with an Incremental Ada Development in Terms of Progress Measurement, Built-in Quality, and Productivity,” Analytical Methods in Software Eng. Economics, pp. 139-149, Springer-Verlag, 1993.
[4] R.V. Basili and A.J. Turner, “Iterative Enhancement: A Practical Technique for Software Development,” IEEE Trans. Software Eng., vol. 1, no. 4, pp. 390-396, Apr. 1975.
[5] B. Boehm, "A Spiral Model of Software Development and Enhancement," Computer, May 1988, pp. 61-72.
[6] B. Boehm, Software Engineering Economics, Prentice Hall, Upper Saddle River, N.J., 1981, pp. 533-535.
[7] F.P. Brooks Jr., The Mythical Man-Month (20th Anniversary Edition).Reading, Mass.: Addison-Wesley, 1995.
[8] D.L. Carver, “Criteria for Estimating Module Complexity,” J. Systems Management, vol. 37, no. 8, pp. 18-24, 1986.
[9] M. Cusumano and R. Selby, Microsoft Secrets. Free Press, 1995.
[10] H. Dhama, “Quantitative Models of Cohesion and Coupling in Software,” J. Systems Software, vol. 29, pp. 65-74, 1995.
[11] M.E. Fagan, “Design and Code Inspections to Reduce Errors in Program Development,” IBM System J., vol. 15, no. 3, pp. 182-211, 1976.
[12] R.L. Glass, “How Not to Prepare for a Consulting Assignment, and Other Ugly Consultancy Truths,” Comm. ACM, vol. 41, no. 12, pp. 11-13, 1998.
[13] H. Gomaa, "Software Design Methods for the Design of Large-Scale Real-Time Systems," J. Systems and Software, vol. 25, no. 2, pp. 127-146, May 1994.
[14] P.J. Guinan, J.G. Cooprider, and S. Faraj, "Enabling Software Development Team Performance During Requirements Definition: A Behavioral Versus Technical Approach," Information Systems Research, vol. 9, no. 2, 1998, pp. 101-125.
[15] G. Heller, J. Valett, and M. Wild, “Data Collection Procedures for the Software Engineering Laboratory (SEL) Database,” NASA/Goddard Space Flight Center, Software Eng. Laboratory (SEL), Mar. 1993.
[16] W.S. Humphrey, Managing the Software Process, Addison-Wesley, Reading, Mass., 1989.
[17] M. Koushik and V. Mookerjee, “Modeling Coordination in Software Construction: An Analytical Approach,” Information Systems Research, vol. 6, no. 3, pp. 220-254, 1995.
[18] R.E. Kraut and L.A. Streeter, "Coordination in Software Development," Comm. ACM, Vol. 38, No. 3, 1995, pp. 69-81.
[19] L. Krish, “Portfolios of Control Modes and IS Project Management,” Information Systems Research, vol. 8, no. 3, pp. 215-239, 1997.
[20] G.C. Low and D.R. Jeffery, “Software Development Productivity and Back-End CASE Tools,” Information and Software Technology, vol. 33, no. 9, pp. 616-621, 1991.
[21] T.W. Malone, “Modeling Coordination in Organizations and Markets,” Management Science, vol. 33, no. 10, pp. 1317 - 1332, 1987.
[22] S. McConnell, “Daily Build and Smoke Test,” IEEE Software, vol. 13, no. 4, p. 144, 1996.
[23] S. Nidumolu, “The Effects of Coordination and Uncertainty on Software Project Performance: Residual Performance Risk as an Intervening Variable,” Information Systems Research, vol. 6, no. 3, pp. 191-219, 1995.
[24] L.B.S. Racoon, “A Learning Curve Primer for Software Engineers,” ACM Software Eng. Notes, vol. 21, no. 1, pp. 77-86, 1996.
[25] C.B. Seaman and V.R. Basili, “Communication and Organization in Software Development: An Empirical Study,” IBM Systems J., vol. 36, no. 4, pp. 550-563, 1997.
[26] W. Stevens, G. Myers, and L. Constantine, “Structured Design,” IBM System J., vol. 13, pp. 115-139, 1974.
[27] D.B. Walz, J.J. Elam, and B. Curtis, “Inside A Software Design Team: Knowledge Acquisition, Sharing, and Integration,” Comm. ACM, vol. 36, no. 10, pp. 63-77, 1993.
[28] J. Whang, “Market Provision of Custom Software: Learning Effects and Low Balling,” Management Science, vol. 41, no. 8, pp. 1343-1352, 1995.
[29] S.S. Yau and J.S. Collofello, “Design Stability Measures for Software Maintenance,” IEEE Trans. Software Eng., vol. 11, no. 9, pp. 849-857, Sept. 1985.
[30] G.P. Zachary, Show-Stopper! Free Press, 1994.

Index Terms:
Software project management, coordination, software construction cost.
Vijay S. Mookerjee, I. Robert Chiang, "A Dynamic Coordination Policy for Software System Construction," IEEE Transactions on Software Engineering, vol. 28, no. 7, pp. 684-694, July 2002, doi:10.1109/TSE.2002.1019482
Usage of this product signifies your acceptance of the Terms of Use.