Copyright © 2009 Corvus International Inc. All Rights Reserved
Defend an area, ignore fakes, watch the quarterback,
go where the ball is headed, keep dropping back
and stay between the ball and the goal line
Pro Football Strategy
Communications of the ACM - Wireless networking security, 2003
One of the ways we try to improve our performance in software development is to better define our roles and responsibilities on our projects.
This is all well and good. It is hard to imagine how we can be optimally effective if people don't know what they are supposed to be doing. But much of software development is a discovery activity--we are acquiring knowledge we don't have. Sometimes we are acquiring knowledge we didn't know we didn't have but had to discover the need for the knowledge before we could could go on and discover the knowledge itself. This kind of discovery is dealing with Second Order Ignorance (2OI).
In this situation, we really don't know exactly how the project can be optimally structured, because we don't know exactly what we are looking for.
The classic structure of a software project owes as much to the military as it does to the needs or disciplines of software engineering, and sometimes the definition of roles and responsibilities accentuates this. Sometimes to the point of inhibiting the discovery activity.
This is the equivalent of a "man-to-man defense" in the sports world. The players have very specific and predetermined tasks that they know well, practice often, and adhere to rigorously. When projects are highly fluid, non-deterministic and unpredictable, agile, or have to adjust to changing situations, this might not be the best format. In sports, teams move to a "zone defense" in such situations.
In a "Zone Defense" project, the definition of the roles is more fluid and even driven. The people on the project must sign on to support each other and to back each other up when work loads change across previously designed boundaries.
There must be shared accountability too. But this accountability is not so much assigned as it is accepted. When someone is assigned responsibility, that person can hide behind the job description and, if something unexpected happens, simply say "well, that wasn't my job...".
When someone accepts responsibility, it means that the person will do whatever is within his or her power to ensure success, even if it is not their specific assigned task--if it is getting in the way of being successful.
It is a different paradigm and, as occurs on the football field and on the basketball court, where zone defense strategies are employed, it invariably means that the coach (read "manager") must give up some control and allow the players to respond to the changing situation in the most effective way they can. This is difficult for many managers to do, but is an imperative in modern projects.