Agile and Scrum Methodology - Introduction

In this post (and a a few more to come), I will be writing about Agile methodology and how it works.

What is agile?

Agile is a methodology, a way of managing projects which is emerged as an alternative to traditional software management (also termed as "Waterfall" model).

In Waterfall model, we perform the following:

  1. Team gathers requirements
  2. Team comes up with design and architecture 
  3. Team implements (coding)
  4. Release it to market

Now, lets say it is a huge project and took around 6 months to complete. At the end of six months, when the product is released, the team realizes that this is not what the customer wanted or the market conditions have changed and the customer wants lot of modifications to the product. 

There is only one shippable deliverable in this process and that was produced at the end of 3rd step, which took months together.

Clearly, there is a problem with this process.

Why Agile?

Agile as the name suggests is a process which allows the stakeholders of the project to quickly adapts to the changing conditions.
This process focuses on smaller iterations and each iteration produces an increment of shippable deliverable.

So, an agile process looks like:

Iteration 1:

  1. Team gathers requirements
  2. Team comes up with design and architecture 
  3. Team implements (coding)
  4. Release it to market


At end of Iteration 1 :Inspect and adapt

Iteration 2:

  1. Team gathers requirements
  2. Team comes up with design and architecture 
  3. Team implements (coding)
  4. Release it to market

So, after every iteration, all the stakeholders introspect on what went wrong and what could be made better and also take stock of the market conditions etc.
So, at the end of 6 months, agile process will produce a product which is in line with what the customer wanted.

There are different subsets of agile methodology like 'Extreme programming', 'Feature driven development', 'Scrum' etc. So Scrum is one subset of Agile methodology.

What is Scrum?

The idea of scrum (as derived from the Rugby game) is to take the entire team take smaller steps towards a common goal. Projects are divided into smaller units of work called 'Sprint' which are typically one week, two weeks, or three weeks in duration.

At the end of each sprint, all the stakeholders meet to evaluate the team's progress and plan their next sprint.



Comments

Popular posts from this blog

Pivotal Cloud Foundry (PCF) Integration with Elastic Cloud Storage (ECS)

Restful code example using Spring MVC

Spring Integration - Bulk processing Example