Решите, какая программа хранит оригинал

У каждого вида данных должен быть один дом. Контакты клиентов могут жить в системе записи, а бухгалтерская программа получает копию. Тогда все знают, где исправлять номер телефона, и исправление расходится дальше.

Синхронизация всего в обе стороны звучит удобно, но поднимает трудный вопрос: если одни и те же данные изменили в обеих программах, какая версия победит? Если никто этого не решил, ответ случаен.

Аккуратно сопоставляйте записи

Имена пишут по-разному, адреса почты меняются, а у двух клиентов может быть одно имя. Связь должна понимать, что «Анна Иванова» в одной программе и «А. Иванова» в другой — один и тот же человек. Если программы дают каждой записи постоянный идентификатор, я использую его. И заранее решаю, что происходит, если совпадения нет или их два.

Готовьтесь к сбоям, потому что они будут

  • Программы на несколько минут перестают отвечать, пароли истекают, сервисы ограничивают число запросов.
  • Связь должна повторять попытку, но безопасно: повторная отправка одной и той же записи никогда не должна создавать два счёта.
  • Если что-то всё же не прошло, это попадает в список, который действительно видит человек, с подробностями, достаточными, чтобы исправить.

Давайте каждой связи только нужный ей доступ

Если связи нужно только читать ваш календарь, она не должна уметь его удалять. Доступ должно быть легко отозвать в любой момент, а вы должны точно знать, какие данные проходят через какой сервис.

Проверяйте на реальных неудобных случаях

  • Имя, написанное двумя способами.
  • Запись, которую перенесли, а потом отменили.
  • Клиент, который уже есть в базе.
  • Форма с незаполненным полем.
  • Два изменения, пришедшие в один и тот же момент.

Простой случай почти всегда работает. Беспорядок через несколько недель создают именно такие.

Знайте, что будет, когда программа изменится

Разработчики обновляют свои продукты, и иногда связь тоже нужно обновить. Это нормально. Важно, чтобы сбой был виден сразу, а не копился незаметно, и чтобы заранее было договорено, кто его исправляет.

Четыре вопроса тому, кто связывает ваши программы

  • Какая программа хранит оригинал каждого вида данных?
  • Что будет, если одну и ту же запись отправят дважды?
  • Кто узнаёт о неудачной передаче и как?
  • Какой доступ есть у связи и как его отозвать?

Если ответы расплывчатые, такой же будет и связь.