Download - Crystal Agile, или как мы приспособили процесс разработки для обеспечения максимального качества
![Page 1: Crystal Agile, или как мы приспособили процесс разработки для обеспечения максимального качества](https://reader035.vdocuments.pub/reader035/viewer/2022062319/557ffa82d8b42aa4628b510f/html5/thumbnails/1.jpg)
Crystal Agile. Процесс обеспечивающий качество.
Igor Bondarenko. Intetics Co.
![Page 2: Crystal Agile, или как мы приспособили процесс разработки для обеспечения максимального качества](https://reader035.vdocuments.pub/reader035/viewer/2022062319/557ffa82d8b42aa4628b510f/html5/thumbnails/2.jpg)
Состав команды и её особенности
• 5 Менеджеров• Распределенная команда:
– 3 центра разработки– 11 разработчиков
• Разработчики имеют выраженную специализацию• 1 тестировщик
1/27
![Page 3: Crystal Agile, или как мы приспособили процесс разработки для обеспечения максимального качества](https://reader035.vdocuments.pub/reader035/viewer/2022062319/557ffa82d8b42aa4628b510f/html5/thumbnails/3.jpg)
Внедрение процесса
2/27
![Page 4: Crystal Agile, или как мы приспособили процесс разработки для обеспечения максимального качества](https://reader035.vdocuments.pub/reader035/viewer/2022062319/557ffa82d8b42aa4628b510f/html5/thumbnails/4.jpg)
Артефакты
1.Резерв проекта2.Резерв спринта3.Планирование с игрой в покер4.Ежедневные митинги5.Диаграмма сгорания
3/27
![Page 5: Crystal Agile, или как мы приспособили процесс разработки для обеспечения максимального качества](https://reader035.vdocuments.pub/reader035/viewer/2022062319/557ffa82d8b42aa4628b510f/html5/thumbnails/5.jpg)
Что-то пошло не так?!
• Тестирование «внезапно» стало сваливаться на последние 4-5 дней итерации
• Резерв спринта не закрывался после планирования• Митинги отнимают много времени • Автоматизация отсутствует
4/27
![Page 6: Crystal Agile, или как мы приспособили процесс разработки для обеспечения максимального качества](https://reader035.vdocuments.pub/reader035/viewer/2022062319/557ffa82d8b42aa4628b510f/html5/thumbnails/6.jpg)
Анализ проблем
• Неэффективное планирование.• Система оценки времени на разработку
неэффективна• Невозможно закрыть спринт после
планирования итерации• В угоду скорости страдает качество кода,
накапливается технический долг• Время тестировщика тратится на активности не
связанные с тестированием
5/27
![Page 7: Crystal Agile, или как мы приспособили процесс разработки для обеспечения максимального качества](https://reader035.vdocuments.pub/reader035/viewer/2022062319/557ffa82d8b42aa4628b510f/html5/thumbnails/7.jpg)
Выбор средства решения проблем
• Прогнуться под процесс
• Своя методология
6/27
![Page 8: Crystal Agile, или как мы приспособили процесс разработки для обеспечения максимального качества](https://reader035.vdocuments.pub/reader035/viewer/2022062319/557ffa82d8b42aa4628b510f/html5/thumbnails/8.jpg)
Crystal Agile
• Human-powered• Ultralight• Stretch-to-fit
7/27
![Page 9: Crystal Agile, или как мы приспособили процесс разработки для обеспечения максимального качества](https://reader035.vdocuments.pub/reader035/viewer/2022062319/557ffa82d8b42aa4628b510f/html5/thumbnails/9.jpg)
Решение проблем
8/27
![Page 10: Crystal Agile, или как мы приспособили процесс разработки для обеспечения максимального качества](https://reader035.vdocuments.pub/reader035/viewer/2022062319/557ffa82d8b42aa4628b510f/html5/thumbnails/10.jpg)
Внутренне качество
1. Внедряем TDD
2. Сталкиваемся с проблемами на этапе внедрения
3. Отказываемся от TDD в пользу BDD
9/27
![Page 11: Crystal Agile, или как мы приспособили процесс разработки для обеспечения максимального качества](https://reader035.vdocuments.pub/reader035/viewer/2022062319/557ffa82d8b42aa4628b510f/html5/thumbnails/11.jpg)
Проблемы планирования
• Члены команды разбиты на группы, поддерживающие разные модули
• Разработчики используют разные языки программирования
• Внутри групп используются различные по сложности технологии
• Покер планирования не работает
10/27
![Page 12: Crystal Agile, или как мы приспособили процесс разработки для обеспечения максимального качества](https://reader035.vdocuments.pub/reader035/viewer/2022062319/557ffa82d8b42aa4628b510f/html5/thumbnails/12.jpg)
Проблемы покера
• Каждый член команды имеет равный вес, что влечет за собой возможность недооценки или переоценки необходимого времени
• Время тестировщика оценивается всей командой
11/27
![Page 13: Crystal Agile, или как мы приспособили процесс разработки для обеспечения максимального качества](https://reader035.vdocuments.pub/reader035/viewer/2022062319/557ffa82d8b42aa4628b510f/html5/thumbnails/13.jpg)
Что делать?
Переходим от покера планирования к методу взвешенных экспертных оценок
1. В планировании участвуют только те кто будет разрабатывать
2. Вес голоса зависит от «релевантности» разработчика
3. Коэффициенты зависят от предыдущей эффективности
4. Обязательно вводим в планирование время на юнит тесты, не даем оценок только по функционалу
5. Время на тестирование оценивается тестировщиком совместно с ответственным разработчиком
6. Планирование нацелено на сокращение простоев тестировщика
12/27
![Page 14: Crystal Agile, или как мы приспособили процесс разработки для обеспечения максимального качества](https://reader035.vdocuments.pub/reader035/viewer/2022062319/557ffa82d8b42aa4628b510f/html5/thumbnails/14.jpg)
Плюсы подобного подхода
• Оценки стали более точными, что позволяет рационально планировать время тестировщика в спринте
• Оценки учитывают все аспекты разработки (BDD, интеграционное тестирование)
13/27
![Page 15: Crystal Agile, или как мы приспособили процесс разработки для обеспечения максимального качества](https://reader035.vdocuments.pub/reader035/viewer/2022062319/557ffa82d8b42aa4628b510f/html5/thumbnails/15.jpg)
Невозможность закрыть резерв спринта
• Некоторые страны не успевают дать список задач до начала планирования
• В любой момент может появиться «горящая» задача
14/27
![Page 16: Crystal Agile, или как мы приспособили процесс разработки для обеспечения максимального качества](https://reader035.vdocuments.pub/reader035/viewer/2022062319/557ffa82d8b42aa4628b510f/html5/thumbnails/16.jpg)
Двух зайцев одним выстрелом
1. Работаем с «горящими» задачами
При 10-дневном спринте каждый загружается на 9 дней.
В итоге каждый член команды имеет день в запасе на urgent задачи.
Как мы работаем с такими задачами:• Если приходит задача емкость которой в человеко-часах больше, чем
наш резерв – задача переносится на следующий спринт• Задачи меньшего размера берутся в работу лишь до того момента,
пока есть резерв
2. Уменьшаем технический долг
15/27
![Page 17: Crystal Agile, или как мы приспособили процесс разработки для обеспечения максимального качества](https://reader035.vdocuments.pub/reader035/viewer/2022062319/557ffa82d8b42aa4628b510f/html5/thumbnails/17.jpg)
Технический долг
Внутренний бэклог проекта содержит такие задачи как:
• Рефакторинг• Написание юнит- и компонентных тестов• Написание автотестов по готовым сценариям• Работа с to-do
16/27
![Page 18: Crystal Agile, или как мы приспособили процесс разработки для обеспечения максимального качества](https://reader035.vdocuments.pub/reader035/viewer/2022062319/557ffa82d8b42aa4628b510f/html5/thumbnails/18.jpg)
Митинги
Проблема:
5 менеджеров в разных странах. Количество звонков порой доходило до 5 в день.
Решение проблемы: • Назначение ответственного за разработку задачи• Ограждение обычных разработчиков от лишних
обсуждений• Смена ответственных по окончании итерации
17/27
![Page 19: Crystal Agile, или как мы приспособили процесс разработки для обеспечения максимального качества](https://reader035.vdocuments.pub/reader035/viewer/2022062319/557ffa82d8b42aa4628b510f/html5/thumbnails/19.jpg)
Стэндапы не нужны?
Перенос этой активности в Jira:• Start Work – Stop Work• Активность за день описывается в таске одним кратким,
но понятным комментарием.
18/27
![Page 20: Crystal Agile, или как мы приспособили процесс разработки для обеспечения максимального качества](https://reader035.vdocuments.pub/reader035/viewer/2022062319/557ffa82d8b42aa4628b510f/html5/thumbnails/20.jpg)
Начало автоматизации
Наличие «некрасивого» автотеста значительно лучше, нежели его отсутсвие
19/27
![Page 21: Crystal Agile, или как мы приспособили процесс разработки для обеспечения максимального качества](https://reader035.vdocuments.pub/reader035/viewer/2022062319/557ffa82d8b42aa4628b510f/html5/thumbnails/21.jpg)
Положительное влияние «некрасивых тестов»
Плюсы таких тестов в начале проекта:• Быстро создаются• Предоставляют быструю обратную связь• Помогают вовлечь разработчиков в тестирование• Являются заготовками для будущих «красивых» тестов
20/27
![Page 22: Crystal Agile, или как мы приспособили процесс разработки для обеспечения максимального качества](https://reader035.vdocuments.pub/reader035/viewer/2022062319/557ffa82d8b42aa4628b510f/html5/thumbnails/22.jpg)
SoapUI для сервисов
• Низкий порог вхождения• Возможность быстро создать test suite для запуска
полного теста в один клик• Тесты можно включить в CI• Возможность разрабатывать тесты используя Mocks
параллельно с имплементацией• Возможность создания Load и Security тестов
21/27
![Page 23: Crystal Agile, или как мы приспособили процесс разработки для обеспечения максимального качества](https://reader035.vdocuments.pub/reader035/viewer/2022062319/557ffa82d8b42aa4628b510f/html5/thumbnails/23.jpg)
Вовлечение разработчиков:демонстрация
Цель: «Подсадить» программистов на тестирование
1. Демонстрация работы автотестов и объяснение основого смысла:- Быстрая обратная связь- Возможность быстро и самостоятельно
проверить качество перед коммитом2. Демонстрация Selenium IDE
22/27
![Page 24: Crystal Agile, или как мы приспособили процесс разработки для обеспечения максимального качества](https://reader035.vdocuments.pub/reader035/viewer/2022062319/557ffa82d8b42aa4628b510f/html5/thumbnails/24.jpg)
Вовлечение разработчиков:
обучение1. Возвращаем «подсевших» на качество разработчиков в
родную стихию:- Переход от IDE к RC или WebDriver- Выделение времени на перевод старых тестов с
IDE на Java2. SoapUI тесты для неподдатливых:
- Обучение созданию- Расширение возможностей с Groovy- CI
23/27
![Page 26: Crystal Agile, или как мы приспособили процесс разработки для обеспечения максимального качества](https://reader035.vdocuments.pub/reader035/viewer/2022062319/557ffa82d8b42aa4628b510f/html5/thumbnails/26.jpg)
Заключение
• Гибкая методология может быть гибко приспособлена под нужды команды
• Не стоит бояться экспериментов с техниками• По настоящему высокого качества можно достигнуть
лишь тогда когда над этим работает вся команда.• В команде должен быть человек, который недоволен
текущим процессом
25/27
![Page 27: Crystal Agile, или как мы приспособили процесс разработки для обеспечения максимального качества](https://reader035.vdocuments.pub/reader035/viewer/2022062319/557ffa82d8b42aa4628b510f/html5/thumbnails/27.jpg)
Что-то еще?
26/27