Agile Tutorial for Beginners


The traditional approach to developing software is to follow a linear sequential model which is also named as the 'waterfall' model. Before understanding the agile methodology for the software development life cycle, we must understand what is a linear sequential model and what are its limitations and cons which prompted the advent of a new approach called Agile.

In this tutorial, we'll cover:

1. Disadvantages of linear sequential model
2. Introduction to agile Methodology
3. What is an Epic in agile?
4. What is a user story?
5. What is a product backlog?
6. What is sprint planning?
7. Who is the scrum master?
8. Who is a product owner?
9. What is a sprint backlog?
10. What are story points in agile?
11. What is velocity in agile?
12. What is a sprint retrospective?


In the linear sequential model, the entire SDLC is broken down into the following phases :

Requirement gathering and analysis
System engineering- Designing and planning
Coding and implementation
Integration and system testing
User acceptance testing
Production release
Support and maintainence


The below diagram depicts a typical linear sequential model for software development.

waterfall model

Disadvantages of the linear sequential model:


The entire project has to be delivered in one go after the completion of the UAT phase. It is good for small projects which last for a few months. But in the case of large projects (typically which lasts for years), following a linear sequential model may turn out to be a big failure for the project because over the years the business scenarios may change which may require the software under development to also get changed accordingly. But going back is not easy if a large portion of the software is already developed and large costs and resources are already consumed. This may result in the failure of the project because now a large amount of time, money, and resources are already consumed, and now going back to a point and making changes requires mammoth rework and additional time, money, and resources. 





What is Agile Methodology for software development ?


The agile methodology follows the incremental approach in which a few sets of functionalities are delivered in the first iteration or sprint, another set of functionalities are delivered in another sprint or iteration, and so on. So that the first sprint contains few sets of functionalities another sprint contains another set of functionalities.


Scrums are defined in agile. Scrum is a framework that has some guiding principles, processes, methods, and techniques to make teams work together. And the person responsible for incorporating the scrum is called the scrum master. A scrum is a set of guiding principles and processes which are to be followed by every team in agile.
Unlike the traditional software life cycle where testing comes into the picture in the last phase of the development, in agile methodology, testing occurs concurrently. In Agile the phases are the same but these phases are repetitive and followed again and again. The entire set of SDLC phases are cyclic in agile. The software under development keeps getting delivered in chunks, unlike the traditional approaches where the entire product is getting delivered in one go. This approach keeps the software adapted to current real-world business scenarios and flexible enough for any change.


agile phases




Terminologies in Agile:


Following are the activities, artifacts, user roles, features, tasks and terminologies involved in agile methodology. There may be a small variation which may varies from one organization to another.


What is an Epic?


An epic is nothing but a large piece of work that is divided into small tasks called stories. This large piece of work can be anything like a user requirement or feature which is later fractioned into smaller tasks.


What is a user story?


A user story is a small piece of business requirement which is supposed to be developed/implemented as per software development activity and later subjected to testing, UAT, and release. Whenever a user story is created, its associated tasks also gets created under that user story like 'Dev', 'Testing', 'Merging' etc. etc. Once the work progresses on the user stories, the status of these tasks also gets updated like -'to do', 'in progress', 'completed', and so on.


What is a product backlog?


The Product backlog is nothing but a collection of all the outstanding user stories collectively. It is a collection of all the outstanding business and system requirements in the form of user stories, tasks, bugs that have to be completed/incorporated by the development team in ongoing sprints on a priority basis.


What is sprint planning?


A sprint is a small timeframe (usually 1-2 weeks) in which a scrum team is supposed to complete a set amount of work (in the form of user stories) whereas sprint planning is a discussion for the formation of sprints among product owner, scrum master, and developer. Sprints are defined as sprint-1, sprint-2, sprint-3, and so on. Sprint planning determines which user stories go into which sprints. Which user story will go in which sprint will be planned in sprint planning. Whereas a Sprint is a collection of user stories.



Who is scrum master?


Scrum is a framework that has some guiding principles, processes, methods, and techniques to make teams work together. And the person responsible for incorporating the scrum is called the scrum master. Scrum master is the owner of one of the scrum team. He takes daily calls with his scrum team and takes an update on task accomplished, task undergoing, any roadblock. He defines the scrum process across the team and responsible to make every team member follow the same. Scrum master also performs sprint retrospective meeting at the end of the sprint, and note down the lesson learned and what went good and what went bad. Scrum master ensures the team follows the agile principles.


Who is a product owner?


The product owner is someone who has an immense understanding of the product and usually represents the customer or we can say he is a client-facing member of the team. He keeps a close eye on the progress of the user stories and ensures the product backlogs can be minimized over time.


What is a sprint backlog?


The collection of all the user stories to be completed in a particular sprint is called a sprint backlog.


What are story points in agile?


In the traditional software estimation approach, the estimations are usually given in terms of hours and man-days. But in agile, the efforts are usually given in the form of story points. Story points are nothing but numeric weightage given to a particular user story. This weightage determines the complexity of a user story (determined using the Fibonacci series and planning poker method). During sprint planning, a baseline user story is picked which can be referenced to all other user stories. This baseline user story is given a weightage and the next user story is picked and compared with this baseline user story. If this seems to be a complex than the baseline then a higher weightage is given to this otherwise a lower weightage is given compared to the baseline one.


What is velocity in agile?


Velocity is a key metric to measure the progress of the sprint. It is measured against collective efforts of successful user stories against time. Velocity helps us determine the efficiency of the scrum team and evaluate the estimates of the upcoming sprint. It is evaluated at the end of the sprint. It is often complemented with a burndown chart.


What is a sprint retrospective?


The sprint retrospective is a meeting held at the end of the sprint to discuss what went well, what went bad, lesson learned, key takeaways, and so on. This helps is improving the scrum process and efficiency.