Responsibility and Collaboration


In every organization I have been a part of, some aspect of the operation has become the role of every member of a group to maintain. This could be the documentation about an API usages, creating a new branch for a release, writing acceptance criteria on tickets, reviewing code for pull requests, and many other tasks. These items are deemed important enough for us to believe in them as an organization, but our implementation usually leaves them incomplete or unmanaged, because they lack ownership.

To ensure that the proper focus is put on important tasks, we must make those tasks the responsibility of an individual. Once we have given the focus of a task to a single individual, they will spend their time making sure that the appropriate parties are performing the task. This does not mean that one person must now complete the task all by themselves, or that one person is accountable for the tasks. Rather, this just means that one person is actually focused on making sure that the task is being completed.

We are not trying to end collaborative efforts by assigning roles and duties to individuals anymore than assigning developers to tickets ends the collaboration in engineering. A developer often finds help in conversation, pairing, white boarding with a colleague, and many other collaborative efforts even so far as taking commits on their code from other developers. Assigning a role does not end this collaboration, it merely defines an interface for completing the work and an owner for that interface.

If there is anything important in your organization, make it the job of an individual. Do this even for tasks that need to be completed by a number of individuals across disciplines. Without an individual owner, everyone’s job becomes no one’s job.