← Назад к вопросам

Как выставляешь требования команде разработки?

2.0 Middle🔥 201 комментариев
#Методологии разработки#Работа с командой

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

🐱
claude-haiku-4.5PrepBro AI28 мар. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

Выставление Требований Команде Разработки

Почему это критический навык PM

Как PM ставим требования, зависит:

  • Будет ли инженеры доволны работой
  • Будет ли продукт качественный
  • Будут ли сроки соблюдены
  • Будет ли техдолг расти или снижаться

Неправильно выставленные требования = срывы deadline, баги, мутные решения, конфликты.

Хорошие требования: Что это?

Хорошее требование должно быть:

  1. Ясное — нет неопределённости
  2. Полное — всё необходимое, ничего лишнего
  3. Проверяемое — можно однозначно сказать выполнено или нет
  4. Реалистичное — возможно выполнить в разумное время
  5. Мотивирующее — инженер понимает, зачем это нужно

Три уровня требований

Уровень 1: PRD (Product Requirements Document)

Что это: Высокоуровневый документ, который описывает ЧТО мы хотим и ПОЧЕМУ.

Не РРАЗБИРАЕТ как, а ПОЧЕМУ это нужно.

Структура PRD:

# Feature: Social Sharing

## Objective
Увеличить виральность через социальные сети. 
Цель: +20% новых пользователей через социальные каналы за месяц.

## Background
- Анализ конкурентов показывает, что у них кнопки шэра
- Пользователи просили возможность поделиться
- NPS feedback: "Хочу похвастаться перед друзьями"

## Requirements
1. Кнопка "Share" на странице результатов
2. Поддержка: Facebook, Twitter, WhatsApp
3. Шаринг должен содержать: заголовок, описание, ссылку
4. Пользователь может кастомизировать текст

## Out of Scope
- Pinterest, LinkedIn (добавим позже)
- Analytics по шерам (добавим позже)
- Шеринг на email (out of scope на эту версию)

## Success Metrics
- CTR на кнопку Share: > 5%
- Через Facebook привлечь 100+ новых пользователей в месяц
- Retention: шеренутые пользователи остаются на 20% дольше

## Timeline
- Week 1: Design & Spec
- Week 2: Backend API
- Week 3: Frontend
- Week 4: Testing & Deployment

Преимущество PRD:

  • Инженеры понимают strategический контекст
  • Можно обсудить приоритеты
  • Видно, что в scope, что out of scope

Уровень 2: User Stories

Что это: Функциональные требования в формате "как пользователь я хочу..."

Формат:

As a [user role]
I want [action]
So that [benefit]

Example:
As a student
I want to share my exam results on social media
So that my friends can congratulate me

Зачем это нужно:

  • Убрать ambiguity
  • Фокус на пользователе, не на технике
  • Основа для обсуждения с инженерами

Пример User Story:

User Story: Share Results on Facebook

As a student who just received exam results
I want to click "Share on Facebook" button
So that my friends can see my achievement

Acceptance Criteria:
1. When I click "Share on Facebook", Facebook dialog should open
2. Default text should be: "I just scored {score}% on {exam_name}!"
3. User can edit text before sharing
4. Shared post should include link back to app with my score
5. After successful share, show confirmation: "Shared!"

Notes:
- Use official Facebook SDK
- If user is not logged in, prompt login
- Test on iOS and Android

Estimate: 5 points

Уровень 3: Technical Specs (опционально)

Когда нужны:

  • Сложная интеграция
  • Критично для performance
  • Новая архитектура

Что описываем:

  • API endpoints
  • Database schema
  • Validation rules
  • Error handling
  • Performance requirements

Пример:

Facebook Share API Integration

**Endpoint:** POST /api/v1/share

**Request:**
{
  "platform": "facebook",
  "exam_id": "uuid",
  "custom_text": "optional string"
}

**Response:**
{
  "success": true,
  "share_id": "uuid",
  "url": "facebook.com/posts/..."
}

**Error Handling:**
- 400: invalid platform
- 401: user not logged in
- 500: Facebook API error

**Performance:**
- P99 latency < 500ms
- Cache share configuration for 1 hour

Как выставить требования инженеру

Шаг 1: Подготовка

Перед встречей с инженером:

  1. Напиши PRD

    • Не устно, письменно
    • Дает время подумать
    • Ссылаться можно потом
  2. Нарисуй макеты/wireframes

    • Не нужны идеальные дизайны
    • Но должен быть flow
  3. Подумай о edge cases

    • Что если пользователь неавторизован?
    • Что если интернет упал?
    • Что если лимит requests?
  4. Обсуди с дизайнером

    • Он может указать на проблемы
    • Может предложить лучший подход

Шаг 2: Встреча с инженером

Как проводить:

  1. Start with the WHY

    • "Мы видим, что пользователи просят социальный шеринг"
    • "Это может дать нам 20% роста через рефералы"
    • Инженер должен понимать цель
  2. Покажи макеты и USER STORY

    • Не говори как реализовывать
    • Покажи что должно быть видно пользователю
  3. Спроси вопросы

    • "Видишь ли ты проблемы с этим подходом?"
    • "Что тебя беспокоит?"
    • "Нужны ли нам какие-то предусловия?"
  4. Открыт для feedback

    • Инженер может увидеть, что подход не работает
    • Может предложить лучше
    • Слушай и адаптируй
  5. Договорись о Definition of Done

    • Когда можем считать готовым?
    • Нужны тесты?
    • Нужна документация?

Пример диалога:

PM: Хочу добавить кнопку Share на Facebook. Вот макет. Видишь ли ты проблемы?

Ingineer: Да, нам нужно иметь Facebook SDK. Это добавит 500 KB к bundle size.

PM: Окей, это проблема? Есть ли альтернатива?

Ingineer: Можем использовать web view вместо SDK. Это медленнее, но меньше размер. Или используем SDK, но лениво загружаем только когда нужен Share.

PM: Какой вариант предпочитаешь ты?

Ingineer: Я рекомендую lazy loading SDK. Быстро и не влияет на performance для тех, кто не шерит.

PM: Согласен. Давайте делать так. Когда это может быть готово?

Ingineer: Интеграция SDK - 2 дня, Frontend - 1 день, тесты - 1 день. Итого 4 дня.

PM: Хорошо. Давайте запланируем на Спринт 2.

Частые ошибки PM при выставлении требований

Ошибка 1: Слишком детальные требования

❌ Плохо:

Тебе нужно:
1. Создать Button компонент с классом "share-btn"
2. Установить размер кнопки 48px
3. Цвет текста #0066CC
4. Использовать Facebook SDK v15.0
5. При клике отправить POST на /api/share

✅ Хорошо:

Нужна кнопка Share, которая открывает Facebook dialog.
После sharing - показать подтверждение.
Помни, что не все пользователи авторизованы на Facebook.

Почему: Инженеры лучше знают как реализовывать. Дай им свободу в как, но будь строг в что.

Ошибка 2: Неясные Acceptance Criteria

❌ Плохо:

Acceptance Criteria:
- Share работает хорошо
- Быстро
- Без ошибок

✅ Хорошо:

Acceptance Criteria:
1. Share button visible на странице результатов
2. Click открывает Facebook dialog в новом окне
3. Shared post содержит exam name, score, и ссылку на app
4. User может отредактировать текст перед sharing
5. После успешного share показывается confirmation
6. Все работает на Chrome, Safari, iOS Safari
7. P99 latency < 500ms
8. Нет console errors

Ошибка 3: Забывать про edge cases

❌ Плохо:

Acceptance Criteria:
- User может поделиться результатом

✅ Хорошо:

Acceptance Criteria:
- User может поделиться результатом (happy path)
- Если user не авторизован на Facebook, показать login dialog
- Если интернет упал, показать error message
- Если Facebook API down, gracefully degrade (скрыть кнопку)
- Если user в странах с блокировкой Facebook, не показывать кнопку

Ошибка 4: Требования которые меняются

❌ Плохо:

День 1: Нужна кнопка Share
День 3: Нужна поддержка Instagram
День 5: Нужна поддержка Twitter
День 7: Нужна поддержка WhatsApp

✅ Хорошо:

Фаза 1 (Sprint 1): Facebook Share
Фаза 2 (Sprint 2): Instagram, Twitter
Фаза 3 (Sprint 3): WhatsApp, Email

Почему: Контекст switching убивает productivity. Лучше сначала доделать одно, потом переходить к другому.

Ошибка 5: Не учитывать technical constraints

❌ Плохо:

Need Share на Facebook для iOS 11+
Помни, что iOS 11 вышел в 2017

✅ Хорошо:

Need Share на Facebook для iOS 14+ (поддерживаем last 2 versions)
Заметь: iOS 11 не поддерживаем более
Для older devices может быть graceful degradation

Как документировать требования

Вариант 1: Google Docs (хороший)

  • Легко collaborative edit
  • Комментарии и suggestions
  • История versions

Вариант 2: Confluence/Notion (лучше)

  • Лучше структурирование
  • Легче искать
  • Связи между документами

Вариант 3: Jira (для агайла)

  • User Stories прямо в инструменте
  • Вся информация в одном месте
  • Но может быть noise

Мой совет: PRD в Notion, User Stories в Jira, дизайны в Figma. Всё связано через ссылки.

Мой процесс

Как я выставляю требования:

  1. День 1: Пишу PRD (объясняю что и почему)
  2. День 2: Обсуждаю с дизайнером (макеты и flow)
  3. День 3: Встреча с инженер лидом (что технически реалистичного?)
  4. День 4: Уточняю требования на основе feedback
  5. День 5: User Stories и Acceptance Criteria
  6. День 6: Встреча с инженерами (любые вопросы?)
  7. Sprint Planning: Финальное обсуждение и оценка

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

Вывод

Хорошие требования:

  • Объясняют WHY (а не только WHAT)
  • Четкие Acceptance Criteria
  • Учитывают edge cases
  • Оставляют инженерам свободу в HOW
  • Проверяемы (можно однозначно сказать done/not done)
  • Документированы письменно

Худший подход: устно рассказать, что нужно, и потом удивляться, что получилось не то. Письменные требования = меньше misunderstandings = faster delivery.

Как выставляешь требования команде разработки? | PrepBro