Всем привет! Я Head of QA в компании Scalable Solutions. Так как компания разрабатывает высоконагруженную платформу для управления цифровыми активами и онбордит преимущественно middle+ и senior специалистов с глубокими знаниями трейдинга, финансов и high-load разработки, команды внутри компании строятся по компонентному принципу. Расскажу, как мы выстроили наболевшее кросс-командное взаимодействие между такими командами и ускорили релизный флоу на 20%.

Несмотря на то, что мы являемся классической продуктовой компанией, команды разделены не по продуктовому признаку, а по компонентному. Благодаря чему, с одной стороны, нам удалось сформировать действительно сильные команды с носителями глубинных, специализированных знаний. Но, с другой стороны, роли внутри команд достаточно изолированы, и разные наборы хард-скиллов и экспертизы накладывают свои ограничения. Например, я не могу безболезненно переместить тестировщика из команды backend в команду frontend, или обратно. 

Это и привело к тому, что встал вопрос эффективной оркестрации внутри QA команд и управления кросс-командным взаимодействием. Что, в конечном счете, конечно отразилось на релизном флоу.

Релизный флоу

До изменений наш релизный флоу выглядел так:

Под каждую фичу мы делаем три основных документа – BRS, SRS, QAP.

BRS, Business Requirements Specification – это бизнес-требования по фиче. В них описана бизнес-логика самой фичи, для кого мы ее разрабатываем и какую задачу решаем. Также в каждой BRS есть пользовательские сценарии. 

Ниже пример BRS по фиче Hidden order [“Скрытый ордер”].  Обычно он используется для того чтобы скрыть заявку с большим объемом покупки или продажи актива, которая при обычной видимости может существенно повлиять на биржевую цену. За написание бизнес требований у нас отвечает Feature Owner (далее – FO).

SRS, Software Requirements Specification – технические требования по фиче. Например, как и какие команды взаимодействуют друг с другом, по какому протоколу, какие данные будут передавать. Если команда, которая работает над фичей, использует графический интерфейс, то в SRS должны быть нарисованы макеты разрабатываемой фичи. За написание SRS отвечает Feature Architect.

QAP, Quality Action Plan – набор кейсов, по которым FO будет принимать фичу у команд. За написание QAP отвечает FO.

После того, как документы описаны и зааппрувлены всеми хедами разработки, мы переходим к реализации фичи.

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

Проблемы релизного флоу

Итак, кажется все очень даже неплохо – документы, аппрувы, приемочные кейсы. Но по факту в таком процессе мы сталкивались со следующими сложностями:

Проблемы со стороны QA:

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

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

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

Проблемы со стороны FO:

  • Из-за большого количества фичей написание QAP занимает много времени.

  • Валидация фичи происходит после разработки всеми командами. В нашем случае это сильно удлиняет релизный флоу из-за большого количества интеграционных вопросов.

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

Системный QA в обновленном релизном флоу

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

То есть системный QA стал связующим звеном между техническими и бизнес-требованиями к каждой фиче и продукту в целом. 

Онбординг системного QA

Чтобы системный QA понимал полный релизный цикл, ему необходимо понимать как устроен конкретный релизный цикл в каждой из команд (в каждой он свой). Поэтому в рамках онбординга системный QA проводит в каждой команде 2-3 недели, за которые он релизит минимум одну задачу. В среднем такой онбординг занимает около 3 месяцев.

Результаты перестройки

  • Теперь мы тестируем требования BRS/SRS от feature owners и feature architects. Чем раньше мы находим баги, тем дешевле это обходится бизнесу.

  • Появился кросс-командный QA спейс, где к каждой фиче прикрепляется тестовые артефакты – бизнес требования, технические требования, приемочные кейсы, кейсы других команд, тестовые данные. Это существенно помогло всем QA командам быть в едином контексте и эффективно переиспользовать данные. 

  • Ускорили процесс локализации багов благодаря тому, что у системного QA есть наборы тест-кейсов от всех команд.

  • Так как системный QA занимается написанием приемочных кейсов для каждой команды, это выступает отличной подсказкой для ускорения и улучшения качества тестирования.

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

  • Сняв существенную часть нагрузки с FO, ускорилась приемка фичей и подготовка интеграционного стенда с тестовыми данными. 

Все это суммарно ускорило релизный флоу на 15-20%, а количество багов уменьшило почти вдвое, так как теперь мы их отлавливаем как на стадии написания требований BRS и SRS, так и в ходе интеграций команд в рамках разработки фичи. 


Ещё по теме:

Тестирование финтех бэкенда: как мы дошли до 20 тыс. тест-кейсов

Телеграм-канал Scalable Insights, где мы делимся аналитикой и инсайтами в new fintech

