Command line tool that:
- Reads a JSON execution plan of gonum distributions distributions.
- Operations can be arbitrarily nested and both serial and parallel execution is supported.
- Creates a gonum graph where nodes represent generator events.
- Runs a Monte Carlo simluation of all generators.
- Computes the execution's critical path based on each
generator's
mean
result. - Generates a D2 representation and SVG image that includes denoting the critical path.
Input
{
"name": "My Project",
"runCount": 10000,
"activities": {
"tasks": [
{
"name": "DesignDoc",
"type": "PERT(4,5,8)"
}
]
}
}
Output
The final arrow points to a histogram of expected completion times:
To produce a workday calendar aware completion date, add workdays:true
key to the JSON definition.
{
"name": "My Project",
"runCount": 10000,
"workdays" : true,
"activities": {
"tasks": [
{
"name": "DesignDoc",
"type": "PERT(4,5,8)"
}
]
}
}
There are no reserved keynames in an activities object. goestimate
makes
the following assumptions:
- Key values that scope arrays are assumed to define serial tasks
- Key values that define objects are assumed to be parallel operations unless they
include
name
andactivities
keys. In that case they are treated as subgraphs. Subgraphs are output as nested D2 Containers and can be arbitrarily nested.
For instance, the workflow.json definition produces a more complex representation:
PERT and Pareto are the most useful for estimation.
- Support external JSON references (ex:
"$ref": "file://"
or"$ref": "https://"
) - Better docs
- Support critical path calculation based on pNN (current: p50 only)
- Support YAML workflow definition
- Espose more D2 formatting options (ex: sketch mode)
- Support D2 Composition
- Update formatting of summary histogram, CDF
- Color code vertices based on amount of slack similar to COLORED NETWORK DIAGRAMS (PART 1)