Sunday, August 14, 2011

A short note on Agile Methodology


Agile methodology is an adaptive methodology, its people oriented.
Here are some of the other characteristics of the Agile
Methodology.

1. Delivery frequently.
2. Good ROI for client.
3. Test frequently.
4. Collaborative approach.

Agile methodology is more of people oriented. Agile methodology helps us to increase productivity and reduce risks.
There are 2 popular agile methods- Extreme programming (XP) and Scrum.
 
People believe that there is less documentation in Agile. But agile also includes documentation and it can be used either
a small or a large projects. In agile Development, testing is also integrated throughout the life cycle. But for the testers,
they will not have a good business requirement. So they have to get the details from the client or through the developer.
The testers will do more of Quality Assurance work than testing.  
 
 Agile Methodology- Characteristics
 Ø  Frequent Delivery
 Ø  More Iterations
 Ø  Test frequently
 Ø  Less defects
 
Agile is software development methodology. It is very effective where Client frequently changes his requirement. 
Since it has more iteration so you can assure a solution that meets clients requirement. More than one build deployement
for a project. It involves more client interection and testing effort. There are two methods by which this methodology 
can be implemented:-
 
1- Scrum
2- Extreme Progamming
 
Scrum: Each iteration would called a scrum which can be a 1- 2 Months.In Scrum Client prioritise his requirements
what he want first. If developer did not meets all the requirement which was being fixed for a perticular scrum than
rest of the development part would be transferred to the next scrum (would be delievered in the next build),  means
developer cann't increase time decided for a scrum It’s fixed.
 
Extreme Programming (XP): here iteration period would be less than in scrum , which is being 2-4 weeks.
Here developer prioritize what to do first on the basis of client requirement. This duration which was being fixed for a
iteration, can be increase if the some development part is still pending. The build would deploy with having all the client 
needs. Thus iteration period is not fixed here it can be increase. but iteration should meets all the client's requirement in 
this build. More attention is required for testing in XP.
 
Apart from all the above answers, just add this important point. There are many flavors of Agile Development:
1- Agile Manifesto
2- (XP) Extreme Programming
3- Scrum
4- Crystal
5- Context Driven Testing
6- Lean Development
7- (Rational) Unified Process
 
 
Agile development methodology attempts to provide many opportunities to assess the direction of a project throughout
the development lifecycle.  This is achieved through regular cadences of work, known as sprints or iterations, at the end
of which teams must present a shippable increment of work. 
Thus by focusing on the repetition of abbreviated work cycles as well as the functional product they yield, agile methodology
could be described as “iterative” 
and “incremental.”  In waterfall, development teams only have one chance to get each aspect of a project right. In an agile 
paradigm, every aspect of development — requirements, design, etc. — is continually revisited throughout the lifecycle. 
When a team stops and re-evaluates the direction of a project every two weeks, there’s always time to steer it in another direction. 
 
The results of this “inspect-and-adapt” approach to development greatly reduce both development costs and time to market. 
Because teams can gather requirements at the same time they’re gathering requirements, the phenomenon known as
“analysis paralysis” can’t really impede a team from making progress.
 And because a team’s work cycle is limited to two weeks, it gives stakeholders recurring opportunities to calibrate releases
for success in the real world. 
 
In essence, it could be said that the agile development methodology helps companies build the right product. Instead of 
committing to market a piece of software that hasn’t even been written yet, agile empowers teams to optimize their release
as it’s developed, to be as competitive as possible in the marketplace. 
In the end, a development agile methodology that preserves a product’s critical market relevance and ensures a team’s 
work doesn’t wind up on a shelf, never released, is an attractive option for stakeholders and developers alike.