Я думаю, что это правда, в некоторых средах Agile используется как оправдание для отсутствия дисциплины. Реальная проблема в том, что мы потеряли из виду, почему у нас есть какая-то методология. Лично я считаю, что методология является архитектурной проблемой в том смысле, что архитектура системы должна учитывать нефункциональные, качественные атрибуты, а методология должна учитывать некоторые из тех же атрибутов (ремонтопригодность, производительность разработки, передача знаний, и другие.)
Рассмотрение методологии как элемента управления атрибутами процесса подразумевает несколько вещей: 1) без метрик мы не можем сравнивать эффективность одной методологии с другой, 2) необходимо принять активное решение о том, какие атрибуты важны (время доставки и код качество против передачи знаний).
Не имея ни метрик, ни ощутимой цели, мы просто выбираем методологию в качестве нашего «волшебного пера», которая, если мы будем держаться крепко, мы сможем поставить программное обеспечение.
Теперь те, кто говорит «Agile», «XP», «Scrum» и т. Д., Говорят о хрупкости этой конкретной категории методологий. Аргумент таков: зачем использовать методологию, которая может саботироваться одним человеком, которому не хватает дисциплины, чтобы следовать всем правилам? Вопрос верный; однако, это симптом, а не причина. Если точный и значимый (это сложная часть) набор метрик процесса будет определен, проверен и получит своевременную обратную связь, учитывая, что, я думаю, мы обнаружим, что конкретная методология имеет мало общего с успехом. (Кстати, я видел успешные проекты, использующие множество методологий, и вдвое больше неудачников используют одни и те же методологии)
Так, каковы метрики? Они варьируются от проекта к проекту, от команды к команде и время от времени. Полезно для тех случаев, когда важен график доставки, и я лично использовал оценку навыков и качества. Большинство разработчиков могут точно оценить задачи, которые длятся неделю или меньше. Таким образом, один из подходов состоит в том, чтобы разделить проект на задачи на одну неделю разработки и отследить, кто сделал оценку. По мере продвижения проекта они могут менять свои оценки. После завершения задачи, если ее отключение более чем на 10% (1/2 дня), мы рассматриваем это так же, как ошибку - мы определяем, почему оценка была отклонена (то есть таблица базы данных не учитывалась), идентифицируем корректирующее действие (то есть привлечение администратора базы данных к оценке), а затем двигаться дальше. Используя эту информацию, мы можем создать такие показатели, как количество ошибок оценки в неделю, количество ошибок на разработчика,
И что? В этот момент появляются методологии - если у вас есть прогностическая модель, которая не соответствует качествам процесса, вы можете добавить или удалить некоторые аспекты методологии и посмотреть, как она влияет на вашу модель. Конечно, никто не хочет играть с процессом разработки из-за страха провала, но мы уже терпим неудачу с неизменно высокой и предсказуемой скоростью. Внося индивидуальные изменения и измеряя результат, вы можете обнаружить, что Agile является идеальной методологией для вашей команды, но вы также можете легко найти RUP, водопад или просто набор лучших практик, которые будут идеальными.
Поэтому я предлагаю перестать беспокоиться о том, что мы называем процессом, провести проверки, которые соответствуют нашим целям процесса разработки, и поэкспериментировать с различными методами для улучшения этого процесса.