Burndown vs. Burnup – Focus on Results vs. Focus on Value Creation

There is one more thing that I would like to add to my previous post “Burn those Burndown Charts”. I believe both charts focus on completely different issues, which probably also indicates a mindset difference based on which chart one prefers.

Burndown charts focus on how close the team is to achieving a result.

Burnup charts focus on the value the team is creating.

I feel that this is another argument for preferring burnup charts. To me, focussing on whether or not we will achieve a certain short-term task is less important than looking at the value the team is creating. In a way, this value creation focus is similar to how we (should) use story points: The burnup chart indicates how much value the team has created during the Sprint and whether there were any points where value creation slowed down. We can then use that knowledge to improve the pace of value creation (if needed) and to figure out how much work we can plan for the next Sprint. This to me is more important than controlling whether or not a short-term goal is achievable or not.

The burndown chart on the other hand tells us whether or not we are going to miss the short-term target. It might indicate that we should adjust the way we work in the next Sprint, but it does not say anything about how much work we can actually achieve in a Sprint and how that value creation progresses during the Sprint, as it was not designed to provide this kind of information.

Just food for thought.

The Agile Burden of Proof

In my opinion, the worst thing agile coaches can do is to introduce practices they cannot motivate. And by “motivate” I do not mean that they can recite the relevant passage from the Scrum Guide or from some book. By “motivate” I mean that they actually reach and convince the people they are dealing with.

The burden of proof that a specific practice is useful is always on the agile coach.

Saying “It’s done like this, because we do Agile/Scrum/Kanban/Whatever” is only marginally better than saying “It’s done like this, because I say so.” If we accept these as valid arguments, then we also have to accept “It’s done like this, because we always did it this way” as a valid argument – and it is a common argument of people who oppose Agile, because they want to hold on to their old processes.

If someone asks “What is a retrospective good for”, we should have a meaningful answer and not just something pre-packaged from the Scrum Guide, such as “It’s an important inspect-and-adapt meeting”. That is like saying “It’s important, because we do Agile”, because after all, Agile is the reason why we run frequent inspect-and-adapt meetings. But why do we run frequent inspect-and-adapt meetings in Agile? We need to be willing and able to dig quite a bit deeper here. I would recommend using the 5 Whys method here before you even go into the discussion with your team.

Yes, that makes life more difficult for agile coaches, because there will often be some resistance, and often, we cannot even conclusively prove that something works until it has been tried. But the important word here is “try”. I do not see a problem with introducing a practice explicitly as an experiment, stating right from the start that it is a time-limited experiment while encouraging feedback and making sure that the experiment is properly documented and monitored. That is the agile way for handling this: If we emphasize the importance of empirical product development, then we also need to practice empirical process development by running our “great” ideas as experiments and not as decrees that are not open for discussion.

Burn Those Burndown Charts!

Transparency is one of the key ingredients of Agile, and burndown charts are widely seen as one of the most important tools for achieving this transparency.

My problem is: I hate burndown charts.

Everyone is completely hung up on those charts now. Scrum Masters end up having conversations like:

  • „Let’s talk about your team’s progress. Where is your burndown chart?“
  • „I had a look at your burndown chart, and it didn’t look good!“
  • „You DON’T have a burndown chart? Uh-oh!“

The first two are things you often hear from project managers. The third one came from a Scrum Master, and I could immediately tell that it made him judge me: „No burndown chart? Such a bad Scrum Master!“

I would go as far as proposing an „Agile Mindset Test“: When someone enters a team room, do they walk over to the burndown chart, or do they walk over to the task board? I think their choice says a lot about their agile mindset.

I admit, it is of course a somewhat natural reaction to walk over to the burndown chart first. People prefer an image over a wall full of text. But does that image truly represent what the team is doing and how it is doing its work? No, of course not! And that is one big problem with burndown charts. Of course, a flat burndown chart indicates that there could be some kind of problem, but that is where it has already reached the limit of its usefulness. There could be some kind of problem. That’s it.

My other problem with burndown charts is that they are simply non-agile waterfallish artifacts to me. One of my former companies used „race charts“ towards the end of the projects (i.e. in the test phase, as these were waterfall projects). These race charts (you also could have called them “burndown charts”) showed how many bugs of a certain type were still open and by when that number must reach zero. There were two issues with this: First: New bugs were constantly being discovered, but that was not reflected in the race chart. They simply made the curve look flat, or often the curve even went up. Second: The completion date was arbitrary and had nothing to do with what we COULD do – it was only related to what we HAD to do. We were in a situation with fixed cost, scope, quality and time.

