Around 1870 David Livingstone and his team of porters were clearing a path through the Congolese jungle with machetes, hoping to find the source of the Nile. The head porter's job was to manage - ensuring that machetes stayed sharp, the porters had enough water, and were generally able to continue clearing a path through the jungle.
Livingstone's job, as the leader, was to climb a tree and look around to make sure the jungle was being cleared in the right place.
This seperation between management and leadership seems distinct and obvious. And yet all too often we happily entrust the delivery of complex IT projects to project managers or customer representatives. Abdicating, say, the decision to use multi-factor authentication and claims-based authorization to a line manager is... unwise, most of the time.
Other team roles don't often fare better. Developers often test their own code without a test strategy, or the involvement or oversight of a tester. Network administrators decide on application security measures. Salesmen dictate project schedules, features and at the same time constrain budgets (see tradeoff triangles ).
It's surprising sometimes, that anything ships.
Below is a list of project team roles, loosely based on the MSF Team Model from 2003 (the MSF model a bit dated now, but still very relevant). The list contains my preferred approach to structuring a project team:
Goal: Satisfied customers.
|Marketing||Develops and maintains the business case|
|Business value||Drives the project vision/scope|
|Customer advocate||Manages customer requirements|
|Product planning||Manages customer expectations|
|Manages features/schedule/resources trade-off decisions|
|Manages marketing and public relations|
|Develops, maintains, and executes the communications plan|
Goal: Delivering a successful solution within project constraints.
|Technical leadership||Manages the product specification|
|Process assurance||Drives implementation of critical trade-off decisions|
|Quality assurance||Facilitates communication and negotiation within the team|
|Develops the project schedule|
|Develops, maintains, and executes the project plan|
Goal: Managing solution delivery within project constraints.
|Resource management||Manages development process to ship product on time|
|Project management||Maintains the project schedule|
|Administrative services||Reports project status|
Goal: Build to specification.
|Technology consulting||Specifies features of the physical design|
|Application development||Builds features|
|Infrastructure development||Builds and prepares solution and environment for deployment|
|Test planning||Develops test strategy and plan|
|Test engineering||Conducts testing|
The team roles should scale. This means that for larger projects, teams can be split into feature teams...
..or, for smaller projets, roles can be combined:
Where P = possible, U = unlikely, and N = not.
All content copyright © Michael Wittenburg 1995 to 2021. All rights reserved.
Merch (t-shirts designed by my twin)