Опыт использования Scrumban в тестировании |
04.08.2017 00:00 |
Автор: Ярослав Хорошкин Оригинальная публикация: http://quality-lab.ru/experience-with-using-scrumban-in-testing/ За последние 20 лет Agile, Lean, Scrum и Kanban неуклонно завоевывают популярность в различных сферах и отраслях экономики. И это правильно, так как именно благодаря гибким технологиям многие компании смогли закончить свои проекты быстрее и\или увеличить прибыль. Но что же такое Agile и Lean? Что такое Scrum и Kanban? Чем они хороши, и какая между ними разница? И самое главное: как все это работает в сфере тестирования? В данной статье я постараюсь ответить на эти вопросы. Что такое Agile и Lean Agile является время-ориентированной итерационной философией, позволяющей создать продукт, разбивая процесс на отдельные фрагменты. Одно из ее главных преимуществ – способность адаптироваться и меняться на любом шаге (в зависимости от обратной связи, конъюнктуры рынка, корпоративных препятствий и т.д.) и поставлять только соответствующие рынку продукты. Компания, использующая Agile, как правило, быстро приспосабливается к изменениям, реализует задуманное при меньших временных затратах и способна использовать новые возможности по мере их появления. Процесс принятия решений ускоряется за счет мобильной организационной структуры и простого общения. В то же время основы и ценности гибких методологий могут применяться и для повышения личной эффективности сотрудников. Lean (бережливый) подход имеет долгую историю применения в промышленности. В последние годы он завоевал популярность и в области разработки ПО, в которой представлен следующими семью принципами, впервые опубликованными в книге «Lean Software Development: An Agile Toolkit»:
- Исключение потерь. Потерями считается все, что не добавляет ценности для потребителя. Чем хороши Scrum и Kanban, и какая между ними разница Scrum Kanban Kanban (в отличие от Scrum) – не итеративный добавочный метод, базирующийся на пяти основных действиях:
- Визуализация рабочего процесса. Группы, использующие Kanban, часто работают с различными процессами. Метод Kanban – это не более чем набор приемов для управления процессом и последующей целенаправленной его оптимизации. Kanban легко адаптируется к уже существующим системам, в том числе к Scrum. Обе эти методологии придают большое значение непрерывному улучшению, оптимизации работы и процесса. С их помощью объемные и сложные задачи можно раздробить на отдельные фрагменты и выполнить более качественно. Центральным элементом эффективности этих методологий является Кайдзен – образ мышления, направленный на постоянное совершенствование. И Scrum, и Kanban уделяют много внимания организации рабочего процесса, стремясь удерживать всех членов команды в курсе WIP и перспектив развития. Scrum, как правило, лучше использовать для управления процессом разработки, в котором есть много неопределенностей, тогда как Kanban лучше подходит для долгосрочного поддержания проекта. В ряде случаев наибольшая эффективность достигается при использовании лучших инструментов обеих методологий. Кликните на картинку, чтобы увеличить изображение Как все это вместе работает и применяется в области тестирования В тестировании возникают такие же проблемы, как и в разработке: большое количество задач, низкая скорость работы, некорректное понимание целей. Используя инструменты рассмотренных нами методологий, мы увеличиваем скорость работы команды, улучшаем планирование и увеличиваем вовлечение тестировщиков в проект. Рассмотрим пример из практики. Преамбула Последовательность наших действий: Бэклог – это проявление видения и бизнес-плана продукта. Бэклог состоит из Product Backlog Items (PBI’s). PBI может быть что угодно: от требований рынка до юзер-кейсов и спецификаций. Для начала мы полностью переработали бэклог. Все задачи были поделены на классы (Bug verification, Regression testing or Testing, Planning, etc). Sprint был сделан годичным, что помогло более точно отбирать задачи, решение которых необходимо на данный момент. Если в рамках текущего релиза возникало какое-либо уточнение (например, появлялись новые исправленные баги, входящие в текущий релиз), то на каждое такое изменение создавалась задача, которая включалась в спринт для немедленного выполнения. Кликните на картинку, чтобы увеличить изображение 2. Заполнение доски. Наша доска состояла из 4 колонок: To do (задачи, которые еще не начинали делать), In progress (задачи, над которыми работают в данный момент), Wait for info (задачи, ожидающие уточнения или любой другой информации, без которой невозможна дальнейшая работа) и Done (завершенные задачи). Формирование колонки To do происходило согласно приоритетам, формирующимся в соответствии с релизами. В течение дня член команды выбирал задачу, висящую на доске в статусе To do, и перемещал ее в колонку In progress, начиная работу над ней. После завершения задачи ее карточка перемещалась в колонку Done. Таким образом, вся команда видела, кто над какой задачей работает, и какие задачи еще необходимо сделать. Колонок на доске может быть больше. Главное, чтобы вся команда понимала, в каком статусе сейчас находится задача, кто ответственен за ее выполнение, и что нужно сделать для того, чтобы она была завершена. В целом, работа с доской и работа по методологии для команд тестирования практически не отличаются от работы команд разработчиков. Главное отличие от Scrum заключается в том, что каждая колонка лимитирована (то есть, в колонке не может быть больше определенного количества задач). Лимит устанавливается на совместном обсуждении при создании доски. Кликните на картинку, чтобы увеличить изображение 3. Проведение митингов. Также ведущий уточняет прогресс и задает интересующие его вопросы по каждой задаче в колонке In Progress, например:
- Какие проблемы возникли? и т.д. В свою очередь владельцы задач обязаны дать полную информацию по своим задачам. Такие же действия проводятся и с колонкой Wait for info, с тем исключением, что команда сообща пытается найти решение для скорейшего получения нужной информации. Периодически члены команды отчитываются о сделанных задачах в колонке Done. 4. Демонстрация. Демонстрация в тестировании не проводится, и это является единственным отличием от использования методологии Scrumban в разработке. Во-первых, у нас нет спринтов как таковых. Во-вторых, тестировщики могут выдать только готовый результат (если тестирование закончено); в противном случае показывать просто нечего. Единственная информация, характеризующая ход тестирования, – это прогресс тестирования продукта в процентах. 5. Проведение ретроспективы. Происходит оценка результативности команды, исходя из трех основных вопросов:
- Что прошло хорошо? В начале стоит кратко напомнить про цели ретроспективы, процедуру и ожидаемые результаты. Важно настроить людей на конструктивное взаимодействие; они должны быть готовы давать обратную связь, анализировать ситуацию и предлагать решения. Например, можно сделать так, чтобы каждый сказал хотя бы несколько слов, – ведь первый шаг всегда наиболее труден. Примеры вопросов для оценки:
- Почему на выполнение задачи на верификацию этого бага было затрачено больше времени, чем на верификацию другой? и т.д. По итогам ретроспективы составляется план улучшений, который поможет команде повысить скорость тестирования. Кликните на картинку, чтобы увеличить изображение Полученный профит Вывод Конечно, предложенная схема действий совсем не обязательно подойдет вашему проекту. Но среди огромного разнообразия инструментов вы можете подобрать именно те, которые будут полезны для вашей работы. В конце концов, соберите свой инструмент, как это сделали мы! |