Inadequate requirements from the Client: if the requirements given by the client is not clear, unfinished and not testable, then problems may come.
Unrealistic schedules: Sometimes too much of work is being given to the developer and ask him to complete in a Short duration, then the problems are unavoidable.
Insufficient testing: The problems can arise when the developed software is not tested properly.
Given another work under the existing process: request from the higher management to work on another project or task will bring some problems when the project is being tested as a team.
Miscommunication: in some cases, the developer was not informed about the Clients requirement and expectations, so there can be deviations.