This is one of the most beautiful explanations I have found on the web on why projects fail. Projects doesn't necessarily be software, but in software due to reduced visibility of output until later stages, combined with developer's isolation into sanctum sanctorum of their cubicles or offshore development centers, lead to this huge gap in understanding of the end user's wishes. Thanks to projectcartoon.com/ for the nice graphics.
1. This is how the customer explained it
2. This is how the project leader understood it.
3. This is how the analyst designed it
4. This is how the programmer wrote it
5. This is what the beta testers received
6. This is how the business consultant described it
7. This is how the project was documented
8. This is how the operations installed
9.This is how the customer was billed
10. This is how it was supported
11. Marketing advertised it as iSwing
12. But this what the customer really needed
This is a classic and pretty popular cartoon explaining the loss of knowledge at each level of translation. I suggest to have at-least one person who understands the entire project, both the business side and technology side. If you don't have one, please don't start the project in the first place than than wasting resources.
Additional reading on this topic:
Business Balls: This post explains the history of this cartoon and its evolution over time.
Taming Data: Explains difference sides of this cartoon and various modifications based on applications.