SlideShare a Scribd company logo
Agile в реальном мире
Содержание доклада
● Зачем нужны модели и методологии разработки ПО?
● Реалии разработки программного обеспечения
● Обзор основных моделей разработки ПО
● Опыт внедрения Scrum в команде
● Бесплатные средства/сервисы для улучшения качества ПО
Зачем?
● Продукт должен быть завершен и должен соответствовать
требованиям
● Продукт должен быть качественным
● Сроки должны быть предсказуемы
Зачем программисту?
● Трезвая оценка своих сил
● Удовольствие от достижения поставленных целей
● Никаких меньше переработок, авралов, страданий
● Повышение квалификации через взаимодействие с командой
● Возможность всем говорить, что у вас Scrum, XP,
$METHODOLOGY_NAME
Реалии разработки ПО
Самый плохой
вариант
Cowboy koding
Заказчик
принимает
проект
В итоге
● Заваленные сроки
● Баги, тысячи их
● Переработки
● Упадок мотивации
● Злые шутки про программистов
Модели процесса разработки ПО
Модель предсказывает поведение систем
Водопад (каскадная модель)
Спиральная
Итеративная
Методологии разработки ПО
Методология разработки ПО - это набор рекомендаций и правил,
направленных на то, чтобы система функционировала.
Гибкие (Agile) методологии разработки ПО
Гибкие методологии ориентируются на:
● Взаимодействие внутри группы
● Готовность к изменениям требований
● Эволюционное развитие продукта
Agile-манифест
● Люди и взаимодействие важнее процессов и инструментов
● Работающий продукт важнее исчерпывающей документации
● Сотрудничество с заказчиком важнее согласования условий
контракта
● Готовность к изменениям важнее следования
первоначальному плану
http://agilemanifesto.org/iso/ru/
Методологии, основанные на Agile
● Экстремальное программирование (XP)
● Kanban
● Scrum
● ...
10th Annual State of Agile Survey – VersionOne
XP
● Большое внимание уделяется тестированию
● Непрерывная интеграция/доставка
● KISS (Keep It Simple Stupid)
● Парное программирование
● Короткие итерации
● Тесное взаимодействие с заказчиком
● Частый и простой рефакторинг (п. 1)
Kanban
● Визуализация производства (конвейер)
● Ограничение одновременного количества задач
● Отсутствие спринтов
● Нет как такового планирования
Kanban
Scrum
● Итерации (спринты)
● Бэклог проекта/спринта
● Планирование
● Scrum-митинги
● Демо
● Ретроспектива
Плюсы Scrum
● Предсказуемый результат
● Задачи отсортированы по приоритету
● Рабочий продукт (новый функционал) каждую итерацию
● Вся команда вовлечена в процесс
Scrum board
Основные роли в Scrum
Product owner (владелец продукта)
● Представляет интересы
пользователей
● Формирует требования
● Решает какой функционал
включать в релиз
Scrum master
● Проводит ежедневные митинги
● Следит за правилами
● Технически подкован
● Принимает участие в Scrum of
Scrums
Development team (команда)
● Разработка
● Тестирование
● Автономная самодостаточная
команда
● Все вовлечены в процесс
● Включает в себя все основные
роли
Опыт внедрения Scrum
● Отрицание
● Гнев
● Торг
● Депрессия
● Принятие
● …
● PROFIT!
Основные техники
Немного о проекте и требованиях
● Является частью большого Enterprise проекта
● Проект является фреймворком (используется разработчиками)
● Необходимы относительно частые релизы (2-4 раза в месяц)
● Требуется высокая стабильность и предсказуемость
● Необходимо взаимодействие с пользователями фреймворка
Рекомендации по переходу
● Гибкая методология - гибкий переход
● Нужно понимать для чего тот или иной артефакт методологии
● Переходить желательно постепенно, поочередно внедряя те или
иные практики
● Scrum - не цель, а средство
1. Приоритет задач
2. Итерации
● Короткие, 1-3 недели
● Начало в один и тот же день недели
● Итерации выровнены по командам на всем проекте
3. Совещания (Meetings)
● Короткие 10-15 минут
● Без технических подробностей
● Что сделали с последнего совещания, что сделаем к
следующему, какие есть трудности
4. Планирования итераций
● Производится каждую итерацию
● Занимает 1-2 часа
5. Ретроспективы
● Результат итерации
● Обзор успехов/сложностей итерации
● Что продолжаем делать, что прекращаем делать, что попробуем
в следующей итерации
● Работа над ошибками
6. Демо
● Демонстрация результатов
● Все принимают участие
● Демонстрируется только готовый функционал
Burndown
Модификация Scrum
● Гибкая методология - гибкие правила
● Scrum - не религия
● Scrum можно сделать удобнее добавляя/удаляя артефакты
● Использовать практики необходимо с умом
● Люди и взаимодействие важнее процессов и инструментов
● Planning Poker бесполезен в случае, если команда состоит из
одного разработчика и тестировщика
● TDD, Code Review и некоторые другие элементы не нужны на
прототипах
● Планирование не имеет смысла, если программист занимается
ТОЛЬКО багфиксами
● Story Points (те самые попугаи) неприменимы в командах в
случае если члены команды не равны по квалификации.
Клиент/ПМ просит оценку в часах
● Метрики производительности команды сводят работу больше к
набору очков, чем к выполнению задач
Что добавили?
● Непрерывная интеграция
● Многоуровневое тестирование
● Коллективное владение кодом
● Рефакторинг
● Brainstorming
Что убрали?
● Покер планирования
● Очки скрама
● Дополнительные роли
Что делать с багами?
● Вводить резерв на багфиксы 10-25%
● Организовывать систему по примеру стека (при добавлении чего
то более важного в спринт, что-то менее важное выпадает)
А с тестированием?
● QA как разделяемый ресурс
● QA как часть команды
● QA отсутствует
Когда Agile НЕ работает
● Медицинское, военное, космическое ПО
● Исследовательская работа
● Гос-заказы
● Если нет цели создавать качественное ПО в разумные сроки
● Все остальные случаи, когда ничего не поможет, такие как низкая
квалификация, отсутствие бюджета, нереальные сроки
Контроль версий,
инспекция кода (Code review)
https://github.com
https://bitbucket.org
Непрерывная интеграция
https://jenkins.io
https://jetbrains.com/teamcity
https://travis-ci.org
Вспомогательные средства
https://trello.com
https://draw.io
https://slack.com
https://quiz.xored.com
Спасибо!
Контакты:
Антон Демин (докладчик): anton.demin@xored.com
Ольга Краснянская (HR): olga.krasnyanskaya@xored.com

