Сорваны сроки. Я в данном случае компенсировал моральный ущерб заказчику либо скидкой на работу (5–30% при средних или больших суммах, и до 100% при мелких работах), либо дополнительными работами (ещё один модуль в рамках оговоренного бюджета сделать и т. д.). В последнее время я стал практиковать ввод штрафных санкций за срыв сроков как для себя, так и для клиента (приемка работ, предоставление материала). Клиенты охотно идут на это, теперь стимул работать по срокам есть как у меня, так и у заказчика.
Неправильная оценка сроков. В данном случае нельзя утаивать от клиента эту проблему. Это также случается в разработке, но не часто. В таких случаях я объяснял клиенту, что выявлены такие-то сложные моменты, время разработки значительно увеличивается. Либо режем функционал, либо увеличиваем бюджет. Слава Богу, работаю я с адекватными людьми, поэтому либо пересматривали бюджет, либо мирно расходились (если заказчик не готов был увеличить бюджет). А так как проблема была моя (я неправильно оценил сроки), то я предлагал отдать проделанную работу либо бесплатно, либо получить частичное вознаграждение — на усмотрение заказчика.
В общем, в любом случае, общаться с клиентом нужно по-человечески, ставить себя на их место, и тогда тебе тем же отвечают.