SlideShare ist ein Scribd-Unternehmen logo
1 von 28
Crystal Agile. Процесс
обеспечивающий качество.
Igor Bondarenko. Intetics Co.
Состав команды и еѐ
особенности
• 5 Менеджеров
• Распределенная команда:
– 3 центра разработки
– 11 разработчиков
• Разработчики имеют выраженную специализацию
• 1 тестировщик
1/27
Внедрение процесса
2/27
Артефакты
1.Резерв проекта
2.Резерв спринта
3.Планирование с игрой в покер
4.Ежедневные митинги
5.Диаграмма сгорания
3/27
Что-то пошло не так?!
• Тестирование «внезапно» стало сваливаться на
последние 4-5 дней итерации
• Резерв спринта не закрывался после планирования
• Митинги отнимают много времени
• Автоматизация отсутствует
4/27
Анализ проблем
• Неэффективное планирование.
• Система оценки времени на разработку
неэффективна
• Невозможно закрыть спринт после планирования
итерации
• В угоду скорости страдает качество кода,
накапливается технический долг
• Время тестировщика тратится на активности не
связанные с тестированием
5/27
Выбор средства решения
проблем
• Прогнуться под
процесс
• Своя методология
6/27
Crystal Agile
• Human-powered
• Ultralight
• Stretch-to-fit
7/27
Решение проблем
8/27
Внутренне качество
1. Внедряем TDD
2. Сталкиваемся с проблемами на этапе внедрения
3. Отказываемся от TDD в пользу BDD
9/27
Проблемы планирования
• Члены команды разбиты на группы, поддерживающие
разные модули
• Разработчики используют разные языки
программирования
• Внутри групп используются различные по сложности
технологии
• Покер планирования не работает
10/27
Проблемы покера
• Каждый член команды имеет равный вес, что влечет за
собой возможность недооценки или переоценки
необходимого времени
• Время тестировщика оценивается всей командой
11/27
Что делать?
Переходим от покера планирования к методу взвешенных экспертных
оценок
1. В планировании участвуют только те кто будет разрабатывать
2. Вес голоса зависит от «релевантности» разработчика
3. Коэффициенты зависят от предыдущей эффективности
4. Обязательно вводим в планирование время на юнит тесты, не даем
оценок только по функционалу
5. Время на тестирование оценивается тестировщиком совместно с
ответственным разработчиком
6. Планирование нацелено на сокращение простоев тестировщика
12/27
Плюсы подобного подхода
• Оценки стали более точными, что позволяет рационально
планировать время тестировщика в спринте
• Оценки учитывают все аспекты разработки (BDD,
интеграционное тестирование)
13/27
Невозможность закрыть
резерв спринта
• Некоторые страны не успевают дать список задач до
начала планирования
• В любой момент может появиться «горящая» задача
14/27
Двух зайцев одним
выстрелом
1. Работаем с «горящими» задачами
При 10-дневном спринте каждый загружается на 9 дней.
В итоге каждый член команды имеет день в запасе на urgent задачи.
Как мы работаем с такими задачами:
• Если приходит задача емкость которой в человеко-часах больше, чем
наш резерв – задача переносится на следующий спринт
• Задачи меньшего размера берутся в работу лишь до того момента,
пока есть резерв
2. Уменьшаем технический долг
15/27
Технический долг
Внутренний бэклог проекта содержит такие задачи как:
• Рефакторинг
• Написание юнит- и компонентных тестов
• Написание автотестов по готовым сценариям
• Работа с to-do
16/27
Митинги
Проблема:
5 менеджеров в разных странах. Количество звонков порой
доходило до 5 в день.
Решение проблемы:
• Назначение ответственного за разработку задачи
• Ограждение обычных разработчиков от лишних
обсуждений
• Смена ответственных по окончании итерации
17/27
Стэндапы не нужны?
Перенос этой активности в Jira:
• Start Work – Stop Work
• Активность за день описывается в таске одним кратким,
но понятным комментарием.
18/27
Начало автоматизации
Наличие «некрасивого»
автотеста значительно
лучше, нежели его отсутсвие
19/27
Положительное влияние
«некрасивых тестов»
Плюсы таких тестов в начале проекта:
• Быстро создаются
• Предоставляют быструю обратную связь
• Помогают вовлечь разработчиков в тестирование
• Являются заготовками для будущих «красивых» тестов
20/27
SoapUI для сервисов
• Низкий порог вхождения
• Возможность быстро создать test suite для запуска
полного теста в один клик
• Тесты можно включить в CI
• Возможность разрабатывать тесты используя Mocks
параллельно с имплементацией
• Возможность создания Load и Security тестов
21/27
Вовлечение разработчиков:
демонстрация
Цель: «Подсадить» программистов на тестирование
1. Демонстрация работы автотестов и объяснение основого
смысла:
- Быстрая обратная связь
- Возможность быстро и самостоятельно
проверить качество перед коммитом
2. Демонстрация Selenium IDE
22/27
Вовлечение разработчиков:
обучение
1. Возвращаем «подсевших» на качество разработчиков в
родную стихию:
- Переход от IDE к RC или WebDriver
- Выделение времени на перевод старых тестов с
IDE на Java
2. SoapUI тесты для неподдатливых:
- Обучение созданию
- Расширение возможностей с Groovy
- CI
23/27
Agile?
24/27
Заключение
• Гибкая методология может быть гибко приспособлена
под нужды команды
• Не стоит бояться экспериментов с техниками
• По настоящему высокого качества можно достигнуть
лишь тогда когда над этим работает вся команда.
• В команде должен быть человек, который недоволен
текущим процессом
25/27
Что-то еще?
26/27
Вопросы
Email: bondarenko.ihar@yandex.ru
Skype: igor.bondarenko1