Many people would assume now that in such a situation, teams would give up quality first. But actually, the first victim of this scenario was not quality but common sense. As it was usually impossible to reach the goal, a lot of effort was put into making the statistics look nicer, and a lot of items were simply pushed out of the race chart, resulting in a „not my problem“ attitude. In general, the chart did nothing to create a positive atmosphere, it did nothing to make people work better, it did nothing to motivate people and it certainly did not create any kind of transparency. It only created pressure and killed common sense. I believe that burndown charts in general tend to kill common sense.

I know, burndown charts are seen as a useful tool for retrospectives. „Why was our burndown chart flat for several days during the Sprint?“ is a valid question to ask. But to ask that question, does the chart have to hang visibly in the team room during the Sprint? Oooh, heresy, I know! We are supposed to be transparent. But there are other, better tools to be solve the same issues a burndown chart is supposed to solve and to create the necessary transparency for that.

For example, if tasks tend to spend several days on the task board, this would result in a flat burndown chart. But if you commonly have that kind of problem, I feel it is much better to put some kind of marker on the tasks after every Daily. That way, you can see which tasks are not moving forward, and you can address it immediately. When you speak about a flat burndown chart in a retrospective, a lot of people will not remember anymore why exactly it was flat. In fact, some tasks might be moving quite quickly, while others are stuck in „In Progress“ for several days, so the chart looks fine, but the real progress is perhaps not fine at all.

Another counter proposal to burndown charts are burnup charts. This is not intuitively clear to many people, as burnup charts seem to be upside-down burndown charts and nothing else, but in my opinion, the difference is huge!

The major difference is that burnup charts always represent the work that was done. If you completed a task, the burnup chart „rewards“ you. In a burndown chart, if you complete a task, while another team member adds an additional task that was missed in the Sprint Planning, then the chart remains flat. Is that supposed to be motivating? If anything, it motivates people not to add new tasks, even if they would be needed. I have heard the statement „This makes our burndown chart look bad“ quite a few times. Is that what we want?

Burnup charts always go upwards, towards the goal. They very rarely go down (only if you have to put a task back from „Done“ to „In Progress“, which is hopefully a rare occurrence). And what is at least as important, they not only visualize the progress towards the goal, they also visualize the goal itself. Of course, the general idea is that the scope of a Sprint should not change, but let’s face it: It often does, and the burnup chart visualizes this. What’s more, if the team misses the Sprint goal because it was forced to add additional work to the Sprint, then the burnup chart can immediately prove that the team did as much work as it had predicted, even if it did not reach the original goal.

Take the following burndown chart as an example:

burndown

Here, the team realized twice that new tasks have to be added to existing user stories. This causes the burndown chart to go up or to remain flat. This is a situation where teams are often reluctant to add new tasks because it “makes the burndown look bad”.

In the middle of the Sprint, the team took another story into the Sprint, because someone claimed that it was terribly urgent. And of course, this should not happen. But let’s be realistic: It does happen. And thanks to these additions to the Sprint Backlog, the burndown looks very bad for the first eight days. That is the point where nervous project managers drag the Scrum Master and Product Owner into their office or, even worse, start pestering team members about their bad progress.

Here is the same scenario presented in a burnup chart:

burnup

The red line at the top visualizes the total number of tasks, while the blue line visualizes the progress. The first noticeable point is that the blue line always goes up and that the team actually worked at a reasonably constant pace. If you only have the burndown chart, then the first question in a retrospective would be: “Why was our burndown chart so flat?” If you have the burnup chart, you can ask the much more meaningful question: “Why did we end up adding tasks? Do we need to improve something about our Sprint Planning?” You get to the point much quicker and you do not waste so much time on trying to interpret a chart.

Also, you can see immediately that the blue line would have reached the red line if a new story had not been added. So the team’s original plan for the Sprint was definitely feasible. What caused the Sprint Goal to be missed was the new story that was forced upon the team.

So I will continue to argue for the eradication of burndown charts. Sadly, all software tools used for agile planning (such as JIRA, TFS) spit out burndown charts, and people will continue to look at these charts. We cannot influence that. But at least our teams and we as Scrum Masters still have the power to decide how we want to visualize our progress in our team rooms!

We talk to each other anyway…

Various Scrum ceremonies are unpopular with developers for different reasons. One reason many developers give for not liking the Daily Scrum is: “We talk to each other anyway.”

Of course, it is true, especially when the team is collocated in one room – as it should be.

