Friday 31 August 2007

Basic of Agile

Agile software development


Agile software development is a conceptual framework for undertaking software engineering projects which helps in getting changes done in entire life cycle of the project. Agile methods attempt to minimize risk and maximize productivity by developing software in short iterations and de-emphasizing work on secondary or interim work artifacts.

Going Back to History,Agile methodologies came after a long thinking and learning from practical experinces. In 2001, seventeen prominent figures in the field of software development came together at the Snowbird ski resort in Utah to discuss the unifying theme of their methodologies.Finally they emerged out with a unique and customer oriented methodology called “Agile Methodology”.The main goals and aims of agile methodology are
1.Continous delivery
2.Even late changes in the software are allowed.
3.Continuous attention to technical excellence and good design
4. Working software is the principal measure of progress
5. Regular adaptation to changing circumstances.


Agile software development can be achived in different methods like
1.Extreme Programing
2.Scrum
3.Agile Modeling.

In Extereme programing and scrum we have daily stand up meetings which help us to coordinate and understand the progress of the day.Every team member has to answer the following questions

1.What have you done today?
2.What are your plans for tomorrow?
3.Any road blocks or issues?

Standup meeting should typically go for maximum of 10 -15 mins.We have simillarly iterative meetings which are done after 2 weeks.That is for every release we will have 2 or 3 iterations.After everey release the final user can get some software which will work..In every iterative meeting we should write down the following.
1.Good Things which happened in this particular iteration.
2.Bad things which happened in this particular iteration.
3.Worst things which happened in this particular iteration.

After writing down we will discuss on the Bad and Worst things to make them good.
In this way customer can easily understand the progress and tell suggestions which will came product more useful to him.

Disdavantages

1.Mainly useful in web based applications.
2.Cannot produce good results in long term and support projects.