Weitere ähnliche Inhalte

Was ist angesagt?

Мобильный веб: назад в будущее
Мобильный веб: назад в будущееМобильный веб: назад в будущее
Мобильный веб: назад в будущее
Badoo Development
 
Jenkins 2. Как сделать мажорный релиз и не развалить сообщество?
Jenkins 2. Как сделать мажорный релиз и не развалить сообщество?Jenkins 2. Как сделать мажорный релиз и не развалить сообщество?
Jenkins 2. Как сделать мажорный релиз и не развалить сообщество?
CEE-SEC(R)
 
Олег Бунин (Онтико) | Менеджмент и бизнес-процессы в разработке highload-прое...
Олег Бунин (Онтико) | Менеджмент и бизнес-процессы в разработке highload-прое...Олег Бунин (Онтико) | Менеджмент и бизнес-процессы в разработке highload-прое...
Олег Бунин (Онтико) | Менеджмент и бизнес-процессы в разработке highload-прое...
RIF-Technology
 
Гибкие методологии разработки ПО в реальном мире
 Гибкие методологии разработки ПО в реальном мире Гибкие методологии разработки ПО в реальном мире
Гибкие методологии разработки ПО в реальном мире
Tech Talks @NSU
 

Was ist angesagt? (20)

Waterfall revisited: практические метрики тестирования
Waterfall revisited: практические метрики тестированияWaterfall revisited: практические метрики тестирования
Waterfall revisited: практические метрики тестирования
 
10 принципов автоматизации, которые я не предам
10 принципов автоматизации, которые я не предам10 принципов автоматизации, которые я не предам
10 принципов автоматизации, которые я не предам
 
Мобильный веб: назад в будущее
Мобильный веб: назад в будущееМобильный веб: назад в будущее
Мобильный веб: назад в будущее
 
Как автотесты ускоряют релизы в OK.ru
Как автотесты ускоряют релизы в OK.ruКак автотесты ускоряют релизы в OK.ru
Как автотесты ускоряют релизы в OK.ru
 
QA Fes 2016. Анастасия Асеева. Роль тестирования в Devops
QA Fes 2016. Анастасия Асеева. Роль тестирования в DevopsQA Fes 2016. Анастасия Асеева. Роль тестирования в Devops
QA Fes 2016. Анастасия Асеева. Роль тестирования в Devops
 
