среды быстрой разработки приложений
Платформы быстрой разработки приложений (RAD)
Платформы быстрой разработки приложений (ПБРП, англ Rapid Application Development Platforms, RAD) позволяют создавать и поддерживать программные приложения без значительных затрат времени по сравнению с классическими языками и фреймворками программирования, оптимизируя процесс и расходуемые ресурсы при разработке. Данные платформы предоставляют инструменты для анализа, проектирования, создания и тестирования приложений, а также готовые функциональные, структурные и интерфейсные блоки для повторного использования
Сравнение Платформы быстрой разработки приложений (RAD)
Выбрать по критериям:
Платформы быстрой разработки приложений (RAD)
1С:Предприятие от 1С
Mendix от Mendix Tech
Mendix – это бескодовая (no-code) программная платформа, предоставляющая инструменты для создания, тестирования, развертывания и проверки программных приложений. Узнать больше про Mendix
Microsoft Power Apps от Microsoft
Power Apps – это набор приложений, сервисов, соединителей и платформ данных, обеспечивающих среду быстрой разработки пользовательских приложений для обеспечения потребностей бизнеса. Узнать больше про Microsoft Power Apps
Appian от Appian
Appian – это интеграционная малокодовая платформа (low-code), позволяющая создавать приложения и проводить цифровую трансформацию на основе управления бизнес-процессами (BPM). Узнать больше про Appian
Directual от Directual
Directual – это бескодовая платформа визуального программирования, позволяющая быстро создавать сложную программную логику (back-end) для веб-приложений, мобильных приложений и приложений интернета вещей (IoT). Узнать больше про Directual
Oracle APEX от Oracle Corporation
Oracle Application Express – это платформа малокодовой разработки, позволяющая создавать масштабируемые, безопасные корпоративные веб-приложения с обширным функционалом. Созданные приложения могут быть развёрнуты далее на различных площадках. Узнать больше про Oracle APEX
Visary Платформа от БизнесАвтоматика
Платформа Visary – это программное решение для быстрого построения сложных и защищенных корпоративных информационно-аналитических систем, и в целом для комплексной автоматизации бизнес-процессов. Узнать больше про Visary Платформа
Salesforce Lightning от Salesforce
Salesforce Lightning – это платформа быстрой разработки корпоративных приложений, помогающих подключать сотрудников, привлекать клиентов, отслеживать рабочую производительность и интегрировать процессы компании. Узнать больше про Salesforce Lightning
DeviceHive от DataArt
DeviceHive – это платформа работы с данными интернета вещей (IoT) с открытым исходным кодом и с обширным спектром функциональных возможностей интеграции устройств и сервера. Узнать больше про DeviceHive
OutSystems от OutSystems
OutSystems – это визуальный малокодовый (low-code) инструмент разработки для мобильных и веб-приложений. Узнать больше про OutSystems
Bosch IoT Suite от Bosch Software Innovations
Bosch IoT Suite – это комплексная программная платформа для интернета вещей (ИВ), состоящая из облачных сервисов и программных пакетов, и призванная помочь разработчикам быстро, несложно и безопасно создавать, внедрять и поддерживать приложения IoT. Узнать больше про Bosch IoT Suite
Cumulocity IoT от Software AG
Cumulocity IoT – это платформа предоставляет полный стек функций, позволяющих создавать прикладные решения интернета вещей (IoT) пользователями без знания программирования. Узнать больше про Cumulocity IoT
flespi от Gurtam
IoT-платформа flespi позволяет подключать телематическое оборудование любого типа к системам бизнес-аналитики и удалённого управления, обеспечивая надёжную унифицированную передачу данных посредством программного интерфейса (API). Узнать больше про flespi
Appery.io от Exadel
Appery.io — это малокодовый конструктор гибридных мобильных приложений, веб-приложений и прогрессивных веб-приложений (PWA) с возможностью визуального создания интерфейсов, бизнес-процессов и связывания с внешними программными интефрейсами (API). Узнать больше про Appery.io
GeneXus от GeneXus
GeneXus – это онлайн-платформа, обеспечивающая быструю разработку приложений, автоматически генерируя базы данных, программный код, интерфейсы, а также служебные и клиентские сервисы. Узнать больше про GeneXus
Linx от Twenty57
Linx – это визуальный конструктор, позволяющий создавать программную логику (backend) различной степени сложности, компилировать веб-приложение и запускать его в облаке. Узнать больше про Linx
Pega Platform от Pegasystems
Pega Platform – это платформа для быстрой разработки программных приложений, позволяющая пользователям без знания языков программирования создавать программные продукты различной степени сложности, основываясь на бизнес-процессах и моделях предметной области. Узнать больше про Pega Platform
Руководство по покупке Платформы быстрой разработки приложений
Содержание
Что такое Платформы быстрой разработки приложений
Платформы быстрой разработки приложений (ПБРП, англ Rapid Application Development Platforms, RAD) позволяют создавать и поддерживать программные приложения без значительных затрат времени по сравнению с классическими языками и фреймворками программирования, оптимизируя процесс и расходуемые ресурсы при разработке. Данные платформы предоставляют инструменты для анализа, проектирования, создания и тестирования приложений, а также готовые функциональные, структурные и интерфейсные блоки для повторного использования
Зачем бизнесу Платформы быстрой разработки приложений
Высокое внимание здесь отдаётся скорости получения результатов и учёту быстрой обратной связи для улучшений. Результаты быстрой разработки поставляюьтся пользователям, чтобы обеспечить их непосредственное участие в бета-тестировании и получении обратной связи для разработчиков.
Назначение и цели использования Платформы быстрой разработки приложений
Программные платформы быстрой разработки приложений используются для создания программного обеспечения с низкими затратами на программирование и быстрое получение готового приложения на базе готовых функциональных блоков, интерфейсов, интеграций и бизнес-процессов.
Системы для быстрой разработки приложений с настраиваемыми рабочими процессами и функциональными возможностями могут использоваться как инженерами-программистами, так и не-разработчиками. Некоторые системы данной категории больше ориентированы на разработчиков и требуют программирования для создания необходимой функциональности, в то время как другие платформы предоставляют множество готовых библиотек и функциональных элементов для быстрого дизайна приложения.
При объединении методологии быстрой разработки приложений с платформами малокодовой или бескодовой разработки компании могут использовать стратегический подход к быстрому созданию бизнес-решений, сводя к минимуму необходимость в пользовательском коде или скриптах.
Обзор основных функций и возможностей Платформы быстрой разработки приложений
Выгоды, преимущества и польза от применения Платформы быстрой разработки приложений
Основным преимуществом платформ быстрой разработки является сокращение цикла создания новых программных приложений и отдельных функций. Дополнительные преимущества RAD-платформ для бизнеса включают в себя:
Платформы быстрой разработки приложений (RAD)
Платформы быстрой разработки приложений (ПБРП, англ Rapid Application Development Platforms, RAD) позволяют создавать и поддерживать программные приложения без значительных затрат времени по сравнению с классическими языками и фреймворками программирования, оптимизируя процесс и расходуемые ресурсы при разработке. Данные платформы предоставляют инструменты для анализа, проектирования, создания и тестирования приложений, а также готовые функциональные, структурные и интерфейсные блоки для повторного использования
Сравнение Платформы быстрой разработки приложений (RAD)
Выбрать по критериям:
Платформы быстрой разработки приложений (RAD)
1С:Предприятие от 1С
Mendix от Mendix Tech
Mendix – это бескодовая (no-code) программная платформа, предоставляющая инструменты для создания, тестирования, развертывания и проверки программных приложений. Узнать больше про Mendix
Microsoft Power Apps от Microsoft
Power Apps – это набор приложений, сервисов, соединителей и платформ данных, обеспечивающих среду быстрой разработки пользовательских приложений для обеспечения потребностей бизнеса. Узнать больше про Microsoft Power Apps
Appian от Appian
Appian – это интеграционная малокодовая платформа (low-code), позволяющая создавать приложения и проводить цифровую трансформацию на основе управления бизнес-процессами (BPM). Узнать больше про Appian
Directual от Directual
Directual – это бескодовая платформа визуального программирования, позволяющая быстро создавать сложную программную логику (back-end) для веб-приложений, мобильных приложений и приложений интернета вещей (IoT). Узнать больше про Directual
Oracle APEX от Oracle Corporation
Oracle Application Express – это платформа малокодовой разработки, позволяющая создавать масштабируемые, безопасные корпоративные веб-приложения с обширным функционалом. Созданные приложения могут быть развёрнуты далее на различных площадках. Узнать больше про Oracle APEX
Visary Платформа от БизнесАвтоматика
Платформа Visary – это программное решение для быстрого построения сложных и защищенных корпоративных информационно-аналитических систем, и в целом для комплексной автоматизации бизнес-процессов. Узнать больше про Visary Платформа
Salesforce Lightning от Salesforce
Salesforce Lightning – это платформа быстрой разработки корпоративных приложений, помогающих подключать сотрудников, привлекать клиентов, отслеживать рабочую производительность и интегрировать процессы компании. Узнать больше про Salesforce Lightning
DeviceHive от DataArt
DeviceHive – это платформа работы с данными интернета вещей (IoT) с открытым исходным кодом и с обширным спектром функциональных возможностей интеграции устройств и сервера. Узнать больше про DeviceHive
OutSystems от OutSystems
OutSystems – это визуальный малокодовый (low-code) инструмент разработки для мобильных и веб-приложений. Узнать больше про OutSystems
Bosch IoT Suite от Bosch Software Innovations
Bosch IoT Suite – это комплексная программная платформа для интернета вещей (ИВ), состоящая из облачных сервисов и программных пакетов, и призванная помочь разработчикам быстро, несложно и безопасно создавать, внедрять и поддерживать приложения IoT. Узнать больше про Bosch IoT Suite
Cumulocity IoT от Software AG
Cumulocity IoT – это платформа предоставляет полный стек функций, позволяющих создавать прикладные решения интернета вещей (IoT) пользователями без знания программирования. Узнать больше про Cumulocity IoT
flespi от Gurtam
IoT-платформа flespi позволяет подключать телематическое оборудование любого типа к системам бизнес-аналитики и удалённого управления, обеспечивая надёжную унифицированную передачу данных посредством программного интерфейса (API). Узнать больше про flespi
Appery.io от Exadel
Appery.io — это малокодовый конструктор гибридных мобильных приложений, веб-приложений и прогрессивных веб-приложений (PWA) с возможностью визуального создания интерфейсов, бизнес-процессов и связывания с внешними программными интефрейсами (API). Узнать больше про Appery.io
GeneXus от GeneXus
GeneXus – это онлайн-платформа, обеспечивающая быструю разработку приложений, автоматически генерируя базы данных, программный код, интерфейсы, а также служебные и клиентские сервисы. Узнать больше про GeneXus
Linx от Twenty57
Linx – это визуальный конструктор, позволяющий создавать программную логику (backend) различной степени сложности, компилировать веб-приложение и запускать его в облаке. Узнать больше про Linx
Pega Platform от Pegasystems
Pega Platform – это платформа для быстрой разработки программных приложений, позволяющая пользователям без знания языков программирования создавать программные продукты различной степени сложности, основываясь на бизнес-процессах и моделях предметной области. Узнать больше про Pega Platform
Руководство по покупке Платформы быстрой разработки приложений
Содержание
Что такое Платформы быстрой разработки приложений
Платформы быстрой разработки приложений (ПБРП, англ Rapid Application Development Platforms, RAD) позволяют создавать и поддерживать программные приложения без значительных затрат времени по сравнению с классическими языками и фреймворками программирования, оптимизируя процесс и расходуемые ресурсы при разработке. Данные платформы предоставляют инструменты для анализа, проектирования, создания и тестирования приложений, а также готовые функциональные, структурные и интерфейсные блоки для повторного использования
Зачем бизнесу Платформы быстрой разработки приложений
Высокое внимание здесь отдаётся скорости получения результатов и учёту быстрой обратной связи для улучшений. Результаты быстрой разработки поставляюьтся пользователям, чтобы обеспечить их непосредственное участие в бета-тестировании и получении обратной связи для разработчиков.
Назначение и цели использования Платформы быстрой разработки приложений
Программные платформы быстрой разработки приложений используются для создания программного обеспечения с низкими затратами на программирование и быстрое получение готового приложения на базе готовых функциональных блоков, интерфейсов, интеграций и бизнес-процессов.
Системы для быстрой разработки приложений с настраиваемыми рабочими процессами и функциональными возможностями могут использоваться как инженерами-программистами, так и не-разработчиками. Некоторые системы данной категории больше ориентированы на разработчиков и требуют программирования для создания необходимой функциональности, в то время как другие платформы предоставляют множество готовых библиотек и функциональных элементов для быстрого дизайна приложения.
При объединении методологии быстрой разработки приложений с платформами малокодовой или бескодовой разработки компании могут использовать стратегический подход к быстрому созданию бизнес-решений, сводя к минимуму необходимость в пользовательском коде или скриптах.
Обзор основных функций и возможностей Платформы быстрой разработки приложений
Выгоды, преимущества и польза от применения Платформы быстрой разработки приложений
Основным преимуществом платформ быстрой разработки является сокращение цикла создания новых программных приложений и отдельных функций. Дополнительные преимущества RAD-платформ для бизнеса включают в себя:
Быстрая разработка приложений (RAD) на сейчас
Выбор методик разработки приложений становится задачей № 1 в условиях стремительного роста рынка. Согласно исследованию Gartner на программное обеспечение для предприятий в 2015 году по миру было затрачено 310 млрд. долларов США. Разработка концепции RAD (Rapid Application Development) стало основой для создания гибкой, адаптивной системы разработки приложений, которая была бы противовесом жёсткой «водопадной» модели.
RAD — модель быстрой разработки приложений, ключевыми для которой является скорость и удобство программирования.
Появление RAD
За появление быстрой разработки приложения стоит благодарить неидеальность модели семейства Waterfall при создании ПО. Всё дело в том, что изначально водопадная система разработки была основана на традиционной инженерной модели, используемой для проектирования и возведения зданий и мостов.
Если Waterfall за основу использовала жесткую структуру последовательных действий по разработке, то появление RAD стало попыткой создания гибкого процесса, в рамках которого могли быть использованы знания, полученные в течении жизненного цикла управления проектом.
Первую версию RAD создал Барри Боэм в 1986 году, который назвал её «спиральная модель». Каждый виток спирали разбит на 4 сектора и соответствует разработке фрагмента или версии ПО. С каждым новым витком идёт углубление и уточнение целей, спецификаций проекта. В результате появляется возможность выбрать обоснованный вариант.
Использовав идеи Барри, британец Джеймс Мартин разработал свою систему RAD на протяжении работы в 80-ых в IBM, и окончательно сформулировал их в книге «Быстрая разработка приложений» в 1991 г.
Правда не обошлось без путаницы в значении слова «RAD» даже среди IT-специалистов. Ведь речь шла о двух концепциях: RAD как эффективной альтернативе Waterfall и RAD как специфическому методу, разработанному Мартином. Последний был адаптирован к бизнес-системам с интенсивным использованием UI.
В дальнейшем идеи были развиты и улучшены пионерами RAD Джеймсом Керром и Ричардом Хантером в совместной книге «Внутри RAD», которая описывала путешествие проектного менеджера в процессе изучения и внедрения методологии быстрой разработки приложений в реальной жизни для реального проекта.
Эти и многие другие авторы смогли популяризировать новую методику как альтернативу традиционным системам подходов к жизненному циклу проекта.
Спиральная модель — процесс разработки ПО, комбинирующий проектирование и постадийное прототипирование.
Основы (принципы) быстрой разработки приложений
Принципы RAD сосредоточены на том, чтобы обеспечить основные преимущества методики быстрой разработки приложений:
С последним пунктом возникает больше всего проблем, потому что разработчик и заказчик видят предмет разработки по-разному.
Для устранения этой и других проблем Джеймсом Мартином и его последователями были выделены следующие принципы RAD:
Принципы RAD используются не только при реализации, а и распространяются на все этапы жизненного цикла, в частности, на стадию обследования организации, построения требований, анализ и дизайн.
Жизненный цикл программного обеспечения по RAD
В процессе RAD приложение проходит четыре фазы.
Фаза анализа и планирования требований
Определяются требования, функции приложения и их приоритетность, описываются информационные потребности. Фаза выполняется преимущественно пользователями при участии разработчиков. На этой стадии также обозначаются масштаб проекта, временные и финансовые рамки, платформы для запуска ПО.
Например, компании «Beverly Flowers» нужно приложение для онлайн-заказа цветов на дом. На создание отводится 50 дней, бюджет — 3 000 долларов.
Фаза проектирования
Часть пользователей участвует в техническом проектировании системы под руководством разработчиков. Группы или подгруппы RAD на этой фазе обычно используют комбинацию техник с овместной разработки приложений (JAD) и CASE-инструменты для воплощения потребностей пользователей в рабочих моделях.
JAD (Joint Application Development) — концепция совместной разработки приложений, в рамках которой происходит тесное взаимодействие между заказчиком и исполнителями для максимально эффективного решения вопросов, касающихся разрабатываемого ПО.
Case — комплект инструментов и методов для проектирования ПО для обеспечения высокого качества программ, отсутствия ошибок и простоты в обслуживании программных продуктов.
В результате фазы создаются:
Если в предыдущих моделях средства разработки прототипов не соответствовали реальным приложениям, и они в дальнейшем не использовались, то в RAD каждый прототип становится частью будущей системы.
В качестве платформы разработки выбрали freeware SpringToolSuite, для которой доступно большое количество сэмплов — прописанных кусочков кода.
В роли сервера — Apache Tomcat 6.0.
Фаза построения
На этой стадии происходит непосредственно быстрая разработка на основе полученных по предыдущим фазам результатов. При этом пользователи продолжают участвовать в развитии системы, предлагая изменения и улучшения приложения. Тестирование приложения тоже происходит во время разработки.
Фаза внедрения
Охватывает обучение пользователей, тестирование и замену старой системы на новую. Подготовка к этой фазе начинается с этапа проектирования.
Записав сообщение о возможности заказа через специальное приложение и разместив информационные стенды в точках продажи, за 2 недели удалось переключить часть покупателей на новый канал сбыта.
При этом доля заказов по телефону пропорционально снизилась, а значит удалось сократить штат менеджеров по работе с клиентами.
Стоит отметить, что в отличии от Waterfall, жизненный цикл проекта по методологии RAD не является жёстким. Зависимо от стартовых условий, количество фаз может уменьшаться, как и их наполнение.
Плюсы и минусы быстрой разработки приложений в вашей компании
Использовать Rapid Application Development или нет, во многом зависит от стартовых условий, требований заказчика и вида приложения.
К однозначным преимуществам RAD относятся:
Инкрементная модель разработки — формат разработки программного обеспечения, которая предусматривает деление продукта на относительно независимые компоненты. Последние разрабатываются и вводятся в эксплуатацию по отдельности.
Не обошлось и без недостатков.
К минусам rapid application development можно отнести:
Методология RAD подойдет вашему проекту, если:
Методология rapid application development не подойдёт вашему проекту, если:
Вердикт
Концепция быстрой разработки приложений (сокращённо RAD от Rapid Application Development) — разновидность инкреметных моделей разработки ПО.
Ключевые параметры, которыми оперирует RAD —
скорость и удобство программирования.
Методология станет отличным выбором для реализации небольших проектов с ограниченным бюджетом, разработать которые нужно в сжатые сроки. Для масштабных же систем, с высокими требованиями по контролю и планированию лучше выбрать другие модели разработки программного обеспечения.
Методологии разработки ПО: RAD
Меньше слов, больше дела!
Идея RAD зародилась в 1980-х годах как альтернатива устаревающей методологии Waterfall, о которой мы уже писали. Каскадная модель программирования уже тогда воспринималась как перегруженная формальностями и недостаточно гибкая. Заказчик выдавал разработчику техническое задание и не видел результата до тех пор, пока программа не «сходила с конвейера» уже готовой, — и ожидания пользователя зачастую не оправдывались. Продукт мог оказаться слишком сложным, неудобным, а мог и устареть за время разработки.
В каскадной модели на ранних этапах работы проводится тщательное планирование, но это не помогает предусмотреть все риски и сложности. Поэтому проект дорожает, а время — уходит впустую.
В 1988 году американский инженер-программист Барри Боэм (Barry Boehm) опубликовал статью «Спиральная модель разработки и совершенствование программного обеспечения», в которой предложил создавать не цельную программу, а выпускать ряд прототипов, каждый из которых содержит дополнительную или расширенную функциональность по сравнению с предыдущим. Пользователь может изучить и попробовать в деле каждый прототип. Получая обратную связь, разработчик дорабатывает приложение, пока заказчик не получит готовый продукт, который полностью его устраивает.
Идея оказалась перспективной. Ее проработал специалист IBM Джеймс Мартин — в 1991 году вышла его книга «Быстрая разработка приложений» с изложением оригинальной методики применения RAD или Rapid Application Development. Спустя два года Джеймс Керр и Ричард Хантер написали книгу «Внутри RAD: как построить полностью функциональную систему за 90 дней или меньше», где проанализировали подводные камни и возможности, которые они выявили при планировании и реализации успешного проекта RAD.
Эти книги заложили фундамент для практического применения RAD, и с тех пор эта методология остается в арсенале IT-разработчиков.
Нарисуйте мне программу
Плохие программы, не отвечающие потребностям пользователей, появляются потому, что заказчик и разработчик по-разному понимают задачу. Даже если будущий пользователь заранее составит подробное техническое задание и напишет спецификации, все равно остается шанс, что программист поймет их не так, как предполагалось. Пользователь и разработчик смотрят на программу с разных сторон: снаружи и изнутри. Заказчик зачастую хорошо понимает, что именно он хочет получить, но не очень ясно представляет, как этого достичь. Программист, напротив, отлично разбирается в устройстве программы, но не имеет четкого представления, что нужно пользователю.
RAD предлагает вести разработку так, чтобы заказчик мог увидеть практические результаты на самых ранних этапах — и скорректировать техническое задание, если это будет необходимо. Очередной цикл разработки начинается не раньше, чем пользователь оценил результаты предыдущего.
Изначально программист создает приложение в черновом варианте. Это могут быть наброски интерфейса и несколько пунктов меню. Если заказчика устраивает первый прототип, программа дорабатывается: добавляются новые элементы интерфейса, функциональность. С каждой итерацией приложение обрастает возможностями, и пользователь постоянно уточняет требования и задает вектор развития.
Методологию быстрой разработки RAD можно сравнить с работой художника. Сначала живописец делает эскиз. Потом создает черновой вариант картины. Затем он начинает прорабатывать элементы, добавляет детали, исправляет недочеты. Разумеется, не каждый заказчик способен по первому наброску представить себе, как будет выглядеть готовая картина, — возможно, он вообще не имеет понятия о перспективе или композиции. Но по крайней мере художнику не придется переписывать весь холст — ведь к завершению работы уже не окажется, что клиент перепутал натюрморт с пейзажем: «Нет-нет, я имел в виду сельский вид, а не корзину с фруктами!» Куда проще внести исправления в эскиз, чем в завершенное полотно.
RAD гарантирует, что в результате заказчик получит именно то, что ему нужно, — если в ходе разработки он последовательно одобрял каждый шаг, добавленные в проект детали и функциональные модули.
Быстро, качественно, дешево — выберите три из трех
Три кита, на которых покоится RAD, — это скорость разработки, качество программного кода и дешевизна. Да, это та самая методология, которая предлагает не выбрать два пункта из трех, а получить все сразу.
Почему быстро?
Методология RAD требует, чтобы работающие прототипы создавались максимально часто. Продолжительность одного производственного цикла — от выработки требований до демонстрации пользователю (то есть одной итерации) — от одного дня до трех недель.
Во многих случаях разумным вариантом будет разделить приложение на функциональные модули, каждый из которых можно создавать и тестировать отдельно. Модули разрабатываются параллельно разными командами, но по общей схеме: от простых прототипов к более сложным, с регулярным контролем со стороны заказчика. В конце работы или каждой итерации модули соединяют в цельное программное решение.
Полезны инструменты автоматизации разработки — они помогают переводить пожелания пользователя в формализованные требования и спецификации, на основании которых формируется модель программы.
Почему качественно?
Пользователь может определять, какую функциональность он хочет видеть реализованной в следующей итерации. Постоянное взаимодействие заказчика и разработчика гарантирует, что приложение будет развиваться в нужном направлении, интерфейс будет удобным, а функциональность востребованной. Такая схема избавляет программиста от лишней работы и исключает ситуации, когда часть программы приходится переделывать с нуля из-за неверно понятых вводных.
Почему дешево?
Деньги — странный предмет: вот они есть, а вот их нет. Бывает, что их не хватает, и приходится прерывать разработку, когда написана еще далеко не вся запланированная функциональность. Что получит заказчик в этом случае?
Если разработчик использует методологию Waterfall, то техническое задание и спецификации на программу он получает в самом начале работы. Какую из задач решать в первую очередь, а что оставить «на десерт», решает сам разработчик — при этом не всегда четко понимая, что для пользователя важно, а что не очень. В итоге заказчик, у которого внезапно закончились средства на проект, может получить программу, в которой реализованы второстепенные задачи, но отсутствует ключевая функциональность.
При Rapid Application Development пользователь сам решает, что ему требуется в первую очередь, и постоянно получает все более функциональные прототипы — то есть, фактически, работающие версии программы. Если финансирование внезапно иссякнет — пользователь не останется у разбитого корыта.
Разработка идет быстро, и заказчик получает программу существенно раньше — а это и экономия финансов.
Инструментарий RAD
Методология RAD еще с конца 1980-х была нацелена на использование новейших технологий ускорения разработки — и этот фокус на инструментах автоматизации по-прежнему актуален.
Средства автоматизации разработки программ (Computer-Aided Software Engineering), или CASE-инструменты — это программные продукты для проектирования приложений. Такая система позволяет быстро создать модель программы, а затем автоматически сгенерировать программный код. Получается прототип — запускаемый модуль, который можно продемонстрировать заказчику.
От одноклеточного к развитому: эволюция программы
Разработка приложения по методологии RAD проходит в несколько этапов.
Первый — анализ и планирование. Здесь определяются цели и задачи проекта — что и для чего будет делать приложение. Совместными усилиями заказчик и разработчик выявляют риски, устанавливают сроки и бюджет, определяют ключевые моменты разработки.
Затем начинается пользовательское проектирование. На этом этапе создается серия работающих прототипов программы. Каждый очередной прототип отличается от предыдущего дополненной функциональностью, изменениями дизайна и производительности. Процесс создания одного прототипа называется итерацией. RAD не накладывает жестких временных рамок на продолжительность одной итерации, но рекомендует, чтобы она была максимально быстрой.
В начале очередного цикла разработки заказчик и программист вместе формулируют требования, которым должна соответствовать очередная версия. Преимущество RAD в том, что не надо заранее продумывать каждую мелочь: сначала разрабатывается самая общая концепция, которая на следующих итерациях будет дополняться и уточняться.
Затем в дело вступают программисты. С помощью инструментов CASE они воплощают требования в виде модели, создавая очередной прототип. Его показывают пользователю и получают обратную связь. Уточняя пожелания и требования к программе, заказчик фактически руководит разработкой.
Прототип зачастую создается на скорую руку, только для проверки концепций. Это нормально: если пользователя устраивает новая функциональность и все работает как следует, в следующей итерации разработчик «отполирует» интерфейс и код. Перфекционизм может даже вредить — на очередном этапе любую доработку пользователь может посчитать неудачной. Если программист стремится сразу сделать все идеально, его усилия окажутся напрасными.
Как только заказчик дал обратную связь, цикл начинается заново. Вырабатывается план на следующую итерацию. Если пользователя что-то не устроило в прототипе, на новом витке цикла изменения откатывают назад и реализуют альтернативный вариант.
Если заказчик принял прототип — уточняем требования к функциональности, прорабатываем ее более детально, планируем новую. Обговариваем визуальные элементы и интерфейсы.
От прототипа к прототипу программный продукт приобретает вид завершенного приложения. Итерации выполняются, пока не будут реализованы последние требования.
Когда моделирование завершено, начинается конструирование: автоматически сгенерированный код дорабатывается и совершенствуется.
Финальный этап разработки — переключение. Готовый программный продукт тестируют, развертывают на пользовательских машинах, конвертируют информацию в новый формат или «заливают» в новые базы данных, подготавливают документацию и обучают операторов работе в системе.
Когда мы рады RAD’у, а когда не рады
У методологии RAD есть и преимущества, и недостатки, а также области применения, в которых она показывает себя лучше или хуже.
Эффективные варианты применения RAD
Преимущества RAD — кратко
Недостатки RAD
RAD уже не молодая методология — ей слегка за 30, — но она по-прежнему используется в разработке программного обеспечения и сдавать свои позиции не собирается. Ведь для методологии главное — не возраст, а эффективность.
Сегодня расскажем о RAD — Rapid Application Development, или быстрой разработке приложений.
Меньше слов, больше дела!
Идея RAD зародилась в 1980-х годах как альтернатива устаревающей методологии Waterfall, о которой мы уже писали. Каскадная модель программирования уже тогда воспринималась как перегруженная формальностями и недостаточно гибкая. Заказчик выдавал разработчику техническое задание и не видел результата до тех пор, пока программа не «сходила с конвейера» уже готовой, — и ожидания пользователя зачастую не оправдывались. Продукт мог оказаться слишком сложным, неудобным, а мог и устареть за время разработки.
В каскадной модели на ранних этапах работы проводится тщательное планирование, но это не помогает предусмотреть все риски и сложности. Поэтому проект дорожает, а время — уходит впустую.
В 1988 году американский инженер-программист Барри Боэм (Barry Boehm) опубликовал статью «Спиральная модель разработки и совершенствование программного обеспечения», в которой предложил создавать не цельную программу, а выпускать ряд прототипов, каждый из которых содержит дополнительную или расширенную функциональность по сравнению с предыдущим. Пользователь может изучить и попробовать в деле каждый прототип. Получая обратную связь, разработчик дорабатывает приложение, пока заказчик не получит готовый продукт, который полностью его устраивает.
Идея оказалась перспективной. Ее проработал специалист IBM Джеймс Мартин — в 1991 году вышла его книга «Быстрая разработка приложений» с изложением оригинальной методики применения RAD или Rapid Application Development. Спустя два года Джеймс Керр и Ричард Хантер написали книгу «Внутри RAD: как построить полностью функциональную систему за 90 дней или меньше», где проанализировали подводные камни и возможности, которые они выявили при планировании и реализации успешного проекта RAD.
Эти книги заложили фундамент для практического применения RAD, и с тех пор эта методология остается в арсенале IT-разработчиков.
Нарисуйте мне программу
Плохие программы, не отвечающие потребностям пользователей, появляются потому, что заказчик и разработчик по-разному понимают задачу. Даже если будущий пользователь заранее составит подробное техническое задание и напишет спецификации, все равно остается шанс, что программист поймет их не так, как предполагалось. Пользователь и разработчик смотрят на программу с разных сторон: снаружи и изнутри. Заказчик зачастую хорошо понимает, что именно он хочет получить, но не очень ясно представляет, как этого достичь. Программист, напротив, отлично разбирается в устройстве программы, но не имеет четкого представления, что нужно пользователю.
RAD предлагает вести разработку так, чтобы заказчик мог увидеть практические результаты на самых ранних этапах — и скорректировать техническое задание, если это будет необходимо. Очередной цикл разработки начинается не раньше, чем пользователь оценил результаты предыдущего.
Изначально программист создает приложение в черновом варианте. Это могут быть наброски интерфейса и несколько пунктов меню. Если заказчика устраивает первый прототип, программа дорабатывается: добавляются новые элементы интерфейса, функциональность. С каждой итерацией приложение обрастает возможностями, и пользователь постоянно уточняет требования и задает вектор развития.
Методологию быстрой разработки RAD можно сравнить с работой художника. Сначала живописец делает эскиз. Потом создает черновой вариант картины. Затем он начинает прорабатывать элементы, добавляет детали, исправляет недочеты. Разумеется, не каждый заказчик способен по первому наброску представить себе, как будет выглядеть готовая картина, — возможно, он вообще не имеет понятия о перспективе или композиции. Но по крайней мере художнику не придется переписывать весь холст — ведь к завершению работы уже не окажется, что клиент перепутал натюрморт с пейзажем: «Нет-нет, я имел в виду сельский вид, а не корзину с фруктами!» Куда проще внести исправления в эскиз, чем в завершенное полотно.
RAD гарантирует, что в результате заказчик получит именно то, что ему нужно, — если в ходе разработки он последовательно одобрял каждый шаг, добавленные в проект детали и функциональные модули.
Быстро, качественно, дешево — выберите три из трех
Три кита, на которых покоится RAD, — это скорость разработки, качество программного кода и дешевизна. Да, это та самая методология, которая предлагает не выбрать два пункта из трех, а получить все сразу.
Почему быстро?
Методология RAD требует, чтобы работающие прототипы создавались максимально часто. Продолжительность одного производственного цикла — от выработки требований до демонстрации пользователю (то есть одной итерации) — от одного дня до трех недель.
Во многих случаях разумным вариантом будет разделить приложение на функциональные модули, каждый из которых можно создавать и тестировать отдельно. Модули разрабатываются параллельно разными командами, но по общей схеме: от простых прототипов к более сложным, с регулярным контролем со стороны заказчика. В конце работы или каждой итерации модули соединяют в цельное программное решение.
Полезны инструменты автоматизации разработки — они помогают переводить пожелания пользователя в формализованные требования и спецификации, на основании которых формируется модель программы.
Почему качественно?
Пользователь может определять, какую функциональность он хочет видеть реализованной в следующей итерации. Постоянное взаимодействие заказчика и разработчика гарантирует, что приложение будет развиваться в нужном направлении, интерфейс будет удобным, а функциональность востребованной. Такая схема избавляет программиста от лишней работы и исключает ситуации, когда часть программы приходится переделывать с нуля из-за неверно понятых вводных.
Почему дешево?
Деньги — странный предмет: вот они есть, а вот их нет. Бывает, что их не хватает, и приходится прерывать разработку, когда написана еще далеко не вся запланированная функциональность. Что получит заказчик в этом случае?
Если разработчик использует методологию Waterfall, то техническое задание и спецификации на программу он получает в самом начале работы. Какую из задач решать в первую очередь, а что оставить «на десерт», решает сам разработчик — при этом не всегда четко понимая, что для пользователя важно, а что не очень. В итоге заказчик, у которого внезапно закончились средства на проект, может получить программу, в которой реализованы второстепенные задачи, но отсутствует ключевая функциональность.
При Rapid Application Development пользователь сам решает, что ему требуется в первую очередь, и постоянно получает все более функциональные прототипы — то есть, фактически, работающие версии программы. Если финансирование внезапно иссякнет — пользователь не останется у разбитого корыта.
Разработка идет быстро, и заказчик получает программу существенно раньше — а это и экономия финансов.
Инструментарий RAD
Методология RAD еще с конца 1980-х была нацелена на использование новейших технологий ускорения разработки — и этот фокус на инструментах автоматизации по-прежнему актуален.
Средства автоматизации разработки программ (Computer-Aided Software Engineering), или CASE-инструменты — это программные продукты для проектирования приложений. Такая система позволяет быстро создать модель программы, а затем автоматически сгенерировать программный код. Получается прототип — запускаемый модуль, который можно продемонстрировать заказчику.
От одноклеточного к развитому: эволюция программы
Разработка приложения по методологии RAD проходит в несколько этапов.
Первый — анализ и планирование. Здесь определяются цели и задачи проекта — что и для чего будет делать приложение. Совместными усилиями заказчик и разработчик выявляют риски, устанавливают сроки и бюджет, определяют ключевые моменты разработки.
Затем начинается пользовательское проектирование. На этом этапе создается серия работающих прототипов программы. Каждый очередной прототип отличается от предыдущего дополненной функциональностью, изменениями дизайна и производительности. Процесс создания одного прототипа называется итерацией. RAD не накладывает жестких временных рамок на продолжительность одной итерации, но рекомендует, чтобы она была максимально быстрой.
В начале очередного цикла разработки заказчик и программист вместе формулируют требования, которым должна соответствовать очередная версия. Преимущество RAD в том, что не надо заранее продумывать каждую мелочь: сначала разрабатывается самая общая концепция, которая на следующих итерациях будет дополняться и уточняться.
Затем в дело вступают программисты. С помощью инструментов CASE они воплощают требования в виде модели, создавая очередной прототип. Его показывают пользователю и получают обратную связь. Уточняя пожелания и требования к программе, заказчик фактически руководит разработкой.
Прототип зачастую создается на скорую руку, только для проверки концепций. Это нормально: если пользователя устраивает новая функциональность и все работает как следует, в следующей итерации разработчик «отполирует» интерфейс и код. Перфекционизм может даже вредить — на очередном этапе любую доработку пользователь может посчитать неудачной. Если программист стремится сразу сделать все идеально, его усилия окажутся напрасными.
Как только заказчик дал обратную связь, цикл начинается заново. Вырабатывается план на следующую итерацию. Если пользователя что-то не устроило в прототипе, на новом витке цикла изменения откатывают назад и реализуют альтернативный вариант.
Если заказчик принял прототип — уточняем требования к функциональности, прорабатываем ее более детально, планируем новую. Обговариваем визуальные элементы и интерфейсы.
От прототипа к прототипу программный продукт приобретает вид завершенного приложения. Итерации выполняются, пока не будут реализованы последние требования.
Когда моделирование завершено, начинается конструирование: автоматически сгенерированный код дорабатывается и совершенствуется.
Финальный этап разработки — переключение. Готовый программный продукт тестируют, развертывают на пользовательских машинах, конвертируют информацию в новый формат или «заливают» в новые базы данных, подготавливают документацию и обучают операторов работе в системе.
Когда мы рады RAD’у, а когда не рады
У методологии RAD есть и преимущества, и недостатки, а также области применения, в которых она показывает себя лучше или хуже.
Эффективные варианты применения RAD
Преимущества RAD — кратко
Недостатки RAD
RAD уже не молодая методология — ей слегка за 30, — но она по-прежнему используется в разработке программного обеспечения и сдавать свои позиции не собирается. Ведь для методологии главное — не возраст, а эффективность.