Software Development Methodologies

Published

Share this Article:

Our content and product recommendations are editorially independent. We may make money when you click links to our partners. Learn more in our Editorial & Advertising Policy.

Ever heard of words like agile, scrum, and extreme programming but you didn’t know what they mean? In this article, we are going to briefly examine the various software development methodologies that are used, with a brief reference to methodologies that were used in the past.

Agile

Agile_Software_Development_methodology_svg

In order to develop software systems that are capable to change and satisfy continuous requirements, a quick approach had to be defined. In the late ’80s, the rapid application development or RAD was developed that was an approach of developing systems quickly (we need it now and we need it quick). The spiral system developing lifecycle is used for most part of the system; that is, quickly developing prototypes and adding to them.

However, recently, the term RAD has been dropped and replaced with Agile to better capture the intention of the project—to be agile. In Agile projects, the system is divided and developed in parts, and requirements can change anytime. Generally, Agile does not include a specific set of rules but instead comes with guidelines on how to build agile projects.

Agile and Software Development (Scrum)

An Agile approach to software development is Scrum. Scrum includes roles and fixed duration meetings. If you ever end up working on a Scrum project, you have to be prepared for the following:

  • A series of 15-minute daily meetings will be held for the purpose of solving problems and setting priorities.
  • There will be 30-day sprints during which a set of functions defined at the product backlog are developed.
  • There is a sprint planning meeting that is 8 hours long held to define the product backlog items that are to be developed.
  • Someone will take on the role of Scrum Master and will be responsible for ensuring that all project members are aligned in terms of goals.
  • Collaboration is an important factor in Scrum projects. Teams should be able to operate autonomously but should also be willing to cooperate with other teams when needed.

Generally, Scrum can be considered as a set of timeboxed (fixed duration) actions (meetings and sprints) using the following artifacts:

  • Backlog or the requirements document
  • Sprint backlog or the actions that have to be developed for the next sprint. The actions are derived from the requirements document and are planned during the sprint meeting.

Read more: Agile Software Development Methodology and Principles


Extreme Programming (Extreme Project Management)

Snowboard_Gap_Jump

You have probably heard of extreme programming. Extreme programming is the quickest version of the Agile approach. Also known as XP, it involves working directly with customers to create and implement small pieces of software that have to be completed within a short period. Developers usually work in pairs, with each one testing the others work. Because of the fact that the project must be developed in a very short time, there have to be strong coding guidelines to ensure quality.

Another approach of extreme programming is that large projects might be broken down into smaller ones in order to satisfy the extreme programming restrictions. Extreme programming is usually used when there are no set of requirements or the requirements are constantly changing and there is a short amount of time available to complete the project.

The four main tasks that are involved in extreme programming include the following:

  • Listening
  • Designing
  • Coding
  • Testing

Unit testing is used heavily in XP in order to ensure quality, and unlike Scrum, there are no specific set of timebox rules.

Rational Unified Process

Rational Unified Process (RUP) was developed from IBM in order to satisfy modern software projects. It does not include a set of strict rules but has an adoptable framework that can be used in whole or in part depending on the organization’s needs. In other words, an organization can use any specific building blocks of RUP that it thinks might suit its needs.

RUP defines the following:

  • Roles
  • Work products
  • Tasks

And it observes the following practices:

  • Develop iteratively
  • Manage requirements
  • Use components
  • Model visually
  • Verify quality
  • Control changes

RUP follows the following iterative processes:

  1. Business modeling
  2. Requirements
  3. Analysis and design
  4. Implementation
  5. Test
  6. Deployment

Read next: Agile vs Waterfall: What’s the Difference?

Sign up for our emails and be the first to see helpful how-tos, insider tips & tricks, and a collection of templates & tools. Subscribe Now

Featured Partners

Subscribe to Project Management Insider for best practices, reviews and resources.

Project-Management.com Avatar

Get the Newsletter

Subscribe to Project Management Insider for best practices, reviews and resources.