#аудит

7 постов
пост №1911Управление и команды

Впервые столкнулся с тем, что технический директор после начала аудита взял больничный и перестал отвечать на звонки генерального, а сисадмины не отвечают на письма. Никаких доступов к системе не предоставляют. Бизнес по сути потерял контроль над своей собственной инфраструктурой. Надеюсь, хоть информацию на дисках не потрут и сайт не дефейснут.

Вроде и рабочие моменты, а все равно тревожно за клиента. И чувство, будто подошел к краю бездны, которую обычно в жизни обхожу стороной.

Я сначала написал: «а вот если бы у финдира в сейфе в запечатанном конверте были бы ключи доступа и инструкция по входу…».

Но это попытка вернуть иллюзию контроля. Мол, «вот если бы это сделали — то не оказались бы в подобной ситуации».

Кажется, что решение этой задачи лежит не в технической плоскости. А может быть, это и вовсе не задача — быть может, честнее признать, что все мы изредка попадаем в очень неприятные ситуации. Ну кроме тех, кто вообще не живет.

пост №1451Управление и команды

Закончил на днях технический аудит очередного клиента. Хочу поделиться историей, которую вижу буквально в каждом втором случае.

Начинается новый бизнес, сильно завязанный на софте. Первое время, все классно: один программист — хорошо, два — почти в два раза лучше. 10 программистов — можно делать вещи, о которых раньше и помыслить было нельзя.

Через 3-6 лет в компании уже 50 разработчиков. Продукт при этом практически не развивается, фичи доставляются разработкой в продакшен со скорость улитки. Добавьте к этому зарплаты разработчиков в 100-400 тысяч в месяц и вы можете представить, что чувствует бизнес. Почему так?

А происходило вот что: все эти годы, каждый раз, когда нужно было выбрать между «сделать фичу побыстрее прямо сейчас» и «сделать так, чтобы это можно было потом поддерживать, пусть и подольше прямо сейчас» — бизнес с разработкой вместе выбирали первый вариант. Логично, что рано или поздно гора неподдерживабельного кода становится слишком высокой и уже никто не может докинуть ещё что-то сверху.

Сложно винить в этом бизнес: они не обладают компетенцией, чтобы ясно увидеть, как копают себе яму. Сложно винить разработку: спорить с бизнесом очень трудно, они профессиональные переговорщики, а объяснять разработку не-технарям — редкий скилл, отличный от умения писать крутой софт. Вообще, этот процесс требует взаимного доверия и открытости, когда бизнес пытается вникнуть в разработку, а разработка — подумать о бизнесе, с помощью друг-друга.

В общем, искать виноватого смысла нет, а варианты решений следующие:

1. Если это допустимо, то перевести проект в режим поддержки, пусть зарабатывает сколько может, большую часть команды уволить или перекинуть на новый бизнес-проект. Этот вариант выглядит радикальным, но по сути — самый простой, не требующий изменений подходов к работе. Вариант со звездочкой — с помощью той же команды написать с нуля новое решение — конкурента старому, учтя уроки прошлого.

2. Если же вам нужно развивать то, что есть — то впереди вас ждут пот и слёзы.

Во первых, признайте, что это не случайность и не временные трудности, а капитальная жопа, выбираться из которой месяцы, если не годы. Быстрых и дешевых решений, к сожалению, нет. И нет, применение нового фреймворка типа эджайла или канбана — не поможет.

Нужно отдавать технические долги и приводить код в порядок. Технически, есть несколько основных подходов и обычно используется их комбинация. Подход первый: выделить изолированный кусочек проекта и переписать его «начисто», минимально затрагивая остальные части. Подход второй: начать писать тесты поверх функциональности, которая есть. И тд и тп. Это — исключительно сложная инженерная работа. В несколько раз сложнее, чем написать аналогичный проект с нуля. Плюс в том, что вы так потеряете меньше знаний, который вложили в продукт за эти годы.

Организационно, вам придётся выделять на это адское количество времени и сил. Речь о 30-50% времени ваших инженеров. Результаты, в плане увеличения скорости разработки, вы увидите через месяцы в лучшем случае. Другого пути я не знаю.

Также, имеет смысл добавить в команду новых опытных бойцов. Дело тут не только в технической компетентности, но и в отсутствии психологических «долгов», свежести и незамутненности взгляда, в четком мандате на перемены. Желательно, чтобы человек уже имел опыт подобного рефакторинга.

