Software Development Methodology

English: A software development spiral. Analys...

English: A software development spiral. Analysis, Evaluation, Development, Planning. (Photo credit: Wikipedia)

Iterative Development Model

Iterative Development Model (Photo credit: Wikipedia)

English: Rapid Application Development (RAD) Model

English: Rapid Application Development (RAD) Model (Photo credit: Wikipedia)

Waterfall Model

Waterfall Model (Photo credit: Wikipedia)

English: This poster provides a good visual of...

English: This poster provides a good visual of the standard Agile Software Development methodology. (Photo credit: Wikipedia)

I wanted to start my first blog thoughts on “Software Development Methodology”.

Software Development Methodology as a Noun (Name):  Is a framework that is used to structure, plan and control the process of developing an application or system.  Then we have to understand what is Process of Development before we go in detail of Development Methodology.
Software development process is also called software development life-cycle (SDLC) which is a structure (a streamline) imposed on development of a product and it’s project.   There are several models for such process like waterfall, spiral, Iterative and incremental, Agile, Rapid Application development etc.,
So, when we already have these model for development, why we have methodologies?

Let’s understand difference between model and methodology?

A software process model is an abstract representation of a process methodology. A model defines activities but doesn’t specify how, when and what needs to perform them.  But methodology defines how, when and what is required to carry out those activities.  Example: Waterfall, Spiral or Agile is a process model. They don’t specify how to do things, but outline the things that are to be done. For example, Waterfall identifies the phases that a project goes through – requirements, design, implementation/unit testing, integration testing, system testing, deployment – without saying what artifacts to produce or what tools to use (although the output of code is implied). Agile defines core values in the form of the Agile manifesto, time-boxed iterations, and continuous response to change, but it doesn’t say how long your iterations should be or how you go about responding to change.

So, if someone ask you do you know or practice agile?…it’s a model which they are asking but if they ask methodologies it’s Scrum, XP which are looking into.

We will discuss in detail about each model and methodologies in our next topic.