Петля обратной связи в процессах

от автора

Меня зовут @Lendcore, я QA менеджер на одном из геймдев-проектов и снова столкнулся с трудностью: я не смог найти информацию, описывающую принципы работы петли обратной связи в процессах, какие бывают петли и что с этим делать. Поэтому я решил собрать всё в единый документ для личного пользования и заодно поделиться с тобой, дорогой читатель.


Петля обратной связи— это описание процесса взаимодействия, при котором результат выполнения какого-либо действия влияет на последующее поведение системы или пользователя

Она состоит из трех ключевых этапов:

  1. Действие: Пользователь или система совершает действие

  2. Результат: Система предоставляет обратную связь о результате этого действия

  3. Коррекция: На основе полученной обратной связи пользователь или система вносят изменения в свои действия (Или не вносят, если коррекция не потребовалась)

Также ПОС можно обозначить временем между выполнением какой либо работы и получением обратной связи по результатам ее обработки

Пример базовой петли:

  1. Разработчик выполнил задачу

  2. Задача передалась QA

  3. QA отписались в задаче и закрыли ее

Следовательно, разработчик получил обратную связь по своей проделанной работе, что она выполнена правильно и соответствует предъявляемым требованиям (Дизайн документ)

Но базового представления нам недостаточно, давай попробуем изучить оттенки на примере работы QA и разработчиков над задачами или багами (хотя это применимо при любых взаимодействиях между сотрудниками)

Какие есть виды ПОС:

Положительная: Это система взаимодействия, в которой каждый предыдущий предоставляет максимум информации следующему, придерживаясь двух приоритетов
Сократить время погружения в работу следующим сотрудником
Минимизировать риск появления цикла*

Цикл петли — это ситуация, когда информация в системе взаимодействия возвращается к исходной точке без прогресса, создавая цикл

Признаки положительной петли (ПП)

Основным признаком построения процесса взаимодействия ПП является культура работы с документацией, ее стандарты и ревью, но также я бы выделил:

  • Минимальное количество итераций (меньше переходов между статусами типа «Reopened»)

  • Тратится больше времени в начале работы

  • Фиксы багов стараются решать с первого раза, без множества дополнительных правок

Принципы работы ПП

Если вы хотите выстраивать работу, придерживаясь ПП, то вам стоит придерживаться основных принципов

  • Принцип полноты информации – каждый участник процесса получает полный контекст задачи (описание, логи, шаги воспроизведения, ожидаемый результат)

  • Предиктивность – ошибки предотвращаются заранее за счёт детальной проработки диз дока

  • Автоматизация – если что-то можно проверить автоматически (скрипты, логи, метрики), это должно быть сделано ещё до передачи задачи

Влияние на процессы

Если вам получится все наладить, то за счет сокращения задержек на уточнение деталей, получится сократить Lead time (реверансы к Lean подходу), возможно получится повысить качество кода и тестирования, так как осмысленные отчёты и фиксы уменьшают количество багов в долгосрочной перспективе, а также эта вариация обратной связи поможет сместить распределение ресурсов – меньше времени уходит на коммуникации, больше на полезную работу

Практические методы внедрения

  • Чёткие шаблоны багов – помогают QA писать исчерпывающие описания проблем

  • Контроль качества заведённых багов – код-ревью, валидация репортов перед отправкой разработчикам

  • На первое время, использование чек-листов – перед передачей задачи QA проверяет, что все важные данные внесены

  • Регулярный фидбек от команды – обсуждение кейсов, где возникли возвраты задач, и поиск решений

Итого: Положительная петля обратной связи приводит к снижению количества итераций, поскольку задачи реже возвращаются на доработку. Это достигается за счёт более тщательной проработки информации на ранних этапах, что увеличивает затраты времени в начале, но сокращает общее время фикса.

Отрицательная петля:

Отрицательная петля – это система взаимодействия, в которой работа передается следующему исполнителю с минимумом информации, и все подробности указываются по запросу

