Здравствуй, уважаемый Хабр!

Пролог

Меня зовут Ростислав, я работаю в IT с 2007 года. Начинал системным аналитиком, а последние 10 лет руководил проектами заказной разработки.

Мое представление о low-code платформе мечты сформировано прежде всего на основе опыта работы системным аналитиком, которым я никогда не переставал быть, хотя последние годы занимаюсь в основном управленческими задачами.

Традиционный процесс разработки

На иллюстрации представлен «традиционный», или «упрощенный стандартный» процесс разработки – заказчик формулирует высокоуровневые требования, аналитик их декомпозирует, программист выполняет требования в коде, тестировщик проверяет корректность работы, DevOps занимается обновлениями стендов и сопровождением.

Управление этим процессом мы выносим за скобки. Также я не стал делить аналитиков на бизнес и системных, т.к. на мой взгляд бизнес-анализ – частный случай анализа системного. При наличии системных аналитиков, бизнесовые, имхо, не нужны.

Итак, мы обозначили проблему и показали процесс, в рамках которого она живет.

Предлагаемое решение (упрощенное)

В качестве решения я хотел бы предложить свое видение.

В моем представлении, low-code платформа - инструмент прежде всего для работы системных аналитиков.

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

Созданные аналитиками сгенерированные приложения при необходимости могут быть дополнены разработчиками.

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

За счет чего мы этого добьемся?

  1. Аналитик, имея на входе информацию от заказчика, может не тратить время на подробное документирование требований, т.к. в нашей концепции он сам их будет в основном реализовывать и проверять – соответственно передавать знания дальше по процессу нет необходимости, достаточно иметь их в голове. Документация (в этом идеальном мире) потребуется только для согласования ожиданий с заказчиком и определения бюджета.

  2. Разработка решений для некоторых классов задач станет доступна с помощью платформы аналитику. Подробнее об этом в следующих разделах статьи.

  3. Необходимость в регресс-тестирование сгенерированных приложений отпадет, т.к. при наличии ошибок в генераторах, они будут «сквозить» по всему приложению, соответственно их будет просто отловить и отладить.

  4. Для публикации приложения в облаке аналитику достаточно будет указать доступный сервер и url, все остальное платформа должна сделать сама.

Предлагаемое решение (больше похожее на правду)

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

Вот как будет выглядеть процесс разработки на нашей платформе в реальности:

  1. Заказчик формулирует высокоуровневые требования.

  2. Аналитик фиксирует границы и основные требования.

  3. Аналитик создает каркас приложения (описания БД, бэка, фронта и их связей) с помощью платформы.

  4. Архитектор проводит ревью каркаса приложения.

  5. Архитектор и аналитик описывают требования для наполнения тел методов классов и объектов в виде комментариев.

  6. В зависимости от типа требований, задачи на разработку выполняются либо непосредственно аналитиком (простые логика и вычисления), либо разработчиками SQL/C#/JS с помощью встроенного редактора методов.

  7. Готовая веб-страница собирается и публикуется после выбора доступного сервера и указания url.

  8. Тестировщик и аналитик проверяют корректность работы, при необходимости процесс возвращается на шаг 6.

Каркас приложения

Каркас приложения в нашем случае будет представлять собой набор элементов, описывающих структуру БД, бэкенда, фронтенда и их взаимосвязей. Набор элементов будет представлен в виде дерева/графа классов и объектов, унаследованных из ограниченного набора базовых классов.

Формирование каркаса будет происходить примерно следующим образом:

  1. Создается набор таблиц БД, их колонок и связей, ключей и индексов.

  2. При необходимости обработки данных на уровне БД, создается функция, для нее указываются входящие и исходящие параметры.

  3. Описывается набор API, предназначенных для работы со структурой БД и функциями, указываются входящие и исходящие параметры, производится их маппинг.

  4. Создается объект страницы, в редакторе интерфейса приводится набор элементов UI, предназначенных для работы с описанными API, производится их маппинг.

Возможен и обратный порядок, но в случае с учетными системами Data-Driven-Development на моем опыте является оптимальным подходом.

Дополнение каркаса

Я уже писал выше, что без программистов в разработке пока не обойтись. Но определенные задачи доступны и системным аналитикам – например, возможность передать айдишник из одного запроса в другой, чтобы получить или сохранить связанные сущности с помощью типового набора CRUD API, уже позволит создать что-то функциональное.

По мере развития платформы, набор классов задач, доступных для решения аналитиком, будет расширяться.

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

Резюме

Представленное видение - приглашение к диалогу. Сейчас на рынке все больше и больше решений, которые предназначены для упрощения разработки ПО, давайте попробуем вместе разобраться в этом.

