Development teams need controlled work practices, which integrate the various facets of the development, they need processes capable of:
Only at these conditions, one can ensure the reliability of a software project.
A lot of project leaders manage their project with proprietary or personal methodologies and processes, but they draw a lot from standard processes commonly used in the object community.
To reduce application complexity and risks related to a complete development, these processes propose an iterative approach. In this approach, the various phases of the project are divided into iterations. An iteration represents a complete and incremental cycle of a phase realization. That means an iteration must produce a usable and executable result, which could be possibly amended by the next iterations of the same phase.
Iterative approach has many advantages:
The eXtreme Programming (XP) is an agile software development methodology that focuses on the critical activities required to build software.
It's admitted that XP fits small, collocated project teams (4–10 people), where the requirements are un-certain, and a good relationship exists with project stakeholders.
Promoted by IBM, the Rational Unified Process (RUP) is at the same time an iterative methodology and a Web-tool.
Designed primarily for projects of more than 10 people, the RUP defines a rich and very complete catalog of the various tasks and deliverable of the software projects. This richness has its counterpart: RUP is extremely expensive to customize, it makes a too significant place for the process, and few for the development and technology.