What you'll learn: how to structure a response to a request for information (RFI) or request for proposal (RFP), here an internal request from Lumen Customer Operations to the delivery team, and the statement of work (SOW) that follows, and how to keep assumptions, exclusions and risks apart. Engineering structure, not legal advice.
At a glance
Figure 1. From a request to a signed scope
How to read this: each document narrows the one before it, and changes after signing go back through the SOW.
- An RFI asks what is possible, an RFP asks for a priced proposal, a SOW fixes what is delivered and accepted.
- Assumptions, exclusions and risks are three different lists.
- Test every clause.
Scenario
Composite scenario, not a real company. Lumen Industrial Supply, a fictional distributor of industrial equipment. Its Customer Operations team has issued an internal request for proposal to the delivery team (the architect and Forward Deployed Engineers) for an assistant that helps its 24 agents answer order and policy questions. The request has numbered requirements and a ten-working-day deadline (illustrative). You are the solution architect on the delivery team and write the technical part of the response.
What you will be able to do
- Write the nine sections of a response with testable assumptions, exclusions and risks.
- Fill a compliance matrix honestly.
- Rewrite a vague SOW clause so a stranger can test it.
Prerequisites
- Estimation and TCO (TCO is total cost of ownership) and MVP scope and acceptance criteria (MVP: minimum viable product).
- The solution architect cycle for stages and gates.
Core ideas
The nine sections of a response
Here a SOW is the agreed description of the work, deliverables, acceptance and responsibilities between Customer Operations and the delivery team.
| Section | For the Order and Policy Assistant |
|---|---|
| 1 Understanding | 9,600 contacts a month, a 9-minute median, an old return policy still searchable |
| 2 Approach | Context view; order facts from the order management system (OMS) by code, policy answers cited |
| 3 Plan | Stages and gates from the cycle |
| 4 Assumptions | Numbered, each testable |
| 5 Exclusions | Numbered; things a reader might expect |
| 6 Risks | Risk, impact, response, owner |
| 7 Responsibilities | Customer Operations and the delivery team, with time commitments |
| 8 Cost and funding | 68 person-days, build 30,600, three-year TCO 93,357.50 (illustrative placeholder prices; see estimation) |
| 9 Compliance matrix | Met, partly or not met, with evidence |
Liability, payment, intellectual property and data-protection terms belong to legal teams. Make the technical content precise enough for them to draft around, whether the agreement is internal or with a partner.
Three lists, three tests
An assumption is something you rely on; if false, price or date changes. An exclusion is something a reader might expect that is not included. A risk might happen, with a planned response.
| List | Example (illustrative) | Test |
|---|---|---|
| Assumption | "Lumen supplies all 62 policy documents as text, with version and effective date, within 5 working days of kickoff" | Checkable on a date |
| Exclusion | "Write actions: address changes, discount exceptions, return authorisations (phase 2)" | Would an agent expect it? List it |
| Risk | "P-RET-01 v2 (14 days) and v3 (30 days) both searchable; response: index current versions only, test the old rule; owner: policy owner" | Owner and response exist |
- A compliance row. Requirement "data stays in Lumen's region" is partly met: the service runs behind Lumen's gateway, and where the hosted model processes data is not yet confirmed (owner: IT security lead).
At the customer: the requester or Finance asks "what happens if your assumption is wrong?" Point to the change-control clause and name who decides.
In the interview: "What do you do with a requirement you are unsure about?" Mark it partly or not met, state the gap and the plan, and do not overstate to look compliant.
Worked example
Spot the flaw. Find four defects in this draft SOW extract before opening the answer.