Design and prototyping
Examples: Figma, Balsamiq, Invision, Sketch, Adobe XD
Developer-focused platforms
Examples: Embarcadero RAD Studio, CUBA Platform, Ruby on Rails
Development speed
The critical difference between RAD and other models is how rapid application development focuses on speed. Other models are usually focused more on bringing a working product to the customer, regardless of how long that takes.
Further reading
- Steve McConnell (1996). Rapid Development: Taming Wild Software Schedules, Microsoft Press Books,
- Ellen Gottesdiener (1995). «RAD Realities: Beyond the Hype to How RAD Really Works» Application Development Trends
- Ken Schwaber (1996). Agile Project Management with Scrum, Microsoft Press Books,
- Steve McConnell (2003). Professional Software Development: Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers, Addison-Wesley,
- Dean Leffingwell (2007). Scaling Software Agility: Best Practices for Large Enterprises, Addison-Wesley Professional,
- Scott Stiner (2021). Forbes List: «Rapid Application Development (RAD): A Smart, Quick And Valueable Process For Software Developers»
ISBN 978-1-55615-900-8Kerr, James M.; Hunter, Richard (1993). Inside RAD: How to Build a Fully Functional System in 90 Days or Less. McGraw-Hill. ISBN 0-07-034223-7.
ISBN 978-0-7356-1993-7
ISBN 978-0-321-19367-4
ISBN 978-0-321-45819-3
Is rapid application development applicable to my project?
These conditions are often true for large business or governmental organizations. However, certain elements of RAD can be applied even in such cases. E.g. fixed price projects can budget for prototype stage and certain amount of changes. Prototype scope could be limited to the most uncertain parts, considering that you have relevant users on board.
On the other side, RAD approach works very well for small and medium businesses, or departmental projects, where business users own the budget and are motivated to get the results. A classic example is various Line of Business (LOB) applications — a general term describing applications developed to automate and run certain parts of business more efficiently.
Similarly, RAD is perfectly applicable to creating websites. These are typically small projects with a limited set of stakeholders, but involving them early is crucial as design is a very opinionated thing, and everyone will have something to say!
Low code / no code platforms
Examples: Mendix, Outsystems
Phase four: cutover
This is the implementation phase when the finished product is launched.
Tip: At this stage, you need to care about:
- Data conversion
- Testing
- Getting client feedback
- Finalizing your system
In addition to what we discuss, here is a very helpful video by Stefan Mischook where he summarises the RAD process flow:
Phase one: requirement planning
According to the mentioned above study around 34% of projects, schedules aren’t baselined. Baselining, in other words, approval of project planning documentation should be of the planning stage, which allows tracking the software development progress against plans.
In the rapid development planning stage is like a project scoping meeting that results in creating a scoping document in the result. During this stage, developers, stakeholders, and team members communicate to define the goals for the project. They also review current and potential issues to be addressed during the build.
Tip: This stage includes:
- Researching the current problem
- Defining project requirements and specifications
- Approval of those requirements by stakeholders
- Everyone can evaluate the goals and expectations for the project and weigh in
Pros and cons of rapid application development
In modern Information Technology environments, many systems are now built using some degree of Rapid Application Development[8] (not necessarily the James Martin approach). In addition to Martin’s method, Agile methods and the Rational Unified Process are often used for RAD development.
The purported advantages of RAD include:
The disadvantages of RAD include:
Rad model cons
Certainly, as other ones the RAD model has some disadvantages that should be critical to know about before your choosing it:
Rad model pros & benefits
Well, now you know the main phases of this type of methodology development. Let’s make a quick overview of what benefits rapid software development has for your project:
Rapid application development – быстрая разработка приложений
Rapid Application Development (RAD) – это жизненный цикл процесса проектирования, созданный для достижения более высоких скорости разработки и качества ПО, чем это возможно при традиционном подходе к проектированию.
RAD предполагает, что разработка ПО осуществляется небольшой командой разработчиков за срок порядка трех-четырех месяцев путем использования инкрементного прототипирования с применением инструментальных средств визуального моделирования и разработки. Технология RAD предусматривает активное привлечение заказчика уже на ранних стадиях – обследование организации, выработка требований к системе. Причины популярности RAD вытекают из тех преимуществ, которые обеспечивает эта технология.
Наиболее существенными из них являются:
Последнее из указанных свойств подразумевает полное выполнение требований заказчика как функциональных, так и нефункциональных, с учетом их возможных изменений в период разработки системы, а также получение качественной документации, обеспечивающей удобство эксплуатации и сопровождения системы. Это означает, что дополнительные затраты на сопровождение сразу после поставки будут значительно меньше. Таким образом, полное время от начала разработки до получения приемлемого продукта при использовании этого метода значительно сокращается.
Когда применяется RAD
Применение технологии RAD целесообразно, когда:
- требуется выполнение проекта в сжатые сроки (90 дней). Быстрое выполнение проекта позволяет создать систему, отвечающую требованиям сегодняшнего дня. Если система проектируется долго, то весьма высока вероятность, что за это время существенно изменятся фундаментальные положения, регламентирующие деятельность организации, то есть, система морально устареет еще до завершения ее проектирования.
- нечетко определены требования к ПО. В большинстве случаев заказчик весьма приблизительно представляет себе работу будущего программного продукта и не может четко сформулировать все требования к ПО. Требования могут быть вообще не определены к началу проекта либо могут изменяться по ходу его выполнения.
- проект выполняется в условиях ограниченности бюджета. Разработка ведется небольшими RAD группами в короткие сроки, что обеспечивает минимум трудозатрат и позволяет вписаться в бюджетные ограничения.
- интерфейс пользователя (GUI) есть главный фактор. Нет смысла заставлять пользователя рисовать картинки. RAD технология дает возможность продемонстрировать интерфейс в прототипе, причем достаточно скоро после начала проекта.
- проект большой, но поддается разделению на более мелкие функциональные компоненты. Если предполагаемая система велика, необходимо, чтобы ее можно было разбить на мелкие части, каждая из которых обладает четкой функциональностью. Они могут выпускаться последовательно или параллельно (в последнем случае привлекается несколько RAD групп).
- ПО не обладает большой вычислительной сложностью.
RAD-технология не является универсальной, то есть ее применение целесообразно не всегда. Например, в проектах, где требования к программному продукту четко определены и не должны меняться, вовлечение заказчика в процесс разработки не требуется и более эффективной может быть иерархическая разработка (каскадный метод). То же касается проектов, ПО, сложность которых определяется необходимостью реализации сложных алгоритмов, а роль и объем пользовательского интерфейса невелик.
Принципы организации RAD
Принципы RAD технологии направлены на обеспечение трех основных ее преимуществ – высокой скорости разработки, низкой стоимости и высокого качества. Достигнуть высокого качества программного продукта весьма непросто и одна из главных причин возникающих трудностей заключается в том, что разработчик и заказчик видят предмет разработки (ПО) по-разному.
Главная идея RAD технологии состоит в том, чтобы как можно быстрее донести до заказчика результаты разработки, пусть и не в полном виде. Например, реализация только пользовательского интерфейса и предъявление его заказчику позволяет уже на ранней стадии разработки получить замечания по экранным и отчетным формам и внести необходимые коррективы. В этом случае значительно возрастает вероятность успеха проекта, то есть возникает уверенность в том, что конечный продукт будет делать именно то, что ожидает заказчик. Кроме того, не следует забывать и тот факт, что разница стоимости ошибки определения требований в начале проекта и в конце равна 1:200.
Основные принципы RAD можно сформулировать следующим образом:
- Работа ведется группами. Типичный состав группы — руководитель, аналитик, два программиста, технический писатель. Если проект сложный, то для него может быть выделено несколько RAD-групп. Разработка проекта выполняется в условиях тесного взаимодействия между разработчиками и Заказчиком.
- Разработка базируется на моделях. Моделирование позволяет оценить проект и выполнить его декомпозицию на составные части, каждая из которых может разрабатываться отдельной RAD-группой.
- Итерационное прототипирование. Разработка системы и предъявление ее заказчику осуществляется в виде последовательности развиваемых прототипов. Любой из прототипов реализует определенную часть функциональности, требуемой от конечного продукта. При этом каждый последующий прототип включает всю функциональность, реализованную в предыдущем прототипе, с добавлением новой. Число прототипов определяется на основе учета разных параметров – размера проекта, анализа рисков, пожеланий заказчика и т. д. Традиционно для проектов ПО средней сложности разрабатываются три прототипа. Первый содержит весь пользовательский интерфейс с нулевой функциональностью. Он дает возможность собрать замечания заказчика и после их устранения утвердить у него экранные и отчетные формы. Второй прототип содержит реализованную на 70-80% функциональность системы, третий – полностью реализованную функциональность.
Основаниями для очередной итерации являются:- Замечания заказчика. Привлечение заказчика и конечного пользователя к оценке выходных результатов прототипа с эффективной обратной связью с командой разработчиков является гарантией того, что созданная система будет делать то, что требуется заказчику. Если замечания носят характер исправлений, они учитываются в следующем прототипе, если же изменяются требования, то выполняется переоценка проекта и корректируются сроки и стоимость проекта.
- Детализация. Выполняется программирование нереализованной части системы в соответствии с составленным планом.
- Анализ результатов программирования. Исправляются ошибки, повышается эффективность программного кода и т. д.
- RAD группа всегда работает только над одним прототипом. Это обеспечивает единство целей, лучшую наблюдаемость и управляемость процессом разработки, что в итоге повышает качество конечного продукта. Соответственно используемые инструментальные средства должны обеспечивать групповую разработку и конфигурационное управление проектом.
- Если проект сложный, то для него может быть выделено несколько RAD групп. Большие системы разбиваются на подсистемы. Каждая подсистема разрабатывается независимой группой. Ключ успеха – правильное разбиение системы на подсистемы. Команды должны использовать общие стандарты. Обязательно финальное тестирование полной системы.
- Обязательное использование инструментальных средств, автоматизирующих процесс разработки, и методик их использования, следствием чего является сокращение сроков разработки и повышение качества конечного продукта.
Принципы RAD применяются не только при реализации, но и распространяются на все этапы жизненного цикла, в частности на этап обследования организации, построения требований, анализ и дизайн.
Что обеспечивает RAD технология
Технология RAD обеспечивает:
Rapid application development process phases
For decades, project management teams stuck with the traditional software development process that includes strict planning, process, and documentation.
Any discussion of rapid application development pros and cons should mention that it focuses on minimizing the planning stage and maximizing prototype development. It reduces planning time and emphasizes prototype iterations.
This way, RAD allows project managers and stakeholders to arrange all project changes in real-time and implement them immediately. This allows greater efficiency, faster release and time-to-market, and effective communication.
Rapid application development tools
The success of RAD methodology heavily depends on prototyping speed and close collaboration, thus choosing the right tools to support this is utterly important. Fortunately, there is a long list to choose from.
Rapid application development vs. agile
Agile is one of the most common software development methodology thought it was developed after RAD appears. There are the next main differences between these two models:
References
- ^Brooks, Fred (1986). Kugler, H.J. (ed.). No Silver Bullet Essence and Accidents of Software Engineering(PDF). Information Processing ’86. Elsevier Science Publishers B.V (North-Holland). ISBN 0-444-70077-3. Retrieved 2 July 2021.
- ^ abBoehm, Barry (May 1988). «A Spiral Model of Software Development»(PDF). IEEE Computer. doi:10.1109/2.59. S2CID 1781829. Archived from the original(PDF) on 29 March 2021. Retrieved 1 July 2021.
- ^Kerr, James M.; Hunter, Richard (1993). Inside RAD: How to Build a Fully Functional System in 90 Days or Less. McGraw-Hill. ISBN 0-07-034223-7.
- ^Drucker, Peter (3 November 2009). Post-Capitalist Society. Harper Collins e-books. ISBN 978-0887306204.
- ^Martin, James (1991). Rapid Application Development. Macmillan. ISBN 0-02-376775-8.
- ^https://www.technobuzz.tech/2020/10/android.html
- ^Martin, James (1991). Rapid Application Development. Macmillan. pp. 81–90. ISBN 0-02-376775-8.
- ^«The Disintegration of AD: Putting it Back Together Again»(PDF). gartner.com.br. Retrieved 13 April 2021.
- ^Beck, Kent (2000). Extreme Programming Explained. Addison Wesley. pp. 3–7. ISBN 0202116416.
- ^Gerber, Aurona; Van Der Merwe, Alta; Alberts, Ronell (16–18 November 2007). «Practical Implications of Rapid Development Methodologies». Proceedings of the Computer Science and Information technology Education Conference, CSITEd-2007. Computer Science and IT Education Conference. Mauritius. pp. 233–245. CiteSeerX 10.1.1.100.645. ISBN 978-99903-87-47-6.
- ^Andrew Begel, Nachiappan Nagappan (September 2007). «Usage and Perceptions of Agile Software Development in an Industrial Context: An Exploratory Study»(PDF). First International Symposium on Empirical Software Engineering and Measurement (ESEM 2007). pp. 255–264. doi:10.1109/esem.2007.12. ISBN 978-0-7695-2886-1. S2CID 1941370.
- ^Maximilien, E.M.; Williams, L. (2003). «Assessing test-driven development at IBM». 25th International Conference on Software Engineering, 2003. Proceedings. pp. 564–569. doi:10.1109/icse.2003.1202138. ISBN 0-7695-1877-X. S2CID 16919353.
- ^Stephens, Matt; Rosenberg, Doug (2003). Extreme Programming Refactored: The Case Against XP. doi:10.1007/978-1-4302-0810-5. ISBN 978-1-59059-096-6. S2CID 29042153.
The rapid application development methodology shifts focus from costly planning to prototyping. in particular, rad model implies the process division into four stages:
Requirements planning
At this phase, users and the project team identify the objectives of the future system. The focus is on reaching business goals and the requirements are rather loose. The ability to adjust or change them during the prototyping stage is key.
User design
Construction
Cutover
This is the final phase including acceptance testing, rollout and user training.
Is rapid application development applicable to my project?
These conditions are often true for large business or governmental organizations. However, certain elements of RAD can be applied even in such cases. E.g. fixed price projects can budget for prototype stage and certain amount of changes. Prototype scope could be limited to the most uncertain parts, considering that you have relevant users on board.
On the other side, RAD approach works very well for small and medium businesses, or departmental projects, where business users own the budget and are motivated to get the results. A classic example is various Line of Business (LOB) applications — a general term describing applications developed to automate and run certain parts of business more efficiently.
Similarly, RAD is perfectly applicable to creating websites. These are typically small projects with a limited set of stakeholders, but involving them early is crucial as design is a very opinionated thing, and everyone will have something to say!
Rapid application development tools
The success of RAD methodology heavily depends on prototyping speed and close collaboration, thus choosing the right tools to support this is utterly important. Fortunately, there is a long list to choose from.
Design and prototyping
Examples: Figma, Balsamiq, Invision, Sketch, Adobe XD
Tools like Figma and InVision enable graphic designers and UX specialists to quickly knock up and share with end users clickable prototypes with a complete design to collect their feedback. Once an iteration of the prototype is approved, the project can be exported to formats reusable by frontend developers, thus moving into the Construction phase. These tools are most widely used for creating websites, but can also be used for prototyping user experience of more complex end-user applications or portals.
Development
Low code / no code platforms
Examples: Mendix, Outsystems
The key idea of these platforms is to enable business users with no development skills (referred to as power users or citizen developers) to deliver working applications very quickly. Of course, this simplicity implies lack of flexibility and multiple limitations. I have covered these limitations and associated risks in my previous article. As a result, the niche of such platforms is either prototyping or very basic systems.
Developer-focused platforms
Examples: Embarcadero RAD Studio, CUBA Platform, Ruby on Rails
Summary
The rapid application development model
RAD methodology is a powerful alternative for the traditional waterfall model of development that isn’t always the most effective. From the very beginning, rapid application development came from the spiral model.
But over time, rapid application development changed. It was adapted to fit developer time constraints while retaining some core development guidelines. The RAD meaning becomes clearer when you see that speed is always of the essence where this model is concerned.
When you have the budget
Compared to other development models, RAD is relatively inexpensive. There are always outlying instances, though.