Search

Agile Filter

How Not To Be Agile -An Effective Product Backlog

IntroductionHello and welcome to this, the third article in the series ‘How Not to be Agile’.‘How Not to be Agile’ may seem a strange title for blogs about how good Agile is!  What I intend to do over this series of articles is to share with you the misinterpretations, omissions, and mistakes that people make that significantly reduce the potential benefits when an organisation, or a part of it, embark on an Agile Transformation.Last time, I discussed the potential pitfalls of not having a suitable Business Case for whatever it is that we are trying to achieve, be it a new product, a major change to an existing product or the Agile transition itself.This time, I will cover some of the misunderstandings and malpractices that I have come across with respect to the next major item to consider in any Agile framework, the requirements.  The most often used term for the requirements list is the Product Backlog from Scrum; I will use this and other Scrum terminology in this article but you can use whatever names you like; it is the content and management of the requirements list that is important.I will start with a description of the Product Backlog process and then give examples of what has and could go wrong if not follows the Product Backlog tips.The Definition of Scrum Product Backlog Having achieved an agreed Vision and Objectives and decided that the Business Case for the product development is viable, the business stakeholders and development team need to discover a list of ‘business requirements’, at the same level of detail, so that the development team can develop the product in a series of short development timeboxes.These ‘requirements’ become Product Backlog Items (PBI). What is a ‘Requirement’?Functional Requirements:There are 3 commonly used ‘structures’ used to express ‘Agile functional requirements’:Elementary Business Processes (EBP) – the names of EBP, usually extracted from the results of the Business Process Modelling exercise concerned with the area of the business that the product is for; for example:                                                                                              ‘Capture Customer Details’Use Cases – from the Unified Modelling Language (UML).  Only the names of the Use Cases, again, usually extracted from the results of Business Process Modelling exercise and the example is the same as for the EBP aboveUser Stories – a technique from eXtreme Programming which states the user of a business process, the name of the process and why the  process is needed; for example:                                                                                                    ‘As a sales person                                                                                  I need to Capture the Customer Details                                                                                        So that payment can be taken’For all the 3 ‘requirements’ types, it is only the names of the business process that are needed (with the addition of the other 2 clauses in User Stories); there should be no lower level details in the PBI.The level of detail for all of the above can be summarised as:                                            ‘The name of one job, being performed by one person, at one time’Non-Functional ‘Requirements’:In addition to the Functional Requirements, the ‘What’, the business will also express the needs of ‘How’ the product will perform such as:All screens must refresh within 5 secondsThe system must be available 24/7/365The system must conform to the company marketing graphic languageand so on and so forth.These Non-Functional ‘requirements’ can be added to the Product Backlog in a separate section from the Functional Requirements or in a separate ‘document’.What A PBI Is NotThere was a fashion, that still exists in some places, to have ‘Technical User Stories’; ‘User Stories’ those name technical activities that need to be done; for example:As a database designer                                                                         I need to create data access scripts                                                     So that the product can store and retrieve the data that it needs to useSuch User Stories would just be stating elements of a team member’s work and do not add anything to the understanding of the business needs which the Product Backlog is meant to represent.It is my strong recommendation that so-called ‘Technical User Stories’ are NOT used because the Product Backlog becomes large, unwieldy, almost impossible to order by business value and prioritisation; the estimated effort for these technical needs are included in the estimation of the ‘business’ PBI; more of which later.It is true that there may be a need for some activities to set-up the technical environment before the development team can start developing the product, some of which are out of the control of the development team; these activities should take place in parallel with creating the initial Product Backlog.Creating a Product BacklogOrdering the Product BacklogThe whole point of Agile is to deliver a product incrementally so that the business can accrue the best value in the shortest possible time.It, therefore, follows that the product needs to be developed by developing the PBI in the business value order; the highest business value PBI first.Therefore, the PBI needs to be ordered by business value. I will not go into the techniques for ordering PBI, they are well documented elsewhere but I will give an example, later, of what happened when one team did not use Product Backlog ordering.Estimating the PBIWe create the initial Product Backlog just after agreeing on the Vision and Objectives and ensuring development viability via the Business CASE  but before development begins; it needs to be estimated in some way to determine how long it may take to develop the product and consequently how much it may cost to develop.It is a tenet of all Agile frameworks that only the development team is allowed to estimate the PBI.  Once done, these estimates will ‘inform’ the Business Case and analysis can be made to see if the original ‘high-level’ estimates in the initial Business Case are of the same order; a decision can be made as to whether the development is still viable.Types of PBI estimatingThere are 2 generally used types of PBI estimating:1. Absolute Estimating:  Whereby each PBI is estimated by how much time it would take go from just its name to ‘potentially shippable’ functionality.  Of course, the tasks include analysis, design, construction and testing and what normally happens is that each ‘skill’ will estimate the time it would take for their part in the process and the times summed to get the overall estimate.2. Relative Estimating:  Whereby the team chooses the PBI which is likely to be ‘the smallest’.“The smallest in what respect?”  you ask.  The ‘smallest’ does not directly consider time; the PBI criteria that are considered are size and complexity.However, opinions of size and complexity will vary amongst all team members depending on their skill and experience; what may seem ‘simple’ to an experienced developer may seem complex to the less experienced person.  Similarly, although the analysis and construction may seem simple, the testing may be complex.For these reasons, it is highly recommended that Relative Estimating is done using ‘Planning Poker’ which is well described elsewhere (see ‘Planning Poker: An Agile Estimating and Planning Technique’); suffice to say here, that once the team have decided which is the ‘smallest’ PBI, they give it a ‘Story Point’ of 1 and all other PBI are estimated with respect to their individual relative size and complexity compared to the ‘smallest’.So which estimating technique to use?1. Absolute Estimating can take a long time; it is akin to the traditional way of estimating for the Project Plan.  Also, it has been established that, generally, we are not very good at estimating in time; the larger the thing we are trying to estimate, the worse our estimates get.  However, the technique is familiar to most people and does not require a change of mindset to produce estimates.2. Relative Estimating requires a totally different mindset amongst the development team members because, initially, not only are they using unfamiliar criteria to estimate the PBI but also, they are estimating in collaboration with other team members with different skill sets and experience.Despite there being ample evidence that Relative Estimating takes less time overall and allows the stakeholders and development team to focus on business benefit being delivered, because of the ‘difficulties’ of introducing Relative Estimating, many teams revert to time estimation and tracking time.  Also, as we will see in one of the Case Studies below, an organisation’s choice of requirements management tool can make the use of Relative Estimating seem a waste of time for team members.Another Potential Problem with Relative EstimatingSo, having carried out ‘Planning Poker’, the development team now know the total number of ‘Story Points’ that the development represents; not much good to the business stakeholders who want to know how long it is going to take and how much it is going to cost.On completion of the initial Product Backlog and before development begins, we need to ‘translate’ this total ‘Story Points’ into time.An Agile Team’s progress is measured by the number of ‘Story Points’ that they deliver in one Sprint; known as the team’s ‘Velocity’.So we need a knowledge of the team’s Velocity in order to establish an estimate of how long the development is likely to take; for example, if the total number of ‘Story Points’ is 200 and the team’s velocity for a 2-week Sprints is 10, then the estimated time to complete all the PBI is:         200 ‘Story Points’ / 10 ‘Story Points per Sprint  x 2 (the number of weeks per Sprint) = 40 weeksHowever, at the start of an Agile transition, we do not know what the team’s Velocity is or will be.  There are 2 methods to determine what the Velocity may be:1. The team takes one of the ‘smallest’ PBI (with a Story Point of 1) and does a traditional break down to the tasks involved and estimate those tasks in time;  1 ‘Story Point’ is equivalent to the time represented by the sum of the times estimated for all the tasksThe team’s Velocity may be estimated by:                                      ‘The number of working days in the Sprint / the estimated days for 1 Story Point’For example, if the ‘time estimate’ for a PBI of 1 ‘Story Point’  is 1 day:                                             10 working days in 2-week Sprint / 1 day = Velocity of 10This velocity can then be used in the formula above to determine the estimate for the potential total time for the development.2. The development team is allowed to start development for 2 or 3 Sprints taking PBI from the top of the Product Backlog.  At the end of the ‘experiment’ period, the total number of ‘Story Points’ for the completed PBI divided by the number of Sprints completed becomes the Velocity to use in the formula above to determine the estimate for the potential total time for the development.The potential problem with this method is that management have to release funds for this experimental period without knowing the values to feed into the Business Case to determine whether the product development is viable before development begins.Once teams have completed 1 product development, we recommend that the team members are kept together for other product developments even though the business area or technology may be different.  Having a team that works well together is more important than creating teams in an ad-hoc manner.  A team’s Velocity varies insignificantly over different product developments and so can be used directly in the formula above to determine the estimate for the potential total time for the development.\Scoping the Product BacklogGenerally, Agile product developments have strict deadlines so that the major benefits can be accrued; benefits such as competitive advantage, meeting marketing needs, meeting customer expectations or complying with regulations.Also, Agile teams comprise all the skills necessary to take the PBI from ‘names’ to a potentially shippable product; not all team members are full-time but the team is fixed.Therefore, generally, the costs for a fixed time product development are also fixed.Given the classic ‘Iron Triangle’ of development variables:If we fix time and cost, then the only thing that can vary is the Requirements that are delivered in the fixed time for the fixed cost.It is quite probable that the initial Product Backlog will contain more PBI than could reasonably be developed in the fixed time available; because the stakeholders/Product Owner has ordered the Backlog by business value, it is relatively straightforward to ‘draw a line’ underneath the lowest PBI in the list that will probably be developed.  We do not remove the lower value PBI because it has been often found during development that a high-value PBI is actually dependant on one of the lower value ones and the ordering has to be amended.Stakeholders need to understand that even though some requirements (PBI) have been requested, it is probable that they will not be delivered.But the Product Backlog scoping does not stop there.  The ‘story Points’ for the PBI are estimates and, by definition, they are not accurate.  In the past, to account for ‘inaccurate’ estimates, organisations have added contingency in time and costs to the estimates.However, in Agile environments where the time and costs are effectively fixed, the development needs some ‘wriggle room’ for when estimates are proved significantly wrong and when requirements change during the development. For an effective Product Backlog, you need to follow Scrum Product Backlog tips.The Minimum Viable Product (MVP)The development team must agree with the Product Owner/Stakeholders which PBI represent the Minimum Viable Product, ie what is the minimum to be delivered in the fixed time in order to accrue the minimum benefit required.There are ‘rules’ how big this MVP can be.  It has been found, from hard-won experience that for a ‘comfortable’ working environment:1. When a team first starts an Agile transformation they should accept PBI in the MVP which represent around 50% to 55% of the estimated effort; ie if there are 200 ‘Story Points’ in the probable PBI, then the MVP should only contain the highest value PBI whose ‘Story Points add up to between 100 and 110.2.When the team and the organisation are reasonably Agile-mature, between 9 months and a year of transformation, the team can accept PBI representing up to 65% of the total estimated effort in the MVP.3.When the team and organisation are fully Agile-mature, PBI representing up to 70% by estimated effort may be accepted in the MVP.  It has been found that no matter how good the teams and organisation are, the variables that come along with all product development make promising more than 70% by estimated effort fraught with problems; the teams must strive not to give stakeholders over-expectations.  The MoSCoW RulesSome Agile Frameworks recommend using a technique called MoSCoW to ‘categorise’ the PBI.  The acronym stands for:Must Haves: Those PBI that is essential to the product; equivalent to the MVP above.Should Haves: Those PBI that is important but there is a workaround for them if they not completed in the fixed timeCould Haves: Those PBI that might be developed if all the Musts and Shoulds have been completed before the end of the fixed timeWon’t Haves:  Those PBI that was initially discovered but was not likely to be completed based on the estimates for the more valuable PBI“The ‘o’s are just for fun”!Using the MoSCoW rules allows the Business Case to be prepared with 3 scenarios:The ‘Best Case’ scenario where all the probable PBI are completed; giving the best benefit in the fixed timeThe ‘Expected Case’ scenario where all the Musts and Shoulds are completed giving the majority of the expected benefits in the fixed timeThe ‘Worst Case’ scenario where only the Musts are delivered giving only the essential expected benefits in the fixed time.Case Study 1:I was working as a business analyst and ‘just-in-time’ Agile trainer/coach for an outsourced team building a replacement system.  The team had 6 full-time business representatives to specify the Agile Requirements (UML Use Cases in this instance).Creation of the Product Backlog went smoothly; a good ‘To-Be’ Business Process Model was created and Use Cases to be included in the new system were identified; there were 92.Unfortunately, I was due to go on 3 weeks holiday, so I briefed the team on how to order the Product Backlog and we ran through some Planning Poker with a few of the Use Cases.When I came back from holiday, I discovered that the team business representatives had had problems in ordering the Product Backlog and had abandoned the attempt because they considered that all the PBI were essential.  Also, the whole team had had problems with Planning Poker because they didn’t know enough about the low-level details.It had been decided to prototype all the Use Cases before estimation and the developers were split into 3 sub-teams for prototyping and the business representatives split into 3 pairs.I had taught the team that the prototyping of any PBI should only go through 3 cycles:1. Investigation where a very rough ‘first draft’ is specified, built and reviewed to make sure that the developers are ‘on the right lines’2.Refinement where the majority of the functionality is specified, built and reviewed3.Consolidation where any ‘tidying-up’ was specified, completed and the complete prototype demonstrated to the wider stakeholder communityIf it takes more than the 3 cycles, then something is wrong with the detailed process being followed.The time taken to produce a prototype should be no more than 2 days but it can be as short as 2 to 3 hours if done in a workshop.Unfortunately, it was decided to pick Use Cases to prototype based on their perceived ‘easiness’ and ‘rotate’ the business representative pairs around the prototype builders such that one pair specified the Investigation, another pair reviewed the Investigation and specified the Refinement and the third pair reviewed the Refinement and specified the Consolidation. At the ‘final’ review, with all 6 business representatives present, the ‘final’ prototypes were significantly different from what was originally specified for the Investigation and ‘recriminations’ took place.  So the prototype developers started again.It had taken 3 weeks to develop the prototypes for 6 PBI!I asked the project manager what his estimate was for completing the prototypes for all the PBI; he calculated that the time that would be necessary was 1 month longer than the specified length of the project.Suffice to say that I worked with the customer representatives to convince them that it would be improbable to complete all the PBI in the fixed time/fixed cost development contract and helped them order the Product Backlog and decide on an MVP. It is worth noting this product development had a Vision, there were no stated objectives nor a visible Business Case.I worked with the developers and business representatives (who were full team members) to ‘play’ Planning Poker.Actual development work started one week later; PBI were completed in the fixed time that equated to approximately 70% of the expected business benefit; a further short project was commissioned to bring the expected business benefit up to 90%.Lessons:1. Do not go on holiday at a crucial time during the product development lifecycle!2. If the Product Backlog is not ordered by business value, significant time will be wasted prototyping PBI of low business value3. If prototyping is to be used, then the whole team should do it together in a workshop; all views will be accessible to all team members and a consensus reached in the minimal amount of time4. If you are an Agile Project Manager/Scrum Master it is your responsibility to keep the team ‘on track’ and to question decisions that may cause a risk to the projectCase Study 2:I had been asked to do some Agile coaching for some teams in a global organisation that was undertaking the Agile transformation of one of their divisions to use SAFe®/Scrum; the transformation had been running for 6 months.  There were 4 teams distributed around the globe doing support work to enable 24-hour coverage for this global organisation.The reasons for SAFe®/Scrum for this transition I covered in my first article.When I arrived Product Backlog requests were arriving daily to the team members from systems users and the individual team member decided whether the requests were important enough to interrupt the work that they were already doing; the Product Owners were not involved in the decision-making process at all.  As a consequence, there were many requests that had been started and abandoned in favour of ‘questionable’ higher priorities and I discovered that some requests had been sent to inappropriate team members, the work would have been better carried out by members of the other global teams.Furthermore, although the teams were doing some Relative Estimating at Sprint Planning (not before), they were focusing on time estimates because that was what the requirements management tool required and what management was tracking progress by.  I shall cover the pitfalls of Sprint Planning in my next article.I started resolving the Product Backlog issues by speaking to all the Product Owners, mostly via video-conferencing, to see if they understood the problems that the current Product Backlog processes were causing.  They did have some understanding but explained that that was the way they worked before the Agile transition and believed that changes to the process were out of their control.I helped them devise a workable process whereby all requests would be sent to  the Product Owners  at a collective address.  They would take turns during a 24-hour period to determine, with Product Managers, the relative priority of new requests against those already on the Backlog.  In addition, once a week, they would ‘get together’ to decide which team would handle any unassigned requests; ‘show-stopper’ requests would be handled as a matter of urgency and handled by whichever team was immediately available and could resolve the issue before their end-of-day.By this process, the Product Owners would gain control of the Product Backlog, there would be less questionable priority decisions and there would be fewer ‘disgruntled’ customers.The process was approved by the Product Managers and all team members apprised of the reasons for the new process and their responsibilities within it.It quickly became obvious at daily Scrums that not all team members were passing all requests that came to them directly from customers to the Product Owners; the process was reiterated to these team members but then the productivity of some of these members decreased significantly.  The cause was that they were still working on their ‘favourite’ customers requests but not reporting it to the rest of the team.The Product Owners then had to analyse the central Change Request system for items that had been completed by their teams but had not appeared on the Product Backlog; the Change Request system was not integrated with the Product Backlogs.Eventually, the ‘lesson’ was learned by ‘miscreant’ team members.Lessons1. Without control of the Product Backlog by the relevant authority (Product Owners), it is impossible to police work to give the best business value to the organisation2. Without control of the Product Backlog, the resolution to some requests may be started and then abandoned in favour of other later requests leaving the customer frustrated3.Estimating by time at the task level wastes a great deal of time; more of which in my next article.ConclusionThe Product Backlog is arguably the most important artifact for product development:The PBI must be ordered by business valueThe PBI must be estimated, preferably by using Planning PokerIts content over time must be controlled by the Product Owner or equivalentTeam members must be closely coached and mentored during the early instigation of process change to ensure their understanding of the need for the change and their compliance