Гибкое тестирование
Гибкое тестированиеГибкое тестирование
Гибкое тестирование
 
Тестируем производительность с помощью Selenium
Тестируем производительность с помощью SeleniumТестируем производительность с помощью Selenium
Тестируем производительность с помощью Selenium
 
Сергей Смирнов (Altair Engineering Inc.) | Организация работы распределенной ...
Сергей Смирнов (Altair Engineering Inc.) | Организация работы распределенной ...Сергей Смирнов (Altair Engineering Inc.) | Организация работы распределенной ...
Сергей Смирнов (Altair Engineering Inc.) | Организация работы распределенной ...
 
Jenkins 2. Как сделать мажорный релиз и не развалить сообщество?
Jenkins 2. Как сделать мажорный релиз и не развалить сообщество?Jenkins 2. Как сделать мажорный релиз и не развалить сообщество?
Jenkins 2. Как сделать мажорный релиз и не развалить сообщество?
 
Agile и тестирование
Agile и тестированиеAgile и тестирование
Agile и тестирование
 
Длинный путь к DevOps?
Длинный путь к DevOps?Длинный путь к DevOps?
Длинный путь к DevOps?
 
Инструменты гибкого управления: Agile / Kanban / Scrum
Инструменты гибкого управления: Agile / Kanban / ScrumИнструменты гибкого управления: Agile / Kanban / Scrum
Инструменты гибкого управления: Agile / Kanban / Scrum
 
Виталий Стрелюк
Виталий СтрелюкВиталий Стрелюк
Виталий Стрелюк
 
Mva stf module 4 - rus
Mva stf module 4 - rusMva stf module 4 - rus
Mva stf module 4 - rus
 
Переписать нельзя рефакторить
Переписать нельзя рефакторитьПереписать нельзя рефакторить
Переписать нельзя рефакторить
 
Олег Бунин (Онтико) | Менеджмент и бизнес-процессы в разработке highload-прое...
Олег Бунин (Онтико) | Менеджмент и бизнес-процессы в разработке highload-прое...Олег Бунин (Онтико) | Менеджмент и бизнес-процессы в разработке highload-прое...
Олег Бунин (Онтико) | Менеджмент и бизнес-процессы в разработке highload-прое...
 
Гибкие методологии разработки ПО в реальном мире
 Гибкие методологии разработки ПО в реальном мире Гибкие методологии разработки ПО в реальном мире
Гибкие методологии разработки ПО в реальном мире
 
ROCS 2 - advanced platform for automated test execution in clustered environm...
ROCS 2 - advanced platform for automated test execution in clustered environm...ROCS 2 - advanced platform for automated test execution in clustered environm...
ROCS 2 - advanced platform for automated test execution in clustered environm...
 
Continious integration-Automated Testing-Solid-Agile
Continious integration-Automated Testing-Solid-AgileContinious integration-Automated Testing-Solid-Agile
Continious integration-Automated Testing-Solid-Agile
 
Управление качеством в Agile. Как опередить баги
Управление качеством в Agile. Как опередить багиУправление качеством в Agile. Как опередить баги
Управление качеством в Agile. Как опередить баги
 

Ähnlich wie Crystal Agile: Процесс обеспечивающий качество

А. Калугин. О параллельном тестировании нескольких проектов. SQADays'10
А. Калугин. О параллельном тестировании нескольких проектов. SQADays'10А. Калугин. О параллельном тестировании нескольких проектов. SQADays'10
А. Калугин. О параллельном тестировании нескольких проектов. SQADays'10
Alexander Kalouguine
 
Anton Stoliar SQADays2012 Управление качеством в Agile. Как опередить баги.
Anton Stoliar SQADays2012 Управление качеством в Agile. Как опередить баги.Anton Stoliar SQADays2012 Управление качеством в Agile. Как опередить баги.
Anton Stoliar SQADays2012 Управление качеством в Agile. Как опередить баги.
Anton Stoliar
 
