Rapid application development

Software development
Core activities
Paradigms and models
Methodologies and frameworks
Supporting disciplines
Practices
Tools
Standards and Bodies of Knowledge
Glossaries
Outlines

Rapid-application development (RAD), also called rapid-application building (RAB), is both a general term for adaptive software development approaches, and the name for James Martin's approach to rapid development. In general, RAD approaches to software development put less emphasis on planning and more emphasis on an adaptive process. Prototypes are often used in addition to or sometimes even in place of design specifications.

RAD is especially well suited for (although not limited to) developing software that is driven by user interface requirements. Graphical user interface builders are often called rapid application development tools. Other approaches to rapid development include the adaptive, agile, spiral, and unified models.

History[]

Rapid application development was a response to plan-driven waterfall processes, developed in the 1970s and 1980s, such as the Structured Systems Analysis and Design Method (SSADM). One of the problems with these methods is that they were based on a traditional engineering model used to design and build things like bridges and buildings. Software is an inherently different kind of artifact. Software can radically change the entire process used to solve a problem. As a result, knowledge gained from the development process itself can feed back to the requirements and design of the solution.[1] Plan-driven approaches attempt to rigidly define the requirements, the solution, and the plan to implement it, and have a process that discourages changes. RAD approaches, on the other hand, recognize that software development is a knowledge intensive process and provide flexible processes that help take advantage of knowledge gained during the project to improve or adapt the solution.

The first such RAD alternative was developed by Barry Boehm and was known as the spiral model. Boehm and other subsequent RAD approaches emphasized developing prototypes as well as or instead of rigorous design specifications. Prototypes had several advantages over traditional specifications:

Starting with the ideas of Barry Boehm and others, James Martin developed the rapid application development approach during the 1980s at IBM and finally formalized it by publishing a book in 1991, Rapid Application Development. This has resulted in some confusion over the term RAD even among IT professionals. It is important to distinguish between RAD as a general alternative to the waterfall model and RAD as the specific method created by Martin. The Martin method was tailored toward knowledge intensive and UI intensive business systems.

These ideas were further developed and improved upon by RAD pioneers like James Kerr and Richard Hunter, who together wrote the seminal book on the subject, Inside RAD,[3] which followed the journey of a RAD project manager as he drove and refined the RAD Methodology in real-time on an actual RAD project. These practitioners, and those like them, helped RAD gain popularity as an alternative to traditional systems project life cycle approaches.

The RAD approach also matured during the period of peak interest in business re-engineering. The idea of business process re-engineering was to radically rethink core business processes such as sales and customer support with the new capabilities of Information Technology in mind. RAD was often an essential part of larger business re engineering programs. The rapid prototyping approach of RAD was a key tool to help users and analysts "think out of the box" about innovative ways that technology might radically reinvent a core business process.[4][5]

The James Martin RAD method[]

Phases in the James Martin approach to RAD

The James Martin approach to RAD divides the process into four distinct phases:

  1. Requirements planning phase – combines elements of the system planning and systems analysis phases of the Systems Development Life Cycle (SDLC). Users, managers, and IT staff members discuss and agree on business needs, project scope, constraints, and system requirements. It ends when the team agrees on the key issues and obtains management authorization to continue.
  2. User design phase – during this phase, users interact with systems analysts and develop models and prototypes that represent all system processes, inputs, and outputs. The RAD groups or subgroups typically use a combination of Joint Application Development (JAD) techniques and CASE tools to translate user needs into working models. User Design is a continuous interactive process that allows users to understand, modify, and eventually approve a working model of the system that meets their needs.
  3. Construction phase – focuses on program and application development task similar to the SDLC. In RAD, however, users continue to participate and can still suggest changes or improvements as actual screens or reports are developed. Its tasks are programming and application development, coding, unit-integration and system testing.
  4. Cutover phase – resembles the final tasks in the SDLC implementation phase, including data conversion, testing, changeover to the new system, and user training. Compared with traditional methods, the entire process is compressed. As a result, the new system is built, delivered, and placed in operation much sooner.[6]

Pros and cons of rapid application development[]

In modern Information Technology environments, many systems are now built using some degree of Rapid Application Development[7] (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:

See also[]

References[]

  1. ^ 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 2014.
  2. ^ a b Boehm, Barry (May 1988). "A Spiral Model of Software Development" (PDF). IEEE Computer. doi:10.1109/2.59. Archived from the original (PDF) on 29 March 2018. Retrieved 1 July 2014.
  3. ^ 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.
  4. ^ Drucker, Peter (3 November 2009). Post-Capitalist Society. Harper Collins e-books. ISBN 978-0887306204.
  5. ^ Martin, James (1991). Rapid Application Development. Macmillan. ISBN 0-02-376775-8.
  6. ^ Martin, James (1991). Rapid Application Development. Macmillan. pp. 81–90. ISBN 0-02-376775-8.
  7. ^ Hotle, Matt (13–14 April 2010). "The Disintegration of AD: Putting it Back Together Again" (PDF). http://www.gartner.com.br. Enterprise Integration Summit, São Paulo, Brazil: Gartner Group. Retrieved 1 July 2014. External link in |website= (help)
  8. ^ Beck, Kent (2000). Extreme Programming Explained. Addison Wesley. pp. 3–7. ISBN 0201616416.
  9. ^ 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.
  10. ^ Andrew Begel, Nachiappan Nagappan (September 2007). "Usage and Perceptions of Agile Software Development in an Industrial Context: An Exploratory Study" (PDF). doi:10.1109/esem.2007.12. Cite journal requires |journal= (help)
  11. ^ 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.1201238. ISBN 0-7695-1877-X.
  12. ^ 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.

Further reading[]