How Not To Be Agile -An Effective Product Backlog

3558
  • by Steve Ash
  • 08th Oct, 2018
  • Last updated on 11th Mar, 2021
How Not To Be Agile -An Effective Product Backlog

Introduction

Hello and welcome to this, the third article in the series ‘How Not to be Agile’.

‘How Not to be Agile’ may seem a strange title for blogs about how good Agile is!  What I intend to do over this series of articles is to share with you the misinterpretations, omissions, and mistakes that people make that significantly reduce the potential benefits when an organisation, or a part of it, embark on an Agile Transformation.

Last time, I discussed the potential pitfalls of not having a suitable Business Case for whatever it is that we are trying to achieve, be it a new product, a major change to an existing product or the Agile transition itself.

This time, I will cover some of the misunderstandings and malpractices that I have come across with respect to the next major item to consider in any Agile framework, the requirements.  The most often used term for the requirements list is the Product Backlog from Scrum; I will use this and other Scrum terminology in this article but you can use whatever names you like; it is the content and management of the requirements list that is important.

I will start with a description of the Product Backlog process and then give examples of what has and could go wrong if not follows the Product Backlog tips.

The Definition of Scrum Product Backlog

Scrum Product

 
Having achieved an agreed Vision and Objectives and decided that the Business Case for the product development is viable, the business stakeholders and development team need to discover a list of ‘business requirements’, at the same level of detail, so that the development team can develop the product in a series of short development timeboxes.

