Обязательные практики Agile и правило 3-х П
Павел Габриель agile-практик, программист, руководитель ООО Смарт системз
Вопросы?
Поговорим о Почему инженерные практики важны Обязательные практики Agile-проекта Правила успешного применения
Agile
Кто работает по Agile?
Что такое Agile?
Agile - это культура разработки ПО
Ценности
Принципы
нет практик!
Agile != XP Agile != Scrum Agile != Lean...
3 принципа
Изменения на любой стадии
Частые релизы
Рабочее ПО основной показатель прогресса
Качество?
Практики
Какие практики используете вы?
Популярные практики не обеспечивают должного качества
Коммуникации Самоорганизация... Качество кода
Стремление к уменьшению практик
XP > 20 Scrum ~ 10 Kanban = 3
Два варианта обеспечить качество
1. QA, QC, etc.
Расходы Коммуникации Документация Контроль Планирование
2. практики улучшающие качество продукта
Расходы На обучение Внедрение
Какие практики обязаны быть в Agile-проекте?
TDD Test Driven Development
Тест > Код
Red Green Refactoring
TDD Меньше ошибок Уверенность Смелость Definition of Done...
Проблемы
BDD - замена понятий
Как это делаем мы?
Ruby/Rail s
Continuous Integration
Легкие интеграции
CI часто включает Сборка Тестирование Выкатка
Как мы это делаем?
Фича / на команду
Проинтегрировались Запустили все тесты Commit Завершили задачу
Завершили фичу склеили с основной ветокой запустили тесты Commit
Выкатываем Staging Автоматическое тестирование ОК аналогично для Production
Refactoring
Улучшение кода без изменения внешнего поведения
Что нам дает?
Уменьшение стоимости изменений
Поддержка новой функциональности
Оптимизация
...В долг не бери и взаймы не давай; Легко и ссуду потерять и друга, А займы тупят лезвие хозяйства. У. Шекспир
# TODO...
Списки-копилки
Займы Доведение до идеала Безудержный рефакторинг :)
Как лучше делать?
Не отходя от кассы далеко...
Отдельная итерация в крайнем случае
ППП
Просто любое движение - затраты
Приятно правильное подкрепление
Постоянно чтобы было просто и приятно
ППП - минимум для успеха
Из жизни подтверждение
Прием пищи
Просто после долгих тренировок
Приятно Если приготовить аппетитно
Постоянно жизненная необходимость
Мой опыт и ППП
Индикатор плохого дизайна сложные тесты
Неправильное применение TDD большие и сложные функции
Отказ от TDD медленный компьютер
Проблемные выкатки, билды и т.п. сложный алгоритм
Проблемные интеграции сложная система контроля версий
Итоги Обязательные практики: TDD, CI, Refactoring Делайте все Просто/Приятно/Постоянно
Спасибо за внимание! Вопросы?