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