1. poor requirements - if requirements are unclear, incomplete, too general, or not testable, there will be problems.
2. unrealistic schedule - if too much work is crammed in too little time, problems are inevitable.
3. inadequate testing - no one will know whether or not the program is any good until the customer complains or systems crash.
4. featuritis - requests to pile on new features after development is underway; extremely common.
5. miscommunication - if developers don't know what's needed or customer's have erroneous expectations, problems are guaranteed.
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/11379785/viewspace-701438/,如需转载,请注明出处,否则将追究法律责任。