More Related Content

What's hot

2008-04-15-scrum-from-custis-show
2008-04-15-scrum-from-custis-show2008-04-15-scrum-from-custis-show
2008-04-15-scrum-from-custis-showStas Fomin
 
Инструменты гибкого управления: Agile / Kanban / Scrum
Инструменты гибкого управления: Agile / Kanban / ScrumИнструменты гибкого управления: Agile / Kanban / Scrum
Инструменты гибкого управления: Agile / Kanban / Scrum
Denis Tuchin
 
Использование YouTrack для работы команды по Scrum
Использование YouTrack для работы команды по ScrumИспользование YouTrack для работы команды по Scrum
Использование YouTrack для работы команды по ScrumТатьяна Баева
 
Киев. Как внедрить SCRUM без трупов и остаться довольным
Киев. Как внедрить SCRUM без трупов и остаться довольнымКиев. Как внедрить SCRUM без трупов и остаться довольным
Киев. Как внедрить SCRUM без трупов и остаться довольным
Vladimir Zavertaylov
 
Введение в Scrum
Введение в ScrumВведение в Scrum
Введение в Scrum
Dmitry Sidorenko
 
Презентация "Scrum с нуля" (2 часть)
Презентация "Scrum с нуля" (2 часть)Презентация "Scrum с нуля" (2 часть)
Презентация "Scrum с нуля" (2 часть)
Елена Коптева
 
Agile/Scrum методологии разработки программного обеспечения
Agile/Scrum методологии разработки программного обеспеченияAgile/Scrum методологии разработки программного обеспечения
Agile/Scrum методологии разработки программного обеспечения
jazzteam
 
Презентация "Scrum с нуля"
Презентация "Scrum с нуля" Презентация "Scrum с нуля"
Презентация "Scrum с нуля"
Елена Коптева
 
SCRUM - разработка без начальника
SCRUM - разработка без начальникаSCRUM - разработка без начальника
SCRUM - разработка без начальника
RealSpeaker 2.0
 
Вебинар: 12 принципов Agile, которые делают его довольно успешным
Вебинар: 12 принципов Agile, которые делают его довольно успешнымВебинар: 12 принципов Agile, которые делают его довольно успешным
Вебинар: 12 принципов Agile, которые делают его довольно успешным
ak-itconsulting.com
 
Agile Testing Process
Agile Testing ProcessAgile Testing Process
Agile Testing Process
Return on Intelligence
 
Управление тестированием в Agile
Управление тестированием в AgileУправление тестированием в Agile
Управление тестированием в Agile
Askhat Urazbaev
 
Управление проектами по разработке в стиле Agile или Waterfall, чья доска круче?
Управление проектами по разработке в стиле Agile или Waterfall, чья доска круче?Управление проектами по разработке в стиле Agile или Waterfall, чья доска круче?
Управление проектами по разработке в стиле Agile или Waterfall, чья доска круче?
SQALab
 
Kanban vs Scrum – чьё кунг-фу сильнее
Kanban vs Scrum – чьё кунг-фу сильнееKanban vs Scrum – чьё кунг-фу сильнее
Kanban vs Scrum – чьё кунг-фу сильнее
Kirill Klimov
 
Scrum! v1.1
Scrum! v1.1Scrum! v1.1
Scrum! v1.1
Dmitry Andronov
 
Scrum Сhecklist (Russian)
Scrum Сhecklist (Russian)Scrum Сhecklist (Russian)
Scrum Сhecklist (Russian)
Artem Glazkov
 
Денис Тучин - Как внедрить Agile, чтобы никто не заметил
Денис Тучин - Как внедрить Agile, чтобы никто не заметилДенис Тучин - Как внедрить Agile, чтобы никто не заметил
Денис Тучин - Как внедрить Agile, чтобы никто не заметил
Denis Tuchin
 

What's hot (20)

Scrum
ScrumScrum
Scrum
 
Lovely scrum
Lovely scrumLovely scrum
Lovely scrum
 
2008-04-15-scrum-from-custis-show
2008-04-15-scrum-from-custis-show2008-04-15-scrum-from-custis-show
2008-04-15-scrum-from-custis-show
 
Инструменты гибкого управления: Agile / Kanban / Scrum
Инструменты гибкого управления: Agile / Kanban / ScrumИнструменты гибкого управления: Agile / Kanban / Scrum
Инструменты гибкого управления: Agile / Kanban / Scrum
 
Использование YouTrack для работы команды по Scrum
Использование YouTrack для работы команды по ScrumИспользование YouTrack для работы команды по Scrum
Использование YouTrack для работы команды по Scrum
 
Киев. Как внедрить SCRUM без трупов и остаться довольным
Киев. Как внедрить SCRUM без трупов и остаться довольнымКиев. Как внедрить SCRUM без трупов и остаться довольным
Киев. Как внедрить SCRUM без трупов и остаться довольным
 