В чистом виде, этот процесс имеет узкую специфику применения

  1. Если цель задачи не в финальном качестве, а в быстрой проверке гипотезы. Быстро сделали → проверили → доработали

  2. Когда заранее невозможно точно описать требования, и команда сама находит лучшие решения в процессе

  3. Когда важно быстрее запустить продукт на рынок, а доработки запланированы по фидбэку пользователей

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

Признаки отрицательной петли (ОП):

Если вы хотите проверить, не прослеживается ли в ваших процессах признаки ОП, то посмотрите, нет ли у вас чего-либо из этого

  • Высокое количество итераций (коэффициент переоткрытия больше 1, если касается именно работы с задачами)

  • Частые доработки фиксов из-за недостаточной информации на старте

  • Работа дев начинается на этапе поверхностного диздока

Все же, ОП это не плохо, просто ее нужно обуздать, и работать с ней с умом, тогда отрицательная петля заработает как процесс самообучения команды, где каждый виток петли — это точка улучшения. При повторении похожей ошибки более одного раза, стоит интегрировать инструменты и практики, которые будут искать закономерности, логировать их и в рамках ретро (или чего то похожего) интегрировать их в тот самый минимум передаваемой информации. В этом случае вам удастся собрать свой идеальный набор используемых данных с минимумом вложений и убрать эти несчастные потери

Принципы работы ОП, если вы решили работать через нее:

  • Самостоятельность – разработчики получают базовую информацию и если ее не хватает, то они ищут ее самостоятельно или уточняют

  • Реактивность – ошибки исправляются по факту возвратов, а не предотвращаются заранее

  • Отсутствие автоматизации – информация, которую можно было получить автоматически, уточняется вручную на поздних этапах, что позволяет сэкономить время, если она не нужна

  • Минимальное время на подготовку задачи, но последующие исправления занимают больше времени

Поразмыслив и прочитав написанное, вот какие плюсы и минусы мне получилось вывести

Плюсы:

  • Быстрый старт – минимальная подготовка позволяет быстро начать работу и проверить гипотезу

  • Гибкость – команда адаптируется к изменениям, сама ищет недостающую информацию

  • Самостоятельность – развиваются навыки поиска решений, что полезно для самообучения

  • Экономия ресурсов на ранних этапах – отсутствие полной проработки снижает затраты времени при старте

Минусы:

  • Низкое качество на старте – из-за недостатка деталей повышается риск ошибок и доработок

  • Рост итераций – частые возвраты и доработки увеличивают общий цикл разработки

  • Неэффективность при масштабировании – на больших проектах увеличивается нагрузка на коммуникацию и обсуждения

  • Высокий риск – отсутствие автоматизации и реакции по факту могут привести к задержкам и побочным эффектам

Цикличная Петля

Циклическая петля обратной связи — это ситуация в процессах взаимодействия, когда информация по задаче или багу передаётся между участниками процесса неполно или некорректно, и задача многократно возвращается к предыдущему этапу без достижения финального решения. В итоге, проблема застревает в замкнутом круге возвратов, что увеличивает время её исправления и требует лишних коммуникаций

Тут буду краток, так как циклическая петля, это проблема, которую нужно избегать, а не вариация процесса
Вот к чему я пришел в своих наблюдениях:

  • Необходимо обеспечить культуру взаимодействия и наблюдать за ее исполнением, это поможет сократить риск появления петли

  • Внедрить практику регулярного анализа возвратов: оценивать, почему задача неоднократно возвращается, и корректировать процесс работы

  • Поддерживать проактивную коммуникацию: до передачи задачи устранять возможные неясности и вопросы, чтобы разработчик получил исчерпывающую информацию

В итоге, предотвращение циклической петли сводится к проактивной подготовке и контролю качества информации на всех этапах, что позволяет минимизировать повторные итерации.

Опережающая Петля

Опережающая петля – это система взаимодействия, в которой основное внимание уделяется предотвращению проблем ещё до их возникновения. Команда закладывает максимум информации на старте, а процесс выстроен так, чтобы минимизировать количество итераций и возвратов

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

