I.N.V.E.S.T. как пилюля от боли недопонимания
25 марта 2026 г. 75

🤔 I.N.V.E.S.T. как пилюля от боли недопонимания

Сегодня хочу еще немного затронуть проектное управление, давай поговорим с тобой про I.N.V.E.S.T. принцип.

I.N.V.E.S.T. используется как фильтр для задач, чтобы не тащить в текущий спринт «все подряд». По сути это: Independent, Negotiable, Valuable, Estimable, Small, Testable таски, которые помогают градировать нам нагрузку и понимать чего от нас хотят, так как ты постоянно будешь сталкиваться с кейсами: "я не понимаю куда мы движемся", "я хочу все и вся", "не ясно, что надо сделать" и т.д.

В AppSec, как и везде, часто прилетает «сделайте безопасную безопасность». Это не задачи, а реальная головная боль. I.N.V.E.S.T. помогает превратить боль в нормальные user‑story и технические задачи, то есть:

• понятные команде

• дающие измеримый эффект

• которые реально можно закрыть за спринт

• и проверить, что они сработали

Как это работает?

• I — Independent

История должна жить отдельно: можно взять и сделать без половины департамента

Пример плохой: «Сделать безопасный логин, регистрацию, восстановление пароля и профили»

I.N.V.E.S.T.: «Добавить rate limiting на POST /login с логированием блокировок»

• N — Negotiable

История, как приглашение к разговору, где детали можно уточнить с командой до начала спринта

Если задача звучит как «строго по ГОСТу XXX, без вариантов» — это уже скорее политика, а не user story

• V — Valuable

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

Пример: «Включить ещё один сканер» — не ценность.

I.N.V.E.S.T.: «Сократить критические уязвимости в проде, добавив Quality Gate на уровне CI» - становится ценностью

• E — Estimable

Команда должна понимать объём: хотя бы порядок — день, три, спринт

Если история звучит как «внедрить DevSecOps», её сначала нужно дорезать до кусочков, которые можно оценить (например, «подключить SAST к проекту X») и если не провести ревью или анализ, а тебе говорят «посчитай что то там сам и предложи», - это совсем плохо

• S — Small

История должна помещаться в один спринт и, желательно, занимать не больше 25–50% спринта на команду

Всё, что звучит как «переписать модуль авторизации» — режем на отдельные шаги: логин, MFA, блокировки, аудит

• T — Testable

У истории должны быть чёткие критерии приёмки: как поймём, что она сделана - ранее писал про Win Conditions/ Fail Conditions

То есть, - «Сделать безопаснее» - не тестируется, а «при 5 неверных логинах аккаунт блокируется на 15 минут, событие уходит в SIEM» — тестируется

Как корректно подходить к задачам?

Берёшь любую хотелку и прогоняешь через INVEST:

• Независима ли она от всего остального?

• Можно ли её обсудить и переформулировать перед спринтом?

• Понятно ли, какую пользу она приносит?

• Команда может её оценить?

• Влезает ли она в один спринт?

• Можем ли мы чётко тестом/ мониторингом проверить результат?

Если хоть на один пункт ответ «нет» — история ещё сырая, и её лучше дорезать, прежде чем тянуть в спринт

Шаблон

## Заголовок

[AppSec] Кратко и конкретно: что делаем и где

## User story

Как <роль/ клиент> хочу <что именно> чтобы <какая измеримая польза/риск>

Примеры:

- Как владелец сервиса auth-service хочу ограничить число попыток логина чтобы снизить риск перебора паролей и захвата аккаунтов.

- Как AppSec-инженер хочу включить блокирующий Quality Gate по критическим уязвимостям чтобы не выпускать в прод новые критические дыры.

## Контекст (Define)

- Текущее поведение/ проблема:

- Сейчас ...

- Затронутые системы/ сервисы:

- auth-service, gateway, ...

- Риски/ инциденты/ мотивация:

- Были X инцидентов/ найдено Y уязвимостей ...

## Критерии INVEST

- **Independent**

- **Valuable**

- **Estimable & Small**

- **Testable**

## Критерии приёмки (Testable)

Формат Given/ When/ Then или список

## Технические заметки (Negotiable)

- Предлагаемый подход (можно менять по итогам обсуждения):

- Ограничения и допущения:

## Метрики / контроль (Control)

- Что и как измеряем после внедрения:

- Где смотрим:

#pmi #reco #specialty #appsec #humanres #paper

#pmi#reco#specialty#appsec#humanres#paper
Открыть в Telegram