Какой у вас опыт работы по Agile?
Апрель 2018
Этот забавный вопрос приходится часто слышать на собеседованиях. Есть много способов задать его, но объединяет их
одно — использование слова "agile" в качестве существительного, а не прилагательного.
Когда собеседник использует слово "agile" как существительное, он навешивает вам на уши маркетинговую лапшу.
Уверен на сто процентов, что следом вы услышите слова "Scrum", "Kanban", "Sprint", "Daily meeting", "Backlog" и
"Product Owner". Эти термины не помогают гибко разрабатывать ПО, а только создают видимость гибкости.
Например, если вы используете Scrum или Kanban, но план разработки продукта расписан на полгода вперед — это
Waterfall. Вы не изменили свой процесс и продолжаете планировать все также далеко. Просто разбить огромный план на
маленькие кусочки недостаточно, гибкая разработка не про это. Через полгода окажется, что спланированные фичи никому
не нужны, проект не взлетел, а "Agile не работает".
Слово "agile" — это прилагательное, которое применяется к существительному "software development" или по-русски и
полностью "гибкая разработка программного обеспечения". Когда мы воспринимаем"agile" в качестве прилагательного,
сразу начинают закрадываться интересные вопросы вроде "Вот мы спланировали фичи на полгода вперед, а это
действительно гибко?"
На самом деле, использование "agile" в качестве прилагательного — просто хороший триггер, чтобы переключиться с
маркетинга на реальную разработку. Вся суть гибкой разработки ПО — это четыре ценности и двенадцать принципов.
Ценности:
- Люди и их взаимодействие важнее процессов и инструментов
- Рабочее ПО важнее исчерпывающей документации
- Сотрудничество с заказчиком важнее согласования условий контракта
- Реагирование на изменения важнее следования первоначальному плану
Если команде комфортно следить за задачами на пробковой доске, а ей насаждают использование Jira в качестве
удобного инструмента работы по Agile, нарушается первая ценность гибкой разработки ПО. Если менеджер фанатично пишет
документацию на каждую функциональность прежде чем отдать ее в разработку, нарушается вторая ценность.
Ценности и принципы неизменны, они важнее всего. Практики — ситуационны. При работе "по Agile" картина обратная:
практики используются как карго-культ, а ценности и принципы никого не интересуют. Так какой у меня опыт работы по
Agile? Я работал по Agile больше двух лет, но я ни дня не участвовал в гибкой разработке ПО.
Оригинал манифеста гибкой разработки программного обеспечения: http://agilemanifesto.org/