How to estimate time for testing
How to estimate time for testingHow to estimate time for testing
How to estimate time for testing
Alexandr Zinovyev
 
SECON'2017, Цветцих Денис, Как добавить работе по Agile предсказуемости, не п...
SECON'2017, Цветцих Денис, Как добавить работе по Agile предсказуемости, не п...SECON'2017, Цветцих Денис, Как добавить работе по Agile предсказуемости, не п...
SECON'2017, Цветцих Денис, Как добавить работе по Agile предсказуемости, не п...
SECON
 
Пример внедрения Agile в крупном проекте. Как не следует внедрять Agile
Пример внедрения Agile в крупном проекте. Как не следует внедрять AgileПример внедрения Agile в крупном проекте. Как не следует внедрять Agile
Пример внедрения Agile в крупном проекте. Как не следует внедрять Agile
Alexey Krivitsky
 
Общие темы. Тема 03.
Общие темы. Тема 03. Общие темы. Тема 03.
Общие темы. Тема 03.
Igor Shkulipa
 
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
Alena Portelli
 

Ähnlich wie Crystal Agile: Процесс обеспечивающий качество (20)

Подход и инструменты измерения эффективности процесса разработки или как держ...
Подход и инструменты измерения эффективности процесса разработки или как держ...Подход и инструменты измерения эффективности процесса разработки или как держ...
Подход и инструменты измерения эффективности процесса разработки или как держ...
 
А. Калугин. О параллельном тестировании нескольких проектов. SQADays'10
А. Калугин. О параллельном тестировании нескольких проектов. SQADays'10А. Калугин. О параллельном тестировании нескольких проектов. SQADays'10
А. Калугин. О параллельном тестировании нескольких проектов. SQADays'10
 
Раздвоение тестирующей личности или эффективная организация параллельного тес...
Раздвоение тестирующей личности или эффективная организация параллельного тес...Раздвоение тестирующей личности или эффективная организация параллельного тес...
Раздвоение тестирующей личности или эффективная организация параллельного тес...
 
Anton Stoliar SQADays2012 Управление качеством в Agile. Как опередить баги.
Anton Stoliar SQADays2012 Управление качеством в Agile. Как опередить баги.Anton Stoliar SQADays2012 Управление качеством в Agile. Как опередить баги.
Anton Stoliar SQADays2012 Управление качеством в Agile. Как опередить баги.
 
Как принести пользу разработке и упростить себе жизнь?
Как принести пользу разработке и упростить себе жизнь?Как принести пользу разработке и упростить себе жизнь?
Как принести пользу разработке и упростить себе жизнь?
 
How to estimate time for testing
How to estimate time for testingHow to estimate time for testing
How to estimate time for testing
 
Как оценить время на тестирование. Александр Зиновьев, Test Lead Softengi
Как оценить время на тестирование. Александр Зиновьев, Test Lead SoftengiКак оценить время на тестирование. Александр Зиновьев, Test Lead Softengi
Как оценить время на тестирование. Александр Зиновьев, Test Lead Softengi
 
SECON'2017, Цветцих Денис, Как добавить работе по Agile предсказуемости, не п...
SECON'2017, Цветцих Денис, Как добавить работе по Agile предсказуемости, не п...SECON'2017, Цветцих Денис, Как добавить работе по Agile предсказуемости, не п...
SECON'2017, Цветцих Денис, Как добавить работе по Agile предсказуемости, не п...
 
7 Способы проведения ретроспектив для анализа и улучшения процесса
7 Способы проведения ретроспектив для анализа и улучшения процесса7 Способы проведения ретроспектив для анализа и улучшения процесса
7 Способы проведения ретроспектив для анализа и улучшения процесса
 
Виталий Шибаев - Креативный менеджмент глазами разработчика: как выжить в agi...
Виталий Шибаев - Креативный менеджмент глазами разработчика: как выжить в agi...Виталий Шибаев - Креативный менеджмент глазами разработчика: как выжить в agi...
Виталий Шибаев - Креативный менеджмент глазами разработчика: как выжить в agi...
 
