- Software Imposters
- Cargo Cult Software Engineering
- The Real Debate
Cargo Cult Software Engineering
At first glance, these two kinds of imposter organizations appear to be exact opposites. One is incredibly bureaucratic, and the other is incredibly chaotic. But one key similarity is actually more important than their superficial differences. Neither is very effective, and the reason is that neither understands what really makes its projects succeed or fail. They go through the motions of looking like effective organizations that are stylistically similar. But without any real understanding of why the practices work, they are essentially just sticking pieces of bamboo in their ears and hoping their projects will land safely. Many of their projects end up crashing because these are just two different varieties of cargo cult software engineering, similar in their lack of understanding of what makes software projects work.
Cargo cult software engineering is easy to identify. Cargo cult software engineers justify their practices by saying, “We've always done it this way in the past,” or “our company standards require us to do it this way”—even when the specific ways make no sense. They refuse to acknowledge the tradeoffs involved in either process-oriented or commitment-oriented development. Both have strengths and weaknesses. When presented with more effective new practices, cargo cult software engineers prefer to stay in their wooden huts of familiar and comfortable but not-necessarily-effective work habits. “Doing the same thing again and again and expecting different results is a sign of insanity,” the old saying goes. It's also a sign of cargo cult software engineering.