Goal
Settle the legal and financial frame before work starts: who owns what, which milestones are paid, how acceptance works, how data is handled — then kick off with the right people.
Inputs → outputs
Inputs
- Accepted proposal
- Both parties’ contract templates
- Legal entity details and signatories
Deliverables
- Signed MSA + SOW
- Appendices: milestone payments, acceptance criteria, warranty terms
- Third-party licence inventory (initial)
- Data processing agreement (if applicable)
- Kick-off minutes
Teams & roles
- Legal & Financecontracts, IP, DPA, invoicing
- Sales & Presalesnegotiates commercial terms
- Project Management / Scrum Masterwrites the SOW, runs the kick-off
- Solution Architecturethird-party licence inventory
- Project Management Office (PMO)approves terms and signs for the supplier
- Client (Product Owner / sponsor)reviews, signs, appoints the Product Owner
RACI matrix
R — does the work · A — accountable, final sign-off (exactly one A per activity) · C — consulted before · I — informed after.
| Activity | Sales | BA | Arch | PM | Sec | Legal | PMO | Client |
|---|---|---|---|---|---|---|---|---|
| Draft MSA & SOW | R | · | · | R | · | A | · | C |
| IP terms & third-party licences | · | · | R | · | · | A | · | C |
| Milestone payments & invoicing | R | · | · | C | · | A | · | C |
| Data processing agreement (DPA) | · | · | · | · | C | A | · | C |
| Contract signature (both parties) | · | · | · | · | · | R | A | R |
| Kick-off meeting | I | R | R | A | · | · | · | R |
Sales = Sales & Presales; BA = Business Analysis (BA); Arch = Solution Architecture; PM = Project Management / Scrum Master; Sec = Application Security (AppSec); Legal = Legal & Finance; PMO = Project Management Office (PMO); Client = Client (Product Owner / sponsor)
Quality gate
MSA + SOW signed, payment schedule and acceptance criteria fixed, kick-off held with decision-makers present.
Entry criteria
- Client chose the option and MVP in writing
- An authorised signatory exists on the client side
Exit criteria
- MSA + SOW + appendices signed by authorised people
- IP, confidentiality and personal-data terms are explicit
- Payment schedule tied to acceptance milestones
- Kick-off held and minutes sent
- Contact list and channels confirmed by both sides
Activities
- 1.Draft the master services agreement (MSA) and statement of work (SOW): milestones, acceptance criteria, warranty, liability cap, termination
- 2.Agree intellectual property: bespoke code transfers on full payment; pre-existing libraries and tools are licensed, not transferred
- 3.Milestone payment schedule tied to each acceptance record; issue lawful e-invoices
- 4.Inventory third-party licences (open source, fonts, images, paid APIs) and their obligations
- 5.Data processing agreement (DPA) when the system processes personal data on the client’s behalf
- 6.Kick-off meeting: team, RACI, channels, meeting cadence, change and escalation process
Checklist
Tick to self-review — 0/8. Ticks stay in this browser only and are not sent anywhere.
Document templates
Markdown (.md) files: open in any editor, or paste into Word / Google Docs. Each states its purpose, who fills it in and when.
Client involvement
- Client’s legal team reviews and signs
- Appoint a Product Owner and a project sponsor
- Attend the kick-off with decision-makers present
Tools
- Google Docs (theo dõi sửa đổi)
- Chữ ký số / e-sign
- Phần mềm hoá đơn điện tử
- CT Work
Reference standards
- Bộ luật Dân sự 2015 (91/2015/QH13)
- Legal basis for service contracts in Vietnam
- Luật Sở hữu trí tuệ 2005 (sửa đổi 2009, 2019, 2022)
- Computer programs are protected by copyright as literary works
- Luật Giao dịch điện tử 2023 (20/2023/QH15)
- Legal validity of electronic contracts and signatures
- Nghị định 123/2020/NĐ-CP
- E-invoices and vouchers (with current amendments)
- ISO/IEC 5230:2020 (OpenChain)
- Open-source licence compliance programme
- Luật Bảo vệ dữ liệu cá nhân 2025 (91/2025/QH15) và Nghị định 356/2025/NĐ-CP
- Controller / processor roles for personal data in the contract
Common pitfalls
- Using an internet contract template without a lawyer
- No IP transfer point → disputes over the code
- Fixed-scope contract paid by time instead of by acceptance milestones
- Forgetting third-party licences (fonts, GPL libraries, paid APIs) shipped with the product
- Kick-off without the client’s decision-makers
Real example
cuongthai.com, 2 Jul 2026: the GIF feature died because, with an env var missing, the app fell back to GIPHY’s public beta key, which had been revoked (403). Third-party services have their own terms and keys — so the contract’s third-party inventory states whose name the key is in, which plan, who pays, when it expires, and that it lives on the server, not in browser code.
Where to learn
Subjects and courses on cuongthai.com that teach this stage’s work.