7 retro
7 retro7 retro
7 retro
 
Пример внедрения Agile в крупном проекте. Как не следует внедрять Agile
Пример внедрения Agile в крупном проекте. Как не следует внедрять AgileПример внедрения Agile в крупном проекте. Как не следует внедрять Agile
Пример внедрения Agile в крупном проекте. Как не следует внедрять Agile
 
Общие темы. Тема 03.
Общие темы. Тема 03. Общие темы. Тема 03.
Общие темы. Тема 03.
 
Agile Testing Process
Agile Testing ProcessAgile Testing Process
Agile Testing Process
 
Agile Testing Process
Agile Testing ProcessAgile Testing Process
Agile Testing Process
 
ACC - конструируем тест-план методом Google
ACC - конструируем тест-план методом GoogleACC - конструируем тест-план методом Google
ACC - конструируем тест-план методом Google
 
Обеспечение качества: Практические советы
Обеспечение качества: Практические советыОбеспечение качества: Практические советы
Обеспечение качества: Практические советы
 
Оценка задач выполняемых по итеративной разработке
Оценка задач выполняемых по итеративной разработкеОценка задач выполняемых по итеративной разработке
Оценка задач выполняемых по итеративной разработке
 
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
 
Analyst days 2015 Оценка аутсорсинговых проектов
Analyst days 2015 Оценка аутсорсинговых проектовAnalyst days 2015 Оценка аутсорсинговых проектов
Analyst days 2015 Оценка аутсорсинговых проектов
 

Mehr von Zestranec

Тестирование крупного проекта командой из одного тестировщика
Тестирование крупного проекта командой из одного тестировщикаТестирование крупного проекта командой из одного тестировщика
Тестирование крупного проекта командой из одного тестировщика
Zestranec
 
Организация процесса тестирования в Agile команде с помощью матрицы квадранто...
Организация процесса тестирования в Agile команде с помощью матрицы квадранто...Организация процесса тестирования в Agile команде с помощью матрицы квадранто...
Организация процесса тестирования в Agile команде с помощью матрицы квадранто...
Zestranec
 
Тестирование программных фильтров безопасности
Тестирование программных фильтров безопасностиТестирование программных фильтров безопасности
Тестирование программных фильтров безопасности
Zestranec
 

Mehr von Zestranec (6)

Mobile security testing
Mobile security testingMobile security testing
Mobile security testing
 
Blind Sql Injections. Хороши ли ваши тесты?
Blind Sql Injections. Хороши ли ваши тесты?Blind Sql Injections. Хороши ли ваши тесты?
Blind Sql Injections. Хороши ли ваши тесты?
 
Тестирование крупного проекта командой из одного тестировщика
Тестирование крупного проекта командой из одного тестировщикаТестирование крупного проекта командой из одного тестировщика
Тестирование крупного проекта командой из одного тестировщика
 
Организация процесса тестирования в Agile команде с помощью матрицы квадранто...
Организация процесса тестирования в Agile команде с помощью матрицы квадранто...Организация процесса тестирования в Agile команде с помощью матрицы квадранто...
Организация процесса тестирования в Agile команде с помощью матрицы квадранто...
 
Тестирование программных фильтров безопасности
Тестирование программных фильтров безопасностиТестирование программных фильтров безопасности
Тестирование программных фильтров безопасности
 
тестирование защищенности веб приложений
тестирование защищенности веб приложенийтестирование защищенности веб приложений
тестирование защищенности веб приложений
 

Kürzlich hochgeladen

ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...
ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...
ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...
Ирония безопасности
 
2023 Q4. The Ransomware report. [RU].pdf
2023 Q4. The Ransomware report. [RU].pdf2023 Q4. The Ransomware report. [RU].pdf
2023 Q4. The Ransomware report. [RU].pdf
Хроники кибер-безопасника
 
