Agile Scrum Framework

Agile_Scrum_Header

If you are into programming then you must have heard the buzzwords ‘Agile’ and ‘Scrum’. In short Agile is a software development approach and Scrum is one of the framework used for it. In this tutorial I will explain Agile and Scrum basic concepts using appropriate examples.

We all are very used to frequent feature changes and new feature addition in most of the applications we use. That is made possible by Agile approach. If we use traditional waterfall model to manage today’s modern applications then it will fail miserably. One of the most important aspects in any software product or an app is to add or remove features quickly and make it public so that users can use it. Before we dive into Agile and know how Agile made these frequent changes in application possible. Let’s review the Waterfall model and its shortcomings

Waterfall Model

Waterfall is linear project software development approach, it starts with the requirements and end with the final product. Apart from IT most of the other industries like construction also used this technique in all sorts projects. Since this is linear model all the project activities are sequentially arranged on after the other. We are going to consider project activities related to software development only.

Waterfall_Model

Depending on the project type Waterfall model still make sense for some projects but it doesn’t work for complex software projects. Let’s see few of the shortcoming of waterfall model in case software development.

Issues With Waterfall Model

  • Since waterfall model activities are sequential, there is no way to get feedback till final product is ready to deliver
  • Once requirement are freeze, there is no way for course correction. And any course correction after final product is ready, very time-consuming and costly
  • Delays or issues with any one stage affects all other stages
  • More prone to cost and time overrun
  • No visibility on final product till its finally delivered.

Agile Model

Agile model solves the most of the shortcoming of Waterfall model. It is now backbone of software development projects. Agile allows teams working on complex projects to work together more efficiently and effectively It is based on iterative and incremental techniques. Agile is just set of principles, and to apply these principles in action we use well defines methodologies like Scrum. Different types of Agile methodologies are as below.

Agile_Methodologies.png

Most popular methodologies for software development are Scrum, Kanban and Extreme programming

Advantages Of Agile

  • Iteration/sprint enables more visibility into project progress
  • Each sprint provides working feature as part of final product delivery
  • As each sprint deals with individual story, accommodating new changes is easy
  • All stakeholders including customer has full visibility on projects progress. Customer can view the result at the end of each sprint

Scrum is one of the most popular agile framework used to implement the Agile principles. The word scrum comes from the Rugby sport, dictionary meaning of Scrum is ‘an ordered formation of players’. The way every player is very important in any group sports, every person working on complex software project is also very critical for projects success. Scrum uses Agile principles along with few sets of guidelines in order to achieve large goals. Scrums’s iterative and incremental approach make’s working on large and complex project more enjoyable.

Scrum is simple to implement and focuses on quick and frequent deliveries, that’s why it is well suited for software projects.

Scrum_Framework.png

Let’s look into few important scrum framework components.

Sprint

At the heart of the scrum is sprint, where working product increment is developed. It is a loop of two weeks or a month when potentially releasable product is created. Duration of each sprint should be constant for entire duration of project. It is one of the most important events in scrum. New sprint start after the first one completed, this loop continues till all the product backlog is completed. Each sprint has a goal and whole teams works on it to achieve it. Sprint duration shouldn’t be more than month else task complexity may increase, or features may change and it will affect the sprint outcome. Shorter duration of sprint enables quick feedback and reduce the risk to max one month in case anything goes wrong in that sprint. In case required, sprint can be cancelled by product owner or by client. Each sprint loop consist of below steps

  • Sprint planing: Entire scrum team collaboratively define the goal for that particular sprint. Work is divided into task for team members to work on.
  • Daily scrum meeting: Also known as Daily Stand-up Meeting. It is a 15-minute meeting where scrum team review’s yesterday work and plan for today’s work. Any issues reported during meeting are taken separately after the meeting.
  • Sprint review: Sprint review is held at the end of each sprint, to review the work and update the product backlog accordingly. The Sprint Review is normally held for two hours for two week sprints and for four hours for one month sprints
  • Sprint Retrospective: It occurs after sprint review and before next sprint planning. This is usually a one-hour meeting for two-week duration sprints and a three-hour meeting for one month duration Sprints. Based on the learnings from the previous sprint, identify improvements that can be implemented in next sprint cycles.

Sprint, Sprint Planning, Daily Scrum meeting, Sprint Review, Sprint Retrospective are also called as ‘Scrum Events’

Scrum Team

Every scrum team has 6 +/- 3 team members. It’s a cross functional team. They have required skill set to accomplish their work without depending on others(outside scrum team). The Scrum Team consists of three roles, namely a Scrum Master, a Product Owner, and the Development Team

Product Owner

Product owner(PO) collaborate with the customer and understand the project requirements and create the project scope. Based on project scope and functionalities required, PO creates the product backlog. PO is responsible for managing the product backlog and accepting the incremental changes at the end of every sprint.

Scrum Master

Scrum master(SM) serves the product owner in order to achieve the product goals. Scrum master acts as teams coach and ensures that team must follow the Agile principles and scrum guidelines while working on each task. SM must lead by example and helps team whenever it required.

Development Team

It includes developers, testers and anyone who is required to complete the required task. Works on the product features defined in product backlog created by PO. Its size should be small enough to be nimble and large enough to complete significant work during sprint cycle.

Scrum Artifacts

Product Backlog, Sprint Backlog, Burn-Down Chart and Increment are the scrum artifacts. Scrum artifacts provides the key information about the project. Product owner and scrum master has a flexibility to define more artifacts if required.

Product Backlog

It is list of features(User Stories) that are needed as a part of final product delivery. Product owner is responsible for product backlog content and the order in which they should be implemented. Product backlog constantly changes to incorporate new feature or changes in existing functionality.

Sprint Backlog

Sprint backlog is nothing but set of product backlog items selected for sprint cycle.

Burn-Down Chart

A burn down chart is a graphical representation of work left to do versus time. Burn down charts are used to track the sprint work. Burn-down charts aid the Scrum team to keep track of their progress and what needs to be done to meet the sprint goal.

Burn_Down_Chart.png

Increment

An Increment is the sum of all product backlog items that have been completed since the last software release. Every increment is one step towards the final product goal. Every increment should be in shipable condition.

Scrum Tools

Scrum tools provide the user-friendly interface to manager every scrum event, like product backlog, sprint backlog, planning and tracking Sprints, displaying burn down charts, conducting daily Scrum Meetings, and conducting Scrum Retrospectives. There are many scrum tools are available some of them are open source and some are paid.

Scrum Benefits

  • It supports continuous collaboration between all the stakeholders of the project
  • Continuous sprint cycles ensures the always updated product with working features
  • Feature (user stories) can be prioritized as per the customer needs
  • Short sprint cycles enables development team to respond to clients requirements quickly
  • Scrum helps teams to improve their ability to adapt to the rapidly changing business requirements
  • Complex product development made easy
  • Scrum optimizes the effectiveness of the Scrum team in translating ideas to products
  • Scrum removes the analysis-paralysis and gets teams focused on delivering the highest customer value every Sprint.
  • Scrum increases the decision-making speed by empowering the Scrum Team

2020

ANN Model to Classify Images

12 minute read

In this guide we are going to create and train the neural network model to classify the clothing images. We will use TensorFlow deep learning framework along...

Introduction to NLP

8 minute read

In short NLP is an AI technique used to do text analysis. Whenever we have lots of text data to analyze we can use NLP. Apart from text analysis, NLP also us...

K Fold Cross Validation

14 minute read

There are multiple ways to split the data for model training and testing, in this article we are going to cover K Fold and Stratified K Fold cross validation...

K-Means Clustering

13 minute read

K-Means clustering is most commonly used unsupervised learning algorithm to find groups in unlabeled data. Here K represents the number of groups or clusters...

Time Series Analysis and Forecasting

10 minute read

Any data recorded with some fixed interval of time is called as time series data. This fixed interval can be hourly, daily, monthly or yearly. Objective of t...

Support Vector Machines

9 minute read

Support vector machines is one of the most powerful ‘Black Box’ machine learning algorithm. It belongs to the family of supervised learning algorithm. Used t...

Random Forest

12 minute read

Random forest is supervised learning algorithm and can be used to solve classification and regression problems. Unlike decision tree random forest fits multi...

Decision Tree

13 minute read

Decision tree explained using classification and regression example. The objective of decision tree is to split the data in such a way that at the end we hav...

Agile Scrum Framework

7 minute read

This tutorial covers basic Agile principles and use of Scrum framework in software development projects.

Underfitting & Overfitting

2 minute read

Main objective of any machine learning model is to generalize the learning based on training data, so that it will be able to do predictions accurately on un...

Binary Logistic Regression Using Sklearn

5 minute read

In this tutorial we are going to use the Logistic Model from Sklearn library. We are also going to use the same test data used in Logistic Regression From Sc...

Train Test Split

3 minute read

In this tutorial we are going to study about train, test data split. We will use sklearn library to do the data split.

One Hot Encoding

11 minute read

In this tutorial we are going to study about One Hot Encoding. We will also use pandas and sklearn libraries to convert categorical data into numeric data.

Back to top ↑