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