CVE. The Fortra's GoAnywhere MFT [RU].pdf
CVE. The Fortra's GoAnywhere MFT [RU].pdfCVE. The Fortra's GoAnywhere MFT [RU].pdf
CVE. The Fortra's GoAnywhere MFT [RU].pdf
Хроники кибер-безопасника
 
Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...
Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...
Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...
Ирония безопасности
 
Cyberprint. Dark Pink Apt Group [RU].pdf
Cyberprint. Dark Pink Apt Group [RU].pdfCyberprint. Dark Pink Apt Group [RU].pdf
Cyberprint. Dark Pink Apt Group [RU].pdf
Хроники кибер-безопасника
 
СИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdf
СИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdfСИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdf
СИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdf
Хроники кибер-безопасника
 

Kürzlich hochgeladen (9)

Malware. DCRAT (DARK CRYSTAL RAT) [RU].pdf
Malware. DCRAT (DARK CRYSTAL RAT) [RU].pdfMalware. DCRAT (DARK CRYSTAL RAT) [RU].pdf
Malware. DCRAT (DARK CRYSTAL RAT) [RU].pdf
 
ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...
ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...
ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...
 
2023 Q4. The Ransomware report. [RU].pdf
2023 Q4. The Ransomware report. [RU].pdf2023 Q4. The Ransomware report. [RU].pdf
2023 Q4. The Ransomware report. [RU].pdf
 
MS Navigating Incident Response [RU].pdf
MS Navigating Incident Response [RU].pdfMS Navigating Incident Response [RU].pdf
MS Navigating Incident Response [RU].pdf
 
Ransomware_Q3 2023. The report [RU].pdf
Ransomware_Q3 2023.  The report [RU].pdfRansomware_Q3 2023.  The report [RU].pdf
Ransomware_Q3 2023. The report [RU].pdf
 
CVE. The Fortra's GoAnywhere MFT [RU].pdf
CVE. The Fortra's GoAnywhere MFT [RU].pdfCVE. The Fortra's GoAnywhere MFT [RU].pdf
CVE. The Fortra's GoAnywhere MFT [RU].pdf
 
Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...
Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...
Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...
 
Cyberprint. Dark Pink Apt Group [RU].pdf
Cyberprint. Dark Pink Apt Group [RU].pdfCyberprint. Dark Pink Apt Group [RU].pdf
Cyberprint. Dark Pink Apt Group [RU].pdf
 
СИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdf
СИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdfСИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdf
СИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdf
 

Crystal Agile: Процесс обеспечивающий качество

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

Hinweis der Redaktion

  1. Менеджмент со стороны заказчика распределен по странам, с командой одновременно работает 5 менеджеровКоманда распределена: 6 разработчиков в одном офисе и 3 в другомНекоторые члены команды имеют ярко выраженную специализацию1 тестировщик
  2. Тестирование каждый раз «внезапно» стало сваливаться на последние 4-5 дней итерацииРезерв спринта не закрывался после планированияМного митингов отнимают много времени, единственный тестировщик должен присутствовать на всех нихОснова успеха быстрых процессов – комплексная автоматизация отсутствует из-за острой нехватки времени и плохого внутреннего качества проектаВ итоге мы поняли, что внедрили на проекте процесс направленный на скорость поставки, а не на обеспечение максимального качества
  3. Анализ проблем указал на основные недостатки нашего подхода:Неэффективное планирование.Заказчик не понимает что такое Story Point и требует оценки в часах. Точной оценки.Закрыть спринт сразу после планирования итерации невозможно, ввиду того, что мы ведем не только разработку, но и поддержку старых версийВ угоду скорости страдает качество кода, накапливается технический долгМного времени тестировщика тратится на активности не связанные с тестированием
  4. У нас было два пути:Пользуясь «гибкостью» аджайла создать свою методологию
  5. Нами был выбран второй вариант. Мы остановились на методологии Crystal Clear.Какие её основные характеристики:“Human-powered” means that the focus is on achieving project success through enhancing the work of the people involved (other methodologies might be process-centric, or architecture-centric, or tool-centric, but Crystal is people-centric).“Ultralight” means that for whatever the project size and priorities, a Crystal-family methodology for the project will work to reduce the paperwork, overhead and bureaucracy to the least that is practical for the parameters of that project.“Stretch-to-fit” means that you start with something just smaller than you think you need, and grow it just enough to get it the right size for you (stretching is easier, safer and more efficient than cutting away)."Человек с питанием" означает, что акцент делается на достижении успеха проекта через повышение эффективности работы людей, вовлеченных (другие методологии может быть процесс-ориентированной, или архитектура-ориентированной, или инструмент-ориентированной, но Кристалл люди-ориентированной). "Ultralight" означает, что для любой размер и приоритетов проекта, методология Кристалл-семья для проекта будет способствовать снижению документы, накладные расходы и бюрократии мере, это практично для параметров этого проекта. "Растягивание к монтажу" означает, что вы начинаете с чем-то просто меньше, чем вы думаете, вам нужно, и вырастить его достаточно только, чтобы получить это правильный размер для вас (растяжение проще, безопаснее и эффективнее, чем срезая).
  6. Решение этой проблемы начали со внедрения TDD, как самого популярного средства в подобных ситуациях.Однако внедрение затянулось и даже почти застопорилось. Почему?Фраза «напиши тест» действует на разработчик магическим образом, он перестает понимать чего от него хотят.Что является критерием достаточности теста для каждого отдельного случая?А может быть стоит писать юнит тесты по тестовым сценариям?Если да, то какие группы тестов использовать?А как быть, если разработка началась, но тестировщик не успел написать тестовые сценарии?Вместо TDD внедряем BDD (Behavior Driven Developement).Что это такое?Фактически это техника, с помощью которой можно научить разработчика критически оценивать свой код и писать тесты.Для составления достаточного количества тестов разработчику необходимо определить поведение системы в ситуациях прямо покрытых требованиями и покрыть тестами лишь эти ветви кода. (Пример вынес в Notes)Фрэнк: Что такое стек?Линда: Это структура данных, хранящая объекты в порядке «первым вошел, последним вышел» или «последним вошел, первым вышел». Обычно у этой структуры есть API с такими методами, как push() и pop(). Иногда присутствует метод peek().Фрэнк: Что делает метод push()?Линда: Метод push() принимает входной объект, например, foo и помещает его во внутренний контейнер, например, массив. Метод push() обычно ничего не возвращает.Фрэнк: Что будет, если передать методу push() два объекта, например, сначала foo, а потом bar?Линда: Второй объект bar должен оказаться наверху концептуального стека, содержащего по крайней мере два объекта, так что при вызове метода pop() объект bar должен быть извлечен первым, до первого объекта foo. Если метод pop() вызвать еще раз, должен быть возвращен объект foo и стек должен стать пустым (предполагается, что в нем ничего не было до того, как мы добавили эти два объекта).Фрэнк: Так метод pop() удаляет самый последний элемент, добавленный в стек?Линда: Да, метод pop() должен удалить верхний элемент, при этом предполагается, что в стеке есть элементы, чтобы их удалять. Метод peek() работает точно также, но при этом объект не удаляется. Метод peek() должен оставить верхний элемент в стеке.Фрэнк: Что будет, если вызвать метод pop(), когда в стек еще ничего не было добавлено?Линда: Метод pop() должен выдать исключение, показывающее, что в стек еще ничего не добавлялось.Фрэнк: Что будет, если выполнить команду push() null?Линда: Стек должен выдать исключение, так как null не является допустимым значением для метода push(). 
  7. Вторая проблема – плохое планирование. И дело не в сложности оценки в часах, дело в том, что команда разбита на группы, которые занимаются различными модулями проекта, а также используют разные технологии.Что же в таком случае плохо в Planning Poker?Каждый член команды имеет равный вес (пример 1 в ноутах) что влечет за собой возможность недооценки или переоценки необходимого времени. В итоге недооценка грозит срывом планов тестировщика. Переоценка же позволяет разработчику «филонить» в начале спринта и сдать фичу только в конце, тем самым перегружая тестировщика в конце спринта.Время тестировщика оценивается всей командой. В связи с этим сложно обосновать такие активности как написание тест-кейсов или составление спецификации по business stories.
  8. Каждый член команды имеет равный вес (пример 1 в ноутах) что влечет за собой возможность недооценки или переоценки необходимого времени. В итоге недооценка грозит срывом планов тестировщика. Переоценка же позволяет разработчику «филонить» в начале спринта и сдать фичу только в конце, тем самым перегружая тестировщика в конце спринта.Время тестировщика оценивается всей командой. В связи с этим сложно обосновать такие активности как написание тест-кейсов или составление спецификации по business stories.Пример 1:На планировании находятся 2 Java девелопера, 1 верстальщик, 1 тестировщик, 1 Flex/Flash разработчик, 1 JavaScript девелопер. На обсуждение выносится задача по разработке front-end приложения на Flex.Оценка флексера – 12 часов. Оценка тестировщика и верстальщика – 20 часов. Остальные оценивают в 4 часа, хотя тонкостей не знают. В итоге, даже обосновав правильность своей оценки основной разработчик уменьшает время в угоду остальным до 10 часов и в итоге не укладывается в него.То же самое с переоценкой времени, если никто не понимает как работает твой модуль, очень легко обосновать 40 часов вместо необходимых 12.Такой же пример будет для каждого пункта, их у меня из личной практики не одна сотня наберется.
  9. Если разрабатывается функциональность затрагивающая один модуль приложения – участвуют только ответственные за эту часть разработчики веса их голосов равныЕсли затрагивается комплексная фича – каждый член команды, в зависимости от модуля и используемой технологии разработки получает вес голосаВведение персональных коэффициентов зависящих от предыдущей эффективности члена команды (пример в ноутах)Обязательно вводим в тестирование время на юнит тесты, не даем оценок только по функционалуВремя на тестирование оценивается тестировщиком совместно с непосредственно ответственным за разработку девелоперамПланирование ведется с учетом того, чтобы тестировщик начал работу в первый день спринта и не имел простоев в середине цикла и не был перегружен в конце (пример в ноутах)Пример:Разработчик 1 последние три спринта недооценивал время – даем ему повышающий коэффициент 1.2Разработчик 2 наоборот имеет склонность к переоценке времени – вводим понижающий коэффициент 0.7Пример 2: Идеальный цикл таков: Дни 1-2: Составление чеклистов по новым фичамДни 3-4: Начало тестирования, либо написание автотестов на фичи из предыдущих релизовДни 5-8: Тестирование по функциональностей по мере готовностиДень 9: Code freeze и полная регрессияДень 10: Поставка и UATТакже будет сопровождающая пояснения временная диаграмма
  10. При планировании мы исходим из того, что при 10-дневном спринт мы берем из бэклога задач лишь на 9 дней.В итоге каждый член команды имеет день в запасе на urgent задачи.
  11. Что делать, если срочных задач не появилось?Если кто-либо из команды не получил незапланированное задание, он берет первую по приоритету задачу из этого бэклога и занимается ей.
  12. Каждый спринт выбирается член команды ответственный за каждую разрабатываемую фичу, в митингах участвует только он. Остальные занимаются работой.Ответственные меняются каждый спринт (если конечно функциональность не растянута на несколько спринтов, в таком случае смысла в смене человека нет).
  13. Мы решили избавиться также от стэндап митингов.Почему?Зачем верстальщику, который пришел на работу в 8 утра и работающему над приложением А, знать что вчера делал разработчик. который пришел на работу в 12 и работает над приложением Б, которое не пересекается с А?А если нужно узнать статус?Мы перешли на Jira. Каждый день начиная работу над таском, разработчк жмет кнопку Start Work, уходя с работы делает Stop Work.Активность за день описывается в таске одним кратким, но понятным комментарием.