September 5th, 2007

Whenever there is a coordination problem, somebody says, "Hey, let's create a process!"

Whenever there is a coordination problem, somebody says, “Hey, let’s create a process.” Now you have two coordination problems. I see this over and over, and paradoxically the people who create a process for managing a coordinating problem come off looking like proactive problem-solvers who get ahead of the problem. They’re the go-getters, the people who look at each problem as an opportunity for continuous improvement. All that great management buzzword stuff. It doesn’t matter whether or not the process actually works, because failure is an orphan, and besides, nobody follows up a year later to see whether your process actually improved things or whether it was abandoned six weeks after roll-out. You get the credit for proposing the process in the first place. Consider this problem at a hypothetical toy company: Some rumors have started that one of their toy cars is dangerous because of a wiring flaw that can result in excessive heat and possible fire. (It doesn’t matter what the crisis is. I just made up something vaguely plausible.) Employees all over the company are getting email from their relatives asking about the toys, but the employees don’t know what the story is either. Presumably, the safety department is investigating the problem and providing guidance to the PR and marketing departments so they can prepare a public response, and if there really is a problem, they’re working with the product recall team to organize how the recall will be carried out, and they’re working with the product engineering team to figure out what changes need to be made to the product to avoid the problem. In other words, the safety department is up to their ears in crisis. A employee from the dolls department, whose brother asked him about this toy car problem, can’t find any information on the status of this issue and sends email to the “Employee Issues” alias, and a dozen people chime in with “Yes, please, we would like this information, I want to know what I can tell my brother and everybody else who is asking me about it. I might even post it on my blog so I can try to counteract some of the out-of-control rumors that are out there.” A half hour later, somebody from the safety department responds, “Yes, we know about this, we’re working on it. Please don’t say anything publicly since we’re still investigating.” Somebody watching the saga unfold proposes a process by which employees can be kept up to date on the status of these types of emergent crises.

  • Create an internal web site that contains a list of all current emergencies at the company, their status, what information is speculation and what information is solid, which pieces of that information can be revealed to the public, and recommended phrasing for the information when it is revealed.
  • Whenever there is an emergency, the people responsible for responding to the emergency update the web site with the status of the investigation and the other information listed above.

This is the wrong solution to the problem. The reason why this is the wrong solution is that it suffers from the classic “Create work for somebody else” problem. The people who benefit from this site are not the same people who would make the site useful. This doesn’t give the people who make the site useful much incentive to do so. They’re busy dealing with the emergency. They don’t want to waste the time of one of their valuable investigators to do “internal PR”. This scenario repeats itself on a less dramatic scale with various types of inter-group coordination problems. One group wants to be kept advised of the progress of another group for whatever reason. But if the second group doesn’t need the first group for anything, they have no incentive to keep the first group informed. For example, suppose the first team provides an interface that the second team uses, and the first team decides that they need to redesign the interface for whatever reason. During the transition, the first team provides both interfaces so that the second team can transition from the old to the new, with the request that the second team let them know when they have finished transitioning to the new interface so they can remove support for the old one. Unless the first team keeps on top of things, the second team will probably forget to tell the first team when they have completed the transition, or they may even forget to transition to the new interface at all! After all, the old interface still works.

In this case, the traditional way of making the second team care is to file a bug against them saying, “Stop using the old interface.” That way, it shows up in their bug statistics as a reminder, and when they actually do the work, they can resolve the bug back to the first team. But you can imagine a scenario where the information the first team wants is more of a continuous nature rather than a single event. (Since bugs track single events.)

Author

Raymond has been involved in the evolution of Windows for more than 30 years. In 2003, he began a Web site known as The Old New Thing which has grown in popularity far beyond his wildest imagination, a development which still gives him the heebie-jeebies. The Web site spawned a book, coincidentally also titled The Old New Thing (Addison Wesley 2007). He occasionally appears on the Windows Dev Docs Twitter account to tell stories which convey no useful information.

0 comments

Discussion are closed.