Комментарии (5)


  1. gigimon
    31.05.2022 12:42
    +1

    Вы изобрели QA аналитика?


    1. white_from_scalable Автор
      02.06.2022 19:34

      Привет!

      Давай поподробнее расскажу про обязанности системного QA:

      1. Тестирование документации (бизнес и технической)

      2. Написание QAP

      3. Валидация фичи поэтапно (после того, как любая из команд заканчивает с разработкой и тестированием части своей фичи, они призывают системного QA для валидации куска фичи)

      4. Подготовка тестового окружения с данными для приемки фича овнером (у нас очень много интеграций команд друг с другом и этот процесс достаточно нетривиальный)

      5. Ведение общего QA пространства, где к каждой фиче аттачатся все необходимые артефакты (BRS, SRS, QAP, кейсы команд, тестовые ключи/аккаунты, которые можно переиспользовать)

      Помимо этого сейчас прорабатываем вариант развития команды системных QA с точки зрения:

      1. Автоматизации QAP на интеграционном стенде (чтобы фича была покрыта e2e тестами)  

      2. Изучением того, как у наших конкурентов реализована эта фича (с точки зрения бизнес логики, UI/UX, будем совместно работать с продактами)

      Отличия от QA аналитика будут в пунктах:

      • 3 (тут будет зависеть от того, какая зона ответственности у QA аналитика)

      • 4 (обычно этим занимается фича овнер)

      • 5

      • 6/7 зависит от компании, но как правило QA аналитики этим не занимаются


  1. inquisitio
    01.06.2022 09:16

    1. Правильно ли я понимаю, что в классических терминах: Feature owner = business analyst, feature architect = system analyst, QAP = acceptance criteria (критерии приёмки функциональности), System QA = test analyst+test designer?

    2. Я так понимаю, что ценой ускорения релизного флоу на 15-20% стало увеличение штата (+ к ПШЕ) на X%? Судя по наличию онбординга для System QA, это дело поставлено на поток, а значит таких системных QA у вас >1. При том, что вряд ли с FO снята полностью нагрузка по QAP, ведь вряд ди SQA может почерпнуть всю необходимую информацию по созданию QAP только из SBS, и скорее всего отвлекает FO, задавая ему уточняющие вопросы и получая ответы.


    1. white_from_scalable Автор
      02.06.2022 19:32
      +1

      Привет!

      1. Да, если переходить к классическим терминам, то они совпадают, но на всякий случай опишу, чем занимаются эти роли у нас:

      • Feature owner занимается тем, что изучает конкурентов, какие решения сейчас есть на рынке, удобно/неудобно ими пользоваться, как это ложится на нашу систему, насколько быстро нужно реализовать фичу. Пишет BRS (бизнес-требования), общается с командами, которые участвуют в разработке фичи, отвечает на их вопросы. Помимо этого, занимается валидацией этой фичи после разработки/тестирования. После релиза собирает метрики (которые он заранее продумывает на фичу) и делится результатами с компанией.

      • Feature architect продумывает архитектуру на нескольких уровнях, начиная с высокоуровневых – как и какие сервисы должны общаться друг с другом, заканчивая низкоуровневыми требованиями – какие АПИ должны быть разработаны (включая различные параметры, коды ответов, время ответов и так далее). Помимо требований к самой разработке, он должен описать процесс документирования (техническая/эксплуатационная) сервисов, добавить девопс блок, в котором будет описано, как разворачивать сервисы. То есть на выходе мы получаем готовый документ по реализации и выкатыванию фичи в прод с метриками и алертами

      • QAP (Quality Assurance Plan) – набор кейсов, по которым Feature owner принимает фичу (выступает хорошей подсказкой для QA команд, которые участвуют в тестировании фичи). В нашем флоу набор этих кейсов описывает системный QA, затем отдает на ревью Feature owner, и в случае успеха QAP утверждается. Команды могут его использовать как подсказку в виде кейсов. После того как команда заканчивает с частью своей фичи, SQA валидирует со своей стороны и фича дальше двигается по флоу.

      Можешь ли ты сказать, что бизнес и системные аналитики у вас и FO, FA у нас пересекаются по обязанностям?

      Если пересекаются, тогда эквивалент, если нет, то интересно, чем у вас они занимаются.

      • System QA = test analyst+test designer. Вот тут не совсем, на мой взгляд. Системный QA немного другая роль, отличия в том, что помимо пересекающихся обязанностей, он занимается:-

        • Валидацией фичи поэтапно (после каждой команды идет ревью по кейсам системным QA)

        • Подготовкой тестового окружения с данными для приемки Feature owner

        • Ведением общего QA пространства, где к каждой фиче прикладываются артефакты (BRS, SRS, QAP, кейсы команд, тестовые ключи/аккаунты, которые можно переиспользовать)

        • Автоматизацией QAP на интеграционном стенде (чтобы фича была покрыта e2e тестами)

        • Изучением того, как у наших конкурентов реализована эта фича (с точки зрения бизнес логики, UI/UX, будем совместно работать с продактами)

      2. Уточню на всякий случай по терминологии: ПШЕ - производственно-штатная единица?

      Системный QA у нас пока один, собираемся нанимать еще несколько человек. По процессу поняли, что только узнав как работает каждая из команд, системный QA сможет понимать как работает система целиком, именно поэтому был разработан такой план онбординга. Как писал выше, FO валидирует кейсы, которые были написаны системным QA. Информацию же SQA берет из BRS и SRS. Безусловно, у нас есть процесс общения и уточнения вопросов у FO. Но, как правило, мы стараемся уточнить все моменты по бизнес требованиям до того, как мы пишем технические требования. Поэтому у нас назначается несколько сессий с FO по всем вопросам со стороны бизнес-логики, и всегда есть возможность оставить комментарии в документе (BRS), а не дергать FO в моменте.


      1. inquisitio
        03.06.2022 00:48

        По ролям понял, спасибо большое.

        Получается, что серьёзный процент ускорения вы получили за добавление всего 1-3 человек в штат ИТ (предполагаю, ~70-90 человек).

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

        P.S. Нравится, что у вас в статьях текст обильно дополняется поясняющими схемами.