Page MenuHomePhabricator

Burn down charts for Milestones
Open, WishlistPublic

Assigned To
None
Authored By
qgil
May 14 2014, 4:36 PM
Referenced Files
F4103792: ve_tranche18_burnup_points.png
Mar 15 2017, 10:57 PM
F154727: Scrumbugs_Screenshot.png
Jun 4 2016, 12:00 AM
F195962: Screen_Shot_2014-08-29_at_15.06.42.png
Aug 29 2014, 8:07 PM
F195916: Screen_Shot_2014-08-29_at_10.11.40.png
Aug 29 2014, 3:22 PM
F195921: Screen_Shot_2014-08-29_at_10.13.17.png
Aug 29 2014, 3:22 PM
F195914: Screen_Shot_2014-08-29_at_10.06.20.png
Aug 29 2014, 3:22 PM
F195924: Screen_Shot_2014-08-29_at_10.15.03.png
Aug 29 2014, 3:22 PM
F183922: undefined
Jul 30 2014, 12:36 PM
Tokens
"Like" token, awarded by liuxinyu970226."Like" token, awarded by rbalik."Love" token, awarded by Darakir."Like" token, awarded by kuba-orlik."Love" token, awarded by backstageel."Like" token, awarded by greenhatman."Like" token, awarded by tiagolarafranca."Mountain of Wealth" token, awarded by jsixface."Like" token, awarded by monsdar."Love" token, awarded by jarrod."Like" token, awarded by wschroo."Love" token, awarded by subhra.roy."Like" token, awarded by orvisoft."Like" token, awarded by frogman544."Mountain of Wealth" token, awarded by michaeljs1990."Love" token, awarded by lavahot."Like" token, awarded by stevex."Like" token, awarded by charlesnie1027."Like" token, awarded by noisy."Mountain of Wealth" token, awarded by svemir."Like" token, awarded by WeiLi."Like" token, awarded by g-p-g."Like" token, awarded by cpa199."Like" token, awarded by qgil."Like" token, awarded by kmuncie.

Description

Some teams organize their work around sprints, selecting a group of tasks to be completed within a time frame. These times usually want to follow the progress done at any point of time. Burn down charts offer a visualization of this progress.

Organizing a sprint

Let's imagine a Phabricator Burndown project with hundreds of open tasks and a team that organizes bi-weekly sprints. At the beginning of the sprint, the team members follow these steps:

  1. Create a project for the iteration, i.e. "Phabricator Burndown 23".
  2. Define the start and end dates of the sprint.
  3. Assign the tasks committed for that sprint.
  4. Optionally, assign estimated effort points to each task.

This will generate a graph with an ideal work remaining line and columns for each day within the sprint. The planned velocity of the sprint could be shown as well.

The same page could include the list of tasks included in the sprint and their current status.

During the sprint

Team members work on their tasks, closing the as they are completed. At the end of the day, the graph is updated with new information:

  • Completing tasks
  • Actual remaining effort
  • Actual velocity of the sprint

At the end of the sprint

In addition to the data described above, at the end of the sprint we will have some useful numbers:

  • Difference between ideal and actual velocity.
  • Difference between planned and actually completed tasks.
  • Difference between estimated and actual effort points burned.

These numbers are meant to help teams planning future sprints accordingly. If Phabricator would support subprojects, then it would be useful to provide an overview comparing the results of every sprint, but we are not there yet.

What we have

  • Possibility to create projects specific to sprints (in the future a special type of project for sprints might exist)
  • Possibility to create a custom field for agile points in tasks.
  • Potentially recyclable functionality and UI in Burnup Rate and Fact.

What we miss

  • Start and end date for projects, in order to convert them in sprints.
  • Limiting the charts to the dates of the sprint.
  • Adding a line in the charts reflecting the ideal progress based on estimated points.
  • Nice to have: adding to the charts the number of tasks completed every day.

Scrumbugs_Screenshot.png (364×724 px, 28 KB)

Image source: Wikidata Developers Team.

This task was originally reported at http://fab.wmflabs.org/T244 (site replaced, data is now here: https://phabricator.wikimedia.org/T153). @Swidmann is a PHP developer active in the MediaWiki / Wikimedia community, and he is willing to work on this after syncing plans here.

Event Timeline

There are a very large number of changes, so older changes are hidden. Show Older Changes

I tried two sprint libs today, https://github.com/bluehawk/phabricator-sprint and https://github.com/wikimedia/phabricator-extensions-Sprint, both facing the problem:

>>> UNRECOVERABLE FATAL ERROR <<<

Call to undefined method ManiphestTaskQuery::withAnyProjects()

/opt/phacility/extensions/Sprint/src/query/SprintQuery.php:75


┻━┻ ︵ ¯\_(ツ)_/¯ ︵ ┻━┻

@calfzhou @g-p-g I have an open pull request for this patch on bluehawk/phabricator-sprint: https://github.com/bluehawk/phabricator-sprint/pull/11

@dpaola2: Your issue should have been fixed just recently.

Anyone still actively working on getting this merged into master?

This looks great and I want to use it!

I have installed it and can see Sprint Start Date and Sprint End Date in my project details.

I am getting Call to undefined method ManiphestTaskQuery::needProjectPHIDs() when I try to view a task.

I've raised this at https://github.com/bluehawk/phabricator-sprint/issues/13

Is anyone else getting this issue?

I am as well. Using https://github.com/bluehawk/phabricator-sprint master at commit a5decfe154427e6edb822f29f4d08427cc6e3a60

>>> UNRECOVERABLE FATAL ERROR <<<

Call to undefined method PhabricatorProjectQuery::withDatasourceQuery()

/home/bitnami/phabricator-sprint/src/BurndownListController.php:19


┻━┻ ︵ ¯\_(ツ)_/¯ ︵ ┻━┻

The upstream will not help you resolve issues with third-party extensions (see T5447). You need to report these issues to the extension maintainer, not here in the upstream.

@dancunningham @readevalprint Also (and as a reference for anyone else
landing on this page), the actual upstream is at
https://github.com/wikimedia/phabricator-extensions-Sprint - which does
work with current Phabricator. But please do take issues up with them.

I am also facing same problem but there is no errors shown in my installation.

I had seen this https://gerrit.wikimedia.org/r/#/c/207415/3/src/view/reports/SprintReportOpenTasksView.php can see its already implemented in my code. Looks like my code is having this patch since day 1.

Anyone having information about main problem/ root cause of all this?

See T5051#137287. This ticket is not a general support place for questions about other existing 3rd party extensions.

chad renamed this task from Burn down charts for projects to Burn down charts for Milestones.Feb 1 2016, 5:46 PM
chad removed Swidmann as the assignee of this task.

This task has morphed a bit, so clarifying the current intent. If you're interested in Sprint/Milestone support, which is actively being built, please follow T9378, T3670.

This task will be re-scoped to just being about burn down charts for milestones.

cburroughs moved this task from Restricted Project Column to Restricted Project Column on the Restricted Project board.May 3 2016, 6:48 PM
In T5051#156552, @chad wrote:

...
This task will be re-scoped to just being about burn down charts for milestones.

Since the number of subscribers and tokens, and number of stars of the mediawiki extension on github, seems this graph will be of very much interest for a lot of people if incorporated in the core.

And I fully agree with qgil:

In T5051#58942, @qgil wrote:

...
Personally I find "This project is 3 days behind schedule." more interesting. "70% complete" can be good news or bad news, depending of the point of time.

In the graph you can estimate schedule more than actual implementation that show points completed over total.

Here are some additional use cases and a sample implementation that is a Burn-up chart, not a Burndown chart, plus rationale.

Use Cases

  • As a Product Manager, I want to understand if a project is likely to meet a deadline, so that I can take action (such as reducing scope, reprioritizing work, or changing staffing).
  • As a Product Manager, I want to differentiate between the two factors affecting a project burnup, changes to scope of work vs velocity of completion, so that I can more accurately decide which actions to take.
  • As a Product Manager, I want to understand if a project is likely to meet a deadline, so that I can decide whether to make a public announcement, or when or what.

Sample Implementation

ve_tranche18_burnup_points.png (700×1 px, 15 KB)

Implementation notes
A burnup chart offers several advantages over a burndown chart.

  • Primarily, it shows two different pieces of information, total scope of work and total amount of work completed. These are conflated in a burndown chart, so that “more work was added to the scope” looks the same as “a bunch of work previously thought completed was found not to be completed”, and “no work is being completed” looks the same as “lots of work is being completed but new work is being added at the same rate”.
  • In the burndown example in the Feature Request Description above, Completed is shown as a separate series, but identifying scope changes is still not practical: either the Actual line is allowed to jump up and down, forcing the user to back out scope changes from progress by subtracting an instantaneous value from a cumulative value (much harder than comparing two slopes visually), and also introducing the nonsensical possibility of Actual work Remaining dropping below the X axis; or, as was implemented in Phragile, the Actual work changes retroactively whenever scope changes, so scope change information is not present in the graph.
  • Burnup charts allow for a much more natural presentation of forecasting, by comparing the slopes of the two lines and looking for an interception point. This can even by done by eyeball, without any calculated forecast data.