Готовлю презентацию про факапы: приятель предложил выступить в ИТМО и поделиться опытом в корпах (говорит, слушать про то, как другие обосрались - увлекательно). Я попытался вспомнить, что же там у нас такого происходило, и выделить что-то любопытное и знаковое. Получилось.
Был такой кейс, когда наша очень большая компания чуть не встряла на пол-ярда. Рублей, конечно.
Случилось это на проекте по переходу на электронно-транспортные документы. Проект был интересным, с неплохим влиянием на экономику. Почему? Ну, если кратко, то любой груз должен сопровождаться транспортной накладной, по-умолчанию, плюс некоторые спец. документы в определенных случаях. Доки печатаются в нескольких экземплярах.
Если у вас большой маркетплейс и машинки вжжжж туда-сюда много-много раз за день, представляете сколько бумаги надо потратить? Плюс, там еще назревали законодательные инициативы - не делать проект было нельзя. Ну и мы сделали, запустили.
Спустя несколько месяцев после запуска, оказалось, что из-за того, что сотрудники не подписывают все нужные документы, часть доков просто зависла в подвешенном состоянии. Не подписывали их по разным причинам: где-то отваливался процесс подписания, где-то потерялись документы в процессе, где-то сотрудник всего этого не заметил, а где-то заметил, но забил болт. В итоге, по этим документам нельзя было провести оплату, а несвоевременная оплата грозила штрафом и потерей репутации.
Неподписанных документов оказалось так много, что сумма накапала внушительная (восемь нулей, на секундочку).
Сейчас, вспоминая эту ситуацию, я думаю, что причина проблемы была не в работе систем. Просто ни у кого в голове не было полного понимания, как работает процесс. Не сложилось цельной картины. То есть, мы поленились собраться с другой командой и нарисовать:
⁃ общую архитектуру решения; ⁃ диаграммы последовательностей;
- поддержать логику кодом,
ну и, в принципе, халатно относились к данной проблеме до тех пор, пока не пришел тех директор и не дал всем пизды понять, что пора чинить ситуэшн. Как-то починили, с горем пополам.
Как застраховаться от таких проблем, не только в бигтехе? Да легко. Нужно только:
1. Понимать, как устроена архитектура твоего продукта.
2. Уметь расписать взаимодействие сервисов, особенно (!), если участвует несколько команд и реализация фичи/сценария делится между несколькими зонами ответственности.
3. В принципе, быть технически грамотным, отличать съедобное от несъедобного синхронное от асинхронного, условно говоря.
4. Быть внимательным.
С первыми тремя пунктами я помогу тебе на интенсиве, остальное - на тебе. Записывайся.
====
Интенсив по тех. навыкам для продактов, 12-14 декабря, для записи - го в личку.
В этом посте были ссылки, но мы их удалили по правилам Сетки