Почему бизнес может ставить слишком короткие сроки?

«Почему бизнес может ставить слишком короткие сроки?» — вопрос из категории Софт-скиллы, который задают на 25% собеседований C# Разработчик. Ниже — развёрнутый пример ответа, который можно адаптировать под свой опыт.

Ответ

Короткие сроки часто возникают из-за рыночного давления, конкуренции или желания быстрее получить отдачу от инвестиций. Бизнес-заказчики без технического бэкграунда могут недооценивать сложность разработки. Иногда это следствие agile-практик, где сроки искусственно сжимаются для коротких спринтов.

Основные причины:

  • Рыночное окно: Страх упустить возможность или отстать от конкурентов.
  • Финансовое давление: Необходимость показать результат инвесторам или руководству к определённой дате.
  • Планирование на основе желаний, а не возможностей: Отсутствие этапа детальной оценки или консультации с технической командой.
  • Гибкие методологии: Непонимание, что спринт — это фиксированный контейнер для работы, а не произвольный дедлайн для любой задачи.

Практический пример и риски:

// Бизнес ожидает: "Добавь кнопку оплаты за 2 дня"
public void AddPaymentButton() {
    // Реальность:
    IntegrateWithPaymentGateway(); // +3 дня (документация, API-ключи, тестовый режим)
    UpdateDatabaseSchema();        // +1 день (миграции, бэкапы)
    WriteLoggingAndMonitoring();   // +1 день (для отлова ошибок транзакций)
    // Срок сорван, качество под угрозой
}

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

Что делать разработчику:

  1. Прозрачность: Детально декомпозировать задачу и показать все этапы (анализ, разработка, тесты, ревью, деплой).
  2. Буфер на риски: Всегда закладывать время на непредвиденные сложности (например, работу с легаси-кодом).
  3. Регулярная синхронизация: Постоянно обсуждать прогресс и влиять на ожидания, используя данные из трекера задач (velocity, capacity).