Agile methodology is one of the hot topics in Software development. But what exactly is Agile?
Simply put it is different way of software development. Waterfall software development life-cycle has been traditional software development methodology. However waterfall software development life-cycle has many drawbacks. Projects developed using this methodology take too long to develop and tend to fail too often. This is because Waterfall software development is a linear and rigid approach. In Waterfall method all the requirements has to be confirmed at the start, all the code has to be finished before it can be tested.
A small group of people came together and put forward Agile manifesto. The Agile manifesto values Communication over following processes, Working software over documentation, Customer Cooperation over Requirements approval. Agile puts more importance on flexibility with change over following a plan. Due to its flexibility and excess use in industry training institute start agile certification for spread the knowledge of agile in all over the industry.
Agile places importance on
Agile places greatest importance on involving users on every stage of Software development life-cycle. If it is not practical to have direct user involved every step of the development. However at least some user representative should be there.
Development Team must be able to make decisions
Software development team should be complete unit responsible for End to end solution delivery. If a decision needs to be made they should have some senior representatives who can make that decision.
Requirements can change but time limit does not
The goal of the agile is to be flexible with the requirements. However at the same time it is responsible in delivering solution in fixed time frame. So change in requirements should be able to fit in existing time frame.
Requirements can be Bare minimum
Agile recognizes that the requirements are always evolving. So it is possible that at the start of Agile projects the requirements are bare minimum.
Develop small release and repeat
The Agile focuses on delivering small changes that can be put in production in short amount of time without major impacts rather than complete overhaul of the system.
Frequent delivery is important
Agile is fast moving method so frequently delivering small changes to the system is important. Small changes are easier to manage and develop and they can be deployed with very little or no impact to existing system
Complete each change before moving on
An agile sprint should deliver the results it was intended to deliver. Each sprint has definition of “DONE” defined at the start and Agile sprint should make sure that the “DONE” Status is achieved
Deliver Minimal Viable product
Agile focuses on delivering changes that are most important and vital to project success. This ensures that project delivery can be done with less cost with greater rate of return
Testing should be done at each step
Agile places importance on testing. Testing should be done as early and as often as possible. Testing make sure any potential issues are recognized and fixed early in the project
Cooperation is important
Agile relies heavily of cooperation between team members. So that the team as a whole can achieve the goal.