The problem with quick and dirty, as some people have said, is that the dirty remains long after the quick has been forgotten.


Excellent firms don’t believe in excellence–only in constant improvement and constant change.



  • General RAD principles
  • Agile methods
  • James Martin RAD, XP, Scrum, Lean, Crystal, FDD, AUP, DAD, DSDM, and Kanban
  • Principles, roles, and values that are common to several RAD development approaches

When you boil down software engineering to its most fundamental level, its goals are simply to produce useful software as quickly as possible.

All the software development models described so far focus on the first of those goals: producing useful applications. They try to ensure that the result meets the specifications and that the specifications actually specify something useful. Iterative models such as iterated waterfall and Unified Process even allow you to change the project’s course of direction in case it wanders off track or the requirements change over time.

Techniques such as prototyping help ensure that the specification gives the customer a result that is useful. Models such as Unified Process emphasize risk management to ensure that the development effort succeeds. All the models spend at least some effort encouraging good programming techniques so that the result is robust and maintainable.

None of the models described so far actually focus on the second ...

Get Beginning Software Engineering now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.