The most successful projects, software or otherwise, are the ones where everyone has a good idea of what they're doing and why. A healthy organization communicates its goals, successes and failures, and has well-informed employees.
A really good illustration of the importance of communication is given by Nobel-winning physicist Richard Feynman in his lecture Los Alamos From Below . (This lecture is also a chapter in his very entertaining autobiography, Surely You're Joking, Mr. Feynman .) During the second world war, Feynman was part of the Manhattan Project, building an atomic bomb in Los Alamos, New Mexico. This was a top-secret project, but it employed a number of civilians who were not in on the details.
One day, Feynman was doing some work around the civilian area, and he noticed that some explosive materials were being handled in a very casual way. He realized that there could be a dangerous accident unless the personnel got proper training. When the army finally agreed to allow Feynman to train them, there was also an enormous improvement in productivity. "We're trying to develop an important weapon before they do? Why didn't you tell us?" All kinds of new ideas started pouring in. And of course, the immediate danger was avoided.
Sometimes it's really easy for a manager or a business person to tell a programmer "I need a program to do X and I need it Thursday", without explaining why X, and how X fits into the larger picture. This has several risks:
1. By not discussing it, no one ever thinks of Y, which would be much better for the organization. Opportunity lost.
2. Eventually, someone will think of Y and insist that it be done. At that point, much of the effort on X was a waste of resources.
3. The programmer might be diverted from working on a new release which could easily have incorporated X. Would it have been better to wait and not need a retrofit?
And finally, the programmer doesn't feel valued. When employees believe that management just leads them around, often changing course and reversing earlier decisions, it's easy to feel that it's just a job, just a paycheck, no thought necessary, why bother. People stagnate.
I recently attended a project management seminar where the speaker said teams that communicate well are 43% more productive. I'm not sure how you measure that, but it's an enormous number. Isn't it worth a few minutes to really discuss what you're doing?