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