by Oleg Sovetnik
Когда мы погружаемся в легаси проект, который несколько лет развивался, сменилось несколько команд, и он, очевидно, работает, мы попадаем в ситуацию, когда в беклоге вместо «добавить фичу Х», приоритетнее становится «ускорить У» или «починить Z», всем уже понятно, что что-то пошло не так, но нет способа вернуться обратно к разработке и развитию. Предметная область проекта представлена несколькими артефактами, а носителя знаний “сбил автобус”.
Обычно, в этот момент, проект уже смешал в себе и идею (Domain) и способ ее воплощения, то есть абстракции протекли и то, ЧТО проект из себя представляет семантически (Domain complexity), неотделимо от того, КАК он написан синтаксически (added complexity). Мы сосредоточимся на первом вопросе: что проект из себя представляет семантически?
Для этого рассмотрим имеющиеся артефакты и их содержательный смысл:
Предметная область домена представлена только в некоторых проекциях, что затрудняет её восприятие и понимание. Это можно сравнить с притчей о слепых мудрецах и слоне: каждый воспринимает отдельные части, но никто не видит целого. Разработчики тратят массу времени на реконструкцию смыслов, что тормозит развитие и поддержание проекта.
Нам необходимо увидеть её в более наглядной и целостной форме. Майндмап может стать решением этой проблемы. Если код представлен в виде древовидной структуры, как и майндмап, то концепты предметной области могут быть выстроены в иерархию. Такая визуализация облегчит восприятие сложных систем и позволит синхронизировать понимание между командой и кодом.
семантика синтаксис смысл слон метафора
Крылатое выражение в заголовке, как вы, наверное, догадались, – из басни Ивана Андреевича Крылова «Любопытный»: