Evidence-Based Scheduler

Project Management | Task Scheduling

Tasks

Record your time & What should you do next

Dependency Graph

How tasks are connected to other tasks

Prediction

When you will finish

Examples

more examples coming soon

What even is this?

It's a project management / task scheduling program that knows that everyone sucks at estimating and still gives reliable predictions for when projects are going to be done. It is an implementation of the "Evidence-Based Scheduling" idea, which is proposed in this blog post by Joel Spoolsky.

It is free & open source

It lets you

  • see your task dependencies clearly
  • manage resources
  • record project progress
  • come up with reliable predictions of when you'll be done

Core Ideas

Evidence-Based

here's a quick summary:

Break down tasks

You're sooo bad at estimating anything that is too big. But you can more or less reliably estimate things that are small enough to accomplish in a couple of hours. So you have to break tasks down to this, down to about a maximum of 16 hours.

Breaking things down forces you to design the features you want to build, which is what really adds the reliability to the schedule.

Keep the clock running

Ok, so we know you suck at estimating tasks, but the hope is that you're at least consistently bad. So, we record the estimate, then compare it with how long it actually took you to finish.

What about interruptions or scheduled irrelevancies? It's simple: Keep the clock running. You're measuring the time from start to finish for the task. Everything else will be accounted for in the average over time.

Simulate the future

Now that we have the tasks, their estimates, and your estimation accuracy, we can extrapolate that into the future and tell you when the project will be done. The Monte Carlo method works fine for this and gives you a probability that the project will be done on any given date.

If you take snapshots over time as the project goes on, you can even check how the project's predicted done date is changing. You want to see the done date prediction stay stable or even move backward in time, and you want the range of probable dates to converge on one date. With this you can know with confidence when your project will be done.

Note that you should still put buffer into your timelines, because there are always unforseen tasks that pop up, this method just gives reliability for the project scope as it stands today.

Fractal Projects

Projects are made up of multiple tasks. Likewise, tasks themselves when broken up are just mini-projects, and projects can operate as tasks of larger super-projects. This kind of similarity at different scales is called a fractal. This app allows you to model arbitrary-level projects.

Tasks may also often be a part of multiple projects. This app allows for that.

Version Control

Projects change often and usually by many people. A version control system is built for these kinds of changes. In particular, it provides a natural way to handle conflicts and syncing between many people managing their own stable copies. Distributed version control systems even allow this to happen without a centralized server.

This app uses json as a storage mechanism for the data, so it is ready to be used with any version control system.

A side-benefit of this is that you can also build your own tools to do whatever analysis and manipulation you like with the data.

Inspiration

Frequently Asked Questions

GitHub Repository Buy me a coffee Other projects