Какие основные источники требований к программному обеспечению?

Ответ

Требования формируются из нескольких ключевых источников, которые можно разделить на категории:

  • Бизнес-документация: Стратегии, бизнес-планы, маркетинговые исследования, интервью с заказчиком и стейкхолдерами.
  • Пользовательские артефакты: Пользовательские истории, use cases, сценарии, интервью и опросы пользователей, обратная связь из службы поддержки.
  • Техническая документация: Техническое задание (ТЗ), спецификации, прототипы интерфейсов, дизайн-макеты, документация к API.
  • Внешние источники: Законодательные и регуляторные требования (GDPR, HIPAA), отраслевые стандарты, анализ конкурентов.

Пример пользовательской истории как источника требования:

Как зарегистрированный пользователь,
Я хочу иметь возможность сбросить пароль по электронной почте,
Чтобы восстановить доступ к аккаунту в случае утери пароля.

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

Ответ 18+ 🔞

А, ну вот, классика жанра подъехала — откуда эти ваши «требования» вообще берутся, как будто из воздуха материализуются. Слушай, давай я тебе на пальцах, но без пальцев, объясню, а то народ думает, что они на небесах на облачке написаны.

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

Первое — бумажки бизнесовые. Это когда большие дяди в пиджаках на совещаниях пиздят про стратегии, планы и «охват рынка». Маркетологи свои исследования подкидывают, а заказчик может такое наинтервьюировать, что волосы дыбом — он же «видит масштабно», блядь. Из этого всего надо выудить, чего они на самом деле хотят, а не то, что несут. Задача — не обосраться с пониманием.

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

Третье — технари со своими бумажками. Техническое задание, которое уже кто-то попытался формализовать, прототипы, дизайны, API-шные спецификации. Тут главное — не дать этим документам превратиться в мёртвый груз. А то бывает: нарисовали макет, а как оно должно работать — хуй знает. Надо сопоставить с тем, что пользователи и бизнес хотят, а то получится «красиво, но нихуя не понятно».

Четвёртое — внешний мир, который нас ебёт. Разные там законы, стандарты, GDPR этот ваш, который про данные. Или смотришь на конкурентов — а у них уже есть фича, без которой твой продукт выглядит как мартышлюшка у разбитого корыта. Это нельзя игнорировать, иначе накроешься медным тазом на этапе выхода.

Вот, например, возьми обычную пользовательскую историю. Смотри, как она выглядит в этом всём бардаке:

Как зарегистрированный пользователь,
Я хочу иметь возможность сбросить пароль по электронной почте,
Чтобы восстановить доступ к аккаунту в случае утери пароля.

Видишь? Это же не просто текст. Это крик души! Это значит, что кто-то уже обосрался, пароль потеряв, и теперь это надо предусмотреть. Из этой строчки вытекает куча всего: форма восстановления, письмо на почту, безопасность, сроки действия ссылки — овердохуища работы.

А почему вся эта возня с источниками так важна, спросишь? Да потому что если ты будешь ковыряться в одном месте (скажем, только в ТЗ), то рискуешь пропустить какую-нибудь критичную хуйню из закона или реальную боль пользователя. Или, что ещё веселее, получишь противоречивые указания: бизнес хочет «быстро и дёшево», а технари говорят, что «такую архитектуру только через жопу». Надо всё это собрать в одну кучу, разобрать по косточкам и вывести единственную, ебейшую правду — что мы на самом деле строим. Иначе будет пиздец, а не продукт.