Введение в Scrum
Введение в ScrumВведение в Scrum
Введение в Scrum
 
Презентация "Scrum с нуля" (2 часть)
Презентация "Scrum с нуля" (2 часть)Презентация "Scrum с нуля" (2 часть)
Презентация "Scrum с нуля" (2 часть)
 
Agile/Scrum методологии разработки программного обеспечения
Agile/Scrum методологии разработки программного обеспеченияAgile/Scrum методологии разработки программного обеспечения
Agile/Scrum методологии разработки программного обеспечения
 
Презентация "Scrum с нуля"
Презентация "Scrum с нуля" Презентация "Scrum с нуля"
Презентация "Scrum с нуля"
 
SCRUM - разработка без начальника
SCRUM - разработка без начальникаSCRUM - разработка без начальника
SCRUM - разработка без начальника
 
Вебинар: 12 принципов Agile, которые делают его довольно успешным
Вебинар: 12 принципов Agile, которые делают его довольно успешнымВебинар: 12 принципов Agile, которые делают его довольно успешным
Вебинар: 12 принципов Agile, которые делают его довольно успешным
 
Agile Testing Process
Agile Testing ProcessAgile Testing Process
Agile Testing Process
 
Управление тестированием в Agile
Управление тестированием в AgileУправление тестированием в Agile
Управление тестированием в Agile
 
Управление проектами по разработке в стиле Agile или Waterfall, чья доска круче?
Управление проектами по разработке в стиле Agile или Waterfall, чья доска круче?Управление проектами по разработке в стиле Agile или Waterfall, чья доска круче?
Управление проектами по разработке в стиле Agile или Waterfall, чья доска круче?
 
Agile checklist
Agile checklistAgile checklist
Agile checklist
 
Kanban vs Scrum – чьё кунг-фу сильнее
Kanban vs Scrum – чьё кунг-фу сильнееKanban vs Scrum – чьё кунг-фу сильнее
Kanban vs Scrum – чьё кунг-фу сильнее
 
Scrum! v1.1
Scrum! v1.1Scrum! v1.1
Scrum! v1.1
 
Scrum Сhecklist (Russian)
Scrum Сhecklist (Russian)Scrum Сhecklist (Russian)
Scrum Сhecklist (Russian)
 
Денис Тучин - Как внедрить Agile, чтобы никто не заметил
Денис Тучин - Как внедрить Agile, чтобы никто не заметилДенис Тучин - Как внедрить Agile, чтобы никто не заметил
Денис Тучин - Как внедрить Agile, чтобы никто не заметил
 

Viewers also liked

Введення в програмну інженерію
Введення в програмну інженеріюВведення в програмну інженерію
Введення в програмну інженерію
Oleg Nazarevych
 
Методологии управления It проектами
Методологии управления It проектамиМетодологии управления It проектами
Методологии управления It проектами
Olena Ivanko
 
Станислав Головченко. Как построить системное управление проектами за 2 месяца?
Станислав Головченко. Как построить системное управление проектами за 2 месяца?Станислав Головченко. Как построить системное управление проектами за 2 месяца?
Станислав Головченко. Как построить системное управление проектами за 2 месяца?
Адванта - онлайн система управления проектами
 
Agile - гибкое управление проектами
Agile - гибкое управление проектамиAgile - гибкое управление проектами
Agile - гибкое управление проектами
Sergey Atroschenkov
 
МиСПИСиТ (внешнее описание)
МиСПИСиТ (внешнее описание)МиСПИСиТ (внешнее описание)
МиСПИСиТ (внешнее описание)
Ural Federal University named after First President of Russia B.N. Yeltsin
 
Методоллогии Agile
Методоллогии AgileМетодоллогии Agile
Введение в методы agile
Введение в методы agileВведение в методы agile
Преимущества российской сервисной платформы Naumen в разрезе проектного опыта
Преимущества российской сервисной платформы Naumen в разрезе проектного опытаПреимущества российской сервисной платформы Naumen в разрезе проектного опыта
Преимущества российской сервисной платформы Naumen в разрезе проектного опыта
NAUMEN. Информационные системы управления растущим бизнесом
 
Scrum 101: Introduction to Scrum
Scrum 101: Introduction to ScrumScrum 101: Introduction to Scrum
Scrum 101: Introduction to Scrum
Arrielle Mali
 
Agile presentation
Agile presentationAgile presentation
Agile presentation
infolock
 
Introduction to Scrum.ppt
Introduction to Scrum.pptIntroduction to Scrum.ppt
Introduction to Scrum.ppt
Mohan Late
 
Scrum In 15 Minutes
Scrum In 15 MinutesScrum In 15 Minutes
Scrum In 15 Minutes
Srikanth Shreenivas
 
Lean Startup for Agile Product Management
Lean Startup for Agile Product ManagementLean Startup for Agile Product Management
Lean Startup for Agile Product Management
Proyectalis / Improvement21
 
Agile Software Development Overview
Agile Software Development OverviewAgile Software Development Overview
Agile Software Development Overview
Stewart Rogers
 

Viewers also liked (14)

Введення в програмну інженерію
Введення в програмну інженеріюВведення в програмну інженерію
Введення в програмну інженерію
 
Методологии управления It проектами
Методологии управления It проектамиМетодологии управления It проектами
Методологии управления It проектами
 
Станислав Головченко. Как построить системное управление проектами за 2 месяца?
Станислав Головченко. Как построить системное управление проектами за 2 месяца?Станислав Головченко. Как построить системное управление проектами за 2 месяца?
Станислав Головченко. Как построить системное управление проектами за 2 месяца?
 
