Выбор методик разработки приложений становится задачей № 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 каждый прототип становится частью будущей системы.
Так, в приложении «Beverly Flowers» пользователи должны иметь доступ к возможностям: «Домашняя страница», «Поиск цветов», «Посмотреть список цветов».В качестве платформы разработки выбрали freeware SpringToolSuite, для которой доступно большое количество сэмплов — прописанных кусочков кода.
В роли сервера — Apache Tomcat 6.0.
Фаза построения
На этой стадии происходит непосредственно быстрая разработка на основе полученных по предыдущим фазам результатов. При этом пользователи продолжают участвовать в развитии системы, предлагая изменения и улучшения приложения. Тестирование приложения тоже происходит во время разработки.
Приложение «Beverly Flowers» собирается из трёх функциональных компонентов — перехода пользователя на «Домашнюю страницу», «Поиск цветов» и «Просмотреть список цветов».Для разработки рабочей модели понадобился 1 специалист и 8 дней.
Фаза внедрения
Охватывает обучение пользователей, тестирование и замену старой системы на новую. Подготовка к этой фазе начинается с этапа проектирования.
Ранее компания «Beverly Flowers» принимала заказы непосредственно в точках сбыта и по телефону.Записав сообщение о возможности заказа через специальное приложение и разместив информационные стенды в точках продажи, за 2 недели удалось переключить часть покупателей на новый канал сбыта.
При этом доля заказов по телефону пропорционально снизилась, а значит удалось сократить штат менеджеров по работе с клиентами.
Стоит отметить, что в отличии от Waterfall, жизненный цикл проекта по методологии RAD не является жёстким. Зависимо от стартовых условий, количество фаз может уменьшаться, как и их наполнение.
Плюсы и минусы быстрой разработки приложений в вашей компании
Использовать Rapid Application Development или нет, во многом зависит от стартовых условий, требований заказчика и вида приложения.
К однозначным преимуществам RAD относятся:
- высокое качество. Взаимодействие пользователей с прототипами повышает функциональность проектов, выполненных в рамках быстрой разработки приложений. Такое программное обеспечение может больше отвечать потребностям заказчика (конечного пользователя), чем при использовании методик Agile/Waterfall.
- контроль рисков — несмотря на то, что львиная часть материалов о RAD фокусируется на скорости и вовлечении пользователей как ключевым особенностям модели, нельзя исключать третье важное преимущество — снижение рисков. Интересно, но Боэм, создавший первую версию RAD, охарактеризовал спиральную модель как основанную на риске.
Использование rapid application development позволяет уже на ранних стадиях сосредоточиться на главных факторах риска и приспособиться к ним. - за единицу времени выполняется больше проектов в рамках бюджета — так как RAD подразумевает инкрементную модель разработки, шансы на критические ошибки, которые часто случаются в больших проектах по системе Waterfall, снижены.
Если в проектах по водопадной системе реализация проекта была возможна после шести и более месяцев анализа и разработки, то в RAD вся необходима информация открывается раньше, во время самого процесса создания приложения.
Инкрементная модель разработки — формат разработки программного обеспечения, которая предусматривает деление продукта на относительно независимые компоненты. Последние разрабатываются и вводятся в эксплуатацию по отдельности.
Не обошлось и без недостатков.
К минусам rapid application development можно отнести:
- риск «новизны» — для большинства IT-компаний RAD было новинкой, требующей переосмысления привычных методик работы. Сопротивление новому, необходимость изучения с нуля инструментов и техник приводят к ошибкам во время первых внедрений rapid application development.
- если пользователи не могут постоянно брать участие в процессе разработки на протяжении всего жизненного цикла, это может негативно повлиять на конечный продукт — особенностью RAD является увеличенное взаимодействие пользователей и разработчиков в отличии от моделей Waterfall, в которых роль пользователей сводится к определению требований. Далее разработчики сами создают систему.
- уменьшенный контроль — гибкость, адаптивность процесса как одно из преимуществ RAD в идеале означает возможность быстро адаптироваться как к проблемам, так и возможностям.
К сожалению, придётся отдать предпочтение чему-то одному — гибкости или контролю. В последнем случае методика быстрой разработки приложений не будет жизнеспособной. - скудный дизайн — фокусирование на прототипах в некоторых случаях приводит к методике «взлом и тестирование», по которой разработчики постоянно вносят мелкие изменения в отдельные элементы и игнорируют проблемы системной архитектуры.
- отсутствие масштабируемости — преимущественно RAD используется маленькими и средними проектными командами. Недостатки методологии rapid application development особенно ярко проявляются при использовании быстрой разработки приложений в работе над крупными проектами.
Методология RAD подойдет вашему проекту, если:
- для него важна скорость и простота разработки
- четко определены приоритетные направления разработки проекта
- разработать приложение нужно в сжатые сроки
- проект выполняется в условиях ограниченного бюджета
- главный критерий — интерфейс пользователя
- есть возможность разбить проект на функциональные компоненты.
Методология rapid application development не подойдёт вашему проекту, если:
- для него важно качество и контроль
- идет речь о создании крупномасштабного проекта — предполагаемое максимальное время разработки приложения составляет 60-90 дней, а при написании сотни тысяч строк программного кода соблюсти такое ограничение практически невозможно
- критически важным для реализации является высокий уровень планирования и жесткая дисциплина проектирования, строгое следование заранее разработанным протоколам и интерфейсам
- от приложения в определенной степени зависит безопасность людей.
Вердикт
Концепция быстрой разработки приложений (сокращённо RAD от Rapid Application Development) — разновидность инкреметных моделей разработки ПО.
Ключевые параметры, которыми оперирует RAD —
скорость и удобство программирования.
Методология станет отличным выбором для реализации небольших проектов с ограниченным бюджетом, разработать которые нужно в сжатые сроки. Для масштабных же систем, с высокими требованиями по контролю и планированию лучше выбрать другие модели разработки программного обеспечения.