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