- Rapid Application Development (RAD) Introduction
- James Martin RAD
- Agile Development
- Agile Principles and Techniques
- Extreme Programming (XP)
Software engineering’s objectives are to develop useful software on time and on budget. However, it is not realistic to expect excellent software quickly at a cheap price. At best you may get two of the three. Writing excellent software free of bugs costs money, so you won’t get it done fast. Writing excellent software quickly costs significant money also because you will need enough good people on your team to get it done. What is your focus?
Software development models tend to have a focus. Many models focus on the “good” part. RAD focuses on the on-time part. In general, RAD approaches to software development put less emphasis on planning and more emphasis on an adaptive process. Techniques such as prototyping help ensure that the specification gives the customer a result that is useful.
The book Beginning Software Engineering by Rod Stephens published by Wrox in 2015 says on page 304: “James Martin, one of the pioneers of RAD in the 1980s, described a specific development methodology in his book Rapid Application Development (Macmillan, 1991). Later the terms rapid application development and RAD expanded to include a variety of other models that favor rapid development, so there’s sometimes confusion about the two uses of the term.” Generally we will use RAD to mean the more general term as opposed to the specific James Martin RAD.
There are driving principals behind RAD. Perhaps the most important one is that things always change. Change is constant. For example, towards the end of the project we often find that the requirements have changed. The company’s goals, competition, or the customers (users of the software) change. Another driving principal is that code is written for computer programmers, not the computer. In other words code is written to be understood by people and to be easily maintained by people, not complicated and always optimized. Another principal is iteration. RAD methods take iterative ideas to the extreme.
The list of topics covered in the book Beginning Software Engineering published by Rod Stephens published by Wrox in 2015 are:
- RAD Principals
- James Martin RAD
- Agile
- Extreme Programming (XP)
- Scrum
- Lean
- Crystal
- Feature-Driven Development
- Agile Unified Process
- Disciplined Agile Delivery
- Dynamic Systems Development Method
- Kanban
Why RAD?
What are some of the advantages of RAD? More accurate requirements, the ability to adapt to changes, frequent customer (end-user) involvement results in more input and commitment, early software releases, code reuse, constant testing resulting in fewer bugs and an overall greater chance of success. RAD is well suited to applications that have a proportionally large GUI component.
There are disadvantages of RAD. Difficulty in getting the team to adopt new RAD models, difficult to develop large systems with RAD due to the communication overhead, requires more skilled team members, sometime difficult to get enough customer time and input (people are busy), managers may have difficulty giving up control, and sometimes a project’s small iterations lead to a less than optimal design if the project is complex.