These ‘requirements’ become Product Backlog Items (PBI). 

What is a ‘Requirement’?

Functional Requirements:

There are 3 commonly used ‘structures’ used to express ‘Agile functional requirements’:

Elementary Business Processes (EBP) – the names of EBP, usually extracted from the results of the Business Process Modelling exercise concerned with the area of the business that the product is for; for example:

                                                                                              ‘Capture Customer Details’

Use Cases – from the Unified Modelling Language (UML).  Only the names of the Use Cases, again, usually extracted from the results of Business Process Modelling exercise and the example is the same as for the EBP above
User Stories – a technique from eXtreme Programming which states the user of a business process, the name of the process and why the  process is needed; for example:
                                                                                                    ‘As a sales person
                                                                                  I need to Capture the Customer Details
                                                                                        So that payment can be taken’


For all the 3 ‘requirements’ types, it is only the names of the business process that are needed (with the addition of the other 2 clauses in User Stories); there should be no lower level details in the PBI.
The level of detail for all of the above can be summarised as:

                                            
‘The name of one job, being performed by one person, at one time’

Non-Functional ‘Requirements’:

In addition to the Functional Requirements, the ‘What’, the business will also express the needs of ‘How’ the product will perform such as:

  • All screens must refresh within 5 seconds
  • The system must be available 24/7/365
  • The system must conform to the company marketing graphic language
    and so on and so forth.

These Non-Functional ‘requirements’ can be added to the Product Backlog in a separate section from the Functional Requirements or in a separate ‘document’.

What A PBI Is Not

There was a fashion, that still exists in some places, to have ‘Technical User Stories’; ‘User Stories’ those name technical activities that need to be done; for example:
As a database designer
                                                                         I need to create data access scripts
                                                     So that the product can store and retrieve the data that it needs to use


Such User Stories would just be stating elements of a team member’s work and do not add anything to the understanding of the business needs which the Product Backlog is meant to represent.

It is my strong recommendation that so-called ‘Technical User Stories’ are NOT used because the Product Backlog becomes large, unwieldy, almost impossible to order by business value and prioritisation; the estimated effort for these technical needs are included in the estimation of the ‘business’ PBI; more of which later.

It is true that there may be a need for some activities to set-up the technical environment before the development team can start developing the product, some of which are out of the control of the development team; these activities should take place in parallel with creating the initial Product Backlog.

Creating a Product Backlog

Ordering the Product Backlog

The whole point of Agile is to deliver a product incrementally so that the business can accrue the best value in the shortest possible time.

It, therefore, follows that the product needs to be developed by developing the PBI in the business value order; the highest business value PBI first.

Therefore, the PBI needs to be ordered by business value. I will not go into the techniques for ordering PBI, they are well documented elsewhere but I will give an example, later, of what happened when one team did not use Product Backlog ordering.

Estimating the PBI

We create the initial Product Backlog just after agreeing on the Vision and Objectives and ensuring development viability via the Business CASE  but before development begins; it needs to be estimated in some way to determine how long it may take to develop the product and consequently how much it may cost to develop.

It is a tenet of all Agile frameworks that only the development team is allowed to estimate the PBI.  Once done, these estimates will ‘inform’ the Business Case and analysis can be made to see if the original ‘high-level’ estimates in the initial Business Case are of the same order; a decision can be made as to whether the development is still viable.

Types of PBI estimating

There are 2 generally used types of PBI estimating:

1. Absolute Estimating:  Whereby each PBI is estimated by how much time it would take go from just its name to ‘potentially shippable’ functionality.  Of course, the tasks include analysis, design, construction and testing and what normally happens is that each ‘skill’ will estimate the time it would take for their part in the process and the times summed to get the overall estimate.

2. Relative Estimating:  Whereby the team chooses the PBI which is likely to be ‘the smallest’.

“The smallest in what respect?”  you ask.  The ‘smallest’ does not directly consider time; the PBI criteria that are considered are size and complexity.

However, opinions of size and complexity will vary amongst all team members depending on their skill and experience; what may seem ‘simple’ to an experienced developer may seem complex to the less experienced person.  Similarly, although the analysis and construction may seem simple, the testing may be complex.

For these reasons, it is highly recommended that Relative Estimating is done using ‘Planning Poker’ which is well described elsewhere (see ‘Planning Poker: An Agile Estimating and Planning Technique’); suffice to say here, that once the team have decided which is the ‘smallest’ PBI, they give it a ‘Story Point’ of 1 and all other PBI are estimated with respect to their individual relative size and complexity compared to the ‘smallest’.

So which estimating technique to use?

1. Absolute Estimating can take a long time; it is akin to the traditional way of estimating for the Project Plan.  Also, it has been established that, generally, we are not very good at estimating in time; the larger the thing we are trying to estimate, the worse our estimates get.  However, the technique is familiar to most people and does not require a change of mindset to produce estimates.

2. Relative Estimating requires a totally different mindset amongst the development team members because, initially, not only are they using unfamiliar criteria to estimate the PBI but also, they are estimating in collaboration with other team members with different skill sets and experience.

Despite there being ample evidence that Relative Estimating takes less time overall and allows the stakeholders and development team to focus on business benefit being delivered, because of the ‘difficulties’ of introducing Relative Estimating, many teams revert to time estimation and tracking time.  Also, as we will see in one of the Case Studies below, an organisation’s choice of requirements management tool can make the use of Relative Estimating seem a waste of time for team members.

Another Potential Problem with Relative Estimating

So, having carried out ‘Planning Poker’, the development team now know the total number of ‘Story Points’ that the development represents; not much good to the business stakeholders who want to know how long it is going to take and how much it is going to cost.

On completion of the initial Product Backlog and before development begins, we need to ‘translate’ this total ‘Story Points’ into time.

An Agile Team’s progress is measured by the number of ‘Story Points’ that they deliver in one Sprint; known as the team’s ‘Velocity’.

So we need a knowledge of the team’s Velocity in order to establish an estimate of how long the development is likely to take; for example, if the total number of ‘Story Points’ is 200 and the team’s velocity for a 2-week Sprints is 10, then the estimated time to complete all the PBI is:

         200 ‘Story Points’ / 10 ‘Story Points per Sprint  x 2 (the number of weeks per Sprint) = 40 weeks

However, at the start of an Agile transition, we do not know what the team’s Velocity is or will be.  There are 2 methods to determine what the Velocity may be:

1. The team takes one of the ‘smallest’ PBI (with a Story Point of 1) and does a traditional break down to the tasks involved and estimate those tasks in time;  1 ‘Story Point’ is equivalent to the time represented by the sum of the times estimated for all the tasks
The team’s Velocity may be estimated by:
                                      ‘The number of working days in the Sprint / the estimated days for 1 Story Point’
For example, if the ‘time estimate’ for a PBI of 1 ‘Story Point’  is 1 day:
                                             10 working days in 2-week Sprint / 1 day = Velocity of 10
This velocity can then be used in the formula above to determine the estimate for the potential total time for the development.

2. The development team is allowed to start development for 2 or 3 Sprints taking PBI from the top of the Product Backlog.  At the end of the ‘experiment’ period, the total number of ‘Story Points’ for the completed PBI divided by the number of Sprints completed becomes the Velocity to use in the formula above to determine the estimate for the potential total time for the development.

The potential problem with this method is that management have to release funds for this experimental period without knowing the values to feed into the Business Case to determine whether the product development is viable before development begins.

Once teams have completed 1 product development, we recommend that the team members are kept together for other product developments even though the business area or technology may be different.  Having a team that works well together is more important than creating teams in an ad-hoc manner.  A team’s Velocity varies insignificantly over different product developments and so can be used directly in the formula above to determine the estimate for the potential total time for the development.\

Scoping the Product Backlog

Generally, Agile product developments have strict deadlines so that the major benefits can be accrued; benefits such as competitive advantage, meeting marketing needs, meeting customer expectations or complying with regulations.

