Coordination in Large-Scale Software Development : Helpful and Unhelpful Behaviors

Software development is rarely an individual effort and generally involves teams of developers collaborating to generate good reliable code. Among the software code there exist technical dependencies that arise from software components using services from other components. The different ways of assigning the design, development, and testing of these software modules to people can cause various coordination problems among them. We claim that the collaboration of the developers, designers and testers must be related to and governed by the technical task structure. We propose a Collaborative Work allocation Patterns to handle these collaboration practices. We propose a methodology to define collaborative work allocation patterns that can be used in order to handle the collaborative software development coordination issues.