This blog post is a direct copy of my editorial in the June/July 2006 issue of CoDe Magazine (http://www.code-magazine.com/subscribe/rodman).
I wanted to throw this up here and see what you all think. Am I all wet or are the similarities between RAD and Agile really there ?
Rapid Application Development (RAD) software development techniques have become an integral part of day-to-day software development in the past four years. This is the same RAD that James Martin described in the 80’s and published in his book, Information Engineering: Introduction, in 1991 (15 years ago). WikiPedia (www.wikipedia.com) states that “RAD was a response to the non-agile development technologies developed in the 1970’s known as the waterfall method.”
The waterfall method failed because it had long lag times between the system request and the delivery of the final product. In many cases, software created using the waterfall method didn’t meet the requirements of the user or the business had changed so much that no one needed the software by the time it was delivered.
Today RAD has been embodied in a number of methodologies including Agile Development, Extreme Programming, and Test Driven Development. While they all have different names, they all share a common theme:
Deliver software into the hands of users as soon as possible.
These techniques take into account that software is not perfect nor is it EVER 100% complete. Their major advantage is that they deliver results rapidly which is what customers/users demand.
In the last few months I have personally experienced/discovered a number of successful uses for RAD/agile development techniques.
This month a team I worked on successfully used RAD/agile development techniques to deliver a project for a client. At the request of the CEO and VP of Software Development, we started and completed a system for capturing employment applications on the Internet. This application has upwards of 20+ Web pages for capturing, validating, administrating, and printing employment applications. And the application did exactly what the users wanted.
I also read an article in March 27, 2006 issue of Business Week called “Programming at Warp Speed,” (seems software development is sexy again) about a company called 37 Signals (www.37signals.com). This company creates applications rapidly using the Ruby on Rails framework. They have an online book called “Getting Real” available on their Web site that documents the philosophies of this company and how they develop applications in a rapid manner. Some of the chapter titles include:
· Interface First – Design the interface before programming
· There’s Nothing Functional about a Functional Spec – The software developed usually doesn’t represent what you started with
· Meetings are Toxic – The title says it all
Finally, I read a great article on the Gamasutra (www.gamasutra.com) Web site called “How to Prototype a Game in Under 7 Days: Tips and Tricks from 4 Grad Students Who Made Over 50 Games in 1 Semester.” Even game developers are having success with RAD/agile development techniques.
RAD/Agile development techniques work. They succeed because they deliver what customers want–quality software quickly. I highly recommend checking out these techniques for inclusion in your development process.