Monday, 28 September 2015

[Study] Sawyer, S. (2004) Software development teams.

Sawyer illustrated:

3 generic archetypes of software development teams:



  1. Sequential:
    • Linear set of discrete tasks
    • Specialized functional people
    • Formalized interactions across functions 
    • Value individual with the specialized skills
  2. 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
  3. 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:
  1. 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.
  2. Group
    • Difficult for recognizing enough iterating 
    • increasing cross-iteration task linkages such as change and version tracking, release control, and release planning
  3. 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.

1 comment: