Скорость или качество?
История о релизной гонке, техническом долге и простых правилах, которые помогают команде не выбирать между сроками и надёжностью вслепую.
Инженерные практикиНадёжностьТипичное утро в опенспейсе. Кофемашина хрипела, выдавая очередную порцию. Макс, с красными от недосыпа глазами работал над каким-то скриптом. На втором мониторе Zabbix радостно подсвечивал десяток алертов красным.
— Ну и день… — пробормотал он, отхлебывая кофе. — Опять эта долбанная релизная гонка…
Таня (тимлид, за его спиной):
— Макс, ну что там с нашим “горячим” фиксом? Клиенты уже в чате истерику закатывают.
— Не торопи меня, Тань! — Макс развернулся к ней. — Петя из маркетинга вчера кричал, что фичу нужно “еще вчера”. Коля из разработки сегодня вдруг понял, что “упустил один момент”. И с кого теперь спрос? Правильно — с меня!
В этот момент подошел Сергей, старший разработчик.
Сергей:
— А я говорил Ане, что нельзя было обещать клиентам эту фичу без полноценного тестирования. Но нет же, “time to market превыше всего”!
Аня (продукт-менеджер, входя в комнату):
— Эй, я тут ни при чем! Сергей, ты же сам сказал, что “в принципе должно работать”! Да и протестировали же все!
Оля (тестировщица, из-за перегородки):
— А ничего, что меня в час ночи сегодня подняли тестировать ваш “срочный” релиз, который “нужно выкатить до утра любой ценой”?!
Макс тяжело вздохнул:
— И самое смешное, что выводов не делаем. В прошлый раз после “релиза любой ценой” мы три дня фиксили последствия. Помните, когда авторизация падала у каждого второго пользователя?
Сергей (скрестив руки):
— Я поддерживаю. Может хватит уже гнаться за сроками? Давайте делать все нормально.
Таня:
— Легко сказать, когда конкуренты уже две недели как выпустили аналогичный функционал…
Оля (неожиданно мягко):
— Знаете что, ребята… Мы все постоянно разрываемся между сроками и качеством. Это нормально. Но главное — не винить друг друга, а системно улучшать процессы. Я вот на прошлом проекте…
Макс (перебивает с ухмылкой):
— Да ладно, Оль, ты же знаешь, что мы тут все перфекционисты-невротики. Но спасибо, что напомнила — мы действительно не одни такие.
Сергей (кивает):
— Точно. Главное — не повторять одни и те же ошибки. И фиксировать техдолги.
Макс откинулся на спинку кресла:
— Тогда предлагаю простые правила:
1. Деньги и безопасность — тестируем до посинения
2. Не прячем ошибки. За EXCEPTION WHEN OTHERS NULL; — расстрел
3. Если делаем быстро “любой ценой” — сразу записываем техдолг с дедлайном
Аня:
— Но как тогда успевать за рынком?
— А вот смотрите, — Макс показал на список открытых заявок в helpdesk. — Если тратить 30% времени на профилактику проблем, мы экономим 70% на их исправлении.
Все задумались. Кофемашина одобрительно булькала .
Таня (подводя итог):
— Значит, так: не виним себя, фиксируем проблемы, и… Макс, сделай уже тот график зависимости багов от релизов — будем тыкать в него маркетологам.
Все смеются. Напряжение спадает.
Вечером Макс записал в дневник: «День 149. Оля неожиданно оказалась голосом разума. Надо чаще её слушать. И купить ей шоколадку».