Кто должен разрабатывать админку?
Частый вопрос. Обсуждение на примерно эту тему сейчас идет в @microservices_ru
Суммирую в этом посте свои мысли.
Есть Продукт. Что такое администрирование? Это — возможность выполнять дополнительные действия над Продуктом в зависимости от прав доступа, не больше и не меньше.
Таким образом, появляется контекст Авторизации, а то, что мы называем админкой — это работа всё с тем же контекстом Продукт, но с определенным набором прав доступа, полученным из контекста Авторизации.
Когда мы говорим о домене Продукта, то он находится НАД технической реализацией. А значит фронт, бэк, инфраструктура, — все, что относится к Продукту — это граница ответственности команды или нескольких команд (как в LeSS) в рамках одного домена.
Никаких отдельных команд для админки, оказывается, не требуется (если только админка не является реально существующим отдельным бизнес-доменом), а границы ответственности команды Продукта аккуратно соблюдены в рамках границ модели предметной области.
Однако, вполне возможно существование Продукта в разных контекстах, например — контексте Продаж и контексте Поддержки. Вот тогда границы ответственности, теперь уже двух команд, изменяются соответственно границам в модели предметной области (при этом каждая из команд все равно сама внутри развивает админку :)
Частый вопрос. Обсуждение на примерно эту тему сейчас идет в @microservices_ru
Суммирую в этом посте свои мысли.
Есть Продукт. Что такое администрирование? Это — возможность выполнять дополнительные действия над Продуктом в зависимости от прав доступа, не больше и не меньше.
Таким образом, появляется контекст Авторизации, а то, что мы называем админкой — это работа всё с тем же контекстом Продукт, но с определенным набором прав доступа, полученным из контекста Авторизации.
Когда мы говорим о домене Продукта, то он находится НАД технической реализацией. А значит фронт, бэк, инфраструктура, — все, что относится к Продукту — это граница ответственности команды или нескольких команд (как в LeSS) в рамках одного домена.
Никаких отдельных команд для админки, оказывается, не требуется (если только админка не является реально существующим отдельным бизнес-доменом), а границы ответственности команды Продукта аккуратно соблюдены в рамках границ модели предметной области.
Однако, вполне возможно существование Продукта в разных контекстах, например — контексте Продаж и контексте Поддержки. Вот тогда границы ответственности, теперь уже двух команд, изменяются соответственно границам в модели предметной области (при этом каждая из команд все равно сама внутри развивает админку :)