Agile в “Весне”
Однажды, собравшись с духом, мы решили что пора внедрять гибкие методологии в разработку проектов. Это был уже далёкий 2011-й год.
Я даже выступал на конференции IMIX в надежде популяризировать идёю использования её в других компаниях, а так же рассказать подробнее о ней для потенциальных заказчиков. (Презентация на IMIX 2011)
Прошло уже 5 лет с тех пор, а внедрить scrum в разработку сайтов так и не вышло. И причин тому несколько.
Я не буду вдаваться в тонкости scrum-а, хочу лишь поделиться некоторыми наблюдениями из личной практики. Коснусь с основном командного фактора.
Внедрять scrum в разработку сайтов изначально было авантюрой, но хотелось новых шагов и свершений.
Сложности внедрения Scrum
Первое и пожалуй самое главное это то, что scrum невозможно навязать команде. Команда должна сама захотеть и внедрить scrum в свой “разработческий быт”, нужно лишь всячески помогать и культивировать интерес.
Scrum называют методологией управления проектами, что подразумевает что это метод для управления проектами. Примени её к своей команде и она будет работать. Я бы назвал scrum состоянием команды, команда либо работает в режиме scrum-а, либо противится ему.
Пять лет назад я с оптимизмом смотрел вперёд и был готов слепо идти напролов внедряя Scrum. Но сейчас я пожалуй прокомментирую слайд из презентации с положительными сторонами Scrum-а. (плохих я тогда не видел)
Вовлечённость команды – вовлечь просто, сложно не потерять интерес
Рост команды – Рост обусловлен свободой выбора, убери свободу выбора и все усилия сойдёт на нет
Скорость реализации – И да и нет. Обсуждение задач позволяет реализовывать более фундаментальные части (MVP) но обычно принцип “ну работает же” когда забыли предусмотреть что то на будущее только вредит и отдаляет членов команды
Поток идей – Да, в самом начале. Позже лишь при условии личных интересов к проеку (самореализация, амбиции и прочее)
Быстрое реагирование на изменения – Казалось бы это основное преимущество scrum-а, но не тут то было. Без чёткого и выдержанного плана только расшатывает и дёргает команду в сторону распыляя её эффективность
Программист
Я программист чёрт побери!
Я наблюдал как сложные задачи оценённые первоначально на пару дней или недель, реализовывались за пару часов. Так и простые задачи оценённые в несколько дней, растягивались на пару месяцев. (можно соотнести с принципом Парето, но тут скорее великой рандом и ктулху)
Я всегда искал способы продлить эффективное состояние программиста, которое я называю “волной”. По своей сути оно складывается из череды “побед” над собой, своим кодом и проектом в целом.
Scrum создан для того чтобы команда побеждала задачи и фичи, изучала сама себя и свои силы. И конечно же совершенствовала их.
Внедрить ли новую технологию, это всегда намерение программиста, чем выверенное бизнес решение. Будет ли оно эффективным покажет время, а то что сейчас оно даст стимул команде и новый виток проекту это неоспоримый факт.
Всё изложенное основано на личных наблюдениях. Если коснуться неэффективных решений подобного плана, то одно из 10 решений вызывает проблемы в будущем, и требует полного возврата на предыдущий шаг.
Эксперимент для коллег
Помимо программиста, я ещё и “менеджер”. (Порой я сражаюсь сам с собой :)) Предлагаю коллегам по цеху и всем причастным к управлению проектами, проведите эксперимент со своими программистами.
Нужно спросить у программиста следующее:
– Что было бы интереснее(эффективнее, быстрее и др.) реализовать?
- Сделать такой же проект над которым он работает(работал ранее) (точную копию, только повторно с нуля)?
- Сделать такой же проект над которым он работает(работал ранее), но применив новую технологию (Новые базы данных, языки программирования, фреймфорки и т.д)?
(Нужно знать текущие тренды в разработке, либо предложить ему выбрать самому)
Возможно это довольно очевидно, но лишним увидеть его реакцию думаю не будет.
Заключение
Scrum - при должном внимании к деталям крайне эффективный подход к разработке.
На своих личных проектах я бы выбрал его не раздумывая.
Но если вы работаете на массовое производство (сайты, дизайн и прочее), даже не думайте. Вы потеряете кучу времени, сражаясь с заказчиком и командой на двух фронтах.