Самый большой недостаток гибкой разработки, которую я испытал, заключается в том, что люди, не участвующие в разработке, фокусируются на мантре о том, что пользовательская история (3-10 идеальных человеко-дней) не должна содержать более 1-3 предложений, таких как:
Как клиент, я могу использовать свободный текстовый поиск, чтобы найти нужные мне товары.
Давая это предложение, руководители проектов ожидают, что я, как разработчик, возьму на себя оценку и разработаю историю. Они предполагают, что гибкая разработка означает, что подобные предложения - это все, что они должны предоставить разработчикам.
Я не буду винить их, потому что известная литература о гибкой разработке создает впечатление, что это действительно сработает. Я прочитал что-то вроде 2 страниц на естественном языке за рассказ в «Planning XP», но это все. Поскольку «рабочее программное обеспечение» предпочтительнее «всеобъемлющей документации», эта тема, как правило, избегается.
Конечно, реальность такова, что, если разработчику предоставляется такая возможность, интервью с клиентом поднимает длинный список требований, которые клиент предъявляет к истории:
- Нам нужны логические операторы, такие как AND и OR.
- Нам нужен нечеткий поиск по всем терминам.
- Нам нужно искать по отдельным словам, а также по фразе.
- Мы не хотим находить продукты, которые соответствуют критериям X, Y и Z.
- Мы хотим отсортировать результат. Да, и, кстати, пользователь может выбрать критерии сортировки в комбинированном окне с параметрами a, b и c.
Итак, вы видите, что я не говорю о технических деталях, дизайне программного обеспечения или даже деталях реализации. Это чистые требования. Чем дольше мы говорим, тем больше клиент понимает, что на самом деле очень много можно сказать о том, что он хочет.
Но достаточно часто я нахожусь в ситуации, когда такая информация не предоставляется или очень дрянной. Не возможно, что я даю интервью, и человек, который был бы в состоянии дать интервью, не дает мне результата.
Иногда менеджеры даже придумывают технические детали, такие как «мы хотим, чтобы Lucene search», но они не хотят думать о том, хотят ли они найти только названия продуктов или описания продуктов. Иногда я думаю, что они просто ленивы;)
Для меня это главная проблема в проектах, в которых я работаю (веб-приложение для электронного бизнеса, 500-2000 человеко-дней на проект). Я достаточно часто решаю эту проблему, и руководители знают, что у большинства разработчиков есть проблемы с ситуацией. Но они считают, что разработчики слишком много «перфекционистов». Кажется, они раздражены тем, что разработчики «всегда хотят, чтобы все было указано».
Из-за отсутствия общепризнанных цифр трудно спорить. Все знают, какой длины должна быть итерация. Но никто не может сказать, сколько требуется требований, чтобы оценить и разработать историю.
У вас есть какая-то ссылка?