Agile - гибкое управление проектами
Agile - гибкое управление проектамиAgile - гибкое управление проектами
Agile - гибкое управление проектами
 
МиСПИСиТ (внешнее описание)
МиСПИСиТ (внешнее описание)МиСПИСиТ (внешнее описание)
МиСПИСиТ (внешнее описание)
 
Методоллогии Agile
Методоллогии AgileМетодоллогии Agile
Методоллогии Agile
 
Введение в методы agile
Введение в методы agileВведение в методы agile
Введение в методы agile
 
Преимущества российской сервисной платформы Naumen в разрезе проектного опыта
Преимущества российской сервисной платформы Naumen в разрезе проектного опытаПреимущества российской сервисной платформы Naumen в разрезе проектного опыта
Преимущества российской сервисной платформы Naumen в разрезе проектного опыта
 
Scrum 101: Introduction to Scrum
Scrum 101: Introduction to ScrumScrum 101: Introduction to Scrum
Scrum 101: Introduction to Scrum
 
Agile presentation
Agile presentationAgile presentation
Agile presentation
 
Introduction to Scrum.ppt
Introduction to Scrum.pptIntroduction to Scrum.ppt
Introduction to Scrum.ppt
 
Scrum In 15 Minutes
Scrum In 15 MinutesScrum In 15 Minutes
Scrum In 15 Minutes
 
Lean Startup for Agile Product Management
Lean Startup for Agile Product ManagementLean Startup for Agile Product Management
Lean Startup for Agile Product Management
 
Agile Software Development Overview
Agile Software Development OverviewAgile Software Development Overview
Agile Software Development Overview
 

Similar to Гибкие методологии разработки ПО в реальном мире

Модуль 2: Лекция 11-12: Scrum - обзор фреймворка
Модуль 2: Лекция 11-12: Scrum  - обзор фреймворкаМодуль 2: Лекция 11-12: Scrum  - обзор фреймворка
Модуль 2: Лекция 11-12: Scrum - обзор фреймворка
Yana Brodetski
 
Agile Testing Process
Agile Testing ProcessAgile Testing Process
Agile Testing Process
Return on Intelligence
 
Проектирование_и_архитектура_ПС_2022_L04s.ppt
Проектирование_и_архитектура_ПС_2022_L04s.pptПроектирование_и_архитектура_ПС_2022_L04s.ppt
Проектирование_и_архитектура_ПС_2022_L04s.ppt
dinarium2016
 
Working by scrum for agile gathering 7
Working by scrum for agile gathering 7Working by scrum for agile gathering 7
Working by scrum for agile gathering 7Ivan Mosiev
 
Nfilippov. Something About Agile
Nfilippov. Something About AgileNfilippov. Something About Agile
Nfilippov. Something About AgileNikita Filippov
 
Redistributable intro To Scrum, Russian
Redistributable intro To Scrum, RussianRedistributable intro To Scrum, Russian
Redistributable intro To Scrum, Russian
Alexey Krivitsky
 
Обзор методологии SCRUM. Особенности SCRUM методологии. Вопросы коммуникации ...
Обзор методологии SCRUM. Особенности SCRUM методологии. Вопросы коммуникации ...Обзор методологии SCRUM. Особенности SCRUM методологии. Вопросы коммуникации ...
Обзор методологии SCRUM. Особенности SCRUM методологии. Вопросы коммуникации ...
DressTester
 
Модуль 2: Лекция 9-10. Обзор методологий, фреймворков
Модуль 2: Лекция 9-10.  Обзор методологий, фреймворковМодуль 2: Лекция 9-10.  Обзор методологий, фреймворков
Модуль 2: Лекция 9-10. Обзор методологий, фреймворков
Yana Brodetski
 
Agile transformation_keynote
Agile transformation_keynoteAgile transformation_keynote
Agile transformation_keynote
Provectus
 
Гибкие методологии разработки: максимальный результат для бизнеса с минимальн...
Гибкие методологии разработки: максимальный результат для бизнеса с минимальн...Гибкие методологии разработки: максимальный результат для бизнеса с минимальн...
Гибкие методологии разработки: максимальный результат для бизнеса с минимальн...
Alexey Tigarev
 
Effectivness analysis of moving from Scrum to Kanban
Effectivness analysis of moving from Scrum to KanbanEffectivness analysis of moving from Scrum to Kanban
Effectivness analysis of moving from Scrum to KanbanAlena Portelli
 
CodeFest 2013. Сурова И. — Аналитик — инструкция по применению для менеджеров...
CodeFest 2013. Сурова И. — Аналитик — инструкция по применению для менеджеров...CodeFest 2013. Сурова И. — Аналитик — инструкция по применению для менеджеров...
CodeFest 2013. Сурова И. — Аналитик — инструкция по применению для менеджеров...CodeFest
 
Software craftsmanship 11 online: мотивация и эффектисность разработчика
Software craftsmanship 11 online: мотивация и эффектисность разработчикаSoftware craftsmanship 11 online: мотивация и эффектисность разработчика
Software craftsmanship 11 online: мотивация и эффектисность разработчика
Pavel Veinik
 
Управление качеством в Agile. Как опередить баги
Управление качеством в Agile. Как опередить багиУправление качеством в Agile. Как опередить баги
Управление качеством в Agile. Как опередить баги
SQALab
 
Anton Stoliar SQADays2012 Управление качеством в Agile. Как опередить баги.
Anton Stoliar SQADays2012 Управление качеством в Agile. Как опередить баги.Anton Stoliar SQADays2012 Управление качеством в Agile. Как опередить баги.
Anton Stoliar SQADays2012 Управление качеством в Agile. Как опередить баги.
Anton Stoliar
 
