Một hợp đồng phát triển phần mềm dùng được có phần thân ngắn, nêu quyền và nghĩa vụ, còn phần kỹ thuật nằm ở phụ lục: đặc tả phạm vi, lịch và mốc, tiêu chí nghiệm thu, lịch thanh toán, danh sách bàn giao. Người mua nên đọc phụ lục kỹ hơn phần thân, vì tranh chấp hầu như luôn nổ ra ở câu "cái này có trong phạm vi không". Ba điều khoản hay bị cài, cần tìm trước khi ký: mã nguồn chỉ được "cấp quyền sử dụng", phạm vi dẫn chiếu tới "các trao đổi giữa hai bên", và bảo hành chỉ có hiệu lực khi mua gói bảo trì của chính bên làm.

Bài này không thay tư vấn của luật sư. Nó giúp người mua biết khung hợp đồng trông thế nào để đọc bản nháp nhà cung cấp gửi, và biết hỏi luật sư câu gì.
Khung mười điều của phần thân
- Các bên và định nghĩa: tên pháp nhân, người đại diện, định nghĩa các từ như phần mềm, mã nguồn, nghiệm thu, lỗi.
- Phạm vi công việc: dẫn chiếu Phụ lục 1, nêu rõ phiên bản tài liệu.
- Thời gian thực hiện: dẫn chiếu Phụ lục 2, nêu điều kiện gia hạn.
- Nghiệm thu: quy trình, thời hạn phản hồi, dẫn chiếu Phụ lục 3.
- Giá và thanh toán: tổng giá, dẫn chiếu Phụ lục 4, hoá đơn.
- Thay đổi phạm vi: cách đề xuất, ước lượng, duyệt, lập phụ lục bổ sung.
- Sở hữu trí tuệ và bàn giao: mã nguồn, tài liệu, tài khoản, dẫn chiếu Phụ lục 5.
- Bảo mật: thông tin nghiệp vụ, dữ liệu thật, thời hạn nghĩa vụ bảo mật.
- Bảo hành: phạm vi, thời hạn, thời gian phản hồi theo mức nghiêm trọng, những gì không thuộc bảo hành.
- Chấm dứt và giải quyết tranh chấp: các trường hợp chấm dứt, phần đã làm được xử lý thế nào, trình tự thương lượng, hoà giải, toà án hoặc trọng tài.
Năm phụ lục mang phần kỹ thuật
| Phụ lục | Nội dung | Người mua kiểm gì |
|---|---|---|
| 1. Phạm vi | Đặc tả chức năng (SRS hoặc bản rút gọn), danh sách không làm | Tìm đủ năm luồng việc chính của mình |
| 2. Lịch và mốc | Các chặng, ngày bản thử, ngày nghiệm thu | Mốc nào phụ thuộc việc của bên mua |
| 3. Nghiệm thu | Kịch bản kiểm, tiêu chí đạt, cách xử lý lỗi còn tồn | Câu kiểm có đo được không |
| 4. Thanh toán | Các đợt gắn với mốc nghiệm thu, hoá đơn | Đợt nào trả trước khi thấy phần mềm chạy |
| 5. Bàn giao | Mã nguồn, tài liệu, tài khoản, đào tạo | Có danh sách cụ thể hay chỉ một dòng chung |
Để đối chiếu, Điều khoản dịch vụ công khai của ALODEV có chín mục: phạm vi, quyền và nghĩa vụ các bên, thanh toán, sở hữu trí tuệ, bảo mật, bảo hành và thời gian xử lý, chấm dứt hợp đồng, giải quyết tranh chấp, liên hệ. Hợp đồng của từng dự án ghi thêm phạm vi, tiến độ và điều khoản riêng.

