Поздно одним днем, на заре, один из нас наткнулся на пустую страницу, где должен был быть продукт. Поле поиска жаловалось на отсутствие соединения с тем, что организует ваш экран. Исправление заняло почти час и затронуло несколько мест в трех разных домах. И вот что раздражает: ни один из этих трех домов на самом деле не обладал сломанным объектом. Поле поиска находилось на общем Shelf, который мы считали запасными частями. Организатор экрана находился на той же полке. Сам баг жил в разрыве между ними, а разрыв не принадлежал никому.

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

Очевидным шагом было укрепление общего Shelf. Более тщательное тестирование. Две пары глаз на каждое изменение. Замедлить все процессы. Каждый опытный человек в комнате испытывал такую же интуитивную реакцию, потому что это то, что делается, когда общий Shelf продолжает ломаться. Вы укрепляете Shelf.

Мы чуть не сделали этого. Затем кто-то задал более тихий вопрос. Почему поле поиска вообще находится на общем Shelf запасных частей? Поле поиска не является запасной частью. Это не просто небольшое удобство для фона. Это то, к чему клиент обращается, когда хочет найти деталь для своего автомобиля. Это, в самом буквальном смысле, несущая стена комнаты, в которой стоит клиент. Классифицировав его как опциональный, мы позволили себе притворяться, что он был опциональным. Но это никогда не было так.

Это было истинное осознание, и это задело. Уровень багов не был проблемой небрежности. Это была ошибка в классификации. Запасная часть — это то, что вы можете использовать или не использовать. Фундамент — это то, что просто всегда присутствует. Мы заливали фундаменты и складывали их на полке запасных частей, и каждый, кто проходил мимо полки, чувствовал себя свободным переставлять их.

Так что мы сделали драматичное, но скучное дело. Мы переместили поле поиска и организатор экрана с полки запасных частей в ядро продукта, под одной крышей, с одним владельцем и одним набором правил. Единственное самое важное изменение состояло в строке, которая наконец-то сказала вслух: это важно. Больше не притворяйтесь, что они опциональны. Больше никакой толпы владельцев на неполный рабочий день. Один дом, один свод правил и одно единственное место, определяющее, как должна выглядеть каждая кнопка, каждая форма, каждое окно и каждая карточка. Пока мы были там, мы вырвали целую партию проверок безопасности, которые тихо тестировали то, чего даже не существовало, и обманывали нас долгое время. Само изменение было небольшим. Изменение в нашем восприятии было всей сутью.

Вот урок, и он не имеет никого отношения к нашему оборудованию.

Большинство малых бизнесов работают с набором инструментов, каждый из которых сам по себе является вполне разумным выбором. Приложение для расписания. Список клиентов. Отдельный инструмент для выставления счетов. Электронная таблица для объединения всего этого. Каждый инструмент хорош. Каждый инструмент проходит свои тесты. Баги живут в разрывах между ними, и никто не владеет разрывами. Когда клиент записывается на встречу, которая никогда не попадает в выставление счета, у вас нет проблемы с расписанием или выставлением счетов. У вас есть ошибка в классификации. Вы обращались с основой вашего бизнеса как с полкой опциональных виджетов, когда на самом деле это фундамент. Он всегда работает. Он несущей. Клиенту не важно, какое приложение допустило ошибку.

Инстинкт, когда разрывы начинают течь, состоит в том, чтобы укрепить швы. Установить еще одну автоматизацию. Добавить задачу по согласованию. Нанять кого-то, чтобы проверять электронную таблицу в первое дело каждое понедельник. Это то же самое, что и укрепление полки. Это работает некоторое время, а затем — нет, потому что вы все еще притворяетесь, что фундамент — это полка.

Действительным шагом, который на самом деле исправил наш уровень багов, стало понижение вопроса от технического до простого операционного. Перестаньте спрашивать, что может быть многоразовым. Начните спрашивать, что всегда присутствует. Все, что всегда присутствует, должно находиться в одном месте, в собственности одной команды, под одним сводом правил. Все остальное может быть запасной частью. Поле поиска не является виджетом. Ваш процесс бронирования не является виджетом. Найдите то, что в вашем бизнесе клиент просто предполагает, что всегда присутствует, и соберите это под одной крышей, даже если это будет вам стоить. То последнее часовое исправление было последним в своем роде. Вот что на самом деле дает объединение вещей. Не элегантность. Тишина.