There are many software development methods or approaches in existence such as waterfall method, spiral method, incremental approach, rapid application development and iterative methods. This methods work as a framework which controls how the project is developed and maintained. There method lacks in or the other aspect of project development. With Agile software development, projects can be developed with more flexibility and pace as product releases requires faster time-to-market.
Agile methodology is also a software development methodology/framework. It is an incremental and iterative software development approach. Agile software development is nothing but a different way of developing and maintaining software. As the name suggests, it is very flexible methodology and provides agility in many aspects of project development and maintenance. Some aspects are listed below:
1) It promotes adaptive planning
2) A time bounded iterative approach to development
3) Flexible to project requirements and changes
4) Rapid response to changing project requirement and changes
Agile development should give values or importance to below mentioned four things as referenced here:
1) Individuals and interactions over processes and tools
2) Working software over comprehensive documentations
3) Customer collaboration over contract negotiations
4) Responding to changes over following a plan
This four items, if given values/importance over their counter parts on right, will enable rapid software development.
As mentioned above, Agile software development is a framework or methodology towards software development. Many such agile methodology or framework exists: Extreme Programming (XP), Scrum and Dynamic Systems Development Method. Let us talk briefly about Scrum, which I experienced at my previous company.
Scrum is a framework built upon Agile software development principles with a focus on how to manage tasks within a team based development environment. Scrum has three core roles namely Product owner ( individual who works with customers directly and is accountable for delivery of a product ), Development team or team members ( develops the product and ships it after every sprint ) and Scrum master ( Ensure that scrum process is followed and is a facilitator for the team).
Sprint is a part of Scrum development and is time bounded. It could range between one week to one month. (Team at my previous company had two weeks per sprint). Sprint ensures that a part of product is delivered after each period(this facilitates time bounded iterative approach to development as mentioned above). Apart from periodic sprint meetings, daily scrums are held to discuss about what work was carried out the day before and what work is planned to finish the same day. Each team member typically takes a minute or two to report their daily status and may put issues/blockers faced in front of the team. Daily scrums help entire team know the status of others and how the overall project is progressing.
Some advantages of Scrum Agile development are as below:
1) Agility
2) Immediate feedback to each team members during daily scrum & sprint planning meeting
3) Issues & blockers are immediately addressed
4) Helps measure each individual's productivity
5) Time bounded development with flexibility in customer requirements
6) Defects will be identified at the earliest, as product is delivered after each sprint phase
There are various tools available in market to support Scrum framework. They can be found here.

No comments:
Post a Comment