Điều khoản cài thứ nhất: mã nguồn chỉ được cấp quyền sử dụng
Câu nghe vô hại: "Bên B cấp cho Bên A quyền sử dụng phần mềm không thời hạn". Nó có nghĩa là quyền sở hữu vẫn ở bên làm. Người mua dùng được nhưng không có quyền đưa mã cho đơn vị khác sửa, không được bán lại hệ thống khi bán công ty, và có thể phải xin phép khi muốn phát triển tiếp. Câu nên có là mã nguồn và tài liệu thuộc sở hữu của bên mua sau khi thanh toán đủ, kèm quyền sử dụng, sửa đổi và phát triển tiếp. Tập kế tiếp của series giải thích luật Việt Nam nói gì về chuyện này.
Điều khoản cài thứ hai: phạm vi theo "các trao đổi giữa hai bên"
Khi phạm vi được ghi là "theo yêu cầu và các trao đổi giữa hai bên" mà không có phụ lục cụ thể, mọi tin nhắn đều có thể bị viện dẫn theo cả hai chiều. Bên mua cho rằng một tính năng đã được nói qua điện thoại; bên làm cho rằng nó chưa từng được chốt. Phạm vi phải là một tài liệu có số phiên bản, hai bên ký, đính kèm hợp đồng.
Điều khoản cài thứ ba: bảo hành gắn với gói bảo trì
Biến thể thường gặp: "Bảo hành chỉ áp dụng khi Bên A duy trì hợp đồng bảo trì với Bên B", hoặc "Bên A không được để bên thứ ba can thiệp vào mã nguồn, nếu không sẽ mất bảo hành toàn bộ". Câu thứ nhất biến bảo hành thành sản phẩm bán kèm. Câu thứ hai hợp lý một phần (lỗi do người khác sửa mã thì bên làm không chịu), nhưng viết rộng như vậy thì khách không bao giờ đổi được nhà cung cấp.
Cách viết cân bằng có sẵn trong điều khoản công khai của ALODEV: lỗi do khách tự sửa mã nguồn sau bàn giao không thuộc bảo hành, còn gói bảo trì không bắt buộc mua, và khách được tự bảo trì hoặc thuê đơn vị khác mà không cần xin phép (theo /dieu-khoan mục 6 và /cam-ket-ma-nguon). Phạm vi loại trừ giới hạn ở phần bị sửa, không xoá bảo hành của cả hệ thống.
Đọc bản nháp trong ba mươi phút
- Tìm chữ "quyền sử dụng" và "sở hữu": ai sở hữu mã nguồn sau thanh toán.
- Mở phụ lục phạm vi: có tài liệu đính kèm và số phiên bản không.
- Tìm chữ "bảo trì" trong điều bảo hành: bảo hành có phụ thuộc gói bảo trì không.
- Đọc điều chấm dứt: phần đã làm được bàn giao thế nào nếu dừng giữa chừng.
- Đọc lịch thanh toán: đợt nào trả trước khi thấy phần mềm chạy.

Bài thuê đơn vị làm web: hỏi gì, ký gì để không dính bẫy trên blog Trần Công Thắng có danh sách câu cần có riêng cho hợp đồng website, bổ sung cho khung ở trên.
Câu hỏi thường gặp
Mẫu hợp đồng phát triển phần mềm gồm những điều khoản nào?
Tối thiểu gồm các bên, phạm vi, thời gian, nghiệm thu, giá và thanh toán, thay đổi phạm vi, sở hữu trí tuệ và bàn giao, bảo mật, bảo hành, chấm dứt và tranh chấp. Phần kỹ thuật nên đặt ở phụ lục.
Hợp đồng phần mềm là hợp đồng dịch vụ hay hợp đồng mua bán?
Làm phần mềm theo yêu cầu thường được soạn dưới dạng hợp đồng dịch vụ, kèm điều khoản chuyển giao quyền sở hữu kết quả. Cách phân loại cụ thể nên hỏi luật sư theo nội dung từng hợp đồng.
Có nên dùng mẫu hợp đồng của bên làm phần mềm?
Dùng được làm bản nháp, nhưng phải rà ba điều khoản hay bị cài và các phụ lục. Mẫu của bên nào thường bảo vệ bên đó trước.
Phụ lục hợp đồng có giá trị như hợp đồng không?
Phụ lục được hai bên ký và dẫn chiếu trong hợp đồng là một phần của hợp đồng. Tài liệu chỉ gửi qua email mà không được dẫn chiếu thì yếu hơn nhiều khi tranh chấp.
Hợp đồng nên ghi phạt chậm tiến độ thế nào?
Nên phân biệt chậm do bên làm và chậm do bên mua đổi phạm vi hoặc phản hồi trễ. Mức phạt và bồi thường cần theo giới hạn của pháp luật hiện hành, nên nhờ luật sư rà.





