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