Chapter 17
Rapid software development processes are designed to produce useful software quickly. Generally, they are iterative processes where specification, design, development and testing are interleaved. The software is not developed and deployed in its entirety, but in a series of increments, with each increment including new system functionality. The two main advantages to adopting an incremental approach to software development are:
However, as usual, there are some major difficulties with iterative development and incremental delivery are:
Agile methods are iterative development methods that focus on incremental specification, design and system implementation. They involve the customer directly in the development process. Reducing development overhead can make faster software development possible. Extreme programming (XP) is a well-known agile method that integrates a range of good programming practices such as systematic testing, continuous software improvement and customer participation in the development team. In an XP process, customers are intimately involved in specifying and prioritizing system requirements. The requirements are not specified as lists of required system functions. Rather, the system customer is part of the development team and discusses scenarios with other team members.
Rapid application development involves using development environments that include powerful tools to support system production. These includes database programming languages, form and report generators, and links to office applications.
Throw away prototyping is an iterative development process where a prototype system is used to explore the requirements and design options. This prototype is not intended for deployment by the system customer. My thoughts
Rapid software development seems interesting for me, because it somehow related to our project. Even though we had quite a lot of time and a case study (which almost means we had a set of requirements ready to be organized and used), extreme programming sounds like a good description of last two weeks before iteration 2 Anyway, this type of software development is interesting, but I’d prefer a regular, no-rush and planned process, it is much less stress and more creativity (at least for the type of person I am).