ABSTRACT
The identification and management of work dependencies is a fundamental challenge in software development organizations. This paper argues that modularization, the traditional technique intended to reduce interdependencies among components of a system, has serious limitations in the context of software development. We build on the idea of congruence, proposed in our prior work, to examine the relationship between the structure of technical and work dependencies and the impact of dependencies on software development productivity. Our empirical evaluation of the congruence framework showed that when developers' coordination patterns are congruent with their coordination needs, the resolution time of modification requests was significantly reduced. Furthermore, our analysis highlights the importance of identifying the "right" set of technical dependencies that drive the coordination requirements among software developers. Call and data dependencies appear to have far less impact than logical dependencies.
- Allen, T. J. 1977. Managing the Flow of Technology. MIT Press.Google Scholar
- Baldwin, C. Y. and Clark, K. B. 2000. Design Rules: The Power of Modularity. MIT Press. Google ScholarCross Ref
- Bellotti, V., Ducheneaut, N., Howard, M., Smith, I. 2003. Taking email to task: the design and evaluation of a task management centered email tool. In Proceedings International Conference on Human Factors in Computing Systems (CHI'03), Ft. Lauderdale, FL. Google ScholarDigital Library
- Bass, M., Bass, L., Herbsleb, J. D. and Cataldo, M. 2006. Architectural Misalignment: an Experience Report. To appear in the Proceedings of the 6th International Conference on Software Architectures (WICSA '07). Google ScholarDigital Library
- Brooks, F. 1995. The Mythical Man-Month: Essays on Software Engineering (Anniversary Edition). Addison Wesley. Google ScholarDigital Library
- Burton, R. M. and Obel, B. 1998. Strategic Organizational Diagnosis and Design. Kluwer Academic Publishers, Norwell, MA.Google Scholar
- Cadiz, J. J., Venolia, G. D., Jancke, G., Gupta, A. 2002. Designing and deploying an information awareness interface. In Proceedings of the Conference on Computer Supported Co-operative Work (CSCW'02), New York, NY. Google ScholarDigital Library
- Carley, K. M. 2002. Smart Agents and Organizations of the Future. In Handbook of New Media. Edited by Lievrouw, L. and Livingstone, S., Sage, Thousand Oaks, CA.Google Scholar
- Carley, K. M and Ren, Y. Tradeoffs between Performance and Adaptability for C3I Architectures. 2001. In Proceedings of the 6th International Command and Control Research and Technology Symposium, Annapolis, Maryland.Google Scholar
- Cataldo, M., Wagstrom, P, Herbsleb, J. D. and Carley, K. M 2006. Identification of Coordination Requirements: Implications for the Design of Collaboration and Awareness Tools. In Proceedings of the Conference on Computer Supported Cooperative Work (CSCW'06), Banff, Alberta, Canada. Google ScholarDigital Library
- Cataldo, M., Bass, M, Herbsleb, J. D. and Bass, L. 2007. On Coordination Mechanism in Global Software Development. In Proceedings of the International Conference on Global Software Engineering, Munich, Germany. Google ScholarDigital Library
- Clements, P., Bachman, F., Bass, L., Garlan, D., Ivers, J., Little, R., Nord, R. and Sttaford, J. 2002. Documenting Software Architectures: Views and Beyond. Addison-Wesley, New York, NY. Google ScholarDigital Library
- Conway, M. E. 1968. How do committees invent? Datamation, 14, 5, 28--31.Google Scholar
- Curtis, B. 1981. Human Factors in Software Development. Ed. by Curtis, B., IEEE Computer Society. Google ScholarDigital Library
- Curtis, B., Kransner, H. and Iscoe, N. 1988. A field study of software design process for large systems. Communications of ACM, 31, 11, 1268--1287. Google ScholarDigital Library
- de Souza, C. R. B. 2005. On the Relationship between Software Dependencies and Coordination: Field Studies and Tool Support. Ph.D. dissertation, Donald Bren School of Information and Computer Sciences, University of California, Irvine. Google ScholarDigital Library
- de Souza, C. R. B., Redmiles, D., Cheng, L., Millen, D. and Patterson, J. 2004. How a Good Software Practice Thwarts Collaboration - The multiple roles of APIs in Software Development. In Proceedings of the 12th Conference on Foundations of Software Engineering (FSE '04), Newport Beach, CA, 221--230. Google ScholarDigital Library
- Eclipse Project. 2008. http://www.eclipse.org. URL accessed on February 28th, 2008.Google Scholar
- Eppinger, S. D., Whitney, D. E., Smith, R. P. and Gebala, D. A. 1994. A Model-Based Method for Organizing Tasks in Product Development. Research in Engineering Design, 6, 1--13.Google ScholarCross Ref
- Espinosa, J. A. 2002. Shared Mental Models and Coordination in Large-Scale, Distributed Software Development. Unpublished Ph.D. Dissertation, Graduate School of Industrial Administration, Carnegie Mellon University. Google ScholarDigital Library
- Fisher, D., Brush, A. J., Gleave, E. and Smith M. A. 2006. Revisiting Whittaker and Sidner's "Email Overload": Ten Years Later. In Proceedings of the Conference on Computer Supported Cooperative Work (CSCW'06), Banff, Alberta, Canada. Google ScholarDigital Library
- Gall, H. Hajek, K. and Jazayeri, M. 1998. Detection of Logical Coupling Based on Product Release History. In Proceedings of the International Conference on Software Maintenance (ICSM '98), Bethesda, Maryland. Google ScholarDigital Library
- Garcia, A., et al. 2007. Assessment of Contemporary Modularization Techniques, ACOM'07 Workshop Report. ACM SIGSOFT Software Engineering Notes, 35, 5, 31--37. Google ScholarDigital Library
- Geyer, W., Brownholtz, B., Muller, M., Dugan, C., Wilcox, E. and Millen, D.R. 2007. Malibu Personal Productivity Assistant. In Proceedings International Conference on Human Factors in Computing Systems (CHI'07) - Work in Progress Section, San Jose, CA. Google ScholarDigital Library
- Grinter, R. E., Herbsleb, J. D. and Perry, D. E. 1999. The Geography of Coordination Dealing with Distance in R&D Work. In Proceedings of the Conference on Supporting Group Work (GROUP'99), Phoenix, Arizona. Google ScholarDigital Library
- Hassan, A. E. and Holt, R. C. 2004. C-REX: An Evolutionary Code Extractor for C. CSER Meeting. Canada, 2004Google Scholar
- Henderson, R. M. and Clarck, K. B. 1990. Architectural Innovation: The Reconfiguration of Existing Product Technologies and the Failure of Established Firms. Administrative Science Quarterly, 35, 9--30.Google ScholarCross Ref
- Herbsleb, J. D. and Mockus, A. 2003. An Empirical Study of Speed and Communication in Globally Distributed Software Development. IEEE Transactions on Software Engineering, 29, 6, 481--898. Google ScholarDigital Library
- Herbsleb, J. D., Mockus, A. and Roberts, J. A. 2006. Collaboration in Software Engineering Projects: A Theory of Coordination. In Proceedings of the International Conference on Information Systems (Milwaukee, Wisconsin). ICIS'06.Google Scholar
- Horwitz, S., Reps, T., and Binkley, D. 1990. Interprocedural slicing using dependence graphs. ACM Transactions on Programming Languages and Systems, 22, 1, 26--60. Google ScholarDigital Library
- Hutchens, D. H. and Basili, V. R. 1985. System Structure Analysis: Clustering with Data Bindings. IEEE Transactions on Software Engineering, 11, 8, 749--757. Google ScholarDigital Library
- Jazz Project. 2008. http://jazz.net/pub/index.jsp. URL accessed on February 28th, 2008.Google Scholar
- Krackhardt, D. and Carley, K. M. 1998. A PCANS Model of Structure in Organization. In Proceedings of the 1998 International Symposium on Command and Control Research and Technology, 113--119.Google Scholar
- Kraut, R. E. and Streeter, L. A. 1995. Coordination in Software Development. Communications of ACM, 38, 3, 69--81. Google ScholarDigital Library
- Leffingwell, D. and Widrig, D. (2003). Managing Software Requirements: A Use Case Approach, 2nd Edition. Addison-Wesley. Google ScholarDigital Library
- Levchuk, G. M. et al. 2004. Normative Design of Project-Based Organizations - Part III: Modeling Congruent, Robust and Adaptive Organizations. IEEE Trans. on Systems, Man & Cybernetics, 34, 3, 337--350. Google ScholarDigital Library
- Murphy, G. C., Notkin, D., Griswold, W. G. and Lan, E. S. 1998. An empirical study of call graph extractors. ACM Transactions on Software Engineering Methodology, 7, 2, 158--191. Google ScholarDigital Library
- Olson, G. M. and Olson, J. S. 2000. Distance Matters. Human-Computer Interaction, 15, 2 & 3, 139--178 Google ScholarDigital Library
- Parnas, D. L. 1972. On the criteria to be used in decomposing systems into modules. Communications of ACM, 15, 12, 1053--1058. Google ScholarDigital Library
- Selby, R. W. and Basili, V. R. 1991. Analyzing Error-Prone System Structure. IEEE Transactions on Software Engineering, 17, 2, 141--152. Google ScholarDigital Library
- Simon, H. A. (1962). The Architecture of Complexity. In Proceedings of the American Philosophical Society, 106, 6, 467--482.Google Scholar
- Sosa, M. E., Eppinger, S. D., and Rowles, C. M. 2004. The Misalignment of Product Architecture and Organizational Structure in Complex Product Development. Management Science, 50, 12, 1674--1689 Google ScholarDigital Library
- Sullivan, K. J., Griswold, W. G., Cai, Y, and Hallen, B. 2001. The Structure and Value of Modularity in Software Design. In Proceedings of the International Conference on Foundations of Software Engineering (FSE '01), Vienna, Austria, 99--108 Google ScholarDigital Library
- Von Hippel, E. (1990). Task Partitioning: An Innovation Process Variable. Research Policy, 19, 407--418.Google ScholarCross Ref
- Wattenberg, M., Rohall, S., Gruen, D. and Kerr, B. 2005. E-Mail Research: Targeting the Enterprise. Journal of Human-Computer Interaction, 20, 139--162. Google ScholarDigital Library
- Yassine, A., Joglekar, N., Braha, D., Eppinger, S. And Whitney, D. 2003. Information Hiding in Product Development: The Design Churn Effect. Research in Engineering Design, 14, 145--161.Google ScholarCross Ref
Index Terms
- Socio-technical congruence: a framework for assessing the impact of technical and work dependencies on software development productivity
Recommendations
Supporting collaborative software development through the visualization of socio-technical dependencies
GROUP '07: Proceedings of the 2007 ACM International Conference on Supporting Group WorkOne of the reasons large-scale software development is difficult is the number of dependencies that software engineers face. These dependencies create a need for communication and coordination that requires continuous effort by developers. Empirical ...
Extending socio-technical congruence with awareness relationships
SSE '11: Proceedings of the 4th international workshop on Social software engineeringCoordination in software engineering is necessary for software teams. To study coordination, researchers need a a way to conceptualize and measure it|one such measure is socio-technical congruence. Within a team setting, awareness of other's tasks and ...
Bridging the gap between technical and social dependencies with Ariadne
eclipse '05: Proceedings of the 2005 OOPSLA workshop on Eclipse technology eXchangeOne of the reasons why large-scale software development is difficult is the number of dependencies that software engineers need to face; e.g., dependencies among the software components and among the development tasks. These dependencies create a need ...
Comments