Ugh… increase Velocity? That question again?

In a discussion forum I came across this comment that “Velocity is an awful term and one that is often weaponized like it has been in this thread by asking how to get more. It’s the wrong question because the goal is to become predictable much more so than faster.”

I do not agree that velocity is an awful term, but I do agree that it is often misused (and even weaponized). If you intend to use velocity the right way, and are interested in using it as a tool to understand and improve your work outcomes, this post is dedicated to you.

I would like to note that some of my friends are passionate about #noestimate. Whether you go that route or not, is your choice. The important thing is that is the team performing or worrying about numbers and metrics. If velocity discussions are weighing down the team, that is usually a sign of a different problem.

As you go through this post, keep in mind that increasing velocity may not be your real and only problem, and should definitely not be your main goal.

Addressing the “Real Slim Shady”…

If you want to address the issue genuinely please understand there is never really an end.

If the team is rapidly delivering customer value, communicating well and learning from its experience you may only have limited leverage on what the team itself can do. The team may need support from its ecosystem to take it to the next level. At the same time there will still certainly be things that can team can do to make improvements. and is improving velocity the end goal? Or is it delivering customer value rapidly?
Lets address that.

 

Step 1. Who is asking?

Before you go any further it is important to understand who wants to increase the velocity. Many a times someone higher up in the food chain may want to know how you will improve the velocity. It may also be a software developer on the team, the whole team, the product owner or the scrum-master (is that you?) who is interested. Or it may be a stakeholder, project sponsor or anyone else as well. Understanding who is concerned about improvement in team’s velocity can help you in several ways in the steps that follow.

Step 2. Why are they asking – their motivation?

Before you jump into a solution, identify why they are asking the team to increase its velocity. What’s in it for them (who want the team to improve)? As you dig deep into the reason for asking, you will likely discover the intent (good, bad, helpful, unhelpful) of the person asking the question. You will become sensitive to their needs and discover their situation. Are they interested in improving communications and flow of value or do they have a personal gain in mind by highlighting the problem? Answering why will help not just with framing the response better but also with taking more informed actions. Whatever the reason is, think about how that can help you drive improvements.

Step 3. Draw insights – Where are the problems, what are the solutions?

Based on your study of your context, would it be fair to say there are potential opportunities for improvement? Where could the team do better?

Imagine a team delivering really really fast but the customers are not responding favorably. Could it be lack of quality or delivery of functionality that customers do not need? In either case, increasing velocity may not be the best solution. We need to think smarter.

Try these questions first:

  1. Is the team delivering new features and improvements frequently?
  2. How are customers reacting to the product deliveries and latest features?
  3. Is the team generally enjoying their work and having fun?

If you spot problems while answering these questions, search deeper. Here are just a few examples of what you could explore.

People questions:
  • Do measures such as velocity drive positive behaviors in your organization? If not what can be done to fix that situation?
  • Are the roles well defined? Is there sufficient empowerment? Are the roles of PO, SM and Development team clearly understood?
  • How is communication between the team members?
  • How strong is the leadership for your team, project and the organization?

 

Process questions:
  • How do you assess progress towards an important goal? Do you have an objective method?
  • Are team members working on multiple diverging goals and functionalities and have high work in progress?
  • How are releases managed and rolled out – small chunks or big rocks?
  • What is the team doing to continuously learn from its journey?
  • How are (Scrum) meetings running?

 

Technology questions:
  • How is the team doing on the account of technical debt?
  • Is there sufficient test automation and continuous integration?
  • How is your quality? Do you have a huge bug backlog?

Draw insights together with the entire team to understand all perspectives and see what can be done. Dig into the backlog, measurements that the team thinks are relevant, such as velocity, cycle time, defect trends, automation, build failure rate etc. Looking for problems, and asking why over and over again, should give you new insights on what can be done.

Shortlist a few experiments to try out.

Step 4. Sell, Try, Feedback, Repeat (Go to step 1)!

