I enjoy the Agile Scrum project management workflow at my workplace where we use Atlassian’s Jira & Scrum tools for managing various projects. While, one may not need all the hefty features of a enterprise tool for managing personal projects, it would be nice to have a free tool with support for such a Agile Scrum workflow.

Some of the features that I expect in a Agile Scrum tool (for personal use) are:

  • Having the ability to create and manage sprints and a backlog
  • Usage of epics to categorize the list of items to be completed in a project
  • Being able to assign story points to stories
  • View progress in a sprint – with story points as a metric
  • Being able to mark items as done

Trello has been referenced for use as a scrum tool, which may need a few tweaks/hacks. While, this may work for others, I was looking for a much simpler alternative like Workflowy. In case, you haven’t heard about it before:

WorkFlowy is an organizational tool that makes life easier. It can help you organize personal to-dos, collaborate on large team projects, take notes, write research papers, keep a journal, plan a wedding, and much more.

For my wishlist of Agile/Scrum features mentioned above for personal use, here is how Workflowy can be set up:

  • Workflowy supports tagging so, tags can be used as epics for categorization
  • (hack) Use tags with a specific prefix for assigning story points to individual items
  • View progress in a given sprint using a bookmarklet

As indicated in the screenshot below, I am using  “SP-” as a standard prefix for assigning story points to individual items.

The JavaScript snippet below looks for tags starting with “SP-” on the page and displays a alert box indicating the story points for total, pending and completed items.

To use this in workflowy, simple create a bookmarklet in your browser with any name of your choice and the minified version of the code below as the URL. To see the progress in a given sprint or a view, simply click on the bookmarklet and it will display the progress.

Note: when using this bookmarklet, please make sure to have “Completed:visible” in workflowy (top-right corner). You may change this back to “Completed:hidden” after viewing the progress.

javascript: (function() {
    var allTagText = jQuery('.contentTagText:contains("SP")').text();
    var doneTagText = jQuery('.done .contentTagText:contains("SP")').text();
    var numberPattern = /d+/g;
    var allSprintStoryPoints = allTagText.match(numberPattern);
    var allCount = 0;var doneCount = 0;
    for (var i = 0; i < allSprintStoryPoints.length; i++) {
        allCount += parseInt(allSprintStoryPoints[i])
    };
    var doneSprintStoryPoints = doneTagText.match(numberPattern);
  if(doneTagText.length > 0) {
    for (var i = 0; i < doneSprintStoryPoints.length; i++) {
        doneCount += parseInt(doneSprintStoryPoints[i])
    };
  } else {
    doneCount = 0;
  }

    alert('Total: ' + allCount + '  ' + ' Pending: ' +
          (parseInt(allCount) - parseInt(doneCount)) +
          '  Completed:  ' + doneCount);
}());

Minified version of this code is available here.