Комментарии (10)


  1. sergeyns
    17.01.2023 10:36
    +4

    можно обойтись одним толковым системным аналитиком и минимальными сроками

    не поверите, большинство проблем на большинстве проектов можно было бы обойти (и при минимальных сроках), если бы на них с самого начала наличиствовал толковый аналитик (а некоторые проекты даже пришлось бы свернуть, так и не дойдя до остальных участников процесса)...


    1. codecity
      17.01.2023 14:57

      а некоторые проекты даже пришлось бы свернуть, так и не дойдя

      Хороший аналитик может свернуть всю нашу жизнь.


  1. SADKO
    17.01.2023 10:40
    +2

    Ну это-жж какая-то жесть, с самого начала, кому и на фига такой no-code нужен, бизнесу или outsource галерам для экономии на гребцах ;-)
    Всё было ране, ничего не ново, вы посмотрите как работал и работает бизнес.
    Почему манагерам некогда зашли электронные таблицы, они были просты и понятны, человек мог сам что-то сделать, не привлекая внимания санитаров ;-) Лотус и Ёксель первый в мире no-code, всем был хорош, многим и сегодня нравится, но есть ньюансы объема и многопользования. Ответом на который стали юзерфрэнливые датабэйзы вроде FoxPro, Access-a и прочего. В прочем не все системы с визуальными конструкторами манагерам зашли, они и шарик-то прохладно встретили но...
    Нужно понимать что время идёт, дефолтные компетенции менеджеров растут, они не такие-же как тридцать лет назад, и тут как говорил один знакомый топ, "если менеджер не умеет разбираться в элементарных вещах, на фига нам такой в команде"...
    Пытаться впарить государству\бизнесу колхоз, это конечно возможно в частных не рыночных скажем так кейсах. Но отхватить какую-то долю реальной жизни, это вряд ли.
    Большие высоконагруженные решения, требуют соответствующих компетенций, а простые и не сложные делаются самими менеджерами, которые если соответствуют своей позиции, имеют экспертизу процесса на своём уровне, и способны не просто внятно объяснить, обрисовать, но и в ряде случаев сделать, если им дать подобающий инструмент.
    Который запрограммирован, протестирован, обслуживается IT организации.


    1. oracle_schwerpunkte
      17.01.2023 12:09
      +1

      LOW -Code - идеально подходит для миграции из экселя в классическое внутреннее бизнес WEB-приложение, такое с тысячью полей и сотней формочек. Здесь все преимущества раскрываются во всей красе и все довольны. Разработчик, он же аналитик решает бизнес задачи не не думает о сортировке пузырьком. Заказчик получает релизы через день и может без задержек дать обратную связь. Если концепция изменилась, и переделать с нуля можно относительно быстро. Оснавную ценность в этом случае представляет не само приложение а знания бизнес процессов и деталей, то есть документация и опыт.
      И масштабировать удобно вертикально - это же не рождественская распродажа, даже в международных корпорациях редко бывает больше 10000 пользователей одновременно. Проще пару процессоров прикупить.Бэкап опять же, это для бизнеса важно.


      1. SADKO
        17.01.2023 12:47

        Если заказчику нужно напилить денег то да, и за каждую переделку этой несчастной формочки, ну идеально-же как асфальт или трамвайные рельсы в Москве ;-) и low code-тут сокращает издержки на взрослых разработчиков.
        Правда на определённом уровне особо толстые заказчики на low code не запариваются, им не слабо менять бордюрный камень без нужды...

        С реальным бизнесом это не имеет ничего общего, там время деньги и сами с усами.


  1. yirk
    17.01.2023 12:11

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


    1. SADKO
      17.01.2023 13:03
      +1

      Вооот, а теперь сравните это всё с энтерпрайз решениями тех-же мелкомягких, где можно публиковать сводные таблицы, и кнопочки двигать мышкой оставаясь менеджером!
      Там есть свои косяки и нюансы, которых производители low-code не замечают, иначе бы пестрили во всех промо материаллах...
      ...но есть и способ решения, в виде внутренних it консультантов, помогающих организовывать информационные процессы в компании и предотвращающих отстрел конечностей менеджеров ;-)


    1. Glays
      17.01.2023 13:29

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

      Гибкость же может быть в разных местах. Если бизнес достаточно гибкий, его можно и на коробочный продукт натянуть и весь лоукод будет заключаться в галочках в настройках. Если бизнес не гибкий, но кошелёк можно растянуть на команду разработки (которая на самом деле может состоять и из 1 человека), то будет полноценный энтерпрайз продукт. Между этими полюсами разнообразные "интеграторы" с напильниками.

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


  1. ggo
    18.01.2023 10:00

    Low code - это Excel, G Spreadsheets, и т.д.

    А всякие построители форм плюс процессные движки - не low code. Хоть там и не пишут как бы код, а мышкой двигают, все же это специализированный инструмент, для которого нужно специалисты. Да, заточеность инструмента под конкретный домен, в некоторых случаях ускоряет разработку.

    зы

    конечно, апологеты "low-code" платформ с этим яростно несогласны ;). ну да бог им судья.


  1. AlexeyPolunin
    18.01.2023 15:21
    +1

    Мои соображения (на правах разрабатывающего подобного типа платформу):

    — Идея оставить одного аналитика работает.
    — Чисто визуальная штука с конструированием всего мышкой очень ограничена по возможностям тк мышкой не сделать сложную логику — поэтому нужен код!
    — Если сказать аналитику «а теперь выучи JS, что бы пользоваться платформой» то это уже будет не аналитик, а программист.
    — Мы сделали свой упрощенный код для неразработчиков и он работает, но это дорого для нас, как для разработчиков платформы, и это маркетинговая бомба, пока у вас нет миллиона пользователей.
    — Учиться и повышать свой скилл в инструменте аналитику неизбежно придется.
    — Иногда, что бы получить хорошую архитектуру, ему нужна помощь архитектора (в нашем случае это либо более опытный спец, либо консультация у нас, как у разработчиков платформы).
    — Если нет критических ошибок в архитектуре — решение нормально масштабируется. Для внутренних корпоративных задач достаточного простого вертикального масштабирования, да и горизонтальное можно, но до этого еще никто не доходил.
    — Что бы использовали крупные корпорации — этим надо специально заниматься. К нам несколько раз обращались (типа хотим использовать), но через их внутреннюю бюрократию не пролазит — теперь мы им прям сразу на входе говорим «забудьте».