http://www.perlmonks.org?node_id=373232


in reply to Programming is combat

To some extent there are bound to be parallels because programming and the military both have to do with how people work.

That said, to me the most interesting organizational issues around programming are ways in which programming should differ from what you see in hierarchical institutions, like the military stereotypically is. (In reality the military varies, but the stereotype...)

An example of such an issue is the inevitable element of CYA. When you have a lot of hierarchy, inevitably when something goes wrong, someone tends to get blamed and take the fall. When people worry about that, you get a whole series of communication barriers. People in positions of power do not wish to hear bad news, subordinates do not want to present bad news, and nobody wants to admit to mistakes because they don't want to possibly take the fall when things go wrong. But if you don't admit to mistakes, then you can't get feedback and learn. If bad news doesn't move up the hierarchy while good news does, then there is always a serious reality disconnect at the top of the hierarchy.

One result of this effect was documented back in The Mythical Man-Month. In a project that ultimately comes in ahead of schedule, through the project the estimate of when it will finish keeps on moving forwards. By contrast a project that will come in late has a schedule that does not budge until 2 weeks before the due date - and then it stays "just 2 weeks away" until it is done. Even if it ultimately takes double or more what it was originally scheduled to do. Which is part of why deathmarches turn into such grueling and long sprints - people started thinking that they only had to push for 2 weeks and then it dragged on.

This phenomena is why it is so important to do project planning with 100% milestones - things that cannot be miscommunicated up and down the hierarchy. It is also why the best leaders (as documented in Good to Great and elsewhere) actively seek out bad news because they know that it won't rise to the top naturally.

For a memorable reminder of this phenomena, just remember how shit happens:

In the beginning was the plan.
And then came the assumptions.
And the plan was without substance.
And the assumptions were without form.
And darkness was upon the face of the workers.
And they spoke among themselves saying "It is a crock of shit, and it stinks".
And the workers went unto their Supervisors and said "It is a pail of dung, and none may abide the odour thereof".
And the supervisors went unto their Managers, saying, "it is a container of excrement, and it is very strong, such that none may abide by it".
And the managers went to their Directors, saying "It is a vessel of fertilizer, and none may abide by its strength".
And the Directors spoke among themselves saying to one another, "it contains that which aids plant growth, and it is very strong".
And the directors went to the vice presidents saying unto them, "it promotes growth, and is very powerful".
The vice presidents went unto the president, saying unto him, "this new plan will actively promote the growth and vigour of the company, with powerful effects".
And the president looked upon the plan and saw that it was good.
And the plan became policy.
And that is how shit happens.
It is funny because it is true. It is true because of how information is systemically distorted moving up a hierarchy.

Replies are listed 'Best First'.
Re^2: Programming is combat
by bluto (Curate) on Jul 09, 2004 at 21:05 UTC
    It is funny because it is true. It is true because of how information is systemically distorted moving up a hierarchy.

    Up, down, or sideways, GIGO works in all directions, even with non-managers. World views that differ from the information source tend to add garbage into the information stream.

    I suppose it's just most noticable since managers' world views tend to differ radically from most sane people (e.g. distrust bad results; go non-linear if it really turns out to be bad). Where I work I see a lot of distempered stuff come down from high above, which I suppose had some rational intent at the beginning. Lukily, by the time it gets to my level it is so badly distorted there is nothing left to implement...