Outcomes, Capabilities and Links for Value Traceability
Introduction
This group of endpoints is useful for tracing requirement hierarchies and specifically the traceability of requirements to business value. ScopeMaster defines a 3-tier hierarchy as follows:
- Outcomes (should have a business scale with current and target values.)
- Capabilities (aka Epics)
- Requirements (user stories, functional, non-functional, constraints and tasks)
Available Commands:
GET /app/{app_id}/trace
outcomes, capabilities and links between them
Manage Outcomes
GET /outcomes/{outcome_id}
fetch a single outcome
POST /outcomes/
create a single outcome
PUT /outcomes/{outcome_id}
update a single outcome
DELETE /outcomes/{outcome_id}
delete a single outcome
Manage Capabilities
GET /capabilities/{capability_id}
fetch a single capability
POST /capabilities/
create a single capability
PUT /capabilities/{capability_id}
update a single capability
DELETE /capabilities/{capability_id}
delete a single capability
Manage Links between them
POST /outcome_capabilities/
create a single outcome_capability link
DELETE /outcome_capabilities/{outcome_id}/{capability_id}
delete a single outcome_capability link
POST /capability_requirements/
create a single capability_requirement link
DELETE /capability_requirements/{capability_id}/{requirement_id}
delete a single capability_requirement link
List Outcomes, Capabilities and links
GET https://api.scopemaster.com/v1/app/{app_id}/trace
Returns four groups of objects:
- Outcomes (array)
- Capabilities (array)
- Outcome_capabilities (keyed object of the hierarchical relationship, including the CFP of the downstream requirements)
- Capability_requirements (keyed object of the hierarchical relationship including the CFP of the downstream requirements)
Partial output from /api/v1/apps/AP3a54192802/trace
"outcomes": [ { "id": "OUcc242df174", "user_id": "1", "external_id": "", "statement": "random outcome statement ", "body": "", "scale": "increase sales", "current_value": "0", "target_value": "2", "created_utc": "1714552503", "updated_utc": "0" }, { "id": "OU91d98c8296", "user_id": "1", "external_id": "", "statement": "random outcome statement 40", "body": "", "scale": "increase sales", "current_value": "0", "target_value": "95", "created_utc": "1714552767", "updated_utc": "0" }, { "id": "OU1148e2c276", "user_id": "1", "external_id": "", "statement": "random outcome statement 22", "body": "", "scale": null, "current_value": "3", "target_value": "83", "created_utc": "1714557702", "updated_utc": "0" }, { "id": "OUdc746969d9", "user_id": "1", "external_id": "", "statement": "random outcome statement 12", "body": "", "scale": "increase sales", "current_value": "10", "target_value": "38", "created_utc": "1714557735", "updated_utc": "0" } ], "capabilities": [ { "id": "CA17876386c5", "user_id": "1", "external_id": "", "statement": "random capability statement 885", "body": "", "scale": "increase sales", "current_value": "2", "target_value": "13", "created_utc": "1714587121", "mcod": "300", "updated_utc": "0" }, { "id": "CAfddce72c94", "user_id": "1", "external_id": "", "statement": "random capability statement 847", "body": "", "scale": "increase sales", "current_value": "1", "target_value": "60", "created_utc": "1714587121", "mcod": "300", "updated_utc": "0" }, { "id": "CAcf316b94aa", "user_id": "1", "external_id": "", "statement": "random capability statement 796", "body": "", "scale": "increase sales", "current_value": "1", "target_value": "47", "created_utc": "1714587121", "mcod": "300", "updated_utc": "0" }, { "id": "CA14dd5618ae", "user_id": "1", "external_id": "", "statement": "random capability statement 661", "body": "", "scale": "increase sales", "current_value": "3", "target_value": "68", "created_utc": "1714587122", "mcod": "300", "updated_utc": "0" }, { "id": "CA0db97fefa6", "user_id": "1", "external_id": "", "statement": "random capability statement 684", "body": "", "scale": "increase sales", "current_value": "2", "target_value": "19", "created_utc": "1714630224", "mcod": "300", "updated_utc": "0" } ], "outcome_capabilities": { "OUcc242df174": { "cfp": 3, "capabilities": { "CA17876386c5": { "capability_id": "CA17876386c5", "cfp": 3 } } }, "OU91d98c8296": { "cfp": 9, "capabilities": { "CAfddce72c94": { "capability_id": "CAfddce72c94", "cfp": 3 }, "CAcf316b94aa": { "capability_id": "CAcf316b94aa", "cfp": 3 }, "CA14dd5618ae": { "capability_id": "CA14dd5618ae", "cfp": 3 } } }, "OU1148e2c276": { "cfp": 3, "capabilities": { "CAcf316b94aa": { "capability_id": "CAcf316b94aa", "cfp": 3 } } }, "OUdc746969d9": { "cfp": 3, "capabilities": { "CA14dd5618ae": { "capability_id": "CA14dd5618ae", "cfp": 3 } } } }, "capability_requirements": { "CA17876386c5": { "requirements": { "RQ67b9259d1d": { "requirement_id": "RQ67b9259d1d", "cfp": 3 } }, "cfp": 3 }, "CAfddce72c94": { "requirements": { "RQe60e737631": { "requirement_id": "RQe60e737631", "cfp": 3 } }, "cfp": 3 }, "CAcf316b94aa": { "requirements": { "RQ588eba4108": { "requirement_id": "RQ588eba4108", "cfp": 3 } }, "cfp": 3 }, "CA14dd5618ae": { "requirements": { "RQf7f4a0c53e": { "requirement_id": "RQf7f4a0c53e", "cfp": 3 } }, "cfp": 3 } }
Create an Outcome
POST https://api.scopemaster.com/v1/outcomes/
app_id | Required | |
statement | Required | 4-200 varchar |
body | Recommended | text |
scale | Recommended | 4-200 varchar |
current_value | Recommended | numeric |
target_value | Recommended | numeric |
external_id | Optional | 250 varchar |
Returns json with the outcome that was just created.
Delete an Outcome
An outcome can only be deleted if it has no links to capabilities.
DELETE https://api.scopemaster.com/v1/outcomes/{outcome_id}
Create a Capability
POST https://api.scopemaster.com/v1/capabilities/
app_id | Required | |
statement | Required | 4-200 varchar |
body | Recommended | text |
scale | Recommended | 4-200 varchar |
current_value | Recommended | numeric |
target_value | Recommended | numeric |
external_id | Optional | 250 varchar |
mcod | Optional | numeric |
mcod is the monthly cost of delay associated with this capability not being delivered. It can be used to determine the weighted shortest job first calculation for prioritising work.
Returns json with the capability that was just created.
Delete an Outcome
A capability can only be deleted if it has no links to requirements.
DELETE https://api.scopemaster.com/v1/capabilities/{capability_id}
Links
There are two types of links:
- from outcomes to capabilities
- from capabilities to requirements
These can be created and deleted. Their existence is visible from the trace output of app. A link defines a 1:1 relationship. A requirement can link to many capabilities and a capability can link to many outcomes.
Create an Outcome_capabilities link
POST https://api.scopemaster.com/v1/outcome_capabilities/
app_id | Required | varchar |
outcome_id | Required | varchar |
capability_id | Required | varchar |
Delete an Outcome_capabilities link
DELETE https://api.scopemaster.com/v1/outcome_capabilities/{outcome_id}/{capability_id}
Create a Capability_requirements link
POST https://api.scopemaster.com/v1/capability_requirements/
app_id | Required | varchar |
capability_id | Required | varchar |
requirement_id | Required | varchar |
Delete a Capability_requirements link
DELETE https://api.scopemaster.com/v1/capability_requirements/{capability_id}/{requirement_id}