Scrum Basics
Scrum Basics Scrum Basics
Scrum Basics
Dauren Kurkenov
 
Как контролировать работу? Вадим Нарейко
Как контролировать работу? Вадим НарейкоКак контролировать работу? Вадим Нарейко
Как контролировать работу? Вадим Нарейко
Vadim Nareyko
 

Similar to Гибкие методологии разработки ПО в реальном мире (20)

Scrum and XP in practice
Scrum and XP in practiceScrum and XP in practice
Scrum and XP in practice
 
Модуль 2: Лекция 11-12: Scrum - обзор фреймворка
Модуль 2: Лекция 11-12: Scrum  - обзор фреймворкаМодуль 2: Лекция 11-12: Scrum  - обзор фреймворка
Модуль 2: Лекция 11-12: Scrum - обзор фреймворка
 
Scrum framework
Scrum frameworkScrum framework
Scrum framework
 
Scrum
ScrumScrum
Scrum
 
Agile Testing Process
Agile Testing ProcessAgile Testing Process
Agile Testing Process
 
Проектирование_и_архитектура_ПС_2022_L04s.ppt
Проектирование_и_архитектура_ПС_2022_L04s.pptПроектирование_и_архитектура_ПС_2022_L04s.ppt
Проектирование_и_архитектура_ПС_2022_L04s.ppt
 
Working by scrum for agile gathering 7
Working by scrum for agile gathering 7Working by scrum for agile gathering 7
Working by scrum for agile gathering 7
 
Nfilippov. Something About Agile
Nfilippov. Something About AgileNfilippov. Something About Agile
Nfilippov. Something About Agile
 
Redistributable intro To Scrum, Russian
Redistributable intro To Scrum, RussianRedistributable intro To Scrum, Russian
Redistributable intro To Scrum, Russian
 
Обзор методологии SCRUM. Особенности SCRUM методологии. Вопросы коммуникации ...
Обзор методологии SCRUM. Особенности SCRUM методологии. Вопросы коммуникации ...Обзор методологии SCRUM. Особенности SCRUM методологии. Вопросы коммуникации ...
Обзор методологии SCRUM. Особенности SCRUM методологии. Вопросы коммуникации ...
 
Модуль 2: Лекция 9-10. Обзор методологий, фреймворков
Модуль 2: Лекция 9-10.  Обзор методологий, фреймворковМодуль 2: Лекция 9-10.  Обзор методологий, фреймворков
Модуль 2: Лекция 9-10. Обзор методологий, фреймворков
 
Agile transformation_keynote
Agile transformation_keynoteAgile transformation_keynote
Agile transformation_keynote
 
Гибкие методологии разработки: максимальный результат для бизнеса с минимальн...
Гибкие методологии разработки: максимальный результат для бизнеса с минимальн...Гибкие методологии разработки: максимальный результат для бизнеса с минимальн...
Гибкие методологии разработки: максимальный результат для бизнеса с минимальн...
 
Effectivness analysis of moving from Scrum to Kanban
Effectivness analysis of moving from Scrum to KanbanEffectivness analysis of moving from Scrum to Kanban
Effectivness analysis of moving from Scrum to Kanban
 
CodeFest 2013. Сурова И. — Аналитик — инструкция по применению для менеджеров...
CodeFest 2013. Сурова И. — Аналитик — инструкция по применению для менеджеров...CodeFest 2013. Сурова И. — Аналитик — инструкция по применению для менеджеров...
CodeFest 2013. Сурова И. — Аналитик — инструкция по применению для менеджеров...
 
Software craftsmanship 11 online: мотивация и эффектисность разработчика
Software craftsmanship 11 online: мотивация и эффектисность разработчикаSoftware craftsmanship 11 online: мотивация и эффектисность разработчика
Software craftsmanship 11 online: мотивация и эффектисность разработчика
 
Управление качеством в Agile. Как опередить баги
Управление качеством в Agile. Как опередить багиУправление качеством в Agile. Как опередить баги
Управление качеством в Agile. Как опередить баги
 
Anton Stoliar SQADays2012 Управление качеством в Agile. Как опередить баги.
Anton Stoliar SQADays2012 Управление качеством в Agile. Как опередить баги.Anton Stoliar SQADays2012 Управление качеством в Agile. Как опередить баги.
Anton Stoliar SQADays2012 Управление качеством в Agile. Как опередить баги.
 
Scrum Basics
Scrum Basics Scrum Basics
Scrum Basics
 
Как контролировать работу? Вадим Нарейко
Как контролировать работу? Вадим НарейкоКак контролировать работу? Вадим Нарейко
Как контролировать работу? Вадим Нарейко
 

More from Tech Talks @NSU

Tech Talks @NSU: Путь студента в IT-бизнес
Tech Talks @NSU: Путь студента в IT-бизнесTech Talks @NSU: Путь студента в IT-бизнес
Tech Talks @NSU: Путь студента в IT-бизнес
Tech Talks @NSU
 
Tech Talks @NSU: Стажировки в американских IT-компаниях. Как стать стажером, ...
Tech Talks @NSU: Стажировки в американских IT-компаниях. Как стать стажером, ...Tech Talks @NSU: Стажировки в американских IT-компаниях. Как стать стажером, ...
Tech Talks @NSU: Стажировки в американских IT-компаниях. Как стать стажером, ...
Tech Talks @NSU
 
Tech Talks @NSU: Как живется преподавателю Computer Science у «нас» и у «них»
Tech Talks @NSU: Как живется преподавателю Computer Science у «нас» и у «них»Tech Talks @NSU: Как живется преподавателю Computer Science у «нас» и у «них»
Tech Talks @NSU: Как живется преподавателю Computer Science у «нас» и у «них»
Tech Talks @NSU
 
