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/，如需转载，请注明出处，否则将追究法律责任。