Problem
A Problem is what an ICP struggles with, in their own words: how they solve it today and what it costs them.
Properties
| Property | Type | Required | Description |
|---|---|---|---|
statement | text | required | The struggle, in the words of the ICP. |
costPerPeriod | json | What the Problem costs the ICP per period: hours times wage, or the spend on what they hire today. | |
address | json | The opportunity map cell it sits on: an occupation, a task it performs, and an industry. | |
moment | text | The moment the job starts, with the observable trigger that marks it. | |
progress | text | The progress the ICP wants, from the state before to the state after. | |
hiredToday | json | What the ICP hires for the job today, by kind and cost: software, a Service, their own hands, or nothing. |
Object
{
"$id": "https: //api.sb/ routewise.dev/ problems/ problem_1",
"$type": "Problem",
"statement": "Plans delivery routes for courier fleets through an API.",
"costPerPeriod": {},
"address": {},
"moment": "Example moment",
"progress": "Example progress",
"hiredToday": {}
}Relationships
- A Problem is addressed by many Issues: an Issue addresses the Problems its Evidence came from, so the Customers behind that Evidence hear when it ships.
addressedBy, inverseaddresses. - A Problem is documented by many pieces of Evidence: Evidence shows a Problem in the words or behavior of the ICP.
documentedBy, inversedocuments. - A Problem is faced by many ICPs: an ICP struggles with Problems: how they solve them today and what that costs.
facedBy, inversefaces.
Verbs
createCreates a Problem.POST /{namespace}/problemsgetReturns one Problem by id.GET /{namespace}/problems/{id}listReturns Problems, newest first, one page at a time.GET /{namespace}/problemsupdateChanges the given properties of a Problem.PATCH /{namespace}/problems/{id}deleteDeletes a Problem; its history is kept.DELETE /{namespace}/problems/{id}rankRank orders Problems by revenue at stake, Evidence grade and effort, so the next Project addresses the top one.POST /{namespace}/problems/ranksuggestSuggest records a Customer’s ask for something the Product lacks as Evidence on a Problem, with the asker attached.POST /{namespace}/problems/suggest
Permissions
Which Access level may call each Verb. One-way Verbs wait their delay window.
| Operation | owner | admin | member | viewer |
|---|---|---|---|---|
Problem.create | Yes | Yes | Yes | No |
Problem.get | Yes | Yes | Yes | Yes |
Problem.list | Yes | Yes | Yes | Yes |
Problem.update | Yes | Yes | Yes | No |
Problem.delete | Yes | Yes | Yes | No |
Problem.rank | Yes | Yes | Yes | No |
Problem.suggest | Yes | Yes | Yes | No |
Call it
Suggest the latest problem.Example
A litigation-support firm pulls 300 dockets a week from eight court sites by hand, and it takes two paralegals a full day. That is the Problem, in their words.