---
tags:
  - destiny/fleeting
  - topic/automation
  - topic/estimating
  - topic/software
  - type/philosophy
title: Separating Estimating Concerns
---
# Separating Estimating Concerns

> [!info] Separation of Concerns
> Separation of concerns is a design philosophy
> of eliminating unnecessary process coupling,
> or in other words preferring specialization.
> It is traditionally understood as a principle strictly of _software_ design,
> however its applications are universal.

%%
Minimize takeoff flow disruption

Decouple takeoff (description of work) from assembly selection:
%%

## In the Real World

In [[my-occupation]],

## Ideal Workflow

### 1. Annotation

Annotation is documenting project scope as intended by its design.
This involves reconciling missing and conflicting requirements,
as well as erroneous and misplaced symbols.

This process is intended to be _unbiased_, without respect for
* industry knowledge
* contractor standard practices

The annotator is to describe the design scope
without adding any outside information.

#### Output

The processes and tools for completing this step
would differ between design-build and plans-and-specs projects,
but the output would be identical in function.

This step encodes "measures" with "tags"
and describes the behavior of special tags
(e.g. structure height of each `Level`)

### ~~next step(s)~~

Define takeoff given counts from step 1.

```
LET wiring-devices 'default/wiring-devices/decora'

FOREACH MEASURE
WHERE 'type' IS 'device/receptacle/duplex' AND 'mounting' IS 'flush'
TAKEOFF 'DUPLEX REC - FLUSH IN METAL STUDS' FROM wiring-devices
```

### -1. Reporting

Build deliverables (proposals, BOM's)
