Skip to main content

User Guide

Task Breakdown

The primary goal for UtilityDelta is to make it quick and easy to perform task breakdown and map out dependencies.

Keep breaking down tasks until it doesn't make sense to do so anymore. If you are unsure what tasks are involved and are unable to break down any further, you can mark it as 'Unknown'. Unknowns are highlighted in red and are not included in project scheduling.

You can paste any text on your clipboard into the project. Select a task and paste your content (Ctrl+P). You can build a hierarchy by adding spaces in front of each line. Markdown format is also supported.

Drag-drop tasks to move them to another parent. You can also hit 'M' on your keyboard to enter Move mode and select a new parent.

Remember there are keyboard shortcuts for most actions:

  • Enter: New sibling task
  • Ctrl+Enter or Insert: New child task
  • Escape: Cancel current operation
  • Ctrl+Z: Undo last operation
  • Ctrl+P: Paste any text as tasks under selected task (or paste a link to the current task if the clipboard contains a URL)
  • M: Move task to different parent If you forget any of the keyboard shortcuts, right-clicking on any task to pop up the context menu.

Dependency Management

Dependencies establish the required activity sequence in the project. Select a task and click 'Dependencies' (the downwards pointing arrow) or hit 'D' on your keyboard.

  1. Select a task. This is the predecessor; it must be completed first.
  2. Click 'Dependencies' (the downwards pointing arrow) in the menu or press 'D' on your keyboard. You are now in dependency mode.
  3. Select a second task. This task is the successor; it depends on the first task being completed before it can start.

Remove a dependency with the same process. Dependencies are represented visually via a dashed line and arrow. Dependencies where the successor is a parent will create a Begin Task. This cleans up the visual representation and does not impact scheduling.

Task Grouping

As more and more tasks are added, it becomes harder to organise. Select a parent task and click 'Auto Group' to sort tasks into groups.

Tasks are grouped semantically. Note that if your tasks have little correlation or natural grouping, this may be a no-op.

Role Discovery & Assignment

Your project may have tasks that require specialist roles. Under-resourcing these roles can result in blockers for other team members or delay project completion.

You can define roles in Project Settings. If you have already broken down your project into tasks, you can try the 'Magic Wand' to auto generate roles for your project.

After you are happy with the roles defined on your project, you can go back to Planning and begin to assign roles to tasks. The easiest way to do this is to group related tasks and assign the required role to the parent task.

Remember if you decide to assign roles to your tasks, you'll need team members who can perform that role. Add your team members in Project Settings and assign roles to them!

Project Operations

The graph visualisation in the Planning view highlights the critical path of your project in blue. These are the tasks you should prioritise to get your project done on-time. Look for where the critical path chain starts, assign the task and mark it as in-progress.

An alternative to the graph is the Operations view, which is a Kanban-style view of your tasks. It determines which tasks can be started based on your dependencies and allows you to track their progress.

By default the Operations view shows 'Everyone' - all tasks that are being worked on. You can rotate through your team members and assign tasks out for them quickly.

You can also run a daily standup from here. Each team member gets 1.5 minutes on a countdown timer. Team members can add post-scrums via the menu as they think of them. Remember to cycle through all team members and post-scrums to finish the standup.

By default, projects are only stored on your machine, within your browser. A lost device or clearing of you browser history means all your projects are lost forever. To avoid this, you can create a share link.

In 'Share', scroll down to 'Generate Share Link '. Select OWNER access and un-check 'Expires in 24 hours' and 'Single use'. This allows you to use the share link as many times as you like into the future as needed.

You can also use Share Links to invite others into your project. Give them either 'VIEWER' or 'CONTRIBUTOR' access and enter a description for the share link. It is also recommended to enable both link expiry and single use, to limit the chance of others gaining access to the project. Once your recipient gains access to the project you will see the Share Link marked as 'Disabled' and the user's public key SHA256 hash displayed underneath. Disable their access anytime with the 'DISABLE USER' button.

REMEMBER! Giving others OWNER access to your project allows them to give access to others.

Data Export

You can export either CSV or JSON data from your project. Internally, UtilityDelta uses an Event-Sourcing model to store data - this allows real-time collaboration and keeps track of the full history of the project.

To export only the current project state, export the 'MATERIALISED' view. This export will only contain the current state of your project.

Team Members, Average Task Duration & Standard Deviation

UtilityDelta tries to avoid burdening you with estimation of individual tasks. Instead it relies on statistics to approximate the average task duration for your project. You should focus on right-sizing tasks, by breaking down tasks into sub-tasks and identifying unknowns. The tool also calculates the standard deviation which feeds a stochastic (or probabilistic) scheduling model.

When you first start a project, there is no historical data to calculate the average task duration. Scheduling therefore uses the 'Default Task Duration' which you can set in Project Settings. Initially you should try to breakdown tasks so that they can be completed in around this time.

Start completing tasks. The tool works on a sliding timescale model; initially calculating the average task duration by using an hourly completion rate, later daily, and finally looking at completion rates on a weekly basis for longer running projects. This allows the tool to be used for both short and long-running projects.

Average Task Duration is a relationship between the number of tasks completed and the total time in hours worked on tasks.

It is therefore critical to keep track of who is working on the project and the amount of time they can dedicate to working on tasks. This is defined under 'Team Members' in Project Settings. Add your team members, and set the number of hours per week they can work on tasks (essentially an FTE). Remember to factor in unproductive time, such as meetings and other overheads.

Scheduling The 'Scheduling' page allows you to experiment with different team compositions. You can add or remove more team members and see what effect it has on your project completion times. If you have defined roles, you can add or remove team members for those roles. The scheduler will be able to identify areas of your project that are under-resourced on a role-by-role basis, and this will be reflected in additional blocked time and a longer project duration.

Remember to hit 'SCHEDULE PROJECT' each time you modify the scheduler inputs. You'll then get an updated:

  • Man Hours: Total hours spent working on tasks until completion
  • Blocked Time: Total man hours spent in blocked state (waiting for dependencies)
  • Completion Date: The day your project's tasks should all be done
  • Total Run Time: Total hours the project will take until completion
  • Bottlenecks Graph: When team members become blocked over the duration of the project and for how long
  • Team Capacity: Models under-resourcing over the duration of the project

The scheduler ignores tasks marked as unknowns. So make sure you prioritise that task breakdown!

Task selection is based on the critical path. So the algorithm will prioritise these tasks (coloured in blue). The one exception to this rule is task localisation. This is when nearby sibling tasks are prioritised and completed (if dependencies allow) before returning to the critical path. This allows for more coherent project execution by preventing team members from jumping around too much, which would cause a lot of context switching.

Remember that the task duration calculation uses a Gaussian distribution based on statistical analysis of your project's history, so not every task in the Gantt chart will have the same duration. Also, tasks are not completed on weekends.

Project History

The event sourcing model allows you to go back to any time in the past for your project. In the bottom right corner there is a calendar icon: 'PROJECT HISTORY AT' which can be used to view the state of the project at the end of that date. Use the arrow button above to step through each event, moving forward into the future.

It's particuarly useful to view the results of Project Analysis and compare that to the project current state, to see if you are having any drift in dates, either due to scope creep, estimation or resourcing issues. While you are looking at project history, the UI is in read-only mode. Go back to the current date to get back to write mode.