|Do you know where your variables are?|
Re: Programming is combatby tilly (Archbishop)
|on Jul 09, 2004 at 18:56 UTC||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.It is funny because it is true. It is true because of how information is systemically distorted moving up a hierarchy.