Still, it is one of the worst fallacies about team interactions, and it is not uncommon. Many people believe that only because they have said something, every intended listener has heard and understood the information. However, there are many cases where the information is either not heard or not understood.

If a team member is concentrating on other things, is listening to music, has left the room for a moment or is attending another meeting, then whatever communication is taking place in the team room will not reach that team member. So one purpose of the Daily Scrum is to consolidate all the communication that is probably happening anyway and to bring it into one short meeting where everyone gets on the same page. The Daily Scrum concept works directly against the “We talk to each other anyway” assumption.

But how can a Scrum Master convince a team that the Daily Scrum is necessary? I think the best way is to do this by recording events where the Daily Scrum has produced value. Every time when someone goes: “Oh, I didn’t know that” (or a variation thereof), the Scrum Master could point out that the Daily Scrum has once again proven its worth. Alternatively, the Scrum Master can record such occurrences, and the next time the team challenges the Daily Scrum, the Scrum Master provides a list of cases where the Daily Scrum was useful.

 

Scaling Agile Methods vs. Common Sense

The question how to scale Agile (especially Scrum) seems to be one of the biggest and most controversial topics in the agile community. I believe that the issue boils down to three major questions:

  1. Where do requirements come from? A single backlog for all teams? A project manager or product owner for the product owners or a committee of product owners?
  2. Where do the requirements go to? Or more specifically: How is it decided where they go to? Which team gets which task?
  3. How do we deal with dependencies between teams? How does Team A tell Team B that it needs a sub-feature in the next sprint so that it can build on that feature in the sprint after that? How is the software ultimately integrated?

A lot of complex ideas have been built around these questions. I feel though that we are in a kind of „Emperor‘s New Clothes“ situation here where everyone is intimidated by these questions and in awe of those complex solutions, the big charts that have been drawn to explain them and the additional roles that have been introduced to make them work. Many people seem to be too scared to just point out that common sense should be the major guiding factor here, and that additional roles and ceremonies should come second.

I believe that this is true especially for the third question. How can Team A expect to tell another self-organized team which stories it must pull (and complete!) in the next sprint? Or to take it one step further: How can Team A plan two sprints ahead to be able to make such a statement in the first place? How is that still agile? Of course, it is possible to draw up predictions for the next few sprints and the next major release based on team velocities and rough estimates, but these are predictions! Once we create a dependency between the predictions of two teams, the predictions become plans – and not the nice kind of plans, but the ugly types of plans that result in a lot of stress, anger and finger-pointing when they inevitably go wrong. With this kind of planning, we give up the idea of limiting our risk to one sprint. We give up the idea of responding to changes.

And this is where many people seem to forget common sense, because the strikingly obvious common sense solution to the problem is not to plan dependencies, but to avoid them. At all cost!

A cross-functional team is capable of developing features from start to finish without requiring outside help. At least that is how I usually define „cross-functional“ when asked about the meaning of the term. Once we simply accept inter-team dependencies, we give up the idea that cross-functional teams can truly exist. The real solution should be to either make the team cross-functional or to trust it to become cross-functional. A team cannot complete a feature alone, because the feature affects code maintained by another team? Well, then the team is not truly cross-functional. I believe that the correct solution here is not to shrug and give up a handful of agile principles. The correct solution is to give the team the full responsibility for the feature. The correct solution is to trust the developers. To challenge them. To give them the support and environment they need to complete the feature. The whole feature.

And yes, I am fully aware of the difficulties of delving into someone else‘s code. I have worked in technical domains before, where it took even great developers many months before they could make meaningful changes in the code base. I am not saying that it is easy to build features in code that you have never worked on. I am saying that it is better than giving up on agile values and principles and that in the long run, it is easier and actually more predictable than trying to manage dependencies between a large number of teams.

I know that this is difficult to apply in many environments, because a lot of companies are built in silos with non-cross-functional teams and interdependent projects, but I challenge both developers and agile coaches to work on changing these environments step by step to introduce common sense into this problem space. A meeting like a Scrum of Scrums is not a solution – it is a symptom of a problem that we have so far avoided to solve.

The Technical Basis for True Agility

I think there is one issue which is often neglected in agile transitions in favor of discussing about roles, responsibilities and processes: The technical basis for the work and the core requirements for successfully delivering high quality software to the customer

Scrum is often seen as a kind of value generation engine. I believe there is much more to Scrum, but it is certainly correct that Scrum does work like an engine which is fueled by requirements in the shape of user stories and which – through the time, expertise and motivation of the team – produces valuable output in a reliable cadence. However, it is important to remember that even the best engine needs oil to run smoothly, and I believe that this oil is represented by a certain basic technical groundwork. More specifically, I am referring to a functioning continuous integration pipeline and a solid set of well-maintained regression tests (both unit tests and system tests).