Also, Agile teams comprise all the skills necessary to take the PBI from ‘names’ to a potentially shippable product; not all team members are full-time but the team is fixed.

Therefore, generally, the costs for a fixed time product development are also fixed.
Given the classic ‘Iron Triangle’ of development variables:
Scoping the Product Backlog


If we fix time and cost, then the only thing that can vary is the Requirements that are delivered in the fixed time for the fixed cost.

It is quite probable that the initial Product Backlog will contain more PBI than could reasonably be developed in the fixed time available; because the stakeholders/Product Owner has ordered the Backlog by business value, it is relatively straightforward to ‘draw a line’ underneath the lowest PBI in the list that will probably be developed.  We do not remove the lower value PBI because it has been often found during development that a high-value PBI is actually dependant on one of the lower value ones and the ordering has to be amended.

Stakeholders need to understand that even though some requirements (PBI) have been requested, it is probable that they will not be delivered.

But the Product Backlog scoping does not stop there.  The ‘story Points’ for the PBI are estimates and, by definition, they are not accurate.  In the past, to account for ‘inaccurate’ estimates, organisations have added contingency in time and costs to the estimates.

However, in Agile environments where the time and costs are effectively fixed, the development needs some ‘wriggle room’ for when estimates are proved significantly wrong and when requirements change during the development. For an effective Product Backlog, you need to follow Scrum Product Backlog tips.

The Minimum Viable Product (MVP)

The development team must agree with the Product Owner/Stakeholders which PBI represent the Minimum Viable Product, ie what is the minimum to be delivered in the fixed time in order to accrue the minimum benefit required.

There are ‘rules’ how big this MVP can be.  It has been found, from hard-won experience that for a ‘comfortable’ working environment:

1. When a team first starts an Agile transformation they should accept PBI in the MVP which represent around 50% to 55% of the estimated effort; ie if there are 200 ‘Story Points’ in the probable PBI, then the MVP should only contain the highest value PBI whose ‘Story Points add up to between 100 and 110.

2.When the team and the organisation are reasonably Agile-mature, between 9 months and a year of transformation, the team can accept PBI representing up to 65% of the total estimated effort in the MVP.

3.When the team and organisation are fully Agile-mature, PBI representing up to 70% by estimated effort may be accepted in the MVP.  It has been found that no matter how good the teams and organisation are, the variables that come along with all product development make promising more than 70% by estimated effort fraught with problems; the teams must strive not to give stakeholders over-expectations. 

The MoSCoW Rules

Some Agile Frameworks recommend using a technique called MoSCoW to ‘categorise’ the PBI.  The acronym stands for:

  • Must Haves: Those PBI that is essential to the product; equivalent to the MVP above.
  • Should Haves: Those PBI that is important but there is a workaround for them if they not completed in the fixed time
  • Could Haves: Those PBI that might be developed if all the Musts and Shoulds have been completed before the end of the fixed time
  • Won’t Haves:  Those PBI that was initially discovered but was not likely to be completed based on the estimates for the more valuable PBI

“The ‘o’s are just for fun”!

Using the MoSCoW rules allows the Business Case to be prepared with 3 scenarios:

  • The ‘Best Case’ scenario where all the probable PBI are completed; giving the best benefit in the fixed time
  • The ‘Expected Case’ scenario where all the Musts and Shoulds are completed giving the majority of the expected benefits in the fixed time
  • The ‘Worst Case’ scenario where only the Musts are delivered giving only the essential expected benefits in the fixed time.


Case Study 1:

I was working as a business analyst and ‘just-in-time’ Agile trainer/coach for an outsourced team building a replacement system.  The team had 6 full-time business representatives to specify the Agile Requirements (UML Use Cases in this instance).

Creation of the Product Backlog went smoothly; a good ‘To-Be’ Business Process Model was created and Use Cases to be included in the new system were identified; there were 92.

Unfortunately, I was due to go on 3 weeks holiday, so I briefed the team on how to order the Product Backlog and we ran through some Planning Poker with a few of the Use Cases.

When I came back from holiday, I discovered that the team business representatives had had problems in ordering the Product Backlog and had abandoned the attempt because they considered that all the PBI were essential.  Also, the whole team had had problems with Planning Poker because they didn’t know enough about the low-level details.

It had been decided to prototype all the Use Cases before estimation and the developers were split into 3 sub-teams for prototyping and the business representatives split into 3 pairs.

I had taught the team that the prototyping of any PBI should only go through 3 cycles:

1. Investigation where a very rough ‘first draft’ is specified, built and reviewed to make sure that the developers are ‘on the right lines’

2.Refinement where the majority of the functionality is specified, built and reviewed

3.Consolidation where any ‘tidying-up’ was specified, completed and the complete prototype demonstrated to the wider stakeholder community

If it takes more than the 3 cycles, then something is wrong with the detailed process being followed.

The time taken to produce a prototype should be no more than 2 days but it can be as short as 2 to 3 hours if done in a workshop.

Unfortunately, it was decided to pick Use Cases to prototype based on their perceived ‘easiness’ and ‘rotate’ the business representative pairs around the prototype builders such that one pair specified the Investigation, another pair reviewed the Investigation and specified the Refinement and the third pair reviewed the Refinement and specified the Consolidation.
 
At the ‘final’ review, with all 6 business representatives present, the ‘final’ prototypes were significantly different from what was originally specified for the Investigation and ‘recriminations’ took place.  So the prototype developers started again.

It had taken 3 weeks to develop the prototypes for 6 PBI!

I asked the project manager what his estimate was for completing the prototypes for all the PBI; he calculated that the time that would be necessary was 1 month longer than the specified length of the project.

Suffice to say that I worked with the customer representatives to convince them that it would be improbable to complete all the PBI in the fixed time/fixed cost development contract and helped them order the Product Backlog and decide on an MVP. It is worth noting this product development had a Vision, there were no stated objectives nor a visible Business Case.

I worked with the developers and business representatives (who were full team members) to ‘play’ Planning Poker.

Actual development work started one week later; PBI were completed in the fixed time that equated to approximately 70% of the expected business benefit; a further short project was commissioned to bring the expected business benefit up to 90%.

Lessons:

1. Do not go on holiday at a crucial time during the product development lifecycle!

2. If the Product Backlog is not ordered by business value, significant time will be wasted prototyping PBI of low business value

3. If prototyping is to be used, then the whole team should do it together in a workshop; all views will be accessible to all team members and a consensus reached in the minimal amount of time

4. If you are an Agile Project Manager/Scrum Master it is your responsibility to keep the team ‘on track’ and to question decisions that may cause a risk to the project

Case Study 2:

I had been asked to do some Agile coaching for some teams in a global organisation that was undertaking the Agile transformation of one of their divisions to use SAFe®/Scrum; the transformation had been running for 6 months.  There were 4 teams distributed around the globe doing support work to enable 24-hour coverage for this global organisation.

The reasons for SAFe®/Scrum for this transition I covered in my first article.

When I arrived Product Backlog requests were arriving daily to the team members from systems users and the individual team member decided whether the requests were important enough to interrupt the work that they were already doing; the Product Owners were not involved in the decision-making process at all.  As a consequence, there were many requests that had been started and abandoned in favour of ‘questionable’ higher priorities and I discovered that some requests had been sent to inappropriate team members, the work would have been better carried out by members of the other global teams.

Furthermore, although the teams were doing some Relative Estimating at Sprint Planning (not before), they were focusing on time estimates because that was what the requirements management tool required and what management was tracking progress by.  I shall cover the pitfalls of Sprint Planning in my next article.

I started resolving the Product Backlog issues by speaking to all the Product Owners, mostly via video-conferencing, to see if they understood the problems that the current Product Backlog processes were causing.  They did have some understanding but explained that that was the way they worked before the Agile transition and believed that changes to the process were out of their control.

I helped them devise a workable process whereby all requests would be sent to  the Product Owners  at a collective address.  They would take turns during a 24-hour period to determine, with Product Managers, the relative priority of new requests against those already on the Backlog.  In addition, once a week, they would ‘get together’ to decide which team would handle any unassigned requests; ‘show-stopper’ requests would be handled as a matter of urgency and handled by whichever team was immediately available and could resolve the issue before their end-of-day.

By this process, the Product Owners would gain control of the Product Backlog, there would be less questionable priority decisions and there would be fewer ‘disgruntled’ customers.

The process was approved by the Product Managers and all team members apprised of the reasons for the new process and their responsibilities within it.

It quickly became obvious at daily Scrums that not all team members were passing all requests that came to them directly from customers to the Product Owners; the process was reiterated to these team members but then the productivity of some of these members decreased significantly.  The cause was that they were still working on their ‘favourite’ customers requests but not reporting it to the rest of the team.

The Product Owners then had to analyse the central Change Request system for items that had been completed by their teams but had not appeared on the Product Backlog; the Change Request system was not integrated with the Product Backlogs.

Eventually, the ‘lesson’ was learned by ‘miscreant’ team members.

Lessons

1. Without control of the Product Backlog by the relevant authority (Product Owners), it is impossible to police work to give the best business value to the organisation

2. Without control of the Product Backlog, the resolution to some requests may be started and then abandoned in favour of other later requests leaving the customer frustrated

3.Estimating by time at the task level wastes a great deal of time; more of which in my next article.


