Основною причиною вашого розчарування ситуацією, ймовірно, є сприйняття та введення в оману / неправильні терміни, які використовує замовник. Замовник зазвичай не звертається до вас із переліком вимог , але список бажань щодо кожної речі, про яку він міркує, може бути їм корисним. Це не всі вимоги, оскільки замовник ще не витратив час, аби подумати, чи справді потрібна кожна функція .
Це не обов'язково завжди є проблемою
Якщо у вашого замовника є гроші на всі ці функції і він готовий розлучитися з ним, і вам не дуже важливо вирішувати реальні, реальні проблеми, які має клієнт, то це може бути дуже прибутковим проектом. Це трапляється дуже просто, дуже рідко, і для більшості розробників це вбивство душі, тому що ви можете заздалегідь відчути, що проект не буде успішним для замовника врешті-решт (навіть якщо він фінансово успішний для вас як розробника). Це також є високим рівнем ризику, оскільки ви, ймовірно, закінчите проект із фіксованою вартістю з великою невизначеністю, і це дійсно важливо неправильно оцінювати ризик для великих проектів.
Що робити, якщо це проблема?
Давайте припустимо, що ви не в такій рідкісній ситуації. У цьому випадку ви хочете вирішити два основних недоліки у списку побажань, як це наведено:
- Навряд чи замовник має правильне уявлення про витрати на розробку такого великого переліку вимог, тому навряд чи ви отримаєте контракт на ту суму грошей, яка вам насправді потрібна для цього.
- Навряд чи цей список побажань точно і коротко описує справжню проблему, яку має і хоче вирішити замовник.
На мій досвід, вам потрібно вирішити проблему 2, щоб виправити 1. Перехід до реальної проблеми означає, що ви, розробник, тепер маєте необхідний внесок для творчих стрибків у вирішенні проблеми способами, про які сам замовник ніколи не думав. Ці рішення, ймовірно, будуть значно дешевшими та швидшими, ніж реалізація повного списку бажань.
Як це виправити?
Як каже Меттью Флінн у своїй відповіді - почніть з того, щоб клієнт визначив пріоритет з вимогами. Це не завжди просто, але змушуйте їх це робити. За потреби скористайтеся фразою "Якби хтось тримав пістолет до голови, яку єдину вимогу ви б зберегли?". Під час цього процесу ви часто виявляєте, що клієнт насправді не має дуже чіткого уявлення про те, що означають індивідуальні вимоги. У такому випадку зробіть те, що пропонує Пітер Роуелл, і змусьте клієнта працювати над Історіями користувачів. Ви та замовник почнете розуміти проблему та вимоги набагато краще, і тоді ви можете повернутися до визначення пріоритетів. Повторіть ці дії так часто, як вам потрібно, поки ви не відчуєте себе комфортно, що знаєте достатньо, щоб вирішити проблему замовника .
Як це відповідає на питання розробки рішення?
Після того, як у вас є пріоритетний перелік вимог, ви маєте ввести необхідний внесок, щоб запропонувати клієнту процес поступового розвитку. Не потрібно називати це Agile, але ви можете запропонувати розбити договір на менші шматки для кожної вимоги (або нероздільний набір вимог) та доставити їх по черзі з підтвердженням замовника. Або ви можете розібратися та скористатися багатьма ресурсами, доступними в Інтернеті та офлайн, щоб переконати замовника, що їм в інтересах співпрацювати в одному з стильних стилів розвитку. У будь-якому випадку ви можете надати свою контрактну / проектну пропозицію у формі, яка чітко пропонує ці складові вимоги у пріоритетному порядку, кожна зі своєю власною вартістю та висновком. Тримайте цю моркву перед замовником,