Agile methodology as the names suggests is quick and adaptive. Requirements, Planning, Goals, Deadlines all keep modifying, totally opposite to the traditional heavier models like Waterfall model where everything is fixed at each stage of software development. Iterations are done to continuously produce incremental versions of the product. Agile became a formal methodology in 2001. Not surprisingly, it is now successfully used in many organizations as it is highly result-oriented.
Scrum is a very interesting form of Agile. Driven by progress, each version/release of the product is done in a fixed time frame called Sprint (usually 1-4 weeks). Items are picked from master list (formally called product backlog) based on the velocity of team (efficiency of team based on previous sprint) and business priorities. A daily scrum meeting is done, where the progress and checkpoints get discussed. Roles in Scrum development:-
Product owner: Prioritizes the items, brings customer words to software requirements
Scrum Master: Captain of the team. Keeps team’s focus on the deliverable. Measures velocity and advises Product Owner on task allocation
Scrum Team: Hands-on guys who deliver. Success of Scrum is driven largely by Scrum Team. An efficient team has a high velocity and delivers stretch goals.
Few points as to why Scrum is successful:-
- Less documentation
- Keeps the interest of developers and investors
- More direct interaction for requirements, team-work
- Rather than documentation, there is some new running software in every version
- High level planning, less micro-management
- Result-oriented and not process-oriented