Conclusion
The Product Backlog is arguably the most important artifact for product development:

  • The PBI must be ordered by business value
  • The PBI must be estimated, preferably by using Planning Poker
  • Its content over time must be controlled by the Product Owner or equivalent
  • Team members must be closely coached and mentored during the early instigation of process change to ensure their understanding of the need for the change and their compliance

Steve

Steve Ash

Blog Author

Steve Ash has been working with ‘Agile’ since 1993 when it was known as ‘Managed RAD’.  He was an early adopter of the DSDM Framework in 1995 becoming a DSDM Board Member in 2002 and was a DSDM examiner.  He is a DSDM Advanced Practitioner and Accredited Trainer/Coach. Steve has since embraced Scrum, Kanban, the techniques advocated by XP, Lean Software Development and Lean Startup. He joined the Agile Alliance in 2002 and is a Certified Scrum Master (CSM), Certified Scrum Product Owner (CSPO), SAFe® Certified Consultant (SPC4) and certified by APMG International to teach Agile Project Management and Agile Business Analysis courses. Since 1996, Steve has trained, mentored and coached hundreds of people in many public and commercial organisations in 11 countries from the USA, through Europe and India to Asia/PAC.
 

Join the Discussion

Your email address will not be published. Required fields are marked *

Suggested Blogs

The Definitive Guide to Agile Framework

