Board logo

subject: Software Development Methodologies: A Perfect List [print this page]


In todays world, there are several different development methodologies used by a software application developer. However, they all share common elements which build a universal framework for software development. This article provides a list of a list of all major software development methods used today.

Vocabulary

Some of the common terms used in the methods are:

methodology - a specific collection of principles or practices

methodology family - a set of alternative methods that exist alongside each other

framework - a skeleton (for methods) that must be customized/augmented before use

model - a description that must be implemented by a method, family or framework

For the software developers, a methodology is like a class that can be instantiated for a specific project. A methodology family is like a namespace of different but comparable classes. A methodology framework is like an abstract class that cannot be instantiated itself and must be inherited and extended first. A methodology model is like an interface that is just a description of something that must be implemented by one or more classes.

Methodology Leaders

The following methods have been considered as a standard in IT industry.

Scrum

An agile project management methodology created by Ken Schwaber and Jeff Sutherland.

Small set of practices and predefined role are included.

Scrum is becoming a de facto standard for agile software development (India) projects, and consists of practices that can be applied in many situations.

Extreme Programming

An agile software engineering methodology created by Kent Beck.

Practices are taken to an "extreme" level.

XP regards ongoing changes to requirements as a natural and desirable aspect to software application developers.

Leans towards the daily software engineering activities of developers.

Seen as complementary to Scrum.

Lean Software Development

LSD is an agile project management framework promoted by Mary Poppendieck and Tom Poppendieck.

The lean and agile concepts form a perfect match.

Unified Process

The Unified Software Development Process (USDP) is a software engineering framework, created by Ivar Jacobson, Grady Booch and James Rumbaugh.

It is an extensible framework that should be customized for specific organizations and projects.

Rational Unified Process

RUP is a software engineering framework.

It is a commercial product delivered as a more detailed version of the Unified Software Development Process.

It is too costly to customize for small projects.

Dynamic Systems Development Method

Dynamic Systems Development Method (DSDM) is a agile project management methodology.

It was originally based upon the concepts of Rapid Application Development.

Projects in Controlled Environments (Prince2)

Prince2 is a project management methodology.

It covers the management, control and organization of projects, and is deliberately not restricted to IT projects.

It is too rigid, too big and not easily customizable.

Project Management Body of Knowledge

PMBOK is a project management methodology.

It describes many processes and activities and is descriptive.

Both Prince2 and PMBOK are criticized for not being agile.

Capability Maturity Model Integration

CMMI is a software engineering model, originally developed by Watts Humphrey.

It assesses the maturity of an organizations processes.

Also used as a roadmap for process improvement.

The CMMI is heavily criticized for focusing on processes rather than people.

Methodology Followers

The following methods are considered to be the "followers", because they trail the leaders in their number of references, users and implementations.

Feature Driven Development

It is a software engineering methodology.

It distinguishes itself from some other agile methods by clearly allowing time for the creation of an up-front design.

It also applies a delectably radical approach to code ownership and several other development practices.

Microsoft Solutions Framework

It is a software engineering framework, created by Microsoft.

MSF provides a metamodel of descriptive components,.

It contains two out-of-the-box templates: MSF for Agile software development (India) and MSF for Capability Maturity Model Integration.

Open Unified Process

It is a software engineering methodology family.

It embraces a realistic and agile philosophy.

Essential Unified Process

It is a software engineering framework, invented by Ivar Jacobson.

It was created as an improvement on the RUP and identifies practices that you can choose and combine to create your own method.

Agile Unified Process

It is a software engineering methodology, created by Scott Ambler.

It attempts at simplifying the RUP, describing an easy to understand approach to develop business application software using agile techniques and concepts.

Enterprise Unified Process

It is yet another software engineering methodology, created by Scott Ambler.

It is an extension of the Rational Unified Process, adding several new phases and disciplines to a process.

Crystal

It is a software engineering methodology family, created by Alistair Cockburn.

It is called a self-adapting family of human-powered method, where software application developers proffer best techniques.

Evo

Evo is a project management methodology, created by Tom Gilb.

It is one of the older methodologies but it proves to be one of the most successful evolutionary methods available.

Many of the terminology, classifications or descriptions will not be accepted by most people. But still they form the development framework of the software industry.

by: Holly Maxted




welcome to loan (http://www.yloan.com/) Powered by Discuz! 5.5.0