Skip to content
Viktor A. Danilov edited this page Nov 27, 2016 · 47 revisions

estimation-tools

Techniques and Tools which could help you to estimate a scope of work:

this


It converts a Mind Mapped project decomposition like this: this into an Xlsx estimation report like this: this

The Idea

The idea is to use Mind Mapping to make you project decomposed into parts: from stages down to simple tasks (see Work breakdown structure). An introduction of a special node value format for extra elements (roles, estimation numbers and comments) will allow estimation tool to analyze the MindMap file and to create a report speadsheet with the decomposition and estimates.

MindMap improvements

There is three special nodes which are caught by the tool (matching the node value determines the its type). All other nodes (starting from the root up to a first special node) are general nodes - it's just the project decomposition. For more details of the behavior see How It Works section.

Estimation node

An estimation node specifies the value of resource range (minimum, realistic and maximum time) required for the node it's connected with. It could/should be connected either to general node or to role node. Also it should always be a single leaf node: if a node has an estimation node as a child, there should not be any other child nodes in the first one.

Node value format: estimate=O/E/P - the keyword estimate with an equal sign and a set of three numbers divided by a slash sign, where O (optimistic), E (expected) and P (pessimistic) are non-negative numbers (0 <= O <= E <= P < Infinity).

  • O (optimistic) value defines absolute minimum of required time of a resource;
  • E (expected) is an amount of resource time likely to be enough;
  • P (pessimistic) is a maximum resource time (think it like «this time is enough even if almost all goes wrong»).

It does not defined which time metric you should use (story points, days, hours, Friday evenings, ...) - only one rule you have to follow: all estimation nodes should have one and the same metric through your MindMap.

Role node

A role node is used to specify type of resource (role) required for the node it's connected with: it could be placed only between a general node and its estimation node. In that case it's possible to specify several roles (with their estimations) for a single general node.

Node value format: (rolename) - the role title enclosed in parentheses, where rolename is just a string without spaces identifies type of the resource or/and activity (i.e. coder, developer, analyst, admin, manager, ...).

Comment node

A comment node is used to highlight/clarify additional information to the node it's connected with: it's always a leaf node and should be connected only to general nodes.

Node value format: [prefix] text - the node should have a multi-line text value, each line starts with a prefix enclosed in brackets (i.e. [idea] let's document the rules).

According to the prefix the following text will be changed and placed to the report by the rule defined for that prefix.

Report Format

The result report is a spreadsheet (xlsx document). It's just a compact representation of the original MindMap with final numbers: it shows the original task decomposition with estimations and statistics over them. All original tree and decomposition goes from MindMap as it was, all calculations are injected to the report as a formulas: you always can change any data directly in the report (useful if someone wants to play with scope/numbers) and recalculate result directly in the report document (you don't have to modify the original MindMap and use the tool for each change).

The document has the header (captions for column), the body (rows for nodes in the MindMap with estimations) and footer (aggregation over the numbers from the body).

Main columns (used in the report body part) are the following:

  1. Title - it contains names of general nodes (hierarchy is shown with the magic of indention);
  2. Usage multiplier - it shows if the row should be used in the report statistics (technical column, hidden);
  3. Comment - aggregated comment from the comment nodes;
  4. Estimation - three column for O (optimistic), E (expected) and P (pessimistic) - original estimations from the MindMap;
  5. Weighted mean - mean value, calculated by the formula (O + 4*E + P) / 6;
  6. Range size - the size of the estimation interval, formula: (P - O) / 6;
  7. Squared range - squared value of the previous column (technical column, visible).

Footer has extra several rows with their own structure:

  1. Total row - it summarizes by rows all estimation columns, weighted means, range sizes and squared range. It uses SUMPRODUCT with usage multiplier column value to filter rows.
  2. Total rows (for each role) - there is a row for each role in the original MindMap, it summarizes values the same way (but for estimations marked by the appropriate role only).

...

TODO: columns, math basis, meaning of the numbers

TODO: math

Estimation Approach

TODO: techniques description with samples

TODO: step-by-step tutorial (screenshots)

How It Works

TODO: input format, script arguments

TODO: strict node format

TODO: detailed script algorithm

TODO: don't forget to recalculate formulas (link to the problem page)

TODO: link to xlsxwriter

How to Use

TODO: input format, script arguments

TODO: don't forget to recalculate formulas (link to the problem page)

Recommended tools

Clone this wiki locally