In present times, nearly all software development companies and teams tend to follow Agile in one form or another. But, before committing to Agile, it is very important to understand-What is Agile?How does Agile work?Organizations and project teams should primarily understand “why” they want to adopt Agile. If you are keen on learning more about Agile, you have landed yourself in the perfect place, where you will get to know everything that you need to know about Agile, right from the history to its usage.Here, we will not only discuss what Agile is but also talk about what Agile is not. Once you understand what Agile really means, you’ll not only be able to implement Agile practices at your organisation but also acknowledge situations which can be improved with the help of Agile.  Read along to know what it really means at its root.Understanding AgileAgile is not a methodology, neither is it a specific way of working on software development, nor a framework or process. Agile in actual, is a set of values and principles, as defined by the Agile Manifesto.It is a term which describes the different approaches to software development, highlighting team collaboration, incremental delivery, recurrent planning, and recurrent learning. It is an iterative approach that builds software incrementally, instead of delivering it all at once.Agile doesn’t make any decision for you but provides you with a platform that teams can make use of to make decisions that result in better software development.  How does Agile work?Agile breaks down a project into small scales of user functionality, known as user stories.  These can be compared to a to-do list that you make for the tasks that you have to complete. Developers work on these user stories, prioritise these user stories and group them into iterations, assigning deadlines to each iteration.  Once the iteration is over, developers might have a possible product that users can test. Hence, Agile projects help in creating user stories on which they can work iteratively, depending on the user’s feedback. This way, the software becomes better suited for users according to their needs while at the same time, it minimises complexity. Instead of a pre-set of requirements, developers work according to adapt their software as per the requirements by users’ feedback.Let’s take a step back and have a look at how Agile was discovered and where it came from.Life before AgileIn today’s world, project managers can make a choice out of multiple methodologies addressing the Software Development Life Cycle (SDLC) for a particular project. The top choice is Agile, which helps teams to work according to the changing requirements through incremental, iterative project work.Before Agile was born, the process that SDLC  followed was very inflexible. The process it followed was:Collecting the requirementsDesigning and implementing the softwareVerifying if the software is still functioningMaintaining the softwareWithout any alteration, the phases were completed in the above-mentioned order. Each phase was first completed and validated before starting the next process. Any changes in the previous phase meant starting the project from the square one until each phase was redone and approved.Though it's unbelievable, such inflexibility of this process didn’t cause any kind of hindrance in the process of software development. This was because technological innovation was very slow at that period of time. There was no problem in spending several months gathering information and requirements, while at the same time design a software program.Origin of AgileIn the early 2000s, seventeen software developers met in Snowbird, Utah to discuss the methodologies that were being used at that time. These seventeen software developers included Kent Beck, Ward Cunningham, Dave Thomas, Jeff Sutherland, Ken Schwaber, Jim Highsmith, Alistair Cockburn, and Bob Martin. They all published the ‘Manifesto to Agile Software Development’ together, which marks the start of the agile movement.According to the Agile Manifesto:The 4 core values as stated by the Agile Manifesto are:Individuals and interactions over processes and toolsWorking software over comprehensive documentationCustomer collaboration over contract negotiationRespond to change over following a planThe four values outlined in the Agile manifesto promotes focusing more on the quality of the software by creating products that meet the consumer’s needs and expectations.The four values and twelve principles of the Agile ManifestoIndividuals and interactions over processes and toolsPeople and individuals respond to the business needs in order to drive the development process, hence people should be valued more than tools or processes.Working software over comprehensive documentationAgile takes user stories as requirements, which a developer uses to begin building new functions.  The Agile Manifesto values working software more than it values documentation.Customer collaboration over contract negotiation According to the Agile Manifesto, a customer can be engaged and can collaborate throughout the process of development. This makes it easier for the team to meet the needs of the customer.Respond to change over following a planWith Agile, priorities can be changed from one iteration to another iteration while new features can be added as well. Agile believes that changes improve a project and provides additional value.The Twelve Principles are the guiding principles for the methodologies which are included in the Agile Manifesto. It describes the way by which changes are welcomed and customers are focused during the process.Highest priority is to satisfy the customer through early and continuous delivery of valuable software.The focus is to deliver what the customer wants, not what one has planned. Customers are more happy with receiving working software at regular intervals, rather than waiting for a long period for new releases.Welcome changing requirements, even late in development. Agile processes harness change for the customer’s competitive advantage.Embrace changes, even if it is requested by the customer late in the project. One can try and avoid delays when a new change has been requested.Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to a shorter timescale.Create short periods of time to run tasks and make changes. It ensures a regular delivery of the working software.Business people and developers must work together daily throughout the project.It is important to build a bridge between developers and the business side of the project so that they can make use of the same tools and work together to make better decisions.Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.Motivate and support your team so that they work in a more dedicated manner. Motivated teams deliver the best of the results that they can.The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.Communication is a key factor for teams in order to deliver information. Communication is possible in multiple ways, like documenting conversations, creating email streams, using collaboration software, keeping the development teams co-located, etc.Working software is the primary measure of progress.Progress is measured by the success of the software (or the product), not by completing the tasks and moving along the timeline.Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.Sprints in activities help teams stay motivated and less burnout, which doesn’t affect the quality of the project.Continuous attention to technical excellence and good design enhances agility.To maintain the right pace and in order to constantly improve the product, the right skill, as well as good design, is very important.Simplicity—the art of maximizing the amount of work not being done—is essential.Cut down the unnecessary complexities and keep things as simple as possible in order to streamline your development process.The best architectures, requirements, and designs emerge from self-organizing teams.Team members take ownership, communicate more regularly and share ideas in order to deliver quality products.At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behaviour accordingly.The process of self-improvement, process improvement, working on their skills and techniques helps a team to work in a more effective manner.Why use Agile?Agile involves the process of continuous planning and feedback in order to deliver business value since the beginning of the project. The whole process encourages user involvement as well as provides visibility and transparency so that the actual progress of the project is visible. Read along to know the key benefits of agile management.Increased project control with early and predictable delivery:Due to regularised sprint meetings, features are delivered in more flexible manners with more transparency. If the demands are met before the planned or predicted date, the software can be Beta-tested or released beforehand.Client gratification:The process involves allowing the client to determine the priority list of the features. This way, the team can understand what is more important to the client and his business, and work accordingly. The client is involved in every sprint review. Moreover, the process helps in delivering the products quicker or by the predicted date, making the clients get early access to the product.Improvement in quality:Since the exercise involves breaking down the project into small units, high-quality development, testing and collaboration come into focus. Moreover, the quality is improved due to frequent builds and testing after each iteration as defects can be identified and fixed during the process.Predictability of Projects:The value of a project is calculated on the basis of cost and ROI. If the ROI outweighs the cost, then the company might carry the project further. But predicting the results of the projects where ROI is not known becomes strenuous. Hence, predictability is very crucial in projects. By using Agile techniques during the planning phase of the project, the cost of a project can be predicted and it can also be concluded if they should continue with the project.Reduced Risk: The chances of project failure are nearly eliminated by the use of Agile methodologies as a functioning product is available from the very first sprint. Since the product is developed in sprints, it is easier to know if the product or the approach will work or not.Analysis, design, coding, and testing happens continuously:For an Agile project, analysing, designing, coding and testing are never done with. As long as there are features to work on and deliveries to make, these activities are a continuous process.Not all developers advocate agile. Some of the developers follow the traditional methodology known as ‘waterfall’, which is also used widely in businesses. Let's have a look at what this traditional methodology is and how it is different from Agile.Waterfall Vs Agile:What is Waterfall methodology?Waterfall methodology is a linear approach to software development. The Waterfall model follows the sequential order, meaning that the project development team moves to the next phase of testing or developing only if the previous step has been completed successfully.This method is also known as the Linear Sequential Life Cycle Model.What is Agile?Agile follows the process of continuous development and testing in the software development process itself. Unlike the Waterfall Model, the development and testing activities are concurrent in this model. Communication between the customers, developers, managers, and testers are possible in this methodology.Advantages of the Waterfall Model:Makes faster delivery of the project.The whole process and the results are documented properly.Works well for small sized projects where there are easy requirements.Each phase has a specific delivery date and a review processBeneficial for managing dependencies.Advantages of the Agile:This process focuses on the client, making sure that the client us involved during all the stages.The quality of the developed product is assured with the usage of this method.The risk in the development process reduces as both the team and the client know the progress of the project.Better results are obtained.Limitations of the Waterfall Model:This model is not suitable for large size projects.One cannot move back in phases to make any changes.The results will be less effective if the requirements are not clear from the starting.In this model, the testing process starts only after the development is over. In such cases, there are higher possibilities that bugs will be found in the development, making it much more expensive to fix.  Limitations of the Agile:An expert is required to make important decisions.The project can go off track if the vision and mission of the project are not clear.The cost of implementation of the agile method is a little more as compared to other methodologies.Difference between Waterfall Method and Agile Methodologies.AgileProject Trait or FactoWaterfallHas an incremental approach.ApproachThe process is divided into distinct phases.Customers are preferred throughout the project.Customer AvailabilityCustomers are involved only after the product has been developed.Small teams with good coordination and synchronization.TeamTeam coordination and synchronization are limited.It has a flexible methodology.MethodologyIt has a structured process, so most of the times it can be quite rigid.Can be considered as a collection of many projects.Final ProductOne single project is completed after the software development.It is a flexible method which allows changes to be made as per requirements, even after the completion of the initial planning.ProcessThe requirements cannot be changed once the process of project development starts.Works well when the scope is not known in advance as changes can be made in the process.ScopeWorks well when the scope is known in advance or when there are limitations to changes in the process.Test Plan is reviewed after every sprint.Test PlanTest Plan is not discussed during the test phase.Follows an iterative approach. Planning, development, prototyping and other phases may occur more than once.Software Development PhasesThe project development phases like designing, development, testing, etc take place once, only after the process is done with.During the project, requirements are prepared every day by the Product Owner along with the team.RequirementsRequirements are prepared at the beginning of the project by the business analysts.Testing is performed simultaneously with the software development process.Testing of the productThe testing phase comes only after the Build has been prepared.Agile process flowThe following is an outline of the flow of the process from creating a product to the completion of a sprint in the Agile Development application.Step 1: Create a product.A product is a set of features that are offered to users. It can either focus on a few user stories or many users, which can contain many tasks.Step2: Create an agile group.A group of Agile team can be formed, defining the number of tasks that a member can complete in a sprint to define the capacity of the group.Step 3: Create a release.Create a release which has a start date and an end date, in which the development iterations will be completed.Step 4: Create a personalised background.It can be created by defining the filter criteria. It can be a combination of stories, incidents, defects, etc.Step 5: Create a sprint.It is the time frame within which a development team delivers one or more stories. A release can have multiple sprints. A team is expected to complete all the assigned stories within a sprint.Step 6: Planning the sprint. Before starting a sprint, decide on the stories from the backlog that can be committed to complete within a sprint. Stories to be worked on in a sprint should be selected on the basis of priorities.,Step 7: Track the progress of a sprint.Team members should update their tasks and story records on a daily basis to communicate regarding their progress.Step 8: Track the progress of the release.This is done to make sure that the team is completing stories and is on track to achieve the goal.Characteristics of Agile:The process of Agile Software Development involves cross-functional teams working concurrently on various phases like planning, designing, requirement analysis, etc. A working model becomes available at the end of each iteration. The following are the salient characteristics of Agile:Small sized, co-located,  self-organized teams work together in cross-functional ways to deliver business value.Management supports redistributed decision making.Face-to-face iteration replaces temporary documentation.The process supports full transparency, inculcating trust.Makes improvement in a continuous process, making it a part of the culture of the company.Short loops of feedback help in delivering high quality of products.Functions in small, cross-functional teams, which has proven to be more productive than larger teams.The process of continuous testing measures the progress as well as prevents defects.The transition of the project from one phase to another is smoother as the team has a proper, balanced distribution of tasks.All members act as leaders in the project as they lead and take responsibility in their respective project phases. A project is not complete if one member does not do their part.Working with Agile in a distributed team environmentFor a team working together, communicating in person is more sought after than being distributed over multiple locations. It is recommended to co-locate your team, but many times teams are unable to do so for critical business reasons. There’s more to the challenges faced by the distributed software team:Coordinating across different time zones.Building a good rapport when everyone is not present in the same officeCollaborating with different development cultures.Scheduling meetings when both teams are online for a short period of time.Under such situations, teams need to learn to follow Agile principles and practices in a distributed environment. This section discusses this in detail.Additional Communication responsibilities:Each team member needs to put in extra effort when working with remote team members and communicating with them, emphasizing more on the importance of being available and open.Dedication:All team members should be committed and dedicated to making Agile work in a distributed environment. The management must support the processes and tools required to do so.Even Distribution of Work:All team members should have a good understanding of their roles and responsibilities, along with an equal distribution of work. If there is an imbalance in the workload and it is being ignored, then it might risk the schedule of the project delivery.   Pair Programming:In pair programming, two members of the team sit side by side and work on the same code. It is a challenging task for distributed teams. This can be replaced by a virtual experience, like having a video-conferencing as a solution.Understand the Time Difference:Teams face a lot of communication problems if their team members work in different time zones. You can help your team across the world by making them aware of the different time zones in which the team members are working. Using a  physical map with pushpins depicting how the team is distributed, is an example for the same.Use the right tools and training:Identify the tools that will help your team. Get consents from your team members and see if the tool will be helpful for the team or not for that project. Most importantly, train your team on the tools. Don’t expect the team members to know about the new tools and how to use them without any practice.  Train them for the same.With many organizations going global, distributed teams are becoming a common culture to work in. Agile, along with additional efforts by the team, will work well with the distributed teams.Different Agile FrameworksThere are various methods and frameworks that are used by businesses and organizations in the world of development and manufacturing. To name a few:Extreme Programming(EX)ScrumFeature Driven Development (FDD)Dynamic Systems Development Method(DSDM)Crystal MethodologyKanban Method (Lean or Agile)Pragmatic ProgrammingLean DevelopmentUnified ProcessRational Unified ProcessScrum at a glanceScrum is a framework which is used by teams to help them manage their work. It implements Agile principles as a set of artifacts, roles, and practices.Scrum Roles: Scrum has specified three important roles, namely Product Owner, Scrum Master, Scrum Team.Product Owner:A Product Owner holds the responsibility for the product that the team is building and why they are building it. Moreover, he is responsible for keeping the backlog up-to-date and in the order of the priority.Scrum Master:He holds the responsibility to ensure that the team is following the scrum process. They are in the continuous look out for the team’s improvement, while at the same time work on resolving the backlog issues that arise during the sprint.  Scrum Team: The individuals who comprise the team with the responsibility of building the product. They are the engineer of the product and its quality.Scrum Events: Scrum events are used in order to create regularity. All the events are time-boxed, that is it cannot exceed the fixed maximum duration. The elements of Scrum Events are Sprint, Sprint Planning, Daily Scrum Meetings, Sprint Review, and Sprint Retrospective.Sprint: A product incremental is developed in a Sprint. It is usually of a duration of one month or less. The main motive is to provide a pattern to work for the team and the business.Sprint Planning: The work to be performed in a Sprint is discussed and planned in a Sprint Planning meeting.Daily Scrum Meetings:It is a 15-minute meeting held for the team which is conducted on a daily basis. The main motive is to understand the work done since the previously held scrum meeting and to create a plan for the day. It is often referred to as the Daily Stand-up Meeting.Sprint Review: A Sprint Review is held at the end of every Sprint. The team sits along with the stakeholders to discuss what was done in the Sprint. The main objective of this meeting is to obtain feedback for further progress.Sprint Retrospective: It occurs after a Sprint Review and prior to the next sprint planning. The main goal is to introspect and improve in order to make the next Sprint even more effective.Scrum Artifacts: It is like a logbook which provides the Scrum team and the stakeholders with the information that they need to be aware of, like the understanding of the project under development, the activities done and being planned in the project. The Scrum Artifacts are Product Backlog, Sprint Backlog, Product Increment.Product Backlog: It is a prioritized list of values that a team can deliver made available by the Product Owner to the Scrum Team. The Product Owner adds, changes and re-prioritizes the product backlog as needed.Sprint Backlog:It is the list of items that a team plans to deliver in the sprint. The sprint starts when all the members of the team agree that the Sprint Backlog is achievable.Product Increment: This is the most important Scrum Artifact. The product of a Sprint can be known as an Incremental if the produces product is potentially shippable. It should meet all of the quality criteria that are set by the Product Owner and the team.  What is Scaled Agile Framework SAFe®?Scaled Agile Framework provides a simple, lightweight experience for the software developing team, where they can apply lean-agile practices at the enterprise level. It can handle the needs of large value streams and complex system developments, despite being simple and light in weight. Its framework is divided into three segments: Team, Program, and Portfolio.SAFe® allow teams to do the following:Implement Lean-Agile software at an enterprise levelIt is based on the principles of  Lean and AgileIt is designed to meet the needs of all stakeholders within an organization.DevOps Vs AgileUsing Agile and DevOps are considered to be the best approach for bringing change within a team or an organisation. One of the most common questions that come across people’s mind is how are Agile and DevOps related to each other. In this regard, it must be noted that DevOps did not emerge as a response to Agile; rather these two are discrete approaches. DevOps slowly grew as a means to plug the communication gap in Agile development.Let's have a look at what this actually means and how Agile and DevOps are related.What is DevOps?DevOps is a culture which promotes collaboration between the Development and Operation Team. It helps in deploying code to production in a faster and automated way., increasing the organization’s speed to deliver applications and services.Difference between Agile and DevOps.AgileProject Trait or FactoDevOpsIt is an iterative approach that focuses on the collaboration, customer feedback and small releases of the product.DefinitionIt is an approach that brings together the practice of development and operations team.It focuses on constant changes.TaskFocuses on constant testing and delivery.Manages complex projects.PurposeManages end-to-end engineering processes.Provided by the customers.FeedbackProvided by the internal team.Agile doesn’t emphasize on automation.AutomationDevOps primary goal is Automation.Can be implemented with a range of frameworks like sprint, safe and scrum.ImplementationDoesn’t have any commonly accepted framework. Its primary goal is focusing on collaboration.Smaller the team, even a few people will work on the project, meaning they can move faster.Team SizeThey have a relatively larger team size as it involves stack-holders.Emphasizes on getting all of its members trained so that they can be familiar with the skills.Skill SetDevelopment and operation teams divide and spread the skill sets between themselves.Agile targets Software DevelopmentScopeDevOps targets end-to-end business solution and faster deliverySoftware DevelopingImportanceDeveloping, testing and implementation all are important.Application of Agile outside SoftwareThe end result after an agile application is a product or a project that will meet best with the customer needs, while at the same time deliver it with minimal cost and time, enabling organisations to attain results earlier as compared to the results obtained via the traditional approaches.The roots of Agile Software Developments are lean, agile manufacturing and organizational learning. Looking at these roots, one can realise that they did not originate in the world of software. Many practices of Agile like Stand-up meetings, prioritization, and visual management originated outside software.These techniques are applied in the development sector of non-software products as well, such as computers, medical devices, computers, food, clothing, etc. Principles of Agile Software Development have found applications in general management platforms, like finance, governance, risk, etc.Common Myths about AgileMyths and misunderstandings are common to spread over any method or framework. With time, it becomes a belief and people start to accept it as common knowledge. Read along to know some of the most common myths that have been growing around Agile.Implementation of Agile is easy:Teams should not just learn the best practices of Agile, but should also be able to judge if the selected project is the right fit for agile. They should evaluate if the organization can adopt the values and principles of agile. It is very important for the organisation to invest the time, effort and resources to institute and establish the expectations, culture, and infrastructure to hold up the implementation of Agile methodology. Practice and commitment are very much required as well.Agile Practice is New:Agile has been in practice since the greater part of the last century. The frameworks which are now collectively known as Agile mostly evolved during the late 1980s and 1990s. Hence, many people are familiar with Agile.  Reading is enough to know about Agile:Reading a book to understand Agile is not enough. It is a good idea to read a book to get a good understanding, but it cannot replace practical experience, which is very important to enable an agile mindset and to transform an organisation to become agile.Agile doesn't need any planning:Planning is very vital with any approach, that is if not carried out properly, it will diminish the effectiveness of performance. Although, Agile plans the activities more evenly throughout the project life cycle. Planning starts right from the beginning of an agile project and is continuously iterated throughout the project as new information is gained. Working in this manner makes the project team more effective and help them adapt to changes in an easier way.Agile is not the same as anarchy:Managers feel that self-organisation is identical to anarchy and hence, fear losing control over their agile team. Dues to Agile, the role of management may change but managers play an integral role in their company. They have the responsibility to define visions and goals, as well as help the team to gain full potential.Agile gives prompt results: Agile transformations always go through a learning curve, but they mostly deliver huge benefits. The delivered results might go downwards before it changes to going upwards in the process before it begins to enhance its delivery capabilities.Agile is possible only with small projects:Agile development is composed of small groups, who are cross-functional and collaborative throughout the process of development. This motion is equally effective for larger projects as multiple teams can be formed where they can focus on separate components.Agile is applicable only for software deliveries:The Agile manifesto describes agile in the context of software delivery. But Agile can be used in businesses which are not software-related as Agile is suitable for any dynamic business which experiences variability.Agile Transformation vs. Agile Adoption A strong majority of organizations are already defaulting to Agile. But there is one common barrier. The lack of understanding of the differences between Agile transformation and Agile adoption. A clear perception of these differences is necessary to realize which is the best fit for your team or organization ー Agile Adoption or Agile Transformation.Agile Adoption: The word Adoption is used to describe the action of taking up or putting something into action or effect. Similarly, Agile Adoption can be referred to as the act of “doing Agile”.Agile adoption makes the process of software development simpler, faster and better.Agile Transformation: Agile Transformation refers to the process of converting a business or an organisation from its previously followed methods to ‘Agile’ methods, which will help them in continuous delivery of software in a fluid manner. The process involves a change in the mindset of all the people working in the organisation, which might not be acceptable by all.An effective Agile transformation is usually seen to happen in three stages-Organizational transformation: This entails setting up teams, defining processes, and finally, deciding how the teams will work in close collaboration.Workflow transformation: This is intended to establish a culture of “self-organization” and empower team members to effectively carry out Agile-specific ceremonies and activities.Personal transformation: This phase aims at developing a collective “Agile mindset” which fosters continuous improvement and enables team members to deliver continuous value.  Agile AdoptionFactorAgile TransformationAgile adoptions are fast. Can be measured in days or weeks.Speed of ChangeAgile Transformations take a long time. Can be measured in years.Short TermPlanning TimeframeLong TermAgile Adoption has a very rare impact.Impact on the Structure of the organization.Directly impacts the power and controls in an organisation.The team and the stakeholders might feel that has changed to become more self-organized.Change in Culture.It has a widespread impact as the whole culture is being transformed.Agile will make all the difference The future is ripe with endless possibilities for Agile, and companies across the globe are already realizing it.Various organizations around the globe are now adopting different approaches to software development according to their needs and demands.Agile has got a promising future in particular for the teams making the best use of it.In the long haul, the same teams will help their organisations by delivering products at less cost. With AI and big data becoming a core part of decision making, data-driven Agile will soon become a major focus.On a closing note, Agile and its practice do not commit to resolving each and every problem faced by an organization. But they do guarantee to establish an environment which will help them solve problems through learning, continual planning, and collaboration.The motto remains the same: to deliver a high-quality product in a shorter period of time.
16910
The Definitive Guide to Agile Framework

