a. Poor requirements � if requirements are unclear, incomplete, too general, or not testable, there will be problems b. Unrealistic schedule � if too much work is crammed in too little time, problems are inevitable c. Inadequate testing � no one will know whether or not the program is any good until the customer complains or systems crash d. Featuritic � requests to pile on new features after development is underway; extremely common e. Miscommunication - if developers don't know what is needed or customers have erroneous expectations, problems are guaranteed |