Бережливое тестирование в LEAN-разработке

Бережливая разработка программного обеспечения (LEAN) – это еще одна концепция создания ПО. Посмотрим, какое там место занимает тестирование.

Тестировщик » QA-блог » База » Бережливое тестирование в LEAN-разработке

Место тестирования в бережливой разработке ПО

LEAN разработка (Бережливая разработка) — это подход к созданию ПО, базирующийся на концепции Бережливого производства (Lean Production), которая в свою очередь сфокусирована на устранение потерь в рабочих процессах.

На изображение бережливое тестирование в LEAN-разработке.

История возникновения LEAN

После второй мировой войны японцы озадачились качеством своих автомобилей – они серьезно отставали от американских. Автостроители стали изучать, каким образом можно улучшить качество, в т.ч. изучали зарубежный опыт. Наибольшего успеха добилась корпорация Тойоты. Они разработали и усовершенствовали целый ряд инструментов организации труда, в результате чего стали лидерами рынка по качеству.

Теперь уже американские и европейские корпорации стали изучать причины «японского чуда». Они обнаружили этот новый подход и инструменты, которые в бизнес-изданиях стали называть Производственная система Тойоты (Toyota Production System, TPS). Западные автомобилестроители стали активно внедрять философию и инструменты TPM, продолжая их совершенствовать. В научно-популярной литературе TPM получило новое название – Lean Production (иногда просто сокращенно LEAN). 

Что значит LEAN и причем тут IT

Слово LEAN в переводе с английского означает «стройный, поджарый, избавленный от лишнего веса». Оно подразумевает, что производственные процессы избавляются от потерь ресурсов. В русском языке термин «стройное производство» или «поджарое производство» – не звучит. Поэтому стали переводить как «Бережливое производство» – т.е. то, которое бережет свои ресурсы.

Методы LEAN со временем доказали свою эффективность. Постепенно их переняли и другие отрасли промышленности (естественно, подстроив под свою специфику). Потом LEAN был адаптирован для разных сфер услуг, здравоохранения, некоммерческих организаций и т.п. Наконец, в 2003 году Мэри и Toм Поппендики (Mary & Tom Poppendiecks) издают книгу «Lean Software Development», где излагают концепцию Бережливой разработки.

В чем суть LEAN разработки

Подход LEAN заключается в том, что каждый процесс в создании ПО можно разбить на отдельные шаги-действия персонала. Среди них есть такие действия, которые приносят ценность клиенту. Их нужно сохранять. И есть другие действия, которые ценности клиенту не приносят. Их называют «потери», и от этих потерь надо избавляться (или хотя бы минимизировать до приемлемого уровня).

Поэтому в Бережливой разработке акцент делается на работу с потерями. Их определяют, упреждают и минимизируют. Для этого используют специальные LEAN-инструменты организации труда.

Примеры потерь в разработке (с чем борется LEAN)

  1. Невостребованная работа – написанный, но так и не использованный код;
  2. Излишнее качество – программист потратил много ресурсов и сделал модуль, который значительно превосходит по требованиям ТЗ, – но клиент дополнительных денег за это, естественно, не заплатит (клиенту достаточно того, что он заказал в ТЗ);
  3. Ожидание решений/документов/модулей и т.д. – простой членов команды по той причине, что что-либо для их работы не было подготовлено вовремя;
  4. Повторное изучение – программист начал один проект, но его перебросили на другой, когда он вернется к первому – придется снова вспоминать, что и как там делалось;
  5. Передача дел (проекта) – один менеджер проекта ушел (заболел, уехал в командировку, уволился, etc.), значит, другой потратит время на вхождение в проект.
  6. Переключение между задачами – разработчик исправляет баги сразу в двух ПО, ему приходится постоянно переключаться между ними, поэтому идет потеря на «обновление» информации;
  7. Дефекты – это самое очевидные потери, наши любимые баги.

Принципы LEAN разработки

  • Максимальная ценность для клиента при минимальных потерях;
  • Короткие итерации (аналог потока единичных изделий в промышленности);
  • Решения принимаются на основе фактов, а не мнений;
  • Люди – больше, чем просто ресурс;
  • Поощрение развития персонала;
  • Системное мышление (целостное видение);
  • Нет предела совершенствованию, ПО всегда можно сделать еще лучше.

Инструменты LEAN разработки

Большая часть инструментов перекочевала из Lean Production в Software Development, но была, естественно, творчески переработана. Здесь отметим два интересных момента:

  • AGILE-манифест хорошо стыкуется с принципами LEAN, поэтому иногда в вакансиях тестировщиков их упоминают как одно целое (AGILE/LEAN);
  • Известный всем Канбан в IT и его предок Канбан в производстве – это по сути два разных Канбана (хоть первый и был разработан на основе второго).

Место тестирования в LEAN разработке

  • Тестирование в LEAN производится обычно внутри цикла разработки, как в итеративной модели;
  • В качестве требований чаще используются User Story;
  • Применение Канбан-сервиса для организации QA-задач;
  • Чек-листы предпочтительнее тест-кейсов, т.к. их проще корректировать под изменяемые задачи;
  • Чек-листы (тесты) составляются и выверяются вместе с разработчиками (поэтому времени на чек-листы тратится больше, чем в других методологиях, но зато это компенсируется экономией на внутрикомандных взаимодействиях);
  • Метрики тестирования тоже могут быть гибкими (под задачи);
  • Каждый член команды регулярно получает обратную связь о багах и часто встречающихся ошибках в коде (так людям проще разобраться, где им в следующий раз стоит быть более внимательными).

Когда подход LEAN наиболее полезен в разработке ПО

LEAN-разработка наиболее эффективна, когда:

  • Команда намерена использовать гибкую методологию разработки;
  • Сделан упор на снижение потерь в процессах, в т.ч. дефектов;
  • Клиент предпочитает оценивать прогресс продукта после коротких циклов;
  • Бюджет разработки жестко ограничен;
  • Разработчики заранее обучены методологии и инструментам LEAN.

Резюме

Бережливая разработка ПО основана на переработанной концепции LEAN из промышленности. Упор в LEAN-разработке делается на минимизацию потерь в рабочих процессах проекта. Тестирование при Бережливой разработке характеризуется гибкостью подстройки под задачи, максимальным учетом мнения клиента и внутренними практиками развития персонала.

на изображение автор Андрей Куликов

Автор Андрей Куликов

Эксперт в вопросах QA, BA, AGILE/LEAN, управления персоналом.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *