CCCR

Collect, Concat, Creative, Repeat - подход, который я использую для анализа архитектуры решений и сбора AsIs.

В практике был опыт когда ты приходишь в продукт в котором отсутствует архитектура AsIs, или ее вообще нет. Иногда так живут по пол года, но встречались и те где ее не было по несколько лет. А иногда и даже на старте. Последнее редкость, обычно хоть какая-то, на «зарисовка» есть.

Чтобы упростить себе жизнь, я придумал себе такой подход состоящий из 4 простых шагов.

Collect (Собери) - собираем информацию, людей, данные и ссылки о том что вообще существует. Короткая коммуникация, письмо, сообщение в чате, созвон на 15, максимум 30 минут. Составим список ресурсов, компонентов решения чтобы было от чего оттолкнуться.

Concat (Объедини) - пытаемся соединить и объединить все данные, и понять подает ли собранная информация в картинку текущего решения. Тут как удобно, главное чтобы было понятно тебе для анализа текущего состояния. Также необходимо составить список вопросов и зон неопределенности, где что-то ещё не понятно и что нужно не забыть не упустить из виду или спросить.

Creative (Креатифф) - придумываем форму в которой можно обсудить архитектуру с командой, это может быть как наскальная живопись картинка в свободной форме главное чтобы было понятно всем. Чтобы проверить точно ли все так, как показано или нет. Тут можно с командой посидеть подольше. В одном из таких шагов, я сделал два разных формата для разных команд, чтобы потом это перевести в единую нотацию применяемую в компании. Можно также придумать метод и формат как ты будешь взаимодействовать с командой по этим вопросам. Здесь нужно быть максимально гибким. Используй заходы с разных сторон, уровней и контекстов. Меняй форму общения, если требуется. Например: в первой версии шаг Concat, назвался Connect (со смыслом - соединить данные), но семантика слова (коннект с командой) в опросе коллег отзывалась больше, и для передачи правильного смысла, выбор пал на текущий вариант, и аббревиатура не потерялась😁

Repeat (Повтори) - этап который имеет два смысла. Первый, прочитай и посмотри заново все что смог собрать, попадем ли мы в архитектуру решения, все ли сходится с функциональностью, составом компонентов и логикой?! Определи то, что после всего ещё остается под вопросом. Второй, повтори с начала, если не ок!

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

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