Программист - это уже финал
В одном из проектов задача звучала вполне безобидно: нужно доработать 1С.
Обычно после этой фразы разговор довольно быстро переезжает к программисту. Сколько займёт, как реализовать, когда будет готово.
У нас самое интересное началось раньше.
Пока разбирали, что именно должна делать система, пришлось договориться о самом процессе: откуда берутся исходные данные, кто принимает решение, что считать нормальным результатом, что делать с исключениями и кто потом отвечает за то, что получилось.
И первоначальная «доработка» начала заметно менять форму.
В какой-то момент я поймала себя на мысли, что программист в этой истории вообще появляется довольно поздно. До него уже должны поработать бизнес, аналитик, финансисты, пользователи системы. Причём сделать работу менее заметную, чем код, но иногда гораздо более дорогую по последствиям.
Потому что автоматизировать можно только тот ответ, о котором люди сначала договорились между собой. Это особенно хорошо видно в корпоративных системах. Написанный код хотя бы честно выполняет заложенную в него логику. А вот фраза «мы имели в виду немного другое» обычно появляется уже после запуска.
С тех пор выражение «небольшая доработка» я воспринимаю осторожно. Размер задачи определяется не количеством новых кнопок и не числом часов программиста. Иногда одна кнопка требует сначала ответить на вопросы, которые компания успешно не задавала себе несколько лет.
И вот здесь мне гораздо интереснее не «можно ли это реализовать?».
Можно почти всё.
Интереснее другое: мы уже договорились, что именно система должна считать правильным?
Код в этой истории, пожалуй, самый дисциплинированный участник. Он хотя бы не делает вид, что понял задачу.
· 02.09
Программист не может работать без тех. задания или тех. требований. Он должен четко понимать, чего от него хотят. В программисткой среде есть такая поговорка: "Без внятного ТЗ результат ХЗ". Надо сказать, что такой подход раздражает людей, потому что очень часто они сами не понимают, чего хотят. И порой они требуют: "Ты сделай нам нечто, мы посмотрим, скажем свое "Фи", а ты потом исправишь и снова покажешь". И так по кругу несколько раз. Скажу честно, с такими людьми работать не хочется.
0
ответить
коммент скрыт — часть юзеров считает его токсичным или некорректным
коммент удалён
· 02.09
Всеволод, да 🙂 Хотя я бы сделала оговорку: в сложном проекте исчерпывающее ТЗ с первого раза - тоже редкий зверь. Уточнения и даже изменение решения нормальны.
Для меня граница в другом: если бизнес пока не понимает, что именно ему нужно, это отдельный этап - разобраться, проверить гипотезу, сделать прототип. Но странно выдавать эту неопределённость программисту под видом задачи, а потом итерациями выяснять собственные требования уже на написанном коде.
Получается довольно дорогой способ ответить на вопрос “а чего мы всё-таки хотели?” 🙂
0
ответить
коммент скрыт — часть юзеров считает его токсичным или некорректным
ответ удалён
· 02.09
Формулировка требований - это отдельный этап и требует определенной экспертизы. Если требования трудно сформулировать сразу, тогда должен быть какой-то план, как эти требования можно прояснить. И конечно, разработка прототипа может быть частью такого плана. Ну тогда, надо сформулировать требования к прототипу. Программисты отнесутся с пониманием к такому подходу.
0
ответить
коммент скрыт — часть юзеров считает его токсичным или некорректным
ответ удалён
· 02.09
Всеволод, да, вот это важное уточнение. Прототип не отменяет постановку задачи - просто меняется сама постановка. Мы уже не говорим “сделайте готовое решение”, а фиксируем, какую гипотезу проверяем, что хотим узнать и по каким признакам поймём результат.
То есть неопределённость вполне можно принести программисту - если честно назвать её исследованием, а не замаскировать под готовое ТЗ
0
ответить
коммент скрыт — часть юзеров считает его токсичным или некорректным
ответ удалён
· 02.09
Ничего маскировать не надо. Любая скрытность рождает недоверие и мешает делу.
0
ответить
коммент скрыт — часть юзеров считает его токсичным или некорректным
ответ удалён