Сравнилось «Manifesto for Agile Development» со всеми Евангелиями. Текст один, но как-то толкуется по-разному…
Например:
- Люди важнее процесса
- Реакция на изменения важнее следования плану
- Работающий код важнее документации
- Сотрудничество важнее формальных отношений
Несомненно. Нерушим императив: «Найди подходящего человека, укажи задачу, дай ему спокойно работать».
Этот прикол может «не работать» из-за разногласий в методах достижения конечного результата, или из-за проблем с коммуникациями («Чем занимаешься? Почему не приходишь на работу вовремя? Почему не утвердил эти изменения у такого-то начальника?»).
Тем не менее, процесс должен быть всегда и везде. Хоть какой-то. Отрицать необходимость процесса, упирая на «люди важнее» — к несчастью в личной жизни. Или к дождю.
Верно следующее утверждение: если работник просит изменить процесс, то при рассмотрении этого дела приоритет будет у работника, а не у заведующего процессом.
Отрицать необходимость существования хоть какого-то плана — тоже ошибка юности, и несомненно — к дождю в личной жизни.
Просто надо знать, что планы корректируются по ходу дела. Ежеминутно.
Двое людей выезжают из пункта А в пункт Б. У первого есть план. У второго — нет. Второй — романтик… У кого больше шансов «доехать»?
Учитывая прогноз «к дождю», вероятнее всего — не доедут оба. Но у первого, как ни крути, больше шансов доехать, чем у того, кто просто жмет на педали, глядя на ромашки.
Ведь у первого есть хоть какие-то соображения по выбору пути и техническому оснащению. И если заблудится — он хотя бы знает, куда и зачем ехал. И если придется выбирать дорогу на перекрестках, или делать компромиссы — у него будет путеводная Альфа-Центавра, которую он никак не найдет на засыпанном звездами небе.
Вот если он заблудится, но будет тупо следовать плану…
Да.
Но это не значит, что документацию не надо писать 🙂
Если встает проблема «или делать код, или делать к нему документацию», то первый вариант приоритетнее — вот и всё.
Сперва подумай о том, что ты сам в какой-то момент начнешь путаться в «работающем коде».
Затем подумай о том, что когда-нибудь состав команды изменится. Кто-то уйдет, кто-то придет. Как быстро ввести новичка в курс дела?
Еще запланируй внезапную смерть главного «носителя» информации по проекту…
Документацию, все-таки, надо делать. «Agile» не означает, что можно проектировать и кодировать без сборника информации о том, что и как, по-меньшей мере, предполагалось делать.
Просто документация должна быть в этом случае менее формализованной и более доступной для изменения всеми участниками. Да, подразумевается грамотное использование wiki-систем.
Еще бы…