10 Top Programming Methodologies

Once upon a time, nearly all software development projects utilized the waterfall model. Much like the assembly line in a factory, this programming methodology requires developers to complete one phase of development before moving on to the next. It's highly structured and doesn't work well when the project requirements are in flux.

In recent years, developers have begun favoring more iterative processes that make it easier to accommodate changes in the project scope and requirements. Agile software development and its seemingly infinite number of variations have become increasingly common and, according to some surveys, now dominate.

In this slideshow, we'll take a look at the features of ten of the most popular software development methodologies, including agile, Scrum, lean, extreme programming and, yes, even the waterfall method.

Software Development Methodologies

1. Agile Software Development

In 2001, seventeen software developers made history by signing the Agile Manifesto. Since then, agile software development has taken off; in fact, in a 2015 Forrester report, 54 percent of enterprises surveyed said that more than half the development teams at their organizations were using agile methodologies. The Agile philosophy is based on twelve core principles that emphasize short iterations, continuous delivery, simplicity, retrospection and collaboration between end users and developers.

Image source: Agilemanifesto.org

2 / 11

2. Scrum

Agile software development comes in many flavors, and Scrum is one of the most popular with 70 percent of respondents to the 2015 State of Agile report saying that they practice Scrum or a Scrum hybrid. It's a framework for collaboration that was first invented by Jeff Sutherland in 1993. It divides complex projects into short two- to four-week sprints, and it emphasizes the values of courage, focus, commitment, respect and openness.

Image source: SCRUM.org

3 / 11

3. Lean Software Development

Although lean development is commonly associated with agile, the principles of lean actually arose from Toyota's lean manufacturing processes. This development methodology relies on seven key principles: eliminate waste, increase feedback, delay commitment, deliver fast, build integrity in, empower the team and see the whole. Lean first came to the attention of the software development community in 2003 with the publication of Mary and Tom Poppendieck's book "Lean Software Development: An Agile Toolkit."

4. Kanban

Another variation of agile software development that was inspired by Toyota, Kanban gives developers a visual way to see what work needs to be done and allows them to "pull" in work as they have capacity rather than "pushing" them to complete certain tasks. It relies on three core principles: visualize what you do today, limit the amount of work in progress and enhance flow.

5. Rapid Application Development (RAD)

Over the years, several different approaches to software development have used the RAD name. The best-known is probably James Martin's methodology, which was created at IBM in the 1980s. It can be considered a form of agile, as it emphasizes the ability to adapt to changing requirements and de-emphasizes upfront planning.

6 / 11

6. Test-Driven Development (TDD)

Test-Driven Development is related to both agile software development and extreme programming. Developed by Kent Beck and others, this process requires developers to write a test for any new feature before starting the coding process. It encourages developers to write a minimal amount of code.

Image Source: https://github.com/mjhea0/flaskr-tdd

7 / 11

7. Extreme Programming

This form of agile software development relies heavily on pair programming. Like other agile methodologies, it emphasizes rapid iterations and frequent requirement changes. It was created by Kent Beck, who was one of the signatories of the Agile Manifesto and published a book called "Extreme Programming Explained: Embrace Change" in 1999.

8. Rational Unified Process

This software development methodology is named for the company that invented it—Rational Software, which IBM purchased in 2003. While some programming methodologies are very rigid, the Rational Unified Process aims to be easily tailored to unique situations. It's an iterative framework that relies heavily on visual models.

9 / 11

9. Spiral Model

First described in the mid-1980s by Barry Boehm, the spiral model is a risk-driven model that incorporates elements of waterfall, incremental, prototyping and other software development approaches. It says that developers should make decisions based on the level of risk and that they should only do enough work to minimize the risk.

10 / 11

10. Waterfall Model

Unlike the other software development methodologies in this slideshows, the waterfall model is sequential rather than iterative. It was the most common method of software development from the early days of computing until very recently. It is best suited to small-scale projects where all of the design requirements can be known upfront.

Advertiser Disclosure:
Some of the products that appear on this site are from companies from which QuinStreet receives compensation. This compensation may impact how and where products appear on this site including, for example, the order in which they appear. QuinStreet does not include all companies or all types of products available in the marketplace.