As you go through this exercise, you may come up with a range of solution(s). Some solutions may require senior management intervention, others may need more involvement from the team.
Now it is time to channel the conversations around the solutions, convince the stakeholders to try them out. Clarify how you will be reviewing the outcome – set a time-frame for that. Try the solution and get more feedback! You may have to repeat this several times, to continually get the results you are hoping for (including but not limited to an improved velocity, as that may not be the real goal you are after).

Good luck!

This article was published on Scrum Alliance in Feb 2010.

How to Sustain Adaptive Planning

Scrum and other agile methods recognize that responsiveness to change is an important aspect of delivering projects. They also recognize that software development is evolutionary and creative. By managing changes through Adaptive planning, Scrum provides a simple yet effective method of planning and tracking project progress. In this article, we will examine what is needed to sustain Adaptive planning and improve Team’s responsiveness towards customer needs. We will examine the following factors:

  • Just-enough planning
  • Evolving plan, scope driven by budget and/or time
  • Grooming the scope
  • Trust, involvement and collaboration
  • Management support

Consider a scenario where the project is progressing as per plan, and in the middle of the project the customer approaches project manager with a request:

Customer: “I really need this functionality delivered in the project. But it is not part of the current scope. Can we make it happen as part of this project?”
Possible response #1: Project Manager: “Unless you are okay with budget overflow and/or schedule delay. Alternatively, we can revisit the project scope but it will require us to drop certain other functionality from the scope of this project. As the effort already spent on estimation and analysis of that functionality will be wasted, please be aware that it will impact productivity.”
Possible response #2: Project Manager: “Well, I am afraid the change control board (CCB) needs to decide this. The CCB meets in two weeks and once they approve that an investigation is needed, we can investigate and inform them about the impact on our plan. The CCB can then decide whether or not this functionality can be implemented.”
Possible response #3: Project Manager/Product Owner: “I do not see a problem as long as you are okay with dropping certain low priority items from current scope of the project and getting this functionality at the end of next Sprint, assuming it fits. Let’s get together and discuss.”

Although many responses are possible depending on the context, if the project is using Adaptive planning then a response similar to response #3 is more likely. Such a response demonstrates that the Team is well prepared to respond to change.

Making Adaptive planning work

– Just-enough planning

To begin with, requirements are understood at a very high level and thereafter, the rest of the planning is driven by priority. As a rule, lesser time is spent on figuring out the details of those requirements that do not have a very high priority. High priority bigger requirements are split into smaller ones so that details can be explored. Only relative size estimates (at a high level) are done at this point to get an idea of how “big” the work is. Once the work is quantified, tasks and effort are estimated for the highest priority requirements. That gives an idea of how much the Team can deliver in a Sprint. This idea is tested in the first Sprint and gives the Team a better understanding of its Velocity (or the size it can deliver in one Sprint). Using the Velocity, the Team is now in a better position to give commitments for later sprints.

– Evolving plan, scope driven by budget and/or time

As the project gets underway and the Team executes multiple sprints, the Team has better visibility on the customer needs. Likewise, the customer also understands the requirements better. This understanding results in evolution of the Product Backlog (e.g. changes in functionality and scope, priority). As the Product Backlog evolves, the size estimates are done for newly added requirements. The Product burndown chart shows how much work is remaining based on the revised scope in the Product Backlog. The work remaining is controlled usually by removing some low priority requirements (of size equal to the added requirements) from the scope. This ensures that scope is managed continuously based on highest priority requirements. Adapting the plan in this manner helps in providing better visibility to all stakeholders by tackling many important issues, such as:

  • How do we deliver what is most important for the customers?
  • How do we address customer feedback on what has been already delivered?
  • What are the key changes that we need to make?
  • Have we addressed all the key risks for the project?
  • How much work is remaining for the project? Do we need to adjust the project scope?

– Grooming the scope

At the beginning of each Sprint, the Team makes a commitment on the functionality it can deliver. In order to make a commitment, the Team may need some time to investigate certain aspects and risks in the preceding Sprint itself. In other words, sometimes it makes sense to look-ahead and reserve some time for investigation on risky items in the backlog that may be part of the next Sprint. Better insight into risky items in the Product Backlog helps the Product Owner make conscious decision on the item’s priority, makes the Sprint planning exercise easier and the Team more confident. Additionally, new functionality requests by Customers can be expected at any point during the project. Sometimes, especially when the functionality is complex or due to other reasons, identifying enough details for quickly giving commitments on these new items at the beginning of the Sprint can be difficult. Grooming the scope during a previous Sprint makes sense.

