Tue, 12/18/01
During my three years as director of a software project, I learned a lot about
people. In fact, I have a little text file entitled “My life as a dog” that may
find a home on this site one day. However, because of a thread on the
Windows Technical Off Topic list, one of the things I learned came
roaring back like a bad acid trip.
The #1 problem with any organization is always communication. You can do
postmortems on projects all day long and only #2 and above will be a surprise.
The problem is that to build anything of any size, you need a team. As soon as
you have to communicate what’s in your head to some number of other people,
it’s going to happen imperfectly. The best way that we’ve been able to come up
with to deal with this issue is hierarchical structures to practice selective
information hiding, i.e. exactly the way we build software.
However, unlike software, humans have feelings and as soon as they perceive
that somebody is hiding something from them, they resent it. Again and again,
when I see information withheld to hide “bad” news, those being hidden from
know something is up and they get upset. And when they’re upset, they send
emails and IMs and phone calls around the company looking for every scrap of
information they can find, all the while ignoring the work that suddenly seems
a waste of time in the face of impending doom. The surprising thing is that
when folks are given the truth openly and honestly, no matter how bad it is,
they almost always dig in and deal with it. Just knowing that they’re trusted
with the secrets of the company seems to boost morale.
I’m not saying that everyone needs to post their daily activities for everyone
to see — that’s too much information. But I am saying that everyone from the
CEO on down should be open about the issues they face, including being open to
scrutiny and suggestions. I find that after doing that long enough, folks
working for me tend to trust me to make the right decisions, leaving them to
focus on their own work.
The key is that, unlike software systems where components have information
hidden from them by their clients, humans can only be effective if they know
that the information is available when they want it. Information hiding still
needs to happen, but it’s humans that need to choose to hide information from
themselves. It whole thing falls apart if the managers do the hiding.