Responsibility Without Authority

An AntiPattern. An individual is given responsibility for a task (it's his head if the task screws up), but lacks the authority to see it to completion. Often occurs as a side effect of someone seeking (and getting) AuthorityWithoutResponsibility.

MicroManagement, or the ChiefSoftwareArchitect, bestows Responsibility upon underlings, without giving them the Authority to give the orders that will help them do their job.


I'm looking for a good citation. The eXtremos use this term all the time...


This is an ownership thing.


The classic case is the poor beleagured ProgramManager, especially in organizations with MatrixManagement. Program mangers are held responsible for the success or failure of the projects they manage; however they frequently have to jump through hoops and kiss rings to get the job done. Business managers may withhold funding -- even funding budgeted to the project -- and other functional managers will often impose barriers (in the form of functional policies) which can slow down the program's development.

Another classic case -- mentioned above -- is when software is separated into "design" and "implementation" tasks, with an architect in charge of design and the GruntProgrammers in charge of implementation. The project may fail due to a poorly-designed architecture, but often times it's the grunts who get blamed for failing to properly realize the architect's vision. MythicalManMonth had plenty to say about this...

Note that what is being described here isn't proper separation of duties, it's "run and hide." A proper development team has an architect, sure, and engineers, sure, and maybe even grunt programmers, sure. However, none of these people exist in a vacuum. The architect is responsible for creating a system architecture that expresses solutions for all of the product requirements as specified. The engineers are responsible for designing the components of the system that fulfill the needs of the architecture. The programmers are responsible for implementing the designed components.

Trying to push off one party's responsibility on to another party isn't playing ball. Engineering management is supposed to watch out for this kind of thing and put people back on track if it starts to happen. Development team members must all know their role and the limits of both their responsibility and authority.

I had a captive job once where the engineering manager brought in a consultant to develop the internal database to an embedded product (a bank teller machine). I was responsible for developing the entire rest of the box, including all the printer and video hardware control, the (international, graphical) font management, security features, yada yada. Well and good. I was isolated from the database stuff and only saw what the consultant brought in to demonstrate. We never integrated his work into mine.

Anyway, the consultant wasn't really that good at his job, and was continuously falling behind schedule on both delivery and functionality. My boss was on me about getting on the consultant to keep up. I asked my boss if he wanted me to "manage" the project so that I could know and track the consultant's work. My boss never answered that question and a couple weeks later that consultant was gone. (They got another one.) A few months later I was laid off. A year later the company went under.

Whose responsibility was that?


See: DeveloperBillOfRights

CategoryAntiPattern


EditText of this page (last edited May 25, 2011) or FindPage with title or text search