There is a joke like this:
1. A programmer writes code he believes is bug-free.
2. Software testing finds 20 bugs.
3. The programmer fixes 10 bugs and tells the test team that the other 10 are not bugs.
4. The test team finds that 5 of the fixes don't work at all, and at the same time discovers 15 new bugs.
5. Repeat steps 3 and 4 three times.
6. Due to market pressure, and to match the overly optimistic release schedule originally set, the product finally went on sale.
7. Users find 137 new bugs.
8. The programmer, who already collected the project bonus, is nowhere to be found.
9. The newly formed project team fixes almost all 137 bugs, but then finds 456 new bugs.
10. The original programmer sends a postcard from Fiji to the test team, who are suffering from unpaid wages. The entire test team resigns en masse.
11. The company is maliciously acquired by a competitor. At the time of acquisition, the final version of the software contains 783 bugs.
12. A new CEO takes office. The company hires a new programmer to rewrite the software.
13. The programmer writes code he believes is bug-free.

If you ask me, if such a company really exists, not going bankrupt would be a disservice to the people.
This joke starts with a programmer, ends with a programmer, and blames programmers from beginning to end. But what I want to say is that this is entirely the failure of the managers—throughout the whole process, no management work can be seen at all. Such managers are not only ignorant and incompetent, but also shameless—shifting the responsibility for their own failure onto the programmers.
1. What qualifies the programmer to prove his code has no bugs? Are there test cases? Is there code review? Management is absent in this phase.
2. After testing found bugs, was any bug management done? Was there tracking? Management is absent in this phase.
3. What proves the programmer has actually fixed those 10 bugs? And why are the other 10 not bugs? Is the bug evaluation standard determined by the programmer's say-so? Management is absent in this phase.
4. Was anyone held accountable for the 5 bug fixes that didn't work? Adding new bugs is unavoidable during the modification process, but with an effective unit testing mechanism, this situation could be greatly reduced. Management is absent in this phase.
5. Iteration is normal, but the problems are diverging rather than converging, which shows there is no effective management control. Management is absent in this phase.
6. Both the overly optimistic schedule and the impossible deadline demonstrate the manager's ignorance and incompetence. Forcing the product out under such circumstances is nothing less than "the ignorant have no fear."
7. This is irresponsible to users, and the manager bears the greatest responsibility.
8. Being able to hand out project bonuses under such circumstances only shows that this manager is not ordinarily stupid.
9. There has been no improvement whatsoever in management work, and the problems remain in a state of divergent iteration. Management is still not in place.
10. Withholding the test department's wages reflects the manager's neglect of quality management and total ignorance of human resource management.
11. Two words for the acquired company: serves you right. Two words for the acquirer: blind.
12. It is clear that the new manager and the original manager are six of one and half a dozen of the other—neither recognizes the root of the problem. But then again, only such a manager would make the decision to acquire this kind of company.
13. The repetition of history is inevitable.
For a normal enterprise or project, its operation must proceed in an upward cycle. The work that guarantees such operation is management. And the main content of management is control, including controlling the pace of the cycle—neither too fast nor too slow; controlling the direction of development—only upward, never downward; and controlling the stability of operations—no dramatic ups and downs, no gathering and dispersing on a whim.
And none of this can be seen in this example.
In the example in this joke, everything is driven by development work, which is first of all a directional error. A product serves users, so of course it should be driven by users and the market, and the focus of work should ultimately be set in combination with one's own capabilities. This error reflects that the manager does not understand what he manages very well, so he can only be at the mercy of the programmers who understand it better—and in fact, apart from technology, they don't understand much more.
If a manager does not understand what he manages, he cannot manage it well.
This is beyond doubt, yet the domestic software industry always seems unwilling to believe it. One of the most deeply entrenched lies in the Chinese software industry is: a manager only needs to understand management, not technology.
In fact, this is simply fabricated by those ignorant, incompetent, and shameless managers in order to cheat money. Those who believe this will inevitably pay the price in money.
Second is quality management. Basic common sense in quality management tells us that before each cycle ends, the most important task is to summarize and improve. Only in this way can we ensure that the cyclic operation develops upward, rather than developing out of control and downward. Only with effective quality management can we ensure that the iteration process converges and ultimately reaches its goal. But in this example, this part is clearly absent—although there is a testing department, its role is merely the quality inspection stage of quality management; the management part is still missing.
Then there is human resource management. Software development is labor-intensive work; although it is mental labor, it equally means that the human factor holds a decisive position in it. In the example, the programmer who didn't finish fixing the bugs received the project bonus, while the equally hard-working testers had their wages withheld. This not only shows the manager's lack of understanding of their work and his disregard for quality management, but also shows that he is completely incapable of managing people. This is an act of team murder—murdering a team is far easier than building one.
Finally, this failed manager turned his experience into this joke, letting everyone see how badly he was victimized by the programmers and demonizing programmers as a group of liars. But anyone with even a little management knowledge can see with a simple analysis that it was only this person's ignorance and incompetence that led to his current situation, and his behavior of shifting the blame onto others further shows his shamelessness. As managers in high positions, if they even shirk the responsibilities they should bear, what else are they competent for?
Source: http://blog.csdn.net/raptor/article/details/727299