Многоликие сотрудники глазами системы
Когда смотришь на корпоративную систему изнутри, сначала кажется, что она просто аккуратно хранит информацию. Таблицы, поля, отчёты — всё будто рационально, предсказуемо, в рамках здравого смысла.
Пока однажды этот смысл не начинает вести себя, как кот, который живёт своей жизнью, а ты лишь надеешься, что контролируешь ситуацию.
Я работал тогда ИТ-архитектором с направлением HR. Задача выглядела стандартно: удалить дубли записей сотрудников. Обычное технико-санитарное действие: выгрузить данные из HR-системы, открыть в Excel, подсветить совпадения, очистить, подготовить чистый XML и загрузить обратно.
Пять минут — и порядок.
На словах — идеально.
Через три часа — те же дубли на месте.
Абсолютно те же.
Я проверяю логи — чисто.
Руки никого не замечены.
Система будто сама решила, что скучает по хаосу и решила его вернуть. Поначалу я усмехнулся: «Ну да, цифровая мистика. Наконец-то дожил до привидений в HR».
Но смех быстро закончился, когда выяснилось, что дубли не просто возвращаются — они множатся.
Я тогда ещё не знал TOGAF, не строил метамоделей и не рисовал стрим-мапы. Я был архитектором по должности, но ещё не по мышлению. Однако интуиция подсказывала: если система делает не то, что мы ожидаем, значит, она просто слишком честно исполняет чью-то логику. Нужно не чинить последствия, а понять, чья логика здесь рулит.
И вот — тот самый момент, который я запомнил навсегда. Проваливаюсь глубже. Смотрю таблицы. Потом поля. Потом отчёты.
Пусто.
И тут — вижу интеграции!!
Семь систем, не имеющих никакого отношения к HR, но каждая передаёт по кусочку данных о сотрудниках. Ни одна из них не называлась кадровой.
Одна вела национальность, другая — пол, третья — склонение имени, четвёртая — статус занятости, пятая — флаги для отчётности.
И все они имели право «обновить» сотрудника, если что-то не совпадает.
HR-система, как послушный исполнитель, даже не пыталась спорить. Для неё «несовпадение» — это сигнал «создать нового». Так система, действуя строго по правилам, клонировала людей. Один и тот же сотрудник в реальности жил одной жизнью, а в системе — семью. Можно сказать, она была честна до абсурда.
И вот стою я перед экраном с сотнями карточек, и ловлю себя на мысли - данные действительно живые. Они не статичны, не ждут, пока их позовут. Если не задать архитектуру, они создают свою. Если не выстроить иерархию источников, они объявляют анархию. И если в компании нет единой правды, система создаёт столько правд, сколько у неё подключений.
Мы тогда решили не «чинить» систему, а перестроить архитектуру. Определили мастер-систему, прописали контуры интеграций, добавили уровень валидации и владельцев данных. Каждый атрибут получил своего хозяина, каждая таблица — границы ответственности. Теперь, если внешняя система пыталась «внести поправку», она получала в ответ жёсткое «нет». Истина в одном месте — не лозунг, а алгоритм.
Эффект превзошёл ожидания:
число активных записей в HR-базе сократилось почти в десять раз.
Не потому что люди исчезли — просто исчезли их отражения.
Для расчётчиков заработной платы это был подарок судьбы: расчёт стал простым, отчётность чистой, процессы — быстрыми. А главное — впервые за долгое время HR-данные совпали с реальностью.
Тогда я впервые по-настоящему почувствовал разницу между «управлять системой» и «понимать её». Система не враг, не союзник и не магия. Она просто зеркало, в котором видно, насколько мы сами последовательны. Если в управлении каша — она её покажет. Если в архитектуре порядок — она его поддержит.
И, возможно, именно в тот момент я понял, что архитектор — это не тот, кто пишет правила, а тот, кто умеет увидеть, когда система начинает их писать сама.