Monthly Archives: July 2013

Agile Velocity

In simple words velocity determines the pace of progress of an Agile team. It’s measure of work completed by an agile team in a specific iteration (sprint). Work completed could be in different units such as Story points, Tasks or hours. Most commonly used unit is Story Point.

At the beginning of each iteration, team estimates how much effort is needed to complete a task/user story. Let’s suppose there are 5 tasks selected for a particular sprint and effort to complete those tasks is 38 Story points. Each task was estimated with following story points.

Task  1: 3
Task 2:  8
Task 3: 13
Task 4: 1
Task 5: 13

At completion of the sprint the numbers of tasks completed were different than estimated. Team could only manage to complete 4 tasks (1,3,4 and 5). So total story points completed during the sprint was 30 (3+13+1+13). Since completed story points is 30, which describe the work completed during a sprint. Hence velocity of the sprint is also 30.

Question is why velocity is so important?

The reasons that Sprint Velocity has given so much importance in agile methodology are following.

-          It measures the team’s work capacity.

-          It measures the team progress

-          It helps to estimate the time to complete the project

-          Variation of team velocity across different project might indicate some issue with the project

-          It helps to build tools using this information to monitor the progress of the project.

Velocity_Graph

Here it is important to remember that every project has its own velocity. Velocity of one project should not be used to measure the progress of another one. In other words velocity cannot be used across the projects. The reason is that every project is different and might have different project members, circumstances, goals and dynamics. Applying velocity of one project to another one could provide the wrong estimate which ultimately can jeopardize the estimates and planning of the project.

Author: Mobeen Siddiqui, Provides Agile coaching services in Minnesota, particularly in greater Minneapolis area.

What is Agile Methodology?

What is Agile Methodology?

The literal meaning of agile is to “Able to move quickly and easily”, which pretty much supports the idea of Agile development. Agile methodologies were introduced to quickly and collaboratively build quality software.

The Information technology is relatively new as compare to other fields, and when it came to following a methodology to complete an IT project the only examples to follow were from existing methodologies in manufacturing and construction industries. The Water fall development model is an example of methodologies which IT industry adopted from already established industries. The Water fall methodology is a sequential design process, the preset states of Water Fall methodology are planning, initiation, design, implementation and support.

Problem: As mentioned above Water Fall methodology is a sequential process in which each of the next phase gets started only after completion of its previous phase. This method works fine when all the requirements of the project are already well known and there is little or no chance of changing existing requirements. But for most of the IT projects requirements emerge with the time. Historically a big chunk of IT projects failed because software delivered on the requirement gathered in the beginning was not able to fulfill the needs of the end user. Sometimes end user don’t themselves know the requirements very well, they provide the requirement based on their understanding of the problem, but when product is completed and presented to them, even though it’s based on the requirement they had provided, they reject it because product does not solve the problem. Other times development team does not understand the requirement well, and create a product on wrong understanding.

Solution:

In response of high failure rate of IT projects experts came up with a different methodology which could solve the perceived problems of Water Fall methodology, they named it Agile methodology.

The goal is to develop the software based on customer’s continuous feedback, and to achieve that software is planned, designed, developed, tested and released incrementally.

The development time is divided into small (time-boxed) iterations. To improve the adaptability of the project Customer feed-back and Planning is incorporated in each iteration of the project. The continuous planning, continuous testing, continuous integration and continuous risk evaluation gives greater visibility and control on the progress of the project and consequently reduces the chances of project failure.

Agile software development emphasizes on adding value for the customer, and for that face to face communication, empowered teams, responding to change and working software are important agile practices and measures.

The basic values and vision of the agile methodology is described in Agile Manifesto and Agile principles which provide the basis to gauge the implementation of agile characteristic in your team.

Some of the most common agile methodologies are following.

  • Extreme Programming
  • Scrum
  • Dynamic System Development Method (DSDM)
  • Features Driven Development (FDD)
  • Lean Software Development
  • Kanban
  • Crystal

 

Author: Mobeen Siddiqui, Provides Agile coaching services in Minnesota, particularly in greater Minneapolis area.