Также я заметил, что она очень похожа на Shift Left тестирование, давай кратко напомню:

Shift left тестирование это подход, при котором тестирование начинается на ранних стадиях разработки, а не ждет завершения кода, чтобы раньше выявлять дефекты, сокращать стоимость исправлений и встраивать качество в процесс разработки, а не исправлять ошибки постфактум

Это и не удивительно, ведь эти подходы стремятся к одному и тому же, только SLT стремится к раннему обнаружению и предотвращению проблем в продукте, а ОПП в взаимодействиях между специалистами, другими словами Shift Left – часть ОПП, но ОПП шире: она охватывает не только тестирование, но и планирование, документацию, автоматизацию и обмен знаниями между всеми специалистами.

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

Где стоит применять ОПП

Эта подход к взаимодействию достаточно ресурсоемки из за детализации и аналитики работы, но имеет интересные бонусы от использования, по этому и специфика применения рассчитана на сложные и долгие системы

– Где исправление ошибок дорого или опасно (финтех, медицина, авиация)
– В проектах с долгосрочной поддержкой, где важно уменьшить технический долг
– В условиях ограниченных ресурсов, когда дорого тратить время на итерации и доработки
– В крупных командах и проектах, где каждый возврат задачи увеличивает сложность коммуникации

Принципы работы ОПП

  • Превентивность – ошибки предотвращаются заранее за счёт детальной проработки и валидации требований

  • Автоматизация – процессы тестирования и контроля качества встроены в разработку

  • Прозрачность – каждая задача содержит полный контекст, обеспечивая минимальную потребность в уточнениях

  • Контроль качества на всех этапах – валидация требований, код-ревью, анализ покрытия тестами.

  • Разработка начинается только после полной проработки требований

  • Высокие затраты времени на подготовку задачи, но экономия на последующих этапах

Плюсы ОПП

  • Высокое качество на выходе

  • Оптимизация времени

  • Простота масштабирования

  • Снижение рисков

Минусы ОПП

  • Высокие затраты на старте

  • Меньшая гибкость

  • Замедление старта разработки

  • Перегруженность документацией — если переусердствовать, процесс становится излишне бюрократическим

Итого: ОПП эффективна, когда приоритет – минимизация рисков и работа «на качество», но требует значительных ресурсов и хорошей организации процессов


Если рассматривать три этих подхода на примере работы с дизайн документацией

ПП – ГД даёт полный документ, уточнения проходят до начала разработки → разработчик сразу понимает, что делать

ОП – ГД описывает фитчу верхнеуровнево, разработчик начинает работу без полной информации → При возникновении вопросов, уточняет их

ОПП – ГД сразу закладывает не только максимум информации, но и FAQ, самые частые вопросы и тд, чтобы предупредить появление неясностей

Петля обратной связи позволяет системам быть динамичными, улучшать взаимодействие с пользователем и достигать оптимальных результатов.

Получилось как то так

Попробую подвести общий итог

Петли обратной связи формируют основу взаимодействия в процессах и определяют, насколько эффективно передается информация между участниками. Положительная петля способствует сокращению итераций за счет детальной проработки на старте, что повышает качество работы, но требует больше времени на подготовку. Отрицательная петля позволяет быстрее начинать работу, но из-за недостатка информации приводит к большему числу возвратов и переработок. Опережающая петля направлена на предотвращение проблем еще до их возникновения, что делает ее эффективной для сложных, долгосрочных и критичных проектов, но требует значительных ресурсов. Выбор подхода зависит от целей, масштаба и зрелости процессов. Хотелось бы еще отметить, что существует множество вариантов и зон применения — от документации до работы с комьюнити, а значит, эти подходы можно бесконечно комбинировать между собой, формируя идеальное распределение нагрузки именно для вашей команды.

Если что-то упустил или стоило бы раскрыть подробнее, пиши — доработаю.


ссылка на оригинал статьи https://habr.com/ru/articles/879122/


Комментарии

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

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