Frontier who watches the watchmen?

Профессионал под давлением

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

Мы все были в такой ситуации. Когда ваш босс или вся команда менеджеров дышит вам в затылок, потому что скоро релиз (или дедлайн был вчера). Нам приходится совладать с давлением каждый божий день. Всё идёт прекрасно, пока вы не найдёте какой-то косяк в вашем идеальном во всём остальном коде. И здесь профессиональные, дисциплинированные разработчики могут проявить себя во всей красе. Реакция большинства в этом случае — проговнокодить свой путь к славе, чтобы код скомпилировался и его можно было выпустить как можно скорее.

В какой-то день своего пути каждый говорил фразу, от которой я плачу:

Знаешь что? Сейчас нахреначим костылей, а потом вернёмся и исправим в следующем спринте.

Спойлер: не будет следующего спринта. А когда он будет, у вас не будет времени отрефакторить этот конкретный кусок дерьма.

Окей, тогда мы пофиксим его в следующий раз, когда нам нужно будет изменить или расширить этот фрагмент.

Опять мимо. Не будет следующего раза. Нет бывает такого завтра, когда надо писать чистый код. Если забить на качество сегодня, тогда завтра вы не зарелизите вообще ничего.

Вписав костыль в хороший код, вы разбиваете окно. Следующий разработчик, который подключится и начнёт использовать этот код, заметит разбитое окно и разобьёт ещё. Не успеете заметить, как ваш когда-то идеально разработанный код стал большим комком грязи. Если я когда-нибудь куплю новый дом, я точно не начну бить окна, думаю, что и вы тоже. Так почему мы поступаем так с нашим кодом и думаем, что это хорошая идея — в одно и то же время?

Писать чистый код тяжело, а сохранять код чистым ещё сложнее; это требует крепкой дисциплины каждого в команде. Нам хочется верить, что быстрый и грязный хак помогает быстрее доставлять ценность, но вместо этого мы достигаем противоположного. Единственный путь доставлять ценность — даже когда мы под давлением, реализовывать самое элегантное и простое решение, которое мы можем представить. Разработчики, кто предпочитают быстро&криво вместо хорошего и чистого решения просто отказываются думать о настоящей проблеме. Отказ думать — наверно, самое худшее, что мы можем сделать для наших заказчиков.

Это просто несколько мыслей и наблюдений за последние несколько недель. Давление помогает мне сфокусироваться и выдать нагора мои лучшие мысли (учитывая мои умственные ограничения).

Оригинал 2008 года.