В общем, это — путь смелых.

Добавлю, что обычно, ко всем этим техническим проблемам добавляется ещё и нежелание признать реальность, когда бизнес требует, а команды регулярно обещают больше, чем могут реализовать. В результате, разработка постоянно существует в режиме пожара (какая уж тут инженерная культура, когда ничего не успеваешь!), а бизнес постоянно не доволен и не верит обещаниям программистов.

Приведение этого процесса в порядок — отдельная работа, но об этом — в следующий раз.

пост №1377Бизнес и стартапы

Новости бизнеса: договорились cделать аудит крупного клиента. Индустрия, о которой я давно мечтаю, и задача интересная — будет о чем рассказать детям потом. Ну и вам похвастаться.

Это корпорация, так что всё согласуется-пересогласуется. На последнем этапе, договор заметил генеральный директор и чуть не завернул буквально формулировкой «что это за Федя и Самат и зачем они нам нужны?!». Пришлось объяснять. Контрагент предлагает переименоваться в ООО «Техэкспертиза». Говорит, так будет меньше проблем.

Завести второе юрлицо, специально для работы с корпоратами? 🤔

P.S. В чате советуют «МосГлавТехЭкспертиза»! 🎩

пост №1355Разработка и инженерия

Клиент поделился, что у них в дата-центре выбило электричество, а дизель-генератор выключился из-за жары. Результат — серьезный простой продакшена. Всё бы ничего, но это клиент, у которого я только что закончил аудит и на то, что у них свой ДЦ я достаточного внимания не обратил 🙈

ОК, добавляем пункт «аудит ДЦ, если он не дай бог не Tier 3» в чеклист.

Чеклист аудита написан деньгами, прямо как техника безопасности — кровью.

пост №1328Управление и команды

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

На этой неделе представил результаты аудита на очных встречах и доредактировал отчет. Каждый раз начинаю писать такие отчеты как формальный документ, а заканчивается тем, что объясняю высшему руководству как устроена разработка на пальцах. Такой довольно дорогой персональный курс обучения IT-разработке для высшего руководства, кастомизированный под конкретную ситуацию плюс специфичные для ситуации рекомендации. Просто рекомендации не работают, а когда руководство понимает, какая логика у происходящего — тогда инвестиции и изменения более вероятны.

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

Изменения уже начались. Например, даст бог через полгода-год члены команды смогут спокойно уходить в отпуск. Слышали фразу «я уже давно не был в отпуске, везде беру с собой ноутбук и не выключаю телефон»? Это — красный флаг. То, насколько часто и полно ваши инженеры отключаются от проекта (уходят в отпуск) — четкий маркер зрелости инженерной организации. Обычно, за этим, казалось бы, простым симптомом кроется «целый букет заболеваний», мешающих бизнесу развиваться и несущих серьезные риски.

А ещё, я впервые увидел большие горы и встретил день рождения в горах ❤️

пост №1269Разработка и инженерия

Похвастаюсь. Делаем с Федей аудит одного крупного финансового сервиса. Сегодня был третий день встреч с техдиром.

Каждый фиолетовый прямоугольник — это довольно большой сервис (отдельный репозиторий), над которым работает своя команда.

На схеме примерно треть, а то и четверть всей системы. Базы по много терабайт, тысячи интеграций — вызывает уважение, да что говорить, восхищение, что всё это работает и приносит пользу и деньги. 😍

пост №1186Управление и команды

Представляю клиенту результаты аудита проекта. Там треш: полтора программиста из региональной студии месяц корячат prestashop, а руководитель делает сложные щи, что мол «разрабатываем multi-vendor marketplace с потенциалом развития».

Клиент просит оценить «на глаз», сколько стоила такая разработка.

Я отнекиваюсь: «какой смысл», разорвите отношения и дело с концом, нужно решить что дальше делать, а не терять время на бодание с дураками.

На что владелец бизнеса рассказывает анекдот:

Приходит мужик в банк.
— А вы правда кредит под честное слово даете?
— Правда, отчего ж не дать. Вы ведь отдадите!
— А если не отдам?
— Ну вы вот перед Богом предстанете, в глаза ему посмотрите и вам стыдно будет.
— Э, ну когда я еще предстану.
— Ну через месяц не отдадите, так на следующий день и предстанете!

Обожаю работать с бизнесменами, прошедшими 90-е.