5

We are working to transition our development team to be more Agile. I have a question about story point estimation and their relationship to an individual's skill.

The scenario is that our team members do not have cross-functional skills. One might focus entirely on front-end, another only does back-end.

The problem we fail to plan accordingly to our team composition. We figure, if our average velocity is let's say 200 points per sprint, then that number should not be exceeded. However, tasks vary each sprint and sometimes there are too few back-end tasks or too few front-end tasks.

My question is - should we divide and plan back-end and front-end tasks separately, or is there a better way?

4 Answers4

3

When planning in Scrum, the first thing to realize is that you should not try to plan the work to keep everybody busy, but rather you should try to plan a certain amount of functionality that your team will try to deliver at the end of the sprint.

In Scrum, the input to the planning is the product backlog, which should contain the desired features in the order that they provide the most value to the business. During the planning, you take items from the top of the product backlog until you have enough work to fill a sprint.
If the top of the product backlog happens to contain a lot a features that involve mostly front-end work, then it can happen that the sprint is "full" before you reach the 200 story-point mark. Full here means that the front-end developers are fully loaded.

Within the Scrum framework, there are a few possibilities to deal with this situation:

  • If you foresee a lot of back-end work coming up in the backlog, which would result in the same situation in the next sprint, you can negotiate with the Product Owner to exchange some front-end heavy stories for back-end heavy stories to create a more even workload over the team.
  • If there is nothing suitable to exchange, or if the Product Owner doesn't agree with a swap, then it is good to realize that there are always tasks that can be picked up by any team member. If there are no back-end related tasks that the back-end developers can work on, they should try to assist the front-end developers to the best of their capabilities so that the team can finish the work the planned.
    Examples of work that the back-end developers could pick up are:
    • Write test specifications
    • Execute manual tests
    • Write unit tests
    • If they have some familiarity with the front-end technology, perform reviews
    • etc.

In Scrum, the goal should not be that you as individual work at maximum capacity/productivity, but that the team produces that what benefits the business the most.

2

When the team draws stories during the sprint planning, they should take their available skills into account. That means they might draw a backend-heavy story and leave a frontend-heavy story on the board if they have free backend capacity, or vice versa.

If nothing else, some programmers might find time for necessary refactoring.

If the imbalance persists for a long time, re-train or change the team.

o.m.
  • 505
1

If you have zero or very little backend development (or vice-versa), for all practical purposes, you treat that person like you would if she went on vacation or worked on another project. A particular sprint gets the total story points adjusted.

From a management perspective, you could treat this as an opportunity to cross-train people with pair-programming. If cross-training is one of the goals of this project, then count both developer's time/points. You'll have a more accurate way to plan a project that involves cross-training.

JeffO
  • 36,956
1

Yes, one should divide the tasks by work area expertise. This will allow for accurate resource and project/sprint planning. Let's say after story point estimation you have 100 front end points and 50 back end points over the course of the next few months of 2 week interations.

If this were the case, at a very high level one would need to finish equally:

  • 2 front end developers and 1 back end developer OR
  • 1 front end developer and 1 Generalist (Front/Back) OR
  • 1 front end developer and 1 back end developer (part time - 50%)

Story point estimation is the first step. The second is planning out resource assignments, work streams + dependencies.

Every project is different and stocked with people with different skill sets. There are few "full stack" developers out there that are good doing the UI front end all the way back to the back to the database. Even within a general techlogy like .Net there are specializations like ASP.NET MVC, WCF services, Entity Framework, etc. So, take in the developers skill sets into account when planning out the sprints from the backlog and there will be efficient utilitzation of resources across the board.

Jon Raynor
  • 11,773