Beefy Boxes and Bandwidth Generously Provided by pair Networks
P is for Practical
 
PerlMonks  

Comment on

( #3333=superdoc: print w/ replies, xml ) Need Help??
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.

In reply to Re: Programming is combat by tilly
in thread Programming is combat by brian_d_foy

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post; it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • Outside of code tags, you may need to use entities for some characters:
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.
  • Log In?
    Username:
    Password:

    What's my password?
    Create A New User
    Chatterbox?
    and the web crawler heard nothing...

    How do I use this? | Other CB clients
    Other Users?
    Others musing on the Monastery: (4)
    As of 2014-09-21 10:50 GMT
    Sections?
    Information?
    Find Nodes?
    Leftovers?
      Voting Booth?

      How do you remember the number of days in each month?











      Results (168 votes), past polls