Click here to Skip to main content
Click here to Skip to main content
Technical Blog

Tagged as

Agile development

, 9 Feb 2012 CPOL
Rate this:
Please Sign up or sign in to vote.
Agile development

Introduction


Agile is a relatively new development methodology, that is based on the iterative and incremental development model.

For a long time development and project managers followed the waterfall method where they compared software development to a manufacturing line. That is they wanted each stage of the development life-cycle to be complete before the start of the next stage.

It took decades before they realized that developing software products was a lot more volatile process than that, there are relatively few if at all any software development projects that could be run through these various stages one after the other. The changes in scope, budget are continuously changing.

Software development is more like the development of a new product as apposed to a production line. Also there are many over laps between the various stages of development. By Incorporating these overlaps in your development life-cycle leads to reducing the cost of change.

In the early nineties the Japanese manufacturing companies began to practice lean manufacturing technics such as JIT. This improvement in the manufacturing industry gave rise to the concept of Agile method of software development.

Definition :- Agile software development is a group of software development methodologies based on iterative and incremental development, where requirements and solutions evolve through collaboration between self-organizing, cross-functional teams.

Over View


In simpler words Agile is a culture and not a process. There are no defined process as such, but over the years there has been a common set of approaches have evolved.

Below are a list of common steps between the various approaches.

1. Product owners in association with developers create stories in a backlog
2. Developers estimate based on rough ball park figures
3. Product owners create development cycles of six weeks and arrange stories for each run
4. At the end of each run the development team produces a full implementation of the product
5. The product owner can calculate effort against time taken for the first run to arrive at the velocity.
6. The teams will meet on regular basis every day for short stand up meetings to discuss issues/timelines etc
7. Development cycles will get repeated till completion of the product

Some well know Agile methods


SCRUM



Firstly SCRUM consists of three roles,

SCRUM master - this role overseas SCRUM implementation
Product owner- the stakeholder of the system
Development team - the developers

The scrum is based on the concepts of sprints or development run that are "timeboxed" which means fixed time periods for each sprint. Each sprint will complete a set of features from a backlog and at the end of each sprint a portion of the unfinished product is completed . There is a meeting at the end of each sprint to review and prioritize the next set of features from the backlog for the next sprint.

The main benefit of the SCRUM approach is to be flexible and adaptive to change management during the development life cycle.




Issues with Agile


The most difficult aspect of Agile methodologies, comes from its acceptance in the traditional organizational culture. Agile is aimed at a removal of the bureaucratic process out of the software development life cycle. This can be seen as a lack of discipline and makes it less favorable to organizations. But then organizations need to understand that bureaucracy doesn't necessarily mean discipline.

Benefits of Agile

  • Cost controlling - The main advantages of the agile methodology is of controlling the cost of change.
  • Adaptive - shorter development cycles means the project can easily change direction without major loss in time.

References

www.danube.com/docs/Intro_to_Agile.pdf
http://en.wikipedia.org/wiki/Agile_software_development

http://www.techrepublic.com/article/the-benefits-of-agile-development/6310829

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

Share

About the Author

Ritesh Ramesh
Architect Infosolvex Solutions Inc
Australia Australia
Ritesh is an IT consultant with over ten years of experience in the IT industry varying from consultation, architecture, design, development to technical management. He has a strong background in solutions and applications architecture with a focus on Microsoft’s .Net platform. His area of expertise spans design and implementation of client/server, database and web-based systems. He has worked with C#, ASP.NET 1.1 and 2.0, ADO.NET, Web Services and SQL technology on several enterprise class projects.
 

 

Freedom is not worth having if it does not include the freedom to make mistakes.
Mahatma Gandhi

Comments and Discussions

 
QuestionNot bad PinmemberSirammar18-Jun-13 19:48 
GeneralMy vote of 1 PinmemberVikram.....7-Feb-12 2:18 
GeneralMy vote of 1 Pinmemberdarthrevenant6-Feb-12 17:25 
QuestionToo little Pinmember_Maxxx_6-Feb-12 12:50 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.

| Advertise | Privacy | Terms of Use | Mobile
Web04 | 2.8.141223.1 | Last Updated 9 Feb 2012
Article Copyright 2012 by Ritesh Ramesh
Everything else Copyright © CodeProject, 1999-2014
Layout: fixed | fluid