Rapid application development: Difference between revisions

Content deleted Content added
Wei.cs (talk | contribs)
Undid revision 277264082 by Wei.cs (talk)
Rescuing 1 sources and tagging 0 as dead.) #IABot (v2.0.9.5
 
(558 intermediate revisions by more than 100 users not shown)
Line 1:
{{Short description|Concept of software development}}
{{TOCright}}
{{Redirect2|RAD tool|Rapid Application Development Tool|development focused on making graphical user interfaces|graphical user interface builder}}
{{Software development process}}
{{Use dmy dates|date=June 2020}}
{{Software development process}}
 
'''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 (author)|James methodologyMartin]]'s method of rapid development. In general, whichRAD involvesapproaches iterativeto software development put less emphasis on planning and themore constructionemphasis ofon an adaptive process. [[software prototype|Prototypes]]s are often used in addition to or sometimes even instead of design specifications.
 
RAD is especially well suited for (although not limited to) developing [[software]] that is driven by [[user interface]] [[software requirements|requirements]]. [[Graphical user interface builder]]s are often called rapid application development tools. Other approaches to rapid development include the [[Adaptive software development|adaptive]], [[Agile software development|agile]], [[spiral model|spiral]], and [[Unified Process|unified]] models.
== Overview ==
Rapid '''application''' development is a [[software development methodology]], which involves iterative development and the construction of [[software prototyping|prototype]]s. It is a merger of various [[Structured Analysis and Design Technique|structured techniques]], especially the data driven [[Information Engineering]] with prototyping techniques to accelerate software systems development.<ref name= "WBD04"> Whitten, Jeffrey L.; Lonnie D. Bentley, Kevin C. Dittman. (2004). ''Systems Analysis and Design Methods''. 6th edition. ISBN 025619906X.</ref>
 
RAD calls for the interactive use of structured techniques and prototyping to define user's requirements and design the final system. Using structured techniques the developer first builds preliminary [[data model]]s and [[business process model]]s of the business [[requirement]]s. Prototyping then helps the analyst and users to verify those requirements and to formally refine the data and process models. The cycle of models, then prototypes, then models, then prototypes and so forth on, ultimately results in a combined business requirements and technical design statement to be used for constructing new systems.<ref name= "WBD04"/>
 
RAD approaches may entail compromises in functionality and performance in exchange for enabling faster development and facilitating application maintenance.
 
== History ==
Rapid application development was a response to plan-driven [[Waterfall model|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.<ref>{{cite book|last=Brooks|first=Fred|title=No Silver Bullet Essence and Accidents of Software Engineering|editor1-last=Kugler|editor1-first=H.J.|series=Information Processing '86|date=1986|publisher=Elsevier Science Publishers B.V (North-Holland)|isbn=0-444-70077-3|url=http://www.sci.brooklyn.cuny.edu/~sklar/teaching/s10/cis20.2/papers/brooks-no-silver-bullet.pdf|access-date=2 July 2014}}</ref> 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.
Rapid application development is a term originally used to describe a [[software development process]] introduced by [[James Martin (author)|James Martin]] in 1991. Martin's methodology involves iterative development and the construction of [[prototype]]s. More recently, the term and its acronym have come to be used in a broader, generic sense that encompasses a variety of techniques aimed at speeding application development, such as the use of [[web application framework]]s and other types of [[software framework]]s.
 
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:
Rapid Application Development was a response to non-[[Agile software development|agile]] processes developed in the 1970s and 1980s, such as the [[Structured Systems Analysis and Design Method]] and other [[Waterfall model]]s. One problem with previous methodologies was that applications took so long to build that requirements had changed before the system was complete, resulting in inadequate or even unusable systems. Another problem was the assumption that a methodical requirements analysis phase alone would identify all the critical requirements. Ample evidence attests to the fact that this is seldom the case, even for projects with highly experienced professionals at all levels.
 
* Risk reduction. A prototype could test some of the most difficult potential parts of the system early on in the [[software lifecycle|life-cycle]]. This can provide valuable information as to the feasibility of a design and can prevent the team from pursuing solutions that turn out to be too complex or time-consuming to implement. This benefit of finding problems earlier in the life-cycle rather than later was a key benefit of the RAD approach. The earlier a problem can be found the cheaper it is to address.
Starting with the ideas of Brian Gallagher, Alex Balchin, [[Barry Boehm]] and Scott Shultz, [[James Martin (author)|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'''''.
* Users are better at using and reacting than at creating specifications. In the waterfall model it was common for a user to sign off on a set of requirements but then when presented with an implemented system to suddenly realize that a given design lacked some critical features or was too complex. In general most users give much more useful feedback when they can experience a prototype of the running system rather than abstractly define what that system should be.
* Prototypes can be usable and can evolve into the completed product. One approach used in some RAD methods was to build the system as a series of prototypes that evolve from minimal functionality to moderately useful to the final completed system. The advantage of this besides the two advantages above was that the users could get useful business functionality much earlier in the process.<ref name="dimap.ufrn.br">{{cite journal|last1=Boehm|first1=Barry|title=A Spiral Model of Software Development|journal=IEEE Computer|date=May 1988|url=http://www.dimap.ufrn.br/~jair/ES/artigos/SpiralModelBoehm.pdf|access-date=1 July 2014|doi=10.1109/2.59|s2cid=1781829|archive-url=https://web.archive.org/web/20180329032706/http://www.dimap.ufrn.br/~jair/ES/artigos/SpiralModelBoehm.pdf|archive-date=29 March 2018}}</ref>
 
Starting with the ideas of [[Barry Boehm]] and others, [[James Martin (author)|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.
== The Relative Effectiveness of RAD ==
 
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,<ref>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}}.</ref> 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 shift from traditional session-based client\server development to open sessionless and collaborative development like [[Web 2.0]] has increased the need for faster iterations through the phases of the [[Software development process|SDLC]].<ref name= "RAD1"> Maurer and S. Martel. (2002). "Extreme Programming: Rapid Development for Web-Based Applications". IEEE Internet Computing, 6(1) pp 86-91 January/February 2002.</ref> This coupled with the growing utilization of [[open source]] frameworks and products in core commercial development has, for many developers, rekindled interest in finding a [[silver bullet]] RAD methodology.
 
The RAD approach also matured during the period of peak interest in [[business process re-engineering|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.<ref>{{cite book|last1=Drucker|first1=Peter|title=Post-Capitalist Society|date=3 November 2009|publisher=Harper Collins e-books|isbn=978-0887306204|url=https://archive.org/details/postcapitalistso00druc}}</ref><ref>{{cite book|last1=Martin|first1=James|title=Rapid Application Development|date=1991|publisher=Macmillan|isbn=0-02-376775-8|url=https://archive.org/details/rapidapplication00mart}}</ref>
Although all RAD methodologies strongly embrace [[object-oriented programming]], foster [[Code reuse|software re-use]], small team structure and [[distributed computing|distributed system development]], most RAD practitioners recognize that ultimately, there is no single “rapid” methodology that can provide an [[order of magnitude]] improvement over any other development methodology.
 
Much of James Martin's comfort with RAD stemmed from [[DuPont (1802–2017)|Dupont]]'s Information Engineering division and its leader Scott Schultz and their respective relationships with John Underwood who headed up a bespoke RAD development company that pioneered many successful RAD projects in Australia and Hong Kong.
All flavors of RAD have the potential for providing a good framework for faster [[product development]] with improved [[Software quality|code quality]], but successful implementation and benefits often hinge on project type, [[Schedule (project management)|schedule]], [[software release cycle]] and [[corporate culture]]. It may also be of interest that some of the largest software vendors such as [[Microsoft]]<ref name="SpecsOnLine">{{cite web
| last = Andrew Begel
| first = Nachiappan Nagappan
| title = Usage and Perceptions of Agile Software Development in an Industrial Context: An Exploratory Study, ''Microsoft Research''
| url=http://research.microsoft.com/hip/papers/AgileDevAtMS-ESEM07.pdf
| accessdate = 2008-11-15
}}</ref> and [[IBM]]<ref name= "RAD2"> E. M. Maximilien and L. Williams. (2003). "Assessing Test-driven Development at IBM". Proceedings of International Conference of Software Engineering, Portland, OR, pp. 564-569, 2003.</ref> do not extensively utilize RAD in the development of their [[Core product|flagship products]] and for the most part, they still primarily rely on traditional [[Waterfall model|waterfall]] [[methodologies]] with some degree of [[Spiral model|spiraling]].<ref name= "RAD3"> M. Stephens, Rosenberg, D. (2003). "Extreme Programming Refactored: The Case Against XP:". Apress, 2003.</ref>
 
Successful projects that included [[ANZ Bank]], [[Lend Lease]], [[BHP]], [[Coca-Cola]] Amatil, [[Alcan]], [[Hong Kong Jockey Club]] and numerous others.
In selecting the most appropriate RAD methodology, the pros and cons of each should be evaluated and matched to the development environment, culture and technology.<ref name= "RAD4"> Jacob Apelbaum. (2002). ''Rapid Application Development Framework''. Technology Press, 1st edition. ISBN 978-0980000030.</ref> The following table contains a high-level summary of some of the major flavors of RAD and their relative strengths and weakness.
 
Success that led to both Scott Shultz and James Martin both spending time in Australia with John Underwood to understand the methods and details of why Australia was disproportionately successful in implementing significant mission critical RAD projects.
<div align="left">
<table border="1" cellspacing="0" cellpadding="3" width="744">
 
==James Martin approach==
<tr>
[[File:RADModel.JPG|320px|thumb|right|Phases in the James Martin approach to RAD]]
<th width="710" align="left" colspan="2" bgcolor="#CCCCCC"><b>
The James Martin approach to RAD divides the process into four distinct phases:
<span lang="EN" style="font-size: 10.0pt; color: black">[[Agile software development]]
</span></b>
# '''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 requirements|business needs]], [[Scope (project management)|project scope]], constraints, and system requirements. It ends when the team agrees on the key issues and obtains management authorization to continue.
<tr>
# '''User design phase''' – during this phase, users interact with [[Systems analyst|systems analysts]] and develop [[Model|models]] and [[Prototype|prototypes]] that represent all system processes, [[Input (computer science)|inputs]], and [[Output (computing)|outputs]]. The RAD groups or subgroups typically use a combination of [[joint application design]] (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.
<th width="52" align="left"><font size="2">Pros
# '''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, [[Computer programming|coding]], [[System integration|unit-integration]] and [[system testing]].
</font>
# '''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.<ref>{{cite book|last1=Martin|first1=James|title=Rapid Application Development|date=1991|publisher=Macmillan|isbn=0-02-376775-8|pages=[https://archive.org/details/rapidapplication00mart/page/81 81–90]|url=https://archive.org/details/rapidapplication00mart/page/81}}</ref>
<td valign="top" width="658" align="left">
<span lang="EN" style="font-size: 10.0pt; color: black">Minimizes [[feature creep]]
by developing in short intervals resulting in miniature [[software]] projects and
releasing the product in mini-increments. </span>
 
== Advantages ==
<tr>
In modern Information Technology environments, many systems are now built using some degree of Rapid Application Development<ref>{{cite web|url=http://www.gartner.com.br/tecnologias_empresariais/pdfs/brl37l_a3.pdf|title=The Disintegration of AD: Putting it Back Together Again|publisher=gartner.com.br|access-date=2010-04-13|archive-date=14 July 2014|archive-url=https://web.archive.org/web/20140714222107/http://www.gartner.com.br/tecnologias_empresariais/pdfs/brl37l_a3.pdf|url-status=dead}}</ref> (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.
<th width="52" align="left"><font size="2">Cons
</font>
<td valign="top" width="658" align="left">
<span lang="EN" style="font-size: 10.0pt; color: black">Short iteration may not
add enough functionality leading to significant delays in final iterations.
Since [[Agile software development|Agile]] emphasizes real-time communication (preferably face-to-face),
utilizing it is problematic for large multi-team distributed system development. Agile methods
produce very little written [[documentation]] and require a significant amount of
post project documentation. </span>
 
The purported advantages of RAD include:
<tr>
* Better quality. By having users interact with evolving prototypes the business functionality from a RAD project can often be much higher than that achieved via a waterfall model. The software can be more [[Usability|usable]] and has a better chance to focus on business problems that are critical to end users rather than technical problems of interest to developers. However, this excludes other categories of what are usually known as [[Non-functional requirement]]s (AKA constraints or quality attributes) including [[Computer security|security]] and [[Porting|portability]].
<th width="710" align="left" colspan="2" bgcolor="#CCCCCC"><b>
* Risk control. Although much of the literature on RAD focuses on speed and user involvement a critical feature of RAD done correctly is risk mitigation. It's worth remembering that Boehm initially characterized the spiral model as a risk based approach. A RAD approach can focus in early on the key risk factors and adjust to them based on empirical evidence collected in the early part of the process. E.g., the complexity of prototyping some of the most complex parts of the system.
<span lang="EN" style="font-size: 10.0pt; color: black">[[Extreme Programming|Extreme Programming (XP)]]
* More projects completed on time and within budget. By focusing on the development of incremental units the chances for catastrophic failures that have dogged large waterfall projects is reduced. In the Waterfall model it was common to come to a realization after six months or more of analysis and development that required a radical rethinking of the entire system. With RAD this kind of information can be discovered and acted upon earlier in the process.<ref name="dimap.ufrn.br"/><ref>{{cite book|last1=Beck|first1=Kent|title=Extreme Programming Explained|date=2000|publisher=Addison Wesley|isbn=0201616416|pages=[https://archive.org/details/extremeprogrammi00beck/page/3 3–7]|url=https://archive.org/details/extremeprogrammi00beck/page/3}}</ref>
</span></b>
<tr>
<th width="52" align="left"><font size="2">Pros
</font>
<td valign="top" width="658" align="left">
<span lang="EN" style="font-size: 10.0pt; color: black">Lowers the cost of
changes through quick [[Spiral model|spirals]] of new requirements. Most of the design activity
takes place incrementally and on the fly. </span>
</tr>
<tr>
<th width="52" align="left"><font size="2">Cons
</font>
<td valign="top" width="658" align="left">
<span lang="EN" style="font-size: 10.0pt; color: black">Programmers are required
to work in [[Pair programming|pairs]] (which may be difficult for some developers). There is no up-front
“[[Product lifecycle|detailed design]]” which could result in more re-design effort in the long run.
The [[Design methods|business champion]] attached to the project full time can potentially become a
[[Reliability engineering|single point-of-failure]] for the project and a major source of stress for the team. </span>
</tr>
<tr>
<th width="710" align="left" colspan="2" bgcolor="#CCCCCC"><b>
<span lang="EN" style="font-size: 10.0pt; color: black">[[Joint Application Development|Joint Application Development (JAD)]] </span></b>
</tr>
<tr>
<th width="52" align="left"><font size="2">Pros
</font>
<td valign="top" width="658" align="left">
<span lang="EN" style="font-size: 10.0pt; color: black">Captures the [[voice of the customer]] by involving him in the design and development of the application
through a series of collaborative workshops called [[Joint application development|JAD]] sessions. </span>
</tr>
<tr>
<th width="52" align="left"><font size="2">Cons
</font>
<td valign="top" width="658" align="left">
<span lang="EN" style="font-size: 10.0pt; color: black">The client may create an
unrealistic product vision and request extensive [[gold-plating]] leading the team
to over- or under-develop functionality. </span>
</tr>
<tr>
<th width="710" align="left" colspan="2" bgcolor="#CCCCCC"><b>
<span lang="EN" style="font-size: 10.0pt; color: black">[[Lean software development|Lean software development (LD)]]
</span></b>
</tr>
<tr>
<th width="52" align="left"><font size="2">Pros</font><td valign="top" width="658" align="left">
<p style="background: white">
<span lang="EN" style="font-size: 10.0pt; color: black">Creation of minimalist
solutions (i.e. needs determine technology) and delivering less functionality
earlier (as per the paradigm that 80% today is better than 100% tomorrow).
</span>
</tr>
<tr>
<th width="52" align="left"><font size="2">Cons
</font>
<td valign="top" width="658" align="left">
<span lang="EN" style="font-size: 10.0pt; color: black">Product may lose its
[[Marketing strategy|competitive edge]] because of insufficient core functionality and may
exhibit poor overall quality. </span>
</tr>
<tr>
<th width="710" align="left" colspan="2" bgcolor="#CCCCCC"><b>
<span lang="EN" style="font-size: 10.0pt; color: black">[[Rapid Application Development|Rapid Application Development (RAD)]]</span></b>
</tr>
<tr>
<th width="52" align="left"><font size="2">Pros
</font>
<td valign="top" width="658" align="left">
<span lang="EN" style="font-size: 10.0pt; color: black">Promotes strong [[collaborative]] atmosphere and dynamic gathering of [[requirements]]. Business owner actively participates in [[prototyping]], writing [[test case]]s and performing [[unit testing]].</span></tr>
<tr>
<th width="52" align="left"><font size="2">Cons
</font>
<td valign="top" width="658" align="left">
<span lang="EN" style="font-size: 10.0pt; color: black">Dependency on strong [[Cohesion (social policy)|cohesive]] teams and individual commitment to the project. Success depends on disciplined developers and their exceptional technical skills and ability to “[[turn on a dime]]”. Decision making relies on the [[Feature Oriented Programming|feature functionality]] team and a [[commune]] decision making process with lesser degree of centralized [[Project Management|PM]] and [[engineering]] authority. </span>
</tr>
<tr>
<th width="710" align="left" colspan="2" bgcolor="#CCCCCC"><b>
<span lang="EN" style="font-size: 10.0pt; color: black">[[Scrum (development)|SCRUM]] </span></b>
</tr>
<tr>
<th width="52" align="left"><font size="2">Pros
</font>
<td valign="top" width="658" align="left">
<span lang="EN" style="font-size: 10.0pt; color: black">Improvement in
productivity in teams previously paralyzed by heavy “process”, ability to
prioritize work, utilization of backlog for completing items in a series of
short iterations or sprints, daily measured progress and communications. </span>
</tr>
<tr>
<th width="52" align="left"><font size="2">Cons
</font>
<td valign="top" width="658" align="left">
<span lang="EN" style="font-size: 10.0pt; color: black">Reliance on [[Facilitation (business)|facilitation]]
by a [[Scrum (development)|master]] who may lack the political clout to remove impediments and deliver
the [[Scrum (development)|sprint goal]]. Due to its reliance on self organizing teams and the rejection of
the traditional centralized "process control", internal power struggles may
paralyze the team. </span>
</tr>
</table>
 
== Disadvantages ==
<div align="left">
The purported disadvantages of RAD include:
<font size="2">'''Table1: '''Pros and Cons of various RAD flavors
* The risk of a new approach. For most IT shops RAD was a new approach that required experienced professionals to rethink the way they worked. Humans are virtually always averse to change and any project undertaken with new tools or methods will be more likely to fail the first time simply due to the requirement for the team to learn.
</font></div>
*Lack of emphasis on [[Non-functional requirement]]s, which are often not visible to the end user in normal operation.
* Requires time of scarce resources. One thing virtually all approaches to RAD have in common is that there is much more interaction throughout the entire life-cycle between users and developers. In the waterfall model, users would define requirements and then mostly go away as developers created the system. In RAD users are involved from the beginning and through virtually the entire project. This requires that the business is willing to invest the time of application ___domain experts. The paradox is that the better the expert, the more they are familiar with their ___domain, the more they are required to actually run the business and it may be difficult to convince their supervisors to invest their time. Without such commitments RAD projects will not succeed.
* Less control. One of the advantages of RAD is that it provides a flexible adaptable process. The ideal is to be able to adapt quickly to both problems and opportunities. There is an inevitable trade-off between flexibility and control, more of one means less of the other. If a project (e.g. [[Life-critical system|life-critical software]]) values control more than agility RAD is not appropriate.
* Poor design. The focus on prototypes can be taken too far in some cases resulting in a "hack and test" methodology where developers are constantly making minor changes to individual components and ignoring system architecture issues that could result in a better overall design. This can especially be an issue for methodologies such as Martin's that focus so heavily on the user interface of the system.<ref name="PratImp">{{cite conference
| citeseerx = 10.1.1.100.645
| title = Practical Implications of Rapid Development Methodologies
| first1 = Aurona
| last1 = Gerber
| first2 = Alta
| last2 = Van Der Merwe
| first3 = Ronell
| last3 = Alberts
| date = 16–18 November 2007
| conference = Computer Science and IT Education Conference
| conference-url = http://csited.org/
| book-title = Proceedings of the Computer Science and Information technology Education Conference, CSITEd-2007
| ___location = Mauritius
| pages = 233–245
| isbn = 978-99903-87-47-6
}}</ref>
* Lack of scalability. RAD typically focuses on small to medium-sized project teams. The other issues cited above (less design and control) present special challenges when using a RAD approach for very large scale systems.<ref name="SpecsOnLine">{{cite book
|last = Andrew Begel
|first = Nachiappan Nagappan
|title = First International Symposium on Empirical Software Engineering and Measurement (ESEM 2007)
|chapter = Usage and Perceptions of Agile Software Development in an Industrial Context: An Exploratory Study
|chapter-url=http://research.microsoft.com/pubs/56015/AgileDevatMS-ESEM07.pdf
|date=September 2007
|pages = 255–264
|doi = 10.1109/esem.2007.12
|isbn = 978-0-7695-2886-1
|s2cid = 1941370
}}</ref><ref name="RAD2">{{cite book|doi=10.1109/icse.2003.1201238|chapter=Assessing test-driven development at IBM|title=25th International Conference on Software Engineering, 2003. Proceedings|pages=564–569|year=2003|last1=Maximilien|first1=E.M.|last2=Williams|first2=L.|isbn=0-7695-1877-X|s2cid=16919353}}</ref><ref name="RAD3">{{cite book|doi=10.1007/978-1-4302-0810-5|title=Extreme Programming Refactored: The Case Against XP|year=2003|last1=Stephens|first1=Matt|last2=Rosenberg|first2=Doug|isbn=978-1-59059-096-6|s2cid=29042153|url-access=registration|url=https://archive.org/details/extremeprogrammi00matt}}</ref>
 
==See also==
</div>
Practical concepts to implement RAD:
* [[Graphical user interface builder]], where main software tools for RAD are represented
* [[Fourth-generation programming language]], e.g. [[FileMaker]], [[4th Dimension (software)|4th Dimension]], [[dBase]] and [[Visual FoxPro]]
 
Other similar concepts:
== Criticism ==
* [[Flow-based programming]]
Since rapid application development is an [[Iterative and incremental development|iterative and incremental]] process, it can lead to a succession of prototypes that never culminate in a satisfactory production application. Such failures may be avoided if the application development tools are robust, flexible, and put to proper use. This is addressed in methods such as the [[2080 (software concept)|2080 Development method]] or other post-[[agile]] variants.
* [[Lean software development]]
 
* [[Platform as a service]]
== See also ==
* [[Agile softwareLow-code development platforms]]
* [[No-code development platform]]
* [[List of Rapid Application Development tools]]
* [[interactive programming]]
 
== References ==
{{reflistReflist}}
 
{{verify|date=October 2008}}
 
== Further reading ==
* [[JamesSteve Martin (author)|James MartinMcConnell]] (19911996). ''Rapid ApplicationDevelopment: Taming DevelopmentWild Software Schedules'', MacmillanMicrosoft CollPress DivBooks, {{ISBN 0|978-1-0255615-376775900-8}}
* {{cite book |last1=Kerr |first1=James M. |last2=Hunter |first2=Richard |year=1993 |title=Inside RAD: How to Build a Fully Functional System in 90 Days or Less |publisher=McGraw-Hill |isbn=0-07-034223-7}}
* [[Steve McConnell]] (1996). ''Rapid Development: Taming Wild Software Schedules'', Microsoft Press Books, ISBN 978-1556159008
* Ellen Gottesdiener (1995). "[http://ebgconsulting.com/Pubs/Articles/RAD_Realities_Beyond_the_Hype_Gottesdiener.pdf RAD Realities: Beyond the Hype to How RAD Really Works]" Application Development Trends
* [[Ken Schwaber]] (1996). ''Agile Project Management with Scrum'', Microsoft Press Books, ISBN 978-0735619937
* [[SteveKen McConnellSchwaber]] (20031996). ''ProfessionalAgile SoftwareProject Development:Management Shorterwith Schedules, Higher Quality Products, More Successful Projects, Enhanced CareersScrum'', Microsoft Press Books, {{ISBN |978-0321193674 0-7356-1993-7}}
* [[DeanSteve LeffingwellMcConnell]] (20072003). ''ScalingProfessional Software AgilityDevelopment: BestShorter PracticesSchedules, forHigher LargeQuality EnterprisesProducts, More Successful Projects, Enhanced Careers'', Addison-Wesley Professional, {{ISBN |978-03214581930-321-19367-4}}
* Dean Leffingwell (2007). ''Scaling Software Agility: Best Practices for Large Enterprises'', Addison-Wesley Professional, {{ISBN|978-0-321-45819-3}}
*Scott Stiner (2016). Forbes List: "Rapid Application Development (RAD): A Smart, Quick And Valuable Process For Software Developers"
 
{{Software Engineeringengineering}}
{{Computer science}}
 
[[ca{{DEFAULTSORT:Rapid Application Development]]}}
[[Category:Software project management]]
[[de:Rapid Application Development]]
[[Category:Software development process]]
[[es:Desarrollo rápido de aplicaciones]]
[[Category:Programming tools]]
[[eu:RAD]]
[[fr:Développement rapide d'applications]]
[[ko:고속 개발 도구]]
[[id:Rapid Application Development]]
[[it:Rapid Application Development]]
[[hu:Gyors alkalmazásfejlesztés]]
[[nl:Rapid application development]]
[[ja:RAD (計算機プログラミング環境)]]
[[pl:RAD]]
[[ru:RAD]]
[[uk:Швидка розробка програмного забезпечення]]