LackOfAccountability                                                                                        

Some aspects of a project have many contributors, some none, and we don't know who is responsible for these

Description

Some aspects of a project have many contributors, some none, and we don't know who is responsible for these.  Where things go wrong or get omitted, who is at fault?  Where things go right or better than expectations, who has earned the praise?

Discussion

There are two chief variants on the question of accountability.  Individual ownership, responsibility and accountability is one approach; collective ownership, responsibility and accountability is an alternative.  There will be variants, mix-and-match, etc. of these, but ownership and accountability tend to go together – how can one hold anyone accountable for that which they do not control?

Prevention, Amelioration, Cure

Traditional

Traditional approaches go for single owner, with the owner being accountable.  There are different ways of splitting things up for ownership.  Problems in doing this effectively parallel the problems of organization (see InappropriateOrganization).  An overall approach is having an OwnerPerDeliverable.  However, this leads to some clashes of ownership, dealt with in FunctionOwnerAndComponentOwner.

Modern

The desire to address the cost of change in response to changing requirements leads modern agile approaches to adopt ConstantRefactoring.  One of its supporting techniques is CollectiveOwnership.   With this comes collective accountability, though agile approaches don’t seek to apportion blame so accountability is less important.  Collective responsibility is a more relevant concept.  In XP, if all developers stick to the rules, then things should not go wrong.  Unit tests are written first in TestDrivenDevelopment.  The functionality is added and tested against AcceptanceTests written by the customer.  The structure of the code is refactored where the rules say it should be.  All this is peer reviewed by DevelopingInPairs.  Each team member needs to keep in mind that it is his responsibility to detect and correct problems when ownership is shared.  Ideally, with several people looking for problems, more should be detected than where only one person is looking.  However, one needs to beware the attitude that “If I don’t do it, someone else will”.