Back to the Future: Функциональное программирование вчера и сегодня
Back to the Future: Функциональное программирование вчера и сегодняBack to the Future: Функциональное программирование вчера и сегодня
Back to the Future: Функциональное программирование вчера и сегодня
Tech Talks @NSU
 
Что такое Highload? Секреты высокой нагрузки
Что такое Highload? Секреты высокой нагрузкиЧто такое Highload? Секреты высокой нагрузки
Что такое Highload? Секреты высокой нагрузки
Tech Talks @NSU
 
Автоматическое доказательство теорем
Автоматическое доказательство теоремАвтоматическое доказательство теорем
Автоматическое доказательство теорем
Tech Talks @NSU
 
AOT-компиляция Java
AOT-компиляция JavaAOT-компиляция Java
AOT-компиляция Java
Tech Talks @NSU
 
Защита от атак по сторонним каналам
Защита от атак по сторонним каналамЗащита от атак по сторонним каналам
Защита от атак по сторонним каналам
Tech Talks @NSU
 
Как приручить дракона: введение в LLVM
Как приручить дракона: введение в LLVMКак приручить дракона: введение в LLVM
Как приручить дракона: введение в LLVM
Tech Talks @NSU
 
Тестировщик: ожидание vs. реальность
Тестировщик: ожидание vs. реальностьТестировщик: ожидание vs. реальность
Тестировщик: ожидание vs. реальность
Tech Talks @NSU
 
Tech Talks @NSU: Что есть QA и как в него попасть
Tech Talks @NSU: Что есть QA и как в него попастьTech Talks @NSU: Что есть QA и как в него попасть
Tech Talks @NSU: Что есть QA и как в него попасть
Tech Talks @NSU
 
Tech Talks @NSU: Технологии кросс-платформенной разработки мобильных бизнес-п...
Tech Talks @NSU: Технологии кросс-платформенной разработки мобильных бизнес-п...Tech Talks @NSU: Технологии кросс-платформенной разработки мобильных бизнес-п...
Tech Talks @NSU: Технологии кросс-платформенной разработки мобильных бизнес-п...
Tech Talks @NSU
 
Tech Talks @NSU: DLang: возможности языка и его применение
Tech Talks @NSU: DLang: возможности языка и его применениеTech Talks @NSU: DLang: возможности языка и его применение
Tech Talks @NSU: DLang: возможности языка и его применение
Tech Talks @NSU
 
Tech Talks @NSU: Рассказ о разных профессиях в IT-индустрии, или почему не вс...
Tech Talks @NSU: Рассказ о разных профессиях в IT-индустрии, или почему не вс...Tech Talks @NSU: Рассказ о разных профессиях в IT-индустрии, или почему не вс...
Tech Talks @NSU: Рассказ о разных профессиях в IT-индустрии, или почему не вс...
Tech Talks @NSU
 
Tech Talks @NSU: Что такое работа в техподдержке: тяжело ли живётся саппортеру
Tech Talks @NSU: Что такое работа в техподдержке: тяжело ли живётся саппортеруTech Talks @NSU: Что такое работа в техподдержке: тяжело ли живётся саппортеру
Tech Talks @NSU: Что такое работа в техподдержке: тяжело ли живётся саппортеру
Tech Talks @NSU
 
Tech Talks @NSU: Как олимпиадное программирование не испортило мою жизнь, а т...
Tech Talks @NSU: Как олимпиадное программирование не испортило мою жизнь, а т...Tech Talks @NSU: Как олимпиадное программирование не испортило мою жизнь, а т...
Tech Talks @NSU: Как олимпиадное программирование не испортило мою жизнь, а т...
Tech Talks @NSU
 
Tech Talks @NSU: Организация тестирования в IT-компаниях Академгородка. Карье...
Tech Talks @NSU: Организация тестирования в IT-компаниях Академгородка. Карье...Tech Talks @NSU: Организация тестирования в IT-компаниях Академгородка. Карье...
Tech Talks @NSU: Организация тестирования в IT-компаниях Академгородка. Карье...
Tech Talks @NSU
 
Tech Talks @NSU: Мир open source — мир возможностей
Tech Talks @NSU: Мир open source — мир возможностейTech Talks @NSU: Мир open source — мир возможностей
Tech Talks @NSU: Мир open source — мир возможностей
Tech Talks @NSU
 
Tech Talks @NSU: Методологии разработки ПО. Что на самом деле скрывается за с...
Tech Talks @NSU: Методологии разработки ПО. Что на самом деле скрывается за с...Tech Talks @NSU: Методологии разработки ПО. Что на самом деле скрывается за с...
Tech Talks @NSU: Методологии разработки ПО. Что на самом деле скрывается за с...
Tech Talks @NSU
 
Тестировщик: ожидание vs. реальность
Тестировщик: ожидание vs. реальность Тестировщик: ожидание vs. реальность
Тестировщик: ожидание vs. реальность
Tech Talks @NSU
 

More from Tech Talks @NSU (20)

Tech Talks @NSU: Путь студента в IT-бизнес
Tech Talks @NSU: Путь студента в IT-бизнесTech Talks @NSU: Путь студента в IT-бизнес
Tech Talks @NSU: Путь студента в IT-бизнес
 
Tech Talks @NSU: Стажировки в американских IT-компаниях. Как стать стажером, ...
Tech Talks @NSU: Стажировки в американских IT-компаниях. Как стать стажером, ...Tech Talks @NSU: Стажировки в американских IT-компаниях. Как стать стажером, ...
Tech Talks @NSU: Стажировки в американских IT-компаниях. Как стать стажером, ...
 
