3 generic archetypes of software development teams:
- Sequential:
- Linear set of discrete tasks
- Specialized functional people
- Formalized interactions across functions
- Value individual with the specialized skills
- Group
- Discrete tasks may need to be repeated until the production is complete (SCRUM)
- Work in interdependent groups
- Value individual skills and ability to work in team
- Network
- Tasks are tied to individuals (or small group)
- Participants interact with each others
- Group members are value for what they can produce (OPEN SOURCE)
Guidance for practicing professionals:
- Sequential:
- Difficult for individual to see the value of their individual contribution to the whole
- Limited interaction reduce team cohesion
- Cross-training is suggested
- Interactions through formal channel (cross-functional meetings, product walk-through) is encorraged
- Walkthrough, Checklist and Sign-off are important to maintain standard and generate feedbacks.
- Group
- Difficult for recognizing enough iterating
- increasing cross-iteration task linkages such as change and version tracking, release control, and release planning
- Network
- Require strong product management
- Is the produced module fit and work with the entire system?
- Use automated tasking mechanisms (a public tracking board)
- Stable platforms
Hybrid models:
- Alignment between team's tasks, production methods, and computing technologies (1)
- (1) leads to increased attention to social and behavioral aspects of software development (2)
- Develop network sensitive methods and tools to reduce reliance on sequence-focused methods and tools. (3)
Reference:
Sawyer, S. (2004). Software development teams. Communications of the ACM, 47(12), 95-99.
Sawyer, S. (2004). Software development teams. Communications of the ACM, 47(12), 95-99.
Nice summary of this paper.
ReplyDelete