Without this groundwork, the Scrum engine will sputter and stall. It is inconceivable that a team can deliver high-quality software in a reliable cadence if it runs into problems every few days that often take several days to analyse and fix. I actually saw this kind of issue in the first agile transition that I witnessed. The coach in charge of the transition was told that we could never run two-week sprints, because it could easily take one week to integrate a finished change into the software due to various deficiencies in the development environment. Based on what I know now, I believe that at this point, the coach should have told the management to put the agile transition on hold until these basic problems are fixed.

In fact, if I were put in a hypothetical interview situation where I am told that the company only has the budget to either hire a Scrum Master or to introduce a decent continuous integration system and to write unit tests, I would gladly say „Ok, then let’s end this interview, and please take care of the technical issues first.“ I would do that, not because I am an altruistic person, but because I know how difficult my life as Scrum Master would be without having the most basic technical requirements in place to reliably deliver value to the customers.

Self-organization vs. Completely Unobstructed Freedom

I’d like to follow-up on the „water in a bottle“ metaphor from the last post, as this metaphor also says a lot about self-organization in the context of Scrum. Many mistake self-organization to mean “The team can do whatever it wants”. However, this is most definitely not the case. Most obviously, the team needs to deliver a product that conforms to the stakeholders‘ needs. Also, a team will be expected to adhere to both written and unwritten rules within the organization, on a technical, organizational and cultural level. For example, the company might want to enforce certain coding standards across all teams to ensure a minimum level of quality and mutual intelligibility of the code between teams. Or the company could have certain rules for handling bug reports from the customer. In these cases, a team cannot simply change these rules with the excuse that they are supposed to be self-organizing.

Also, a Scrum team is obviously expected to follow the Scrum rules. The water in the water bottle metaphor can flow freely within the confines of the bottle, but no further. The walls of the bottle are hard limits, and when the bottle is poured out, while the single water molecules are not controlled directly, the water is not given a choice as to where it can flow.

This might sound very strict, but the Scrum rules are indeed strict rules. This surprises many who have heard about Scrum only through hearsay and who equate Scrum or agility in general with chaos. I always like to emphasize that Jeff Sutherland and Ken Schwaber come from a military background, and while I have no proof that this influenced the strictness of the Scrum rules, I like to claim that it did, just to drive the point home.

Of course, in the true spirit of shu ha ri, a highly mature and experienced team will eventually begin to tailor the rules of Scrum and to shape them in a way to adapt to their specific needs. However, this is really reserved for experienced teams with a deeply rooted agile mindset and a great culture of self-inspection and self-improvement. This is not a first step for a team, but it is essentially the „endgame“ of Scrum. These experienced teams can shape their own framework, but the majority of teams will have adhere to the Scrum rules. And while this does seem confining, there are processes which give even less freedom, as they attempt to plan each developer’s work down to what they are supposed to work on each single day. The Scrum rules are strict, but they give the developers a lot of freedom to organize their own work and to decide how best to deliver great software.

 

Framework for Self-organization vs. Command-and-Control Process

Many people seem to find it difficult to understand how Scrum is a “framework”, so Scrum is frequently called a “process”.

When trying to explain the difference, I like to use the image of a bottle, which serves as a “framework” for water molecules. Let’s say your goal is to pour water into the bottle and then to pour it from there into a glass. The bottle serves as a framework for the stored water, making it conform to a certain shape, and when you pour out the water, the bottle’s neck becomes the framework for the flowing water, making it flow into a certain direction.

In the end, you have achieved your goal of getting the water into the glass. However, you have never attempted to exert control over single water molecules. You have not tried to determine where each molecule will be located in the bottle and you have not attempted to make them leave the bottle and enter the glass at a specific point in time. You have only given the water a framework for reaching the goal, but beyond that, the water was free to self-organize. And despite the fact that the movements of the water molecules are completely chaotic and unpredictable, you would probably be quite confident that you will reach the goal.

However, if you tried to pick out the water molecules one by one, transferring them to the glass in a predetermined order – that would be a process, not a framework. And that is essentially what the (for the purpose of this metaphor not very aptly named) waterfall process is trying to do.

The Key Characteristic of a Scrum Master

