Agile Development Methodology
Agile Development Methodology is an approach with sequence of phases. It is different from the traditional Waterfall Methodology.
- User input is imperative in this methodology as there will be no miscommunication in understanding of specifications. As user interaction is on daily basis, lot of issues are solved before the execution phase.
- The development team must be authorized to take self-decisions as they are directly in contact with the users.
- Specifications are allowed to evolve as it is difficult to assess the accurate requirements in the initial stage. The team is focused on providing the best result in a given time scale.
- Specifications are gathered just enough for different phases and progress with minimum efficiency. Time is not wasted in gathering information which will not be part of the end product.
- Unlike the traditional approach Agile Methodology delivers small portions of phases. You have a clear visual of your direction, and have a chance to change your approach.
- Since it delivers in small portions, they have to be delivered quite frequently, preferably from few weeks to few months.
- Each phase has to be completed before progressing to the next one. Testing should be thoroughly completed before delivering the phase.
- Agile tries to concentrate on getting the maximum results with minimum efforts, hence focusing on those minimum efforts.
- Unlike the traditional approach testing phase doesn't occur at the end, Agile incorporates testing along with development. Testing is done quite frequently to ensure all the user requirements are being met.
- There is a close cooperation between the team members and client because they have to be in synch with each other throughout the development.
Different type of Agile methodologies are XP (Extreme Programming), Scrum, Crystal, Lean Development, Rational Unified Process.
The most extensively used Agile methodologies are XP and SCRUM.
XP (Extreme Programming)
XP is a robust methodology which implements 4 values leading to twelve practices. Values is understanding the approach with communication, evaluation, determination, simplicity while practices are devising a plan, dynamic structure, iterative releases, customer involvement, simple proposal, customer client collaboration, continuous testing, re-assessing, comprehensive coding, emphasizing and reasonable pacing. Values and practices are interdependent and determines the daily functioning of the work.
In Scrum methodology the client is in close contact with the team monitoring the features, fixing the bugs, dividing development in to thirty day bits called sprints.
The word Crystal forms the whole base for this methodology. It insists on every project having tailored requirements, practices so as to meet the accurate outcome.
This method avoids waste by determining only the necessary features and emphasize on developing them which ensures speed and efficiency.
Rational Unified Process
This methodology is collection of all practices and selecting a particular practice suitable for an individual project.