The characteristics of a software lifecycle methodology that uniquely qualify a process as being suitable for rapid development include the following:
Adaptive methods are preferable to conventional predictive approaches, as they offer the necessary techniques to accommodate changing requirements. The key to adaptive methods is their iterative approach to development, the benefits of which are:
Two examples of popular methodologies offering iterative approaches are the IBM Rational Unified Process and the agile methodology, Extreme Programming.
Of these two, RUP provides an extensive process framework from which a tailored process can be designed for a particular project type. Due to its comprehensive list of activities and artifacts, RUP scales well and so is applicable for both small and extremely large projects. The ability of RUP to contend with large development projects, potentially with distributed development teams, makes it an ideal candidate for enterprise-level J2EE systems.
In comparison, XP offers a highly disciplined, ultra-lightweight process that has been proven to work well for small teams developing projects with the vaguest of requirements. It is easy to learn and is proving popular with the software engineers who have so far embraced its values and practices.
Now that we have covered some of the key concepts around the choice of a development process for rapid development, we can move on to the business of designing, building, and testing our J2EE solutions.
Philippe Kruchten, one the founding fathers of RUP, has openly criticized publications that misrepresent the practices of his process, particularly those that present it as a waterfall model. I'm confident I've done his creation justice, but if you want to hear about the process framework from the horse's mouth, as well as learn more about RUP, then you should read his excellent book, The Rational Unified Process: An Introduction [Kruchten, 2003].
Numerous resources exist for XP, with volumes of material being published on the process. A good starting point is Kent Beck's original text on the subject, Extreme Programming Explained [Beck, 1999]. A detailed online reference is also available for XP at http://www.extremeprogramming.org.
From my exposure to XP, I was always of the opinion that XP would be unsuitable for split-site development, especially for projects with the bulk of the development work taking place offshore. I may need to revise my opinion, as Martin Fowler has written a thought-provoking article on his experiences using XP with an offshore development shop in Bangalore. The article is available from http://martinfowler.com/articles/agileOffshore.html.
For more information on use cases, Alistair Cockburn has written a number of articles on the subject, which can found at his Web site at http://alistair.cockburn.us. His site also contains an example of a use-case template on which the example in this chapter is based. See http://alistair.cockburn.us/usecases/uctempla.htm.
The site also includes information on Alistair's agile methodology framework, Crystal.