As many of you know, I’ve always been a big supporter of the (now beginning to seem slightly dated) RAD methodology for developing applications. It suits me and my development style well, and it’s always performed well in work environments in the teams I’ve worked in. Recently, I’ve started to use more Agile development processes, and found the two methodologies to be remarkably similar in nature.
When discussing the two methodologies with developers, I always seem to hear the same set of questions, and I’d like to address them.
- What’s the difference between Agile and RAD?
- Is RAD a form of Agile?
- Is Agile a form of RAD?
What’s the difference between Agile and RAD?
RAD refers to a simple development concept.
“RAD (Rapid Application Development) refers to a development lifecycle designed to give much faster development and higher-quality results than those achieved with the traditional lifecycle”- J. Martin. .
In essence, RAD is a methodology for developing an application at a very low-level which relies on its own lifecycle. In the RAD lifecycle, we have a series of predefined stages to developing software, and three of these stages form a cyclic “prototyping” phase (depending on implementation and source, these are either: build, demonstrate, and refine; or generate code, test, and modify - the exact implementation doesn’t matter, as they fulfil the same purpose) (IE: it repeats as needed). RAD is - in essence - a low-level concept for iterative development, governing the step-by-step manner in which development takes place by modifying the SDLC which is used.
Agile, however, is a more abstract concept. Any process can be Agile, providing it adheres to a series of key principles (the Agile Manifesto). These principles force the development team to follow similar methodologies to RAD, ensuring principles such as continuous delivery, sustainable development, and reflection at regular intervals through iterative development. In this way, RAD can be seen as a methodology, and Agile as an abstract paradigm upon that methodology. There is an argument to be made as a result of this that Agile is not - in fact - a development methodology in it’s own right, but the prevalence of Agile development and variants thereupon in the software development industry removes a great deal of credence from this argument. Many people would argue that this just makes Agile, in essence, a more abstracted (or higher-level) methodology than RAD. I personally hold no strong opinion on that matter, but for the purposes of this article, I’ll be considering Agile as a distinct methodology in order to draw comparison between Agile and RAD.
Is RAD a form of Agile?
This question - taking into account the history of the two methodologies as actually fairly easy to answer, at least in my view. RAD predates Agile, therefore, it cannot be a considered auto be just a form of Agile. However, both of the two methodologies share great similarities. Both RAD and Agile are iterative development methodologies; they both make heavy use of team-client interaction; they can both make use of timeboxing as a method for meeting development deadlines. However, whereas timeboxing is essential for meeting the agile principle: “Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.”, it isn’t required for RAD development. In fact, timebox methodologies can be considered to only be one variant of RAD, as they’re essential for meeting short, regular deadlines, but not for (as an example): a miniature project such as a patch on a larger system, which might only require a few dozen lines of code, where iterative prototyping for developing and testing quickly is probably the best development methodology for making efficient use of time.
Is Agile a form of RAD?
This is a more difficult question. Agile is (as already discussed) more abstract than RAD, it’s less prescriptive of what the developers do, and is more concerned with the way they do it. In adhering to the Agile Manifesto, developers are forced to adopt an iterative and involved, timeboxed development method. This can be seen as a variant of RAD. The fact that Agile is a more recent creation than RAD, and addresses similar issues in a different way, it’s easy to see how Agile could be considered either a variant or a child of RAD. However, Agile addresses the issues of it’s time using a person-based approach - “Agile development focuses on the talents and skills of individuals, molding the process to specific people and teams.”. This is completely at odds with the RAD prescriptive method of stage-by-stage development. In essence: from the outside Agile appears as if it were a form of RAD, but from the inside the two are incomparable in their approach and both designed to address the issues of a different time.
If you enjoyed reading this article as much as I enjoyed writing it, you can help keep this blog going by showing me some love and donating on PayPal.Me!
 Martin, J., 1991. Rapid application development. Macmillan Publishing Co., Inc..
 Beck, K., Beedle, M., Van Bennekum, A., Cockburn, A., Cunningham, W., Fowler, M., Grenning, J., Highsmith, J., Hunt, A., Jeffries, R. and Kern, J., 2001. Manifesto for agile software development.
 Cockburn, A. and Highsmith, J., 2001. Agile software development, the people factor. Computer, 34(11), pp.131-133.