Feature breakdown · built with CraftHQ
Requesting documents from customers (checklist)
Whole-team time at this build's pace
2 people incl. the product owner, requirements to merge
Estimate at this build's pace, not a measurement of this feature
Send a customer a precise, tracked list of the documents and answers you need, and proceed only when everything required is in and verified.
How long a feature this size usually takes
Whole-team time — this build vs a typical team
~34 FP · FP × 6.8 to 9.4 h (ISBSG 2023)
Estimate at this build's pace, not a measurement of this feature
Both figures are whole-team time over the whole lifecycle, so they compare like for like. Ours is this build's pace — about 0.8 hours per function point across the whole build (two people, including the product owner, with requirements and review time). The industry range is an ISBSG project-level figure applied to one feature, so it is indicative.
Workflow
How it moved through the workflow
Select a stage. The build shipped, so every stage is complete; a person approved the merge.
Request
Replace chasing documents by email with an explicit, tracked list of what is needed, and gate the next step on it being in and verified.
Questions
Three decisions went to the business before building: whether the list is a stage or a page, how a conditional sub-question is shown, and whether the free-text answer is mandatory.
Approved
The product owner signs off the breakdown by moving the story into the approved state, and the build runs against that reference.
Definition of ready
Building
CraftHQ's build agents write the code and the tests together, run as a loop; a failing check halts the work until it passes.
Checks
Three checks run on every pull request: one on the product owner's machine as CraftHQ builds, one on the engineer's machine before review, and a code-quality scan in CI. Merging is gated by the CI check passing and a person's approval, enforced by branch protection.
Review
An engineer reviews the pull request and merges it.
Merged
The pull request is merged to main after a person approves it. Nothing merges without that approval.
Definition of done
Breakdown
The feature breakdown
Business first, then the engineering view. Tab through it.
Overview
The gap it closes
Chasing documents by email loses track of what was asked for and what is still outstanding, and lets work start before everything needed is in.
Who uses it
Staff build and verify the request. Customers supply the documents and answers in their own workspace.
User story
As a staff member, I want to send a customer a precise, tracked list of the documents and answers I need so that I can proceed only when everything required is in and verified.
Examples
Example 1
A staff member builds a request of items, each either a document to upload or a question to answer. The customer supplies them in their own workspace, and the staff member verifies each one.
Example 2
Required items are supplied but not yet verified. The next step stays closed until a staff member verifies them, so work never moves on incomplete.
Dependencies & risks
Depends on
The file upload and the customer workspace, and a reminder job for outstanding items.
Risk & mitigation
A request could stall if a customer forgets an item. Reduced by a reminder path and a clear tracker of what is outstanding, supplied and verified.
How it works
Simplified diagrams of the parts involved, the steps of one request, and where it runs.
Architecture
- 1build and verify
- 2send the request
- 3supply items
- 4staff verify or reject each item; verified items open the next step
- 5reminder sent through the delivery service
Sequence
- 1build and send the request
- 2store the items
- 3supply a document or an answer
- 4record the item as supplied
- 5verify the required items
- 6the next step opens
Infrastructure
- 1build, supply, verify
- 2read and write request items
- 3store uploaded documents
- 4find outstanding items to remind
Acceptance criteria
Each scenario is written as a Gherkin spec. The Engineering tab shows the test that covers each one, or notes where it was verified by review.
@files @requestsFeature: Requesting documents from customersAs a staff memberI want to send a customer a precise, tracked list of what I needSo that I can proceed only when everything required is in and verifiedNo more chasing documents by email. The request is an explicit, tracked list, and the next step is gated on it.Background:Given a staff member is preparing a request for a customerRule: A request is a list of items, each a document to upload or a question to answerScenario: Build a request of documents and questionsGiven a staff member adds request itemsWhen each item is set to "upload a document" or "provide an answer"Then the request lists both kinds of item, each tracked on its ownRule: Required items are verified before the next step opensScenario: The next step is gated on verified required itemsGiven some required items are not yet verifiedWhen a staff member tries to move to the next stepThen the next step stays closed until the required items are verifiedRule: The customer supplies items in their own workspaceScenario: A customer supplies an itemGiven a request has been sent to a customerWhen the customer uploads a document or answers a question in their workspaceThen the item is recorded against the requestScenario: Staff supply an item on the customer's behalfGiven a customer cannot supply an item themselvesWhen a staff member supplies it on their behalfThen the item is recorded with the on-behalf actionAnd an item supplied on behalf is flagged, so one person does not silently both supply and verify itRule: Staff verify or reject each supplied itemScenario: A supplied item is rejected for the customer to re-supplyGiven a customer has supplied a required itemWhen a staff member rejects it with a reasonThen the item returns to the customer to re-supplyAnd the next step stays closedScenario: A verified item is locked against further customer uploadGiven a staff member has verified a supplied itemWhen the customer tries to upload over itThen the upload is refused, and staff must request rework to re-open the itemRule: Reminders chase outstanding items and stop when completeScenario: Reminders stop once everything required is inGiven a request has outstanding required itemsWhen the reminder runsThen the customer is reminded of the outstanding itemsAnd reminders stop once all required items are supplied and verifiedRule: A request belongs to one organisationScenario: Another organisation cannot see the requestGiven a request belongs to one customer organisationWhen a user from another organisation tries to open itThen the request is not visible to them@edge-casesScenario Outline: Request item statesGiven a required item is "<state>"When the request is reviewedThen the next step is "<result>"Examples:| state | result || not supplied | closed || supplied | closed || verified | open |
Questions
Questions raised in planning, each with the decision taken.
Is the request list a workflow stage, or a page?
Making it a stage ties it to the step order; making it a page lets it be filled in alongside other work.
Should a conditional sub-question be folded into its parent, or kept as its own item?
Folding it keeps the customer's view simple; keeping it separate lets staff verify it on its own.
Should the free-text answer field be mandatory?
Making it mandatory can block a customer who has a file instead of an answer; the real requirement is that each item has either a file or an answer.
How we sized it
A function point measures what the software does — its inputs, outputs, lookups and the data it stores — regardless of language or how many lines it took. Each counted item is weighted by complexity: a user input counts 3–6 points, an output or report 4–7, a lookup 3–6, data the feature owns 7–10, and data read from elsewhere 5–7.
- The request-item store this feature ownsData the feature owns10
- Generate a request for documents and answersUser input6
- Staff verify or reject a supplied itemUser input4
- Customer supplies a document or an answerUser input6
- Track the request and mirror it to the customerLookup4
- Send the request, or supply on the customer's behalfOutput or report4
- Total34
Components touched
Request items
Each item is a document to upload or a question to answer, keyed by a stable item key rather than the on-screen control.
Verify or reject
A staff member verifies each supplied item, or rejects it with a reason so the customer re-supplies. A verified item is locked against further customer uploads; staff can request rework. Required items must be verified before the next step opens.
Mirrored customer workspace
The customer supplies items in their own workspace; staff can also supply on their behalf.
Reminder job
A background job reminds the customer of outstanding items on a schedule, and stops once all required items are supplied and verified; reminders are sent through the delivery service.
Data touched
Request itemswrite
The list of items, their kind, and their supplied and verified state.
Files and answerswrite
The uploaded documents and the text answers supplied against items.
Audit logappend
Records an on-behalf supply and other sensitive actions.
Security decisions
- The next step is gated on verified required items, so work cannot move on incomplete.
- A customer only ever sees their own workspace.
- An on-behalf supply by staff is recorded.
Subtasks
- The request items, keyed by a stable item key.
- The file-or-text save rule.
- The verify gate before the next step.
- The mirrored customer workspace and on-behalf supply.
- The reminder job for outstanding items.
How each scenario is verified
- Build a request of documents and questionsTest over building and acting on request items.
- A customer supplies an itemTest over the customer workspace supplying a document or an answer.
- A reminder path chases outstanding itemsVerified by review of the reminder path.
- The next step is gated on verified required itemsCovered by the verify gate behaviour.
Risk tier
Logic A person approves every merge. This is a Logic-tier change; it carries automated tests for its rules.
Start here
Want this on your backlog?
Get a free baseline report on one repository, or scope a 3-month pilot measured against what your team’s work costs today.