In present times, nearly all software development ... Read More

Must-have tools for Seamless Agile Management

For a long time, developers did not have a lot of freedom with their projects when it came to product development. Expected to work within the restraints provided by the top management or the sponsor of the project, and creatively limited by locked plans, developers craved to think out of the box and unleash their intuition and skills to develop a much more productive system.  This led to the rise of Agile development, a methodology that allows developers to be flexible and creative in delivering exactly what users demand. Agile management took over a whole new system of development. This management system has come a long way since its birth and has now become one of the best manifestos for project management.   However, with such a heavy structure in place, there were strenuous tasks and methods involved. To get accustomed to this manifesto, you should invest in a good Agile and Scrum certification to get well versed with the different Agile tools given below: Agile Manager This tool helps organize and guide teams from the start as they work towards developing working code for an Agile model. At the beginning of this process, the manager will gather important user stories and contemplate on how to attack the problems addressed by them.  During each code sprint, the developers record their progress on user stories and their problems. The entire progress is plotted on a dashboard so that everyone is up to date with their work. Agile Manager dashboardThe Agile Manager offers many features: Creates epics and map them to releases, features and stories Uses story points for estimation Analyses sprint performance with help of dashboard and scrum Uses templates and custom statuses for process management JIRA The JIRA tool is one of the best tools for project management. The team first makes a list of project tasks with the help of a tool called Confluence. Then they track the tasks on an interactive Kanban board that developers can update as they finish each task.  This Agile tool is integrated with other tools. Bamboo is a tool that offers continuous integration that pre-builds the code before evaluating it. Discussions take place through HipChat, and these revolve around the tasks and probable solutions.  Jira dashboardMain features offered in JIRA include: Issue tracking Boards Epics Bug tracking Custom fields Planbox Planbox is a hierarchical tool. It offers four specific levels of organizational power, thus allowing many teams to simultaneously work towards a single goal. The topmost level is called the initiative, which is broad and abstract. They contain various projects, which are filled with tasks. Planbox creates these projects and evaluates them to form a report. This report is prepared for the shareholders.  There are various amazing features like looping customer reviews and time tracking. This tool is integrated with Github for storage and Zendesk for tracking customer satisfaction.Planbox dashboardLeanKitLeankit is a very unique tool. It aims to create a conference room type of whiteboard where most projects start from. This lets members post virtual notes on it that represent tasks, user stories or glitches, which should be addressed later.   The board has a fast update feature and lets multiple teams work together in separate spaces while still coordinating together.  Leankit dashboardThe key features offered by Leankit are:Board view templates Track issues and bugs Manage project portfolios Lean metrics and reporting Proggio This is a next generation project management tool which focuses on and around the team instead of the task. It has a good visual representation that allows managers to create a full-project blueprint. This promises team clarity and increased planning capabilities.With the powerful task management tool, every team member is sure to be on track, and the virtual portfolio is an added accessory that helps tabulate developer progress.  Now, chasing around team members for every update is no longer necessary! Any and all progress report by the team members will clearly be reflected in the project timeline.  Proggio dashbarodThey main features offered by Proggio include: Board and List views Visual tracking Better timelines Choose the Agile tool best suited for your business In this vast market, there are unlimited tools created for Agile, but the above-mentioned are the ones which yield the best results. This will help you evaluate and find the tool that functions best for your context and is comfortable for your team. With every team applying their unique approach to the Agile methodology, choosing the right tool may appear to be a rather difficult task. However, once the Agile manifesto is in place, things are sure to run quite smoothly and profitably.  Be sure to check our latest course schedules for Agile and Scrum and take strides ahead with your professional growth in Agile.
6622
Must-have tools for Seamless Agile Management

