Обучите клиента . Жаль, что я не один из ваших клиентов;)
Серьезно, я понимаю, что у вас проблемы, и вы думаете, что проблема в клиенте. Может быть, это так, но это не имеет значения. Изменить ваших клиентов действительно сложно, а изменить способ работы с ними намного проще.
Проблема в том, что большинство клиентов не знают о всех последствиях разработки программного обеспечения, а вы не знаете их бизнеса в деталях.
Только одна маленькая вещь:
Изменения не являются проблемой в любое время проекта
«Независимо от того, как далеко вы пошли по неправильной дороге, поверните назад». Турецкая пословица
Мне нравится эта пословица, поэтому, когда я могу ее использовать, я счастлив. Спасибо за возможность;)
Вот несколько решений:
Вы должны предоставить клиенту возможность изменить свое мнение, потому что это поможет ему получить правильное программное обеспечение, которое действительно соответствует его потребностям. Он в конечном итоге получит больше идей, пока вы будете его развивать.
У вас договор с фиксированной ценой, так что, я думаю, вам нужно было собрать требования, оценить их и назначить цену для каждого?
Если вам нужно построить что-то новое, используйте тот же процесс: вы вносите в контракт с фиксированной ценой дополнительные требования. Подтвердите удаление требований, которые будут бесполезны (конечно, вы их еще не создали).
Другой подход состоял бы в том, чтобы завершить то, что было обсуждено (менее бесполезные и не разработанные требования), как версию 1, и обсудить версию 2 с ее новыми идеями.
Второе решение - создать итерацию в разработке, как в Scrum . У меня пока нет опыта работы с проектами с фиксированной ценой (потому что я больше не занимаюсь проектами с фиксированной ценой), поэтому я не знаю, работает это или нет. Я серьезно сомневаюсь, что Scrum (или Agile ) - это решение для всех проектов разработки программного обеспечения, но, возможно, некоторые из описанных методов помогут вам.