Mastering Sprint planning Analyzing the root cause of sprint failure

Atul Shashikumar

We all know that Sprints are essential to agile software development since they help teams break down large projects into manageable chunks.

 

Each sprint has a fixed duration, usually between 1— 4 weeks ⏳, and at the end of each sprint, the team holds a review to assess their progress and plan the next sprint.

 

But before planning the next sprint it’s crucial to know if your previous sprint has failed or succeeded.

  • Did the team meet the sprint goal?
  • Did the team deliver the expected value?
  • Was the sprint completed on time?
  • Were there any major issues or obstacles during the sprint?
  • Was the team able to collaborate effectively?
  • Did the team receive feedback from stakeholders?

There could be many reasons why a sprint failed, but one of the most common reasons I have seen is 💡…

Lack of understanding of the actual development time available in a particular sprint, by the Project Managers and by the Stakeholders..

What do I mean by that? 🤔

 

Let me try to explain to you with an example.

 

Assuming your software development team is following a 2 weeks sprint ⏳…

 

Ideally, your team should have a development time of 80 hours ⏰ per sprint, considering 10 working days and 8 working hours each day.

 

With this assumption, most of the Project Managers or the Stakeholders pick up stories/tasks worth 80 hours of development (per sprint) and assign them to the development team, expecting them to finish their work by the end of the sprint. ❌

 

So what’s wrong here? 🤦‍♂️

Project Managers and Stakeholders usually forget about the time taken for additional Agile Ceremonies which occurs during the sprint.

What are these additional agile ceremonies and how much of your development time does it take?

  • Daily Standup — 15 mins (does it ever finish on time? 😞)
  • Story Kick-Off — 15 mins (sometimes needed for clarifying user stories 🚀)
  • Sprint Grooming — 45 mins (review and refine the Product Backlog items, prioritize and estimate them 📝)
  • Sprint Planning — 45 mins (select the highest-priority items from the backlog, break them down into actionable tasks, and determine how much work the team can realistically complete during the sprint 📆)
  • Retrospective — 30 mins (if done after every sprint then 30 mins is enough 😮‍💨)
  • Internal Demo — 45mins (most team members always spend time on internal demo, before giving a final demo to the stakeholders/clients 💁)
  • Sprint Demo — 60mins (_demo with stakeholders/clients_🤵‍♀️)
  • Brainstorming Session — 45 mins (if any team member is stuck with complex flows or edge cases or needs some help 🧠)
  • Communication — 30mins (ad-hoc chat/calls/meetings with team members or stakeholders on the official communication channel 💬)
  • DevBox Testing — 15 mins (done by developer and QA on developer’s local machine for early identification and resolution of bugs and issues 🐞)

Based on the above-mentioned agile ceremonies and their respective time, and also considering some of the above ceremonies don’t have to be performed on all the 10 days of the 2-week sprint, here is a rough calculation:

As per the above calculation, a developer spends around 15 hours on agile ceremonies out of 80 hours of development.

 

Note — Not necessary that every company or project might have these above agile ceremonies, so you can consider the above timings based on the processes you follow.

 

Assuming most of the developers can’t be 100% productive during those 8 hours of working (maybe because of various distractions, calls, meetings, etc) plus they might need a few hours for bug fixes, etc, I think it’s safe to say that we can have only around 60 hours of productive development time in a 2 weeks sprint.

 

So let’s ensure you set your next sprint expectations right to help your agile teams stay focused and deliver high-quality work quickly.

 

Some of the other commonly known reasons for a sprint failure 🤷‍♂️:

  • Poorly defined user stories can lead to confusion, assumptions, and incomplete features.
  • Poor communication within the team or with stakeholders can lead to misunderstandings and a lack of progress.
  • Insufficient planning can result in inaccurate estimates and missed deadlines.
  • Scope not clearly defined and managed can expand the timeline beyond what was originally intended.
  • Poor team dynamics can lead to a negative work environment and decreased trust among team members.
  • Lack of stakeholder engagement or providing timely feedback can lead to poor collaboration, unrealistic expectations, and disappointment.
  • Inadequate testing can result in defects and quality issues that can derail a sprint.
  • Poor code quality can increase complexity and decrease the quality of work over time.
  • Technical debt (the cost of maintaining and fixing existing code) can lead to delays, bugs, and a lower-quality product
  • Ineffective use of tools and technology can hinder productivity, and slow down development.
  • Lack of flexibility and inability to adapt to changing requirements can prevent team members from embracing Agile methodologies and the sprint process.
  • Poor leadership from the scrum master or product owner can cause misalignment, decreased productivity, and a lack of focus.
  • Excessive, Insufficient, Outdated, and Unclear documentation can create unnecessary complexity, and confusion, and impede progress.
  • Poor time management can result in missed deadlines and rushed work.
  • An overloaded sprint backlog can cause team members to become overwhelmed and unable to complete their tasks effectively.
  • Insufficient resources such as hardware, software, or personnel, can lead to delays and burnout.
  • Frequent change requirements added during the sprint can cause spillover and incomplete work.
  • Inadequate user research can lead to building the wrong features and poor user experience.
  • Insufficient attention to process improvement can lead to significant rework and additional development time and cost.

Thank you for reading!! 🙏

Let me know your thoughts on this and please feel free to correct any of the above pointers or add more pointers which can lead to sprint failure.

Together, we’ll continue to explore and learn…💪