Tech Talks @NSU: Как живется преподавателю Computer Science у «нас» и у «них»
Tech Talks @NSU: Как живется преподавателю Computer Science у «нас» и у «них»Tech Talks @NSU: Как живется преподавателю Computer Science у «нас» и у «них»
Tech Talks @NSU: Как живется преподавателю Computer Science у «нас» и у «них»
 
Back to the Future: Функциональное программирование вчера и сегодня
Back to the Future: Функциональное программирование вчера и сегодняBack to the Future: Функциональное программирование вчера и сегодня
Back to the Future: Функциональное программирование вчера и сегодня
 
Что такое Highload? Секреты высокой нагрузки
Что такое Highload? Секреты высокой нагрузкиЧто такое Highload? Секреты высокой нагрузки
Что такое Highload? Секреты высокой нагрузки
 
Автоматическое доказательство теорем
Автоматическое доказательство теоремАвтоматическое доказательство теорем
Автоматическое доказательство теорем
 
AOT-компиляция Java
AOT-компиляция JavaAOT-компиляция Java
AOT-компиляция Java
 
Защита от атак по сторонним каналам
Защита от атак по сторонним каналамЗащита от атак по сторонним каналам
Защита от атак по сторонним каналам
 
Как приручить дракона: введение в LLVM
Как приручить дракона: введение в LLVMКак приручить дракона: введение в LLVM
Как приручить дракона: введение в LLVM
 
Тестировщик: ожидание vs. реальность
Тестировщик: ожидание vs. реальностьТестировщик: ожидание vs. реальность
Тестировщик: ожидание vs. реальность
 
Tech Talks @NSU: Что есть QA и как в него попасть
Tech Talks @NSU: Что есть QA и как в него попастьTech Talks @NSU: Что есть QA и как в него попасть
Tech Talks @NSU: Что есть QA и как в него попасть
 
Tech Talks @NSU: Технологии кросс-платформенной разработки мобильных бизнес-п...
Tech Talks @NSU: Технологии кросс-платформенной разработки мобильных бизнес-п...Tech Talks @NSU: Технологии кросс-платформенной разработки мобильных бизнес-п...
Tech Talks @NSU: Технологии кросс-платформенной разработки мобильных бизнес-п...
 
Tech Talks @NSU: DLang: возможности языка и его применение
Tech Talks @NSU: DLang: возможности языка и его применениеTech Talks @NSU: DLang: возможности языка и его применение
Tech Talks @NSU: DLang: возможности языка и его применение
 
Tech Talks @NSU: Рассказ о разных профессиях в IT-индустрии, или почему не вс...
Tech Talks @NSU: Рассказ о разных профессиях в IT-индустрии, или почему не вс...Tech Talks @NSU: Рассказ о разных профессиях в IT-индустрии, или почему не вс...
Tech Talks @NSU: Рассказ о разных профессиях в IT-индустрии, или почему не вс...
 
Tech Talks @NSU: Что такое работа в техподдержке: тяжело ли живётся саппортеру
Tech Talks @NSU: Что такое работа в техподдержке: тяжело ли живётся саппортеруTech Talks @NSU: Что такое работа в техподдержке: тяжело ли живётся саппортеру
Tech Talks @NSU: Что такое работа в техподдержке: тяжело ли живётся саппортеру
 
Tech Talks @NSU: Как олимпиадное программирование не испортило мою жизнь, а т...
Tech Talks @NSU: Как олимпиадное программирование не испортило мою жизнь, а т...Tech Talks @NSU: Как олимпиадное программирование не испортило мою жизнь, а т...
Tech Talks @NSU: Как олимпиадное программирование не испортило мою жизнь, а т...
 
Tech Talks @NSU: Организация тестирования в IT-компаниях Академгородка. Карье...
Tech Talks @NSU: Организация тестирования в IT-компаниях Академгородка. Карье...Tech Talks @NSU: Организация тестирования в IT-компаниях Академгородка. Карье...
Tech Talks @NSU: Организация тестирования в IT-компаниях Академгородка. Карье...
 
Tech Talks @NSU: Мир open source — мир возможностей
Tech Talks @NSU: Мир open source — мир возможностейTech Talks @NSU: Мир open source — мир возможностей
Tech Talks @NSU: Мир open source — мир возможностей
 
Tech Talks @NSU: Методологии разработки ПО. Что на самом деле скрывается за с...
Tech Talks @NSU: Методологии разработки ПО. Что на самом деле скрывается за с...Tech Talks @NSU: Методологии разработки ПО. Что на самом деле скрывается за с...
Tech Talks @NSU: Методологии разработки ПО. Что на самом деле скрывается за с...
 
Тестировщик: ожидание vs. реальность
Тестировщик: ожидание vs. реальность Тестировщик: ожидание vs. реальность
Тестировщик: ожидание vs. реальность
 

