Skip to content
/ clebs Public

A project estimator based on Joel Spolsky's Evidence-Based Scheduling.

License

Notifications You must be signed in to change notification settings

philipmw/clebs

Repository files navigation

clebs

clebs is a project estimator based on Joel Spolsky's Evidence-Based Scheduling. This README and project assume you've read that article and have become familiar with the concepts and terms.

The "cl" in clebs stands for command-line, or Clojure, or both.

Usage

This software runs on the command line.

The main benefit of the command line over a single-page application is giving you greater control and flexibility of your data. You own the data files, and you can track multiple projects in multiple files and easily try "what-if" scenarios.

Follow these steps to start using clebs:

1. download clebs

Download the JAR from GitHub, or build it yourself using instructions below.

2. create the evidence

The evidence file has your past estimates and actual durations for tasks. The estimates and actual durations are expressed as ISO 8601 durations, and the dates of estimation are expressed as ISO 8601 dates.

See a sample evidence file at ./test/data/evidence.xml.

3. create the plan

The plan file has the critical path for your project.

For now, clebs assumes you'll execute exactly one task at a time from your plan until the project is finished. Thus, the task order and dependencies do not matter.

The plan's estimates are in ISO 8601 durations, just like the evidence estimates.

See a sample plan file at ./test/data/plan.xml.

4. estimate

$ java -jar clebs.jar \
    estimate \
    --workday PT8H \
    --evidence evidence.xml \
    --plan project.xml

Sample output:

You estimated your project to take 9 workdays (PT73H)
Simulating 10000 executions of your project...
p5 execution: 8 workdays (PT61H)
p50 execution: 10 workdays (PT77H)
p95 execution: 14 workdays (PT109H)

This means:

You estimated the project to take 9 workdays. Given your past, you may be right. In the best case (5th percentile), it may actually take you only 8 workdays. In the average case (50th percentile), it'll take you 10 workdays. In the worst case (95th percentile), it'll take as long as 14 workdays.

The workday is a customizable duration, 8 hours in this example, to help make sense of the total duration in the context of normal office work. clebs internally deals with durations that are not aware of when you are sleeping versus working on the project. Unless your project involves non-stop work, always set the workday value.

Tracking your time

If you track your time precisely, in hours or minutes, here are some tools to consider. All these tools do not have a monthly subscription.

Comparison to OmniPlan

OmniPlan is a commercial project management tool. With the Pro license, it offers to use simulations to estimate project completion.

On the whole, OmniPlan is a much more comprehensive and user-friendly tool than clebs. But clebs' strength is using evidence to simulate a range of task durations, whereas OmniPlan uses a fixed range such as 50% -- 150%.

Using evidence from developers allows for more accurate project completion estimates than using a fixed range. See the Evidence-Based Scheduling article for the rationale.

Feedback, contributions

I hope you find this project useful.

Please let me know if you use this project.

I welcome your ideas or code for making it better.

Development

Continuous Integration status Coverage Status

I develop this software on macOS, using Intellij IDEA and Cursive IntelliJ plugin.

Initial setup:

$ brew install leiningen

Development:

$ lein test

$ lein run

$ lein run simulate --evidence ./test/data/evidence.xml --plan ./test/data/plan.xml

$ lein cloverage

Release:

$ lein uberjar

About

A project estimator based on Joel Spolsky's Evidence-Based Scheduling.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published