Historical context of JAD and RAD
Today, 2007, the Agile development framework has become popular with many software developers. Rapid application development (RAD) and joint application development (JAD) are two techniques that predate Agile (by 20 plus years) and embody the Agile principles. This article looks at both JAD and RAD in order to better understand the Agile software framework.
What is JAD?
JAD, as the name implies, is a software design process that brings together, in one physical location representatives from the users, sponsors, analysts, designers and developers. The idea behind JAD is to get all of the key knowledge holders into a room and flush out a suitable design. The JAD meeting, also referred to as a JAD workshop, could take several days. The basic idea of the JAD workshop is to answer all of the questions around requirements and produce an acceptable design. The output format of the design could be data flow diagrams, screen shots etc. The JAD deliverables need to be defined upfront for a successful JAD. In general the following steps are required in order to have an effective JAD:-
- Identify project objectives and limitations
- Identify critical success factors
- Define project deliverables
- Define the schedule of JAD workshop activities
- Select the participants
- Prepare the workshop material
- Organize workshop activities and exercises
- Prepare, inform, educate the workshop participants
- Coordinate workshop logisticsAs well as having the right JAD participants (i.e. decision makers and knowledge holders) it is important to nominate a facilitator for the JAD. The role of the facilitator is to keep the JAD on target for the JADs objectives. The facilitator should be independent that is not a designer or a systems requirements provider. Often a JAD can be bogged down with arguments about alternatives etc. and a strong independent facilitator is required to keep the session moving towards it’s goals.
What is RAD?
RAD centers on the creation of prototypes that are evaluated and then iteratively changed until they meet the software objectives. This approach (RAD) goes have in hand with rapid prototyping. RAD is an iterative development process and a prototype is built to answer a given question about the design. For example a user interface could be prototyped in order to solidify the screen designs. Also an alternative screen design could be prototyped in order that a comparison (for usability) could be made. User interface prototyping reduces the risk of presenting finished software that has an unacceptable user interface. The idea behind prototyping or RAD is to expose part of the solution to the end user as early in the development cycle as possible so that critical feedback can be given and reacted to.
RAD, or prototyping, is not limited to the user interface. Consider potential performance issues with using a newer technology such as XML for data transfer. A small working prototype of just the XML routines (i.e. construction and parsing) could be built and then performance test could be executed against the prototype to identify and risks with using this technology. In general a prototype is built to answer a question or address a risk. RAD and JAD sometimes go together, there are rapid prototyping tools (mainly addressing the user interface) that could be used in a JAD, so that the designers can ask is this what you want? type of questions.
JAD, RAD and Agile
Given the principles of Agile and a definition of JAD and RAD it is clear that there is a considerable overlap between these three terms. Agile itself is better thought of as a framework within which techniques such as JAD and RAD can be placed. The Agile framework presents the software development community with a general philosophy to software development. JAD and RAD are existing techniques that fit neatly into the Agile software development framework.
No guarantee (or claim) is made regarding the accuracy of this information