How We Write Better Software with Low-Code • Michiel Overeem • GOTO 2023
Интересное выступление про low-code платформу от Michiel Overeem, который рассказал как голландская компания AFAS пришла в своем SaaS продукте (смесь ERP, CRM, CMS, и других трехбуквенных слов) к подходу с low-code. По-факту, продукту уже почти 3 десятка лет и за это время он прошел путь от MS DOS программы до того, что разворачивается где-то на серверах и превратился в legacy:) Дальше появилась задача разделить доменную логику и технологическую часть. Знания о бизнесе должны были остаться в моделях, чтобы можно было спокойно развивать технологии. В компании решили это сделать через создание low-code движка, которым будут пользоваться внутренние сотрудники, доменные эксперты, для создания/редактирования бизнес-процессов и пользовательских сценариев работы с системой. Модели из домена по этой логике должны быть свободной от технологий, описывать процессы и роли в реальном мире. В low-code платформу пришлось нехило вложиться и поработать над архитектурой, получился в итоге фреймворк для создания интерфейсов и бекенд фреймворк. 95% функциональности генерируется на основе модели, что создаются citizen developers (это люди, что используют low-code платформу и о самом термине я рассказывал подробнее раньше), а 5% пишутся вручную силами инженеров. Дальше автор выступления рассказывает про преимущества такого подхода:
- Создание модели предметной области позволяет разработчикам писать код, тестировать его и помещать в генератор, что упрощает процесс разработки.
- Модель предметной области позволяет заменять технологии и интерфейсы, сохраняя знания в модели.
- Citizen developers могут вносить изменения в модель без вмешательства инженеров, что повышает продуктивность и позволяет им создавать прототипы и экспериментировать.
- Citizen developers могут создавать программное обеспечение, используя свои знания в области бизнеса, что позволяет им создавать прибыльные подпродукты Но есть и проблемы
- Citizen developers ~~могут вносить~~ вносят ошибки в модель, что усложняет процесс отладки и требует привлечения программистов для консультации.
- Citizen developers должны понимать как их изменения в модели влияют на runtime свойства софта, что требует дополнительных инструментов и обучения Ну и дальше идут выводы
- Low-code не является универсальным решением для всех частей приложения
- Стоит использовать low-code только в определенных частях, где можно найти повторяющиеся фрагменты, так как это позволяет работать над этими частями не инженерам, а citizen developers
- Low-code стоит рассматривать как дополнительный инструмент для повышения производительности и создания лучшего программного обеспечения.
В общем, достаточно простой и понятный доклад про то, как компании приходят к low-code решениям как части своего продукта. У нас по такому принципу сделана, например, low-code платформа для маркетинга, в которой сами аналитики могут выстроить процесс маркетинговых коммуникаций с определенными сегментами наших клиентов.
#Software #Engineering #Architecture #PlatformEngineering