Agile methodology for software development:
First of all we should know about methodologies to develop an application. There are many methodologies or approaches used to develop a software like RAD, FDD etc. But mostly used methodology in recent time is Agile.
What is Agile?
“ Agile methodology for software development firstly introduced in early 1970s but the agile manifesto came in 2001. Basically Agile means to move quickly and easily. So, simply agile is to manage IT teams and projects in iterative manner and split tasks into manageable parts according their priorities.”
Agile just an approach to build an application or software in an iterative manner. In Agile all the teams like developers, testers and client are in one loop. Main goal of agile is to deliver the project in small pieces/modules where changes are allowed during development phase. Here client interaction/review is mandatory for each module/sprint (Interaction/approval for designs, functionalities etc sprint wise). It means we build a application in small pieces or batches and after client approval we deliver it.
Why we use Agile?
There are many reasons for using Agile like:
- Transparency for Clients:- This methodology provide a special feature to client that is proper supervision of project and regular interaction with team. Client can review the system any time and also can give his feedbacks. He also can prioritize the tasks according business need.
- Timely and effective deliverable :- In Agile we divide the whole project in sprints (tasks according priority) and also time is fixed for every sprint and due to regular client review there is minor chance for any change after completion of each sprint.
- Changes Allowed:- In Agile, changes is allowed. Means there is an opportunity to constantly change request and reprioritize the overall product backlog ( a list that contains overall user requirements). New or changed backlog items can be planned for the next iteration.
- Quality :- By split the project into manageable units, the project team can focus on high-quality development, testing, and collaboration. Also, by producing frequent builds and conducting testing and reviews during each iteration (sprint), quality is improved by finding and fixing defects quickly ( from starting phase) and identifying mismatches according to client requirement.
What types of methods used in Agile?
There are five methods used in Agile :
- Scrum Methodology
- Lean software development
- Xtreme Programming
Here We discuss about Scrum Methodology that is mostly used as Agile development.
What is Scrum method ?
Scrum is an Agile development method. Scrum believes in working in small team size (for ex. 7 to 10 members).
There are many terminologies following:-
Roles: Scrum Master, Product Owner, Scrum Team
Ceremonies : Sprint Planning, Sprint Review, Sprint Retrospective, and Daily Scrum Meeting
Artifacts : Product Backlog, Sprint Backlog
Explanation of Roles:-
- Scrum Master:- Master is responsible for setting up the team , scrum meeting and check if any obstacles in progress.
- Product Owner:- The Product Owner creates product backlog, prioritizes the backlog and is responsible for the delivery of the functionality at each iteration.
- Scrum Team:- It is combination of working team like devs, testers, designers etc. and responsible to complete the task at end of each sprint.
Explanations of Ceremonies:-
- Sprint Planning :- We can split the sprint planning in different parts :
- Sprint :- Sprint is a splitted part of product backlog for ex. If product backlog contains 40 tasks then we can split these tasks in four sprints with each sprint contains 10 tasks(according priority).
- Kick Off meeting:- When ready to start the project.
- Creating backlogs (sprint and product):- Create task list primarily as a product backlog after that sprint backlog.
- Daily Scrum: Perform daily scrum meeting (approx. 10 -15 mins) that contains mainly three questions :
(i) What did you do yesterday?
(ii)What will you do today?
(iii)What obstacles are in your way?
2) Sprint Review:-It is simply a meeting in which all the participants (customers, management, product owner, scrum team) discuss about best part of this sprint, any suggestions or changes.
3) Sprint Retrospective:- It is also a simple feedback meeting in which all participants(only scrum team) give their feedbacks.
4) Daily Scrum Meeting:- We have explained this in “Sprint Planning” section.
Explanation of Artifacts:-
- Product Backlog:- A user requirement list for whole project according priority.
- Sprint Backlog:- Sprint is a splitted part of product backlog. We break the the tasks into manageable parts .
How is Scrum works?
Here we understand the scrum flow with the help of above pic:-
Step 1:- First create the product backlog.
Step 2:- Then split it into sprint backlogs.
Step 3:- Organize daily scrum meeting for task evaluation.
Step 4:- Then complete the each sprint in iteration.
Step 5:- Now after review by client and completion of every sprint, we are ready to deliver.