I always feel that Scrum trainings neglect to mention one critical point: Not everyone is well-suited for every Scrum role. Perhaps the reasoning behind not mentioning this too clearly is the fear that some people might immediately think „Oh, Scrum is not for me!“ This would possibly even be a correct conclusion (I strongly believe that Scrum is not for everyone), but perhaps many Scrum trainers feel that they don’t want their audience to reach that conclusion during their training. When I introduce Scrum to people, I always emphasize that there are different characteristics or qualities that one should possess to fill a specific role in a Scrum Team.

So obviously, I have a long list of characteristics that I believe a Scrum Master should have. I am sure it is not an exhaustive list, and I am sure there are certain points which are disputable or controversial. Also, different Scrum Masters have different styles, so the different Scrum Master „flavors“ would influence the composition of that list.

However, I believe there is one point which in im opinion is absolutely essential: I believe a Scrum Master needs to be an optimist.

Scrum Masters need to be optimistic towards the teams: It can take a great amount of optimism about a team’s willingness and ability to self-organize when given the freedom to do so.

Scrum Masters need to be optimistic towards the project: Especially if you have already seen projects fail, it can be difficult to believe that a project can succeed (or even is more likely to succeed) without top-down planning, a command-and-control structure and intense micromanagement.

Scrum Masters need to be optimistic towards their role: They need to be intrinsically motivated to fulfill their tasks. Otherwise, they cannot expect team members to be intrinsically motivated, which is a key aspect of encouraging a true agile mindset. A Scrum Master who is a Scrum Master because „I do this, because it’s my job and I get paid for it“ must expect the team members to feel the same way.

I believe that optimism is the key quality of a Scrum Master not only because optimism leads to trust, perserverance and intrinsic motivation, but also because in my experience pessimism is deeply ingrained in non-agile processes. Cynicism, defeatism and mistrust can be found in many aspects of waterfall-like work modes, so I feel that a pessimistic Scrum Master will either not reap all the potential benefits of an agile approach or – even worse – will unwillingly assist in turning the Scrum framework into a Scrumerfall cargo cult process.

Site collaboration is an efficiency killer

Many companies have multi-site setups, and there seems to be a general feeling that these sites have to collaborate intensively, or else the companies’ efficiency will suffer from the competition between those sites. The result is obviously a killer for agile teams, because when you take this site cooperation to the extreme (and I have seen it taken to the extreme), you end up with agile teams split up across two or even more sites.

So far this is nothing new. We all know that distributed agile teams are not as efficient as collocated agile teams. But the reasons why companies keep creating distributed teams are rarely addressed. I believe there are two fears which need to be understood here:

  1. Fear of a lack of competence: Often, different sites might have different competencies. So obviously, if you want to build a cross-functional team, the first impulse is to bring in people from different sites to represent all the necessary competencies. What is the result? You cement those competence silos. After all, you can always count on those experts from the other site to help you out. Site collaboration is a part of the company culture, so why change anything? In fact, building up that knowledge in another site is seen as a threat, so don’t touch the status quo – and this brings me to the other fear:
  2. Fear of competition: The naive assumption is that if sites do not collaborate, they compete. There is an implicit conviction here that there cannot be anything in between these two options. “What? You are not collaborating with site XYZ? Why do you hate those colleagues?” If two sites are not actively contributing to each other’s work, then they must be scheming to get rid of each other.

I believe the most important point to understand is that there is a middle way between collaborating and competing: Giving sites independent interesting long-term tasks and topics to work on. The disadvantage is that this actually requires managers to think about how to cut the existing work into such independent tasks. The advantage is that it eliminates all the inefficiencies created by forced collaboration and it forces sites to build up competencies to become independent. If there is any competition between sites in this model, then it is healthy competition. Nothing wrong with that.

The way there might seem difficult, and perhaps it is not something that can be achieved overnight, but I believe a company should make site independence a clear well-communicated near-term goal with a first intermediate step being the promotion of „T-shaped sites“.

And of course, I know that this model can create a third fear: The fear of obsolescence. When sites are completely independent, then any site could „lift right out“ of the organization when the management decides that it is time for headcount reduction. That is definitely not an irrational fear. But we should not see this as a problem but as a chance. A site that is independent and capable of delivering products to customers without having to rely on anyone else can also quite easily be transformed into a company by itself. When single employees are laid off, they have to search for new jobs by themselves. If an independent site is carved out of a company, it can survive as a complete entity even outside of that company.

So I believe we need to get away from the idea that site collaboration is a „good“ thing in a multi-site setup. It is not. Site collaboration is an efficiency killer. The real positive opportunities lie in letting go of forced collaboration and in promoting site independence.