An evolutionary software development methodology should describe a process from the perspective of a developer working on the project. This includes design, specification, evolution and validation, amongst others.
Waterfall Software Development Methodology
Waterfall Software Process A traditional approach towards software development, the Waterfall model delineates a rigid and linear approach towards the overall development lifecycle. Each phase of the development has distinct goals, and once a phase is completed, there is no turning back. As a result, although in theory this model encourages managerial control and departmentalization, but in practice its rigid nature does not allow room to accommodate the inevitable changes that crop up in many projects.
Spiral Methodology
Spiral Software Lifecycle Model The spiral model places more emphasis on risk analysis and early identification of risks. Projects based on the spiral model generally start on a small scale, thereby letting the people involved explore all the risks involved and make a suitable plan based on them. Instead of focusing on project speed, this methodology aims at reducing perceived risks, while at the same time leading to rapid development times because the developers can work freely without worrying about the risks involved.
Agile Software Development Methodology
Agile Software Development The Agile framework is one of the more popular conceptual methodologies for undertaking software development projects. The main aim of this software project methodology is to reduce risk by developing software in short bursts or iterations, typically lasting between one to four weeks. Agile is an incremental model wherein an iteration is like a miniature project, including everything from planning, requirement analysis, coding, design, documentation, and testing.
Rapid Application Development (RAD) Methodology
Rapid Application Development The RAD methodology lays major emphasis on the project speed and faster development times and is extremely well-suited for the development of limited-distribution custom software or in-house business software development. Rapid application development proposes that products can be developed in a faster and more efficient manner.
Lean Development Methodology
Lean Development The Lean development methodology focuses on the creation of software which is inherently change-tolerant. Its originator, Bob Charette, mentioned that the overall goal of Lean development is to build software with one-third the human effort, one-third the development hours, and one-third the investments required when compared.
Rational Unified Process (RUP) Methodology
Rational Unified Process The Rational Unified Process methodology is aimed at capturing modern software development’s best practices in a single unified package. RUP also supports an iterative model approach, whereby project managers can take into account the changing project requirements and suggest modifications as necessitated. All project elements are integrated progressively over time, allowing developers enough time to fine-tune the software, and all risks are addressed during integration can be mitigated early during the development phase.
Joint Application Development (JAD) Methodology
Joint Application Development The JAD methodology lays emphasis on client-developer collaboration for software design and development. This is accomplished with the help of workshops which are known as JAD sessions, wherein the main focus is on business problems instead of on the technical details. JAD is more often than not applicable to the development of business systems rather than software, and aims to reduce costs by reducing the downstream changes.