There are different methodologies which are used in the software development process. The commonly used models were waterfall model, spiral model, etc. However, these days, a number of software development projects are carried out using the agile model. This model is based on the iterative and incremental software development approach.
The solutions are found through collaboration between different self-organizing cross-functional teams. One of the methodologies which falls under this model is the agile scrum methodology. The other methodology is extreme programming. However, in this write-up we will concentrate on the former only.
What is Agile Scrum Methodology?
This methodology uses the iterative and incremental approach towards software development. It was invented in 1993 by Jeff Sutherland, John Scumniotales, and Jeff McKenna. Scrum actually has a skeleton which contains a set of practices and predefined roles. There are three main roles in it, namely, the 'Scrum Master', 'Product Owner', and the 'Team'.
The Scrum Master is the person who maintains the entire project. His role is similar to that of a project manager. The Product Owner is the person who represents the stakeholders and the business.
Last but not the least is the team. Normally, the team is cross functional. It is this team that takes care of the actual analysis, design, implementation, testing, etc., of the project. Generally, the team size is limited to 10 people.
So what sets this methodology apart from the other software development methodologies? This methodology uses the idea of empirical program control which sets it apart from the other models.
Another reason it has become popular is due to the use of real-time progress of the project. This progress is used for planning and scheduling the future releases. This methodology is also used for software testing.
Agile Scrum Process Flow
In this process, the entire software development life cycle is divided into small parts known as sprints, which have a defined period of time for development. Iterative processes are included within them. The project is defined completely by taking help of the cross functional teams. The project is then divided into small parts.
The project is then divided into small parts. Once the parts have been made, the team decides who is going to be responsible for which part of the sprint. Accordingly, in the stipulated time period, the work is carried out.
After the first iteration, it is the job of the Product Owner to define the backlog. The tasks in the backlog are prioritized by the owner. In some cases, the team might be asked to prioritize the items in the backlog. The plan is then reviewed. The Scrum Master, Product Owner, and the team are a part of the sprint planning meeting.
The size of each item is determined by the team after the review meeting. This helps in deciding the items which can be completed in the current sprint. Often, the time used for this decision is not more than 4 hours.
This is followed by the work of clearing the backlog. The highest priority items are completed first and the items with lower priority are taken into consideration later.
Depending on the policy decided, there might be a daily or a weekly review meeting. This meeting helps in deciding the tasks accomplished as well as the next items to be worked upon. For the items which have not been completed, the problems are discussed and solutions are worked upon.
Modifications are done to the sprint backlog either everyday or weekly. This helps create the burn-down chart where the progress made as opposed to the time remaining for the sprint to get over, are charted out. At the end of the sprint, the progress is displayed.
Finally, the entire team gathers together to review the sprint. This meeting is aimed at finding out what went wrong in the computer programming of the preceding sprint. At the same time, the change of action that needs to be carried out is also decided. After this starts the next sprint.
The advantage of using this approach for computer software development is the increase in productivity. The continuous reviews help in overall improvement. Better communication is observed between the customer and the software developing team. The end result of all this is a superior software product.