– Trust, involvement and collaboration

Working with an adaptive plan requires a lot of trust, involvement and collaboration between the Team, the Product Owner and other key stakeholders of the project. Unfortunately this is much easier said than done. Individual stakeholders have different motivating factors and it requires time to build the trust. Things may become extremely difficult and unsustainable if the trust is lost. The effect of losing trust could result in failures such as poor quality, dramatically reduced velocity, inability to meet commitments for multiple Sprints, arguments over small stuff, high team attrition and loss of face in front of the customers. Building trust requires a lot of commitment and collaboration. The Product Owner and management should give the Team freedom to decide how much it can deliver in a Sprint. The Product Owner needs to set the right expectations between the customers and the Team. Setting unreasonable expectations can misfire in the long term. The Team may succumb to pressure of delivering more functionality and may succeed in doing so by cutting quality, or by introducing too much technical debt that becomes difficult to handle later. The ScrumMaster needs to support the Team by guarding the scope and the practices of Scrum. The Team needs to understand the needsof the Product Owner and help in achieving that goal. The Team can help in several ways, such as improving its engineering practices, making the most out of feedback, ensuring that it acts on its retrospective actions and highlights issues that are beyond control. The mechanism of “inspect and adapt” should not be interpreted as a “self-repairing system.” The system will not fix the problems unless everyone involved in the process devotes the time needed and is committed to the process. The Team members (ScrumMaster, developers, testers etc.) need to work with each other to achieve the Team’s sprint goal and continuously improve their ways of working. They need to work with the Product Owner to groom the scope and understand what is needed. Likewise, the Product Owner needs to collaborate with the Team throughout. If the Product Owner becomes complacent in engaging with the Team after a few Sprints then the visibility of the Team can reduce drastically, benefits achieved can be quickly erased and situation can deteriorate. The Product Owner needs to ensure that the business users and customers are appropriately engaged in the process. Without an appropriate level of engagement, there is a risk of misunderstanding the business and customer needs.

– Management support

In order to sustain Adaptive planning with Scrum, it becomes important that the culture of the organization understands and respects change. Organizations, where teams go agile but the management thinking does not, run a risk of quickly losing all the benefits from Agile and becoming worse than they were before. Some of the things that managements need to do include

  • Provide long term vision, direction and priorities
  • Trust and motivate their Teams
  • Focus on addition of business value
  • Encourage Teams to deliver quality, act on technical debt, enhance engineering practices
  • Ensure continuous flow of work
  • Minimize non-work related disruptions
  • Facilitate removal of impediments outside the control of Teams
  • Support the process of learning, inspecting and adapting
  • Communicate

Conclusion

Adaptive planning helps Teams handle changes to scope in a continuous manner but may become unsustainable when practiced in isolation. Other practices of Scrum, along with critical management support and understanding are critical for sustain Scrum in an organization.

“Agile Estimating and Planning” is a Must-Have-Read for those interested in learning a down to earth, practical approach towards Software Estimation and Planning that actually works! The advice is meant for teams that use Agile methods such as XP and Scrum. And the bonus is that this book is really very easy to read since the flow is written in such a simple and logical manner.

The book starts from the basics, covering basic concepts such as why estimation and planning is needed, and why should we do size estimation before estimating the effort and duration for any project. It links these basic concepts to the agile approach of: Working as one team, in short iterations, delivery in each iteration, focus on business priorities, inspection & adaptation.

After covering these basics, the book goes into the details of Story Points, Ideal days, Velocity and Planning Poker estimation method. Mike Cohn also explains why estimating and tracking Story Points is better than Ideal days.

The other interesting topics of this book include Prioritisation, Release Planning Essentials, Buffering (concepts seem to be derived from Theory of Constraints), and Tracking Velocity.

The book ends with a case study on “Bomb Shelter Studios” case study, which illustrates the concepts in practice, without getting into too many details.