Гибкие методологии разработки ПО в реальном мире

  • 2. Содержание доклада ● Зачем нужны модели и методологии разработки ПО? ● Реалии разработки программного обеспечения ● Обзор основных моделей разработки ПО ● Опыт внедрения Scrum в команде ● Бесплатные средства/сервисы для улучшения качества ПО
  • 3. Зачем? ● Продукт должен быть завершен и должен соответствовать требованиям ● Продукт должен быть качественным ● Сроки должны быть предсказуемы
  • 4. Зачем программисту? ● Трезвая оценка своих сил ● Удовольствие от достижения поставленных целей ● Никаких меньше переработок, авралов, страданий ● Повышение квалификации через взаимодействие с командой ● Возможность всем говорить, что у вас Scrum, XP, $METHODOLOGY_NAME
  • 8.
  • 10. В итоге ● Заваленные сроки ● Баги, тысячи их ● Переработки ● Упадок мотивации ● Злые шутки про программистов
  • 11. Модели процесса разработки ПО Модель предсказывает поведение систем
  • 15. Методологии разработки ПО Методология разработки ПО - это набор рекомендаций и правил, направленных на то, чтобы система функционировала.
  • 16. Гибкие (Agile) методологии разработки ПО Гибкие методологии ориентируются на: ● Взаимодействие внутри группы ● Готовность к изменениям требований ● Эволюционное развитие продукта
  • 17. Agile-манифест ● Люди и взаимодействие важнее процессов и инструментов ● Работающий продукт важнее исчерпывающей документации ● Сотрудничество с заказчиком важнее согласования условий контракта ● Готовность к изменениям важнее следования первоначальному плану http://agilemanifesto.org/iso/ru/
  • 18. Методологии, основанные на Agile ● Экстремальное программирование (XP) ● Kanban ● Scrum ● ...
  • 19. 10th Annual State of Agile Survey – VersionOne
  • 20. XP ● Большое внимание уделяется тестированию ● Непрерывная интеграция/доставка ● KISS (Keep It Simple Stupid) ● Парное программирование ● Короткие итерации ● Тесное взаимодействие с заказчиком ● Частый и простой рефакторинг (п. 1)
  • 21. Kanban ● Визуализация производства (конвейер) ● Ограничение одновременного количества задач ● Отсутствие спринтов ● Нет как такового планирования
  • 23. Scrum ● Итерации (спринты) ● Бэклог проекта/спринта ● Планирование ● Scrum-митинги ● Демо ● Ретроспектива
  • 24. Плюсы Scrum ● Предсказуемый результат ● Задачи отсортированы по приоритету ● Рабочий продукт (новый функционал) каждую итерацию ● Вся команда вовлечена в процесс
  • 25.
  • 28. Product owner (владелец продукта) ● Представляет интересы пользователей ● Формирует требования ● Решает какой функционал включать в релиз
  • 29. Scrum master ● Проводит ежедневные митинги ● Следит за правилами ● Технически подкован ● Принимает участие в Scrum of Scrums
  • 30. Development team (команда) ● Разработка ● Тестирование ● Автономная самодостаточная команда ● Все вовлечены в процесс ● Включает в себя все основные роли
  • 31. Опыт внедрения Scrum ● Отрицание ● Гнев ● Торг ● Депрессия ● Принятие ● … ● PROFIT!
  • 33. Немного о проекте и требованиях ● Является частью большого Enterprise проекта ● Проект является фреймворком (используется разработчиками) ● Необходимы относительно частые релизы (2-4 раза в месяц) ● Требуется высокая стабильность и предсказуемость ● Необходимо взаимодействие с пользователями фреймворка
  • 34. Рекомендации по переходу ● Гибкая методология - гибкий переход ● Нужно понимать для чего тот или иной артефакт методологии ● Переходить желательно постепенно, поочередно внедряя те или иные практики ● Scrum - не цель, а средство
  • 36. 2. Итерации ● Короткие, 1-3 недели ● Начало в один и тот же день недели ● Итерации выровнены по командам на всем проекте
  • 37. 3. Совещания (Meetings) ● Короткие 10-15 минут ● Без технических подробностей ● Что сделали с последнего совещания, что сделаем к следующему, какие есть трудности
  • 38. 4. Планирования итераций ● Производится каждую итерацию ● Занимает 1-2 часа
  • 39. 5. Ретроспективы ● Результат итерации ● Обзор успехов/сложностей итерации ● Что продолжаем делать, что прекращаем делать, что попробуем в следующей итерации ● Работа над ошибками
  • 40. 6. Демо ● Демонстрация результатов ● Все принимают участие ● Демонстрируется только готовый функционал
  • 42. Модификация Scrum ● Гибкая методология - гибкие правила ● Scrum - не религия ● Scrum можно сделать удобнее добавляя/удаляя артефакты ● Использовать практики необходимо с умом ● Люди и взаимодействие важнее процессов и инструментов
  • 43.
  • 44.
  • 45. ● Planning Poker бесполезен в случае, если команда состоит из одного разработчика и тестировщика ● TDD, Code Review и некоторые другие элементы не нужны на прототипах ● Планирование не имеет смысла, если программист занимается ТОЛЬКО багфиксами ● Story Points (те самые попугаи) неприменимы в командах в случае если члены команды не равны по квалификации. Клиент/ПМ просит оценку в часах ● Метрики производительности команды сводят работу больше к набору очков, чем к выполнению задач
  • 46. Что добавили? ● Непрерывная интеграция ● Многоуровневое тестирование ● Коллективное владение кодом ● Рефакторинг ● Brainstorming
  • 47. Что убрали? ● Покер планирования ● Очки скрама ● Дополнительные роли
  • 48. Что делать с багами? ● Вводить резерв на багфиксы 10-25% ● Организовывать систему по примеру стека (при добавлении чего то более важного в спринт, что-то менее важное выпадает)
  • 49. А с тестированием? ● QA как разделяемый ресурс ● QA как часть команды ● QA отсутствует
  • 50. Когда Agile НЕ работает ● Медицинское, военное, космическое ПО ● Исследовательская работа ● Гос-заказы ● Если нет цели создавать качественное ПО в разумные сроки ● Все остальные случаи, когда ничего не поможет, такие как низкая квалификация, отсутствие бюджета, нереальные сроки
  • 51. Контроль версий, инспекция кода (Code review) https://github.com https://bitbucket.org
  • 55. Спасибо! Контакты: Антон Демин (докладчик): anton.demin@xored.com Ольга Краснянская (HR): olga.krasnyanskaya@xored.com