Разработчику важно понимать, зачем нужна задача

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

На первый взгляд разработчику достаточно требований. Есть экран, несколько состояний, запрос к серверу — можно декомпозировать и поставить условные 5 story points.

Но одного описания функциональности часто недостаточно.

Допустим, задача звучит так: «Добавить повторную попытку операции при ошибке сети». - Можно просто показать кнопку «Повторить».

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

Оба варианта формально решают задачу.

Чтобы понять, какой из них нужен, важно знать: что это за операция и почему бизнесу важно, чтобы она завершилась? Если это второстепенное действие, которое пользователь легко повторит, простого решения может быть достаточно. Если это оплата, загрузка важных данных или ключевой этап регистрации - требования к реализации будут другими. Вместе с ними изменится оценка.

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

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

Потому что нужно оценить именно ту реализацию.

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

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

У нас есть собственный опыт, знание системы и понимание технических ограничений. Если мы видим, что задачу можно решить надёжнее, проще или дешевле — это стоит предложить. Это ОБЯЗАТЕЛЬНО нужно предложить.

Не потому, что разработчик лучше знает продукт. А потому что каждый участник команды смотрит на задачу со своей стороны и может добавить важную часть общей картины.

Поэтому вопросы: «Сколько времени займёт задача?» и «Какого результата мы на самом деле хотим добиться?» для меня тесно связаны.

Чем лучше разработчик понимает второй вопрос, тем точнее сможет ответить на первый.

Разработчику важно понимать, зачем нужна задача | Сетка — социальная сеть от hh.ru