150 likes | 336 Views
Technical Coordination in Open Source Software Development. James D. Herbsleb School of Computer Science Carnegie Mellon University +1 412 268-8933 jdh@cs.cmu.edu http://www-2.cs.cmu.edu/~jdh/. Meanings of “Open Source”. Legal and pragmatic arrangements to ensure availability of source code
E N D
Technical Coordination in Open Source Software Development James D. HerbslebSchool of Computer Science Carnegie Mellon University+1 412 268-8933jdh@cs.cmu.edu http://www-2.cs.cmu.edu/~jdh/
Meanings of “Open Source” • Legal and pragmatic arrangements to ensure availability of source code • Development process • Open community • Widely dispersed contributors • Emulated in many other contexts • Seems relatively free of coordination problems
Modification Request (MR) interval Last Modification - First Modification All changes July 1997 to July,1999 multi site single site 18.1 6.9 Network Element B Multi-site Delay Work Days 30 20 12.7 10 4.9 0 Network Element A
Coordination • “Managing dependencies between activities” (Malone & Crowston, 1994) • Are many kinds of dependencies, we are focusing on depedencies among engineering decisions, e.g., • Selecting or designing algorithm • Selecting or designing data structure • Selecting object model • Writing the termination condition for a loop • Etc., etc. • Coordination issues are pervasive in software engineering
Assumptions • Decisions are a reasonable unit of “progress” in software project • Decision-making consumes resources (calendar time and effort) • Decisions tend to be highly mutually constraining • The “coordination problem” is avoiding constraint violation • Constraint violation produces defects
Functionality Software Design Domain Development Work Software Application Domain
Decisions Development Work Constraints Software Application Domain Functionality Software Design Domain
Decisions people Constraints time Software Application Domain Functionality Software Design Domain
time Software Application Domain Functionality Software Domain people Coordination
Automatic constraint enforcement Number of people involved in decision Effectiveness of communication among decision-makers Defects (when violations are not discovered and fixed) + + Increased cycle time Density of interdependence among decisions + + Visibility of constraints among decisions Rework (when violations are discovered and fixed) + Reduced productivity + “Macro” Theory of Coordination Coordination breakdowns: Violations of mutual constraints among engineering decisions
Automatic constraint enforcement Number of people involved in decision Effectiveness of communication among decision-makers Defects (when violations are not discovered and fixed) + + Increased cycle time Density of interdependence among decisions + + Visibility of constraints among decisions Rework (when violations are discovered and fixed) + Reduced productivity + Coordination and Open Source Coordination breakdowns: Violations of mutual constraints among engineering decisions • Development work done by users • Eliminates enormous communication problem • Constraints imposed by implicit requirements are apparent • Simpler, smaller product
Automatic constraint enforcement Number of people involved in decision Effectiveness of communication among decision-makers Defects (when violations are not discovered and fixed) + + Increased cycle time Density of interdependence among decisions + + Visibility of constraints among decisions Rework (when violations are discovered and fixed) + Reduced productivity + Coordination and Open Source Coordination breakdowns: Violations of mutual constraints among engineering decisions • Management structure • Minimal -- core group with commit privileges • Decision-making by those with demonstrated technical merit • Participation mirrors dependencies
Automatic constraint enforcement Number of people involved in decision Effectiveness of communication among decision-makers Defects (when violations are not discovered and fixed) + + Increased cycle time Density of interdependence among decisions + + Visibility of constraints among decisions Rework (when violations are discovered and fixed) + Reduced productivity + Coordination and Open Source Coordination breakdowns: Violations of mutual constraints among engineering decisions • Open, archived technical discussions • Draws on very large pool of potential experts • Newbies can catch up with minimal distractions to existing staff • Preserves design rationale
Technical Coordination Modeled as CSP • Constraint satisfaction problem • a project is a large set of mutually-constraining decisions, which are represented as • n variables x1, x2, . . . , xnwhose • values are taken from finite, discrete domains D1, D2, . . . , Dn • constraints pk(xk1, xk2, . . . , xkn) are predicates defined on • the Cartesian product Dk1 x DK2 x . . . x Dkj. • Solving CSP is equivalent to finding an assignment for all variables that satisfy all constraints Formulation of CSP taken from Yokoo and Ishida, Search Algorithms for Agents, in G. Weiss (Ed.) Multiagent Systems, Cambridge, MA: MIT Press, 1999.
Modeling Coordination -- “Micro” Theory • Create models to explore influence of • Ways of assigning decisions to agents • Communication practices and tools • Properties of constraint network, e.g., • Average distance between nodes • Clustering • Open source process is a region in this “model space” • Empirically test hypotheses