For a long time, developers did not have a lot of ... Read More

How to Use Scrum Board for Agile Development

What is a Scrum Board?A Scrum Board or an Agile Board is a visual representation of the work planned, progressed, and completed by a scrum team in a sprint or iteration at any given point of time. The board is comprised of columns that represent various successive states of the workflow progressing from left to right. The work items appear in the column as per their current state in the development workflow and then move across the board from one column to the next till they reach completion or last stage.The “To Do / Ready” and “Done” states appear in almost every Scrum Board, the “In Progress” items can be further categorized into various states e.g. – Analyse, Design, Code, Test etc. These states are solely created as per the needs of the Scrum Team and Project.Image 1: Simple Scrum BoardWhy is a Scrum Board needed? The Scrum Board visually represents the amount of work along with their current states in a Sprint.  The Board speaks to the team everyday about the holistic progress made by the entire team towards their Sprint Goals and provides a sense of accomplishment and achievement when work items are completed. It avoids creation and progress of “Hidden Work” or “Shoulder Tap” injected work that may not be prioritized. In the event of an interruption (like production issue, any new or changed requirements, changed priorities), it helps Business to reprioritize the work items quickly looking at the current state of the planned items in the Sprint.   It also keeps reinforcing road blocks and impediments faced by the team to all the major stakeholders. Any number of written and verbal communication may not be able to visually represent the state of the entire sprintas a whole as effectively as this visual radiator.Scrum board allows teams to manage the flow of work across the sprint as it helps in avoiding multi-tasking, overloading one person because everything is visible and traceable. How to organize a Scrum Board Physical and Virtual Scrum Boards Teams that are entirely collocated can benefit from physical boards that caneven just be a whiteboard placed near their work cubicles. A physical board could also be on a wall having coloured tape for columns and sticky notes for cards.  Team members typically swarm around the board /agile wall/task wallduring their daily stand up or whenever there is a need. Image 2: A typical physical scrum boardImage 3: A typical Jira scrum boardDistributed teams on the other hand find virtual boards easy to use. There are many tools available in the market to set up Scrum Boardssuch asJira , Rally , Monday.com etc.  In some companies, the Scrum boards are displayed on giant monitors placed near the teams work cubicles. Cards and Columns are the two basic entities on the scrum board.Card is the entity on the board that represents a “Work Item”. A Card can be a User story /Production Bug/Technical Task. During the course of the Sprint these cards travel through the board from left ,“To-Do” to right “Done”.  A Simple Scrum Board for Beginner Teams The Scrum Board below is an example of a typical team board in a software project. Image 4: Typical scrum board for a software projectThe items on the Product Backlog are discussed and as per priority and their readiness, pulled into the “To Do” or “Ready” column during Sprint Planning. At the beginning of a Sprint all items in the “To Do” or “Ready” column comprises the Sprint Backlog of the team. As the Sprint progresses, the items move into the downstream columns until “Done” is reached. A clear “Definition of Done” helps to conclude if the story / task is completed. Usually beginner teams build the board translating the current workflow of their work items into columns on the board. As the teams evolve, they adjust the board accordingly. Effective Visual Representation of data  Information on the Cards Physical Cards usually are post-it notes or sticky notes that carry the User Story/Description, Acceptance Criteria and the Story Points as a minimum. Using post-it notes is a deliberate attempt to keep the story small and avoid loading a lot of work into one story.  In a Virtual board, cards can have exclusive fields to carry information like Project Name/Assignee/Reporter/Created Date etc. These might serve multiple purposes like metrics/reports. Colour-Coded Cards Colour coding is an excellent technique used to convey important information to the audience at the first quick glance.Cards can be colour coded based on their work type like User Story/ Technical Task/Production Bugs. Cards could also be flagged (in the case of a Virtual board) or overlaid with a (preferably) Red coloured card to convey a risk/dependency that needs attention. Swim lanes Defining Swim lanes is a very useful mechanism to categorize the work items on a Scrum Board. They are horizontal rows on the board that carry a specific type of work that is different from the normal/ work categorized by a certain parameter. For e.g. a team that has to resolve emerging high priority production bugs would prefer to use a “Fast Track” swim lane to progress the bug and then continue with their original Sprint work. A team that works on hardware, firmware and software components in a sprint might want to use different swim lanes for each component.  Swim lanes are for the teams. Creating a swim lane for each team member may not be a good idea since the basic guideline for scrum is to work as a team and this representation might affect a team’s mindset. In the board below blue cards are User Stories and green Cards are tasks. Red cards are Production bugs. Some cards are flagged red indicating risks or impediments. Image 5: Example of scrum board with colour-coded cards and swim lanesAspects of Kanban in Scrum BoardA common challenge encountered in projects is when tasks accumulate or pile up in a phase or stage of the workflow. There could be several reasons why that happens. But identifying them is the key to solving that challenge and the Scrum Board effectively helps in this. Assume that Cards D, E, F, G have completed development and ready for testing. Cards B, C are being tested. It is day 6 of a 10-day Sprint.  Developers might now bring in H, I from the Ready Column to start development work, creating a bottleneck at Testing. Image 6: Scrum Board without WIP LimitsConcepts of Kanban can be borrowed into a typical Scrum board to address this. One of the techniques that can be used is to split the column into “In Progress” and “Ready”. This will set the stage for a “Pull” mechanism at every stage in the workflow of a story.  Introducing “WIP Limit” or “Work in Progress” Limit at the columns ensures multiple work items do not pile up at one stage of the process, do not get “pushed” downstream but rather gets “pulled” by downstream process and there is a steady flow created in the system. Considering the team is at day 6 of the iteration, it is recommended the team “stops starting and starts finishing”.  If the team swarms and completes the testing of D, E,F,G there could  be more business value delivered rather than starting development of H and I and having only few of the Development complete cards partially tested. In this scenario, a WIP Limit of 4 at development prevents the team from bringing in more work items into the development phase. The team can now swarm to complete the testing of the developed items taking them to completion.  Image 7: Scrum board with WIP limits and columns split into “In progress” and “Ready”Effective use ofthe Scrum Board  Updating and maintaining the Scrum Board Scrum board is owned by the team and it is the team’s responsibility to update the board to reflect the reality.The team also has the responsibility to evolve the board to suit the need of the project by experimenting on concepts of WIP Limit. How best to use the information on the Board Scrum Board can be used to identify bottlenecks in the flow of work. If bottlenecks are identified in one stage of the workflow, the team can resort to Swarming or enforcing WIP Limits. Seeing the work items move through the Scrum board and reach “Done” during the Sprint provides the team a sense of accomplishment. Challenges and ways to overcome them Easier said than done, updating the board is one of the biggest challenges faced especially in beginner teams. Not every team member will be prompt in updating the board. To overcome this challenge, updating the board could be one of the team ground rules with non-compliance attracting fun consequences decided by the team, such as the defaulter treating the team with chocolates/coffee or updating everyone’s scrum board the next day. The Scrum Master can immensely help the team realize the power of the board by using it during agile ceremonies like planning, stand up and retrospectives. Facilitating the scrum by traversing the board from right to left (i.e.“Done” to “To-Do”) is another tactic to keep reinforcing the value of the board and motivating the teams.Having conversations in stand-ups by traversing the board from right to left will first bring up cards that are done or almost done and helps see what has been accomplished in the sprint.  What a Scrum Board is not A Scrum Board cannot replace the conversations and interactions that are always encouraged in Agile projects. Flagging a card on the scrum board / posing queries on a card should not solely replace the conversations around these. A Scrum Board is not for executives to monitor the team’s progress and efficiency, but it is for the team to monitor their sprint items as a whole. Key takeaway A Scrum Board is an excellent tool for the team to visualize their work, look at everyday progress, identify bottlenecks, make immediate course corrections, so that they can meet their Sprint goals. Used rightly, it will serve the team and benefit them. However, if it is used by management to monitor the team or if the team members consider it as a tool to update management then it loses its purpose and becomes just another overhead. 
6807
How to Use Scrum Board for Agile Development

What is a Scrum Board?A Scrum Board or an Agile Bo... Read More

Useful links