Chaindoc logoChaindoc

Hợp đồng phát triển phần mềm: Hướng dẫn đầy đủ + Mẫu miễn phí

Tải mẫu hợp đồng phát triển phần mềm miễn phí. Bao gồm quyền sở hữu trí tuệ, điều khoản thanh toán, kiểm thử nghiệm thu. Tùy chỉnh và ký trực tuyến ngay.

22 tháng 4, 2026 Thời gian đọc: 16 min
Hợp đồng phát triển phần mềm: Hướng dẫn đầy đủ + Mẫu miễn phí

Introduction

Hầu hết các dự án phần mềm thất bại không phải vì lập trình viên kém. Chúng thất bại vì không ai ghi chép lại "hoàn thành" nghĩa là gì. Báo cáo CHAOS của Standish Group cho thấy tỷ lệ thành công của các dự án phần mềm chỉ đạt 31% — và các bất đồng về phạm vi công việc, quyền sở hữu IP không rõ ràng, và tranh chấp về điều khoản thanh toán là những nguyên nhân phổ biến nhất.

Một hợp đồng phát triển phần mềm khắc phục tất cả những vấn đề đó trước khi công việc bắt đầu. Đây là hợp đồng giữa khách hàng và lập trình viên (hoặc công ty) xác định phần mềm sẽ được xây dựng như thế nào, ai sở hữu nó, chi phí là bao nhiêu, và điều gì xảy ra khi có sự cố. Không có hợp đồng, bạn đang dựa vào lòng tin và trí nhớ — và tòa án không chấp nhận cả hai.

Hướng dẫn này bao gồm mọi thứ: khi nào bạn cần hợp đồng phát triển phần mềm, bốn loại hợp đồng và khi nào sử dụng từng loại, mọi điều khoản thực sự quan trọng, và một mẫu tải miễn phí bạn có thể tùy chỉnh cho dự án của mình. Nếu bạn đã biết những điều cơ bản và muốn đi thẳng đến mẫu, hãy chuyển đến phần mẫu. Nếu không, ngữ cảnh rất quan trọng — đặc biệt là phần IP, nơi mà hầu hết các hợp đồng thầm lặng thất bại. Để có cái nhìn rộng hơn về sự khác biệt giữa hợp đồng và thỏa thuận, hướng dẫn so sánh hợp đồng vs thỏa thuận của chúng tôi bao gồm các khác biệt pháp lý đáng biết.

Hợp đồng phát triển phần mềm là gì?

Hợp đồng phát triển phần mềm (SDA) là một hợp đồng ràng buộc pháp lý giữa khách hàng và lập trình viên hoặc công ty phát triển phần mềm. Nó xác định phạm vi công việc, cấu trúc thanh toán, lộ trình giao hàng, quyền sở hữu trí tuệ, điều khoản bảo mật, và điều gì xảy ra nếu một trong hai bên cần chấm dứt hợp đồng.

SDA không phải là đề xuất, bản tóm tắt dự án, hay đoạn tin nhắn Slack xác nhận công việc. Đó là hồ sơ pháp lý chính thức về những gì cả hai bên đã đồng ý trước khi phát triển bắt đầu. Một khi đã ký, đó là tài liệu bạn sẽ tham khảo nếu có tranh chấp — và là tài liệu tòa án sẽ đọc nếu sự việc đi đến đó.

SDA bao gồm những gì

Một hợp đồng phát triển phần mềm được soạn thảo đúng cách sẽ giải quyết:

  • Phạm vi công việc — lập trình viên sẽ xây dựng gì, với độ cụ thể đủ để một bên thứ ba có thể đánh giá mức độ hoàn thành
  • Sản phẩm bàn giao và cột mốc — những gì được giao, dưới hình thức nào, và vào thởi điểm nào
  • Điều khoản thanh toán — tổng phí, lịch thanh toán, và điều gì kích hoạt mỗi lần thanh toán
  • Quyền sở hữu IP — ai sở hữu mã nguồn sau khi viết xong
  • Bảo mật — thông tin độc quyền nào mỗi bên phải giữ bí mật
  • Kiểm thử nghiệm thu — khách hàng đánh giá phần mềm đã giao có đáp ứng yêu cầu hay không như thế nào
  • Bảo đảm — lập trình viên đảm bảo gì về chức năng của phần mềm
  • Điều kiện chấm dứt — mỗi bên có thể kết thúc hợp đồng như thế nào và điều gì xảy ra với công việc đã hoàn thành

Một số khách hàng nhầm lẫn SDA với Statement of Work. Có sự chồng chéo, nhưng chúng không giống nhau — và sự khác biệt này quan trọng. Mối quan hệ giữa MSA và SOW giải thích cách các tài liệu này hoạt động cùng nhau trong các hợp đồng dài hạn.

Khi nào bạn cần hợp đồng phát triển phần mềm?

Câu trả lởi ngắn gọn: bất cứ khi nào bạn trả tiền cho ai đó để xây dựng phần mềm, hoặc nhận tiền để xây dựng phần mềm.

Hợp đồng quan trọng dù bạn đang thuê một freelancer cá nhân cho dự án hai tuần hay ký hợp đồng với một công ty 20 ngưởi cho sản phẩm kéo dài 12 tháng. Quy mô thay đổi; nhu cầu có điều khoản bằng văn bản thì không.

Bạn nên có hợp đồng phát triển phần mềm khi:

  • Bạn thuê ngoài phát triển phần mềm — đặc biệt là với các đội ngũ nước ngoài hoặc làm việc từ xa, nơi sự khác biệt về thẩm quyền pháp lý làm phức tạp các thỏa thuận không chính thức
  • Phần mềm tùy chỉnh đang được xây dựng — công việc càng đặc biệt, quyền sở hữu IP càng cần được ghi rõ trong tài liệu
  • Có nhiều giai đoạn phát triển — thanh toán theo cột mốc yêu cầu các tiêu chí nghiệm thu bằng văn bản để kích hoạt mỗi giai đoạn
  • Dữ liệu hoặc hệ thống nhạy cảm được liên quan — bất kỳ dự án nào chạm đến dữ liệu khách hàng đều cần điều khoản bảo mật và bảo mật thông tin
  • Bạn đang phát triển dựa trên các framework độc quyền — mã nguồn có sẵn được tích hợp vào sản phẩm tùy chỉnh tạo ra các câu hỏi phức tạp về quyền sở hữu nếu không có hợp đồng rõ ràng
  • Bạn làm việc xuyên biên giới — luật điều chỉnh và thẩm quyền tòa án phải được chỉ định khi lập trình viên và khách hàng ở các quốc gia khác nhau

Tình huống duy nhất bạn có thể làm việc mà không cần SDA đầy đủ: công việc rất ngắn, giá trị thấp được điều chỉnh bởi một thỏa thuận dịch vụ chính (MSA) toàn diện đã bao gồm tất cả các điều khoản liên quan. Nhưng ngay cả khi đó, hầu hết các luật sư cũng khuyên bạn nên làm thủ tục giấy tờ.

Ở hầu hết các thẩm quyền pháp lý, một thỏa thuận miệng cho phát triển phần mềm về mặt kỹ thuật là có thể thi hành được — nhưng hầu như không thể chứng minh. Nếu khách hàng tranh chấp những gì đã được đồng ý, gánh nặng chứng minh thuộc về ngưởi tuyên bố thỏa thuận tồn tại. Một SDA bằng văn bản được ký bởi cả hai bên loại bỏ hoàn toàn sự mơ hồ đó.

Các loại hợp đồng phát triển phần mềm

Không có mẫu SDA duy nhất phù hợp với mọi dự án. Cấu trúc hợp đồng cần phù hợp với cách dự án được định giá và xác định phạm vi — và việc chọn cấu trúc sai tạo ra các động lực đi ngược lại kết quả tốt.

Loại hợp đồngPhù hợp nhất choMô hình thanh toánBên chịu rủi ro
Giá cố địnhCác dự án có yêu cầu rõ ràng và ổn địnhTổng chi phí hoặc % tại các cột mốc xác địnhLập trình viên chịu rủi ro vượt ngân sách; khách hàng có chắc chắn về chi phí
Thởi gian & Vật tư (T&M)Công việc khám phá hoặc dự án có yêu cầu sẽ phát triểnGiá theo giờ/ngày x số giờ thực tếKhách hàng chịu rủi ro vượt ngân sách; lập trình viên có linh hoạt
Đội ngũ chuyên dụngPhát triển sản phẩm liên tục cần đội ngũ ổn địnhPhí duy trì hàng tháng cho mỗi FTEChia sẻ — khách hàng chỉ đạo công việc, lập trình viên cung cấp giờ làm
MSA + SOWQuan hệ khách hàng dài hạn trải dài nhiều dự ánTheo dự án, xác định trong mỗi SOWThương lượng theo từng dự án

Hợp đồng giá cố định

Một SDA giá cố định hiệu quả khi yêu cầu dự án ổn định và được hiểu rõ trước khi phát triển bắt đầu. Lập trình viên cam kết giao phạm vi xác định với tổng phí đã thỏa thuận. Sự chắc chắn về ngân sách là lợi ích chính cho khách hàng. Rủi ro: nếu yêu cầu hóa ra bị mô tả không đầy đủ, lập trình viên hoặc phải gánh chi phí vượt ngân sách hoặc tranh chấp bắt đầu.

Hợp đồng thởi gian và vật tư

Hợp đồng T&M phù hợp cho các dự án khám phá, sản phẩm giai đoạn đầu, hoặc bất kỳ tình huống nào không thể xác định toàn bộ phạm vi từ đầu. Khách hàng trả tiền cho số giờ thực tế làm việc theo tỷ lệ đã thỏa thuận. Bạn có được sự linh hoạt; đánh đổi là sự không chắc chắn về chi phí. Giới hạn ngân sách và trần chi phí hàng tháng giúp quản lý rủi ro đó.

Hợp đồng đội ngũ chuyên dụng

Đối với các công ty cần một đội kỹ sư từ xa ổn định — thay vì giao dự án một lần — hợp đồng đội ngũ chuyên dụng thiết lập điều khoản cho một mối quan hệ liên tục. Quản lý hợp đồng cho công ty IT thường sử dụng mô hình này khi làm việc với các đối tác thuê ngoài.

Cấu trúc MSA + SOW

Các dự án lớn hơn thường tách khung pháp lý chính (MSA) khỏi các điều khoản theo từng dự án (SOW). MSA bao gồm IP, bảo mật, trách nhiệm pháp lý và giải quyết tranh chấp một lần; mỗi SOW bao gồm sản phẩm bàn giao cụ thể, lộ trình và thanh toán cho một dự án cụ thể.

Các điều khoản then chốt trong hợp đồng phát triển phần mềm

Không phải tất cả các điều khoản đều có trọng lượng như nhau. Đây là những điều khoản mà việc thiếu hoặc ngôn ngữ mơ hồ gây ra tranh chấp trong thực tế.

1. Phạm vi công việc và sản phẩm bàn giao

Mô tả những gì được xây dựng với độ chi tiết đủ để một ngưởi không tham gia dự án có thể đánh giá liệu nó đã được giao hay chưa. Yêu cầu chức năng, thông số kỹ thuật, nền tảng được hỗ trợ, và các tiêu chuẩn hiệu suất đều thuộc về phần này. Nêu rõ ràng những gì nằm ngoài phạm vi.

Phạm vi mơ hồ là nguồn gốc phổ biến nhất của các tranh chấp phần mềm. "Xây dựng một website" không phải là phạm vi. "Xây dựng một ứng dụng React/Next.js đáp ứng với các tính năng được liệt kê trong Phụ lục A, đạt điểm hiệu suất Lighthouse 90+ trên thiết bị di động" mới là phạm vi.

2. Điều khoản thanh toán và lịch cột mốc

Liệt kê mọi khoản thanh toán: số tiền, sự kiện kích hoạt, và phương thức thanh toán. Các khoản thanh toán theo cột mốc nên được gắn với sản phẩm đã được nghiệm thu, không chỉ ngày trên lịch. Xác định loại tiền tệ, khung thởi gian thanh toán (Net-15 hoặc Net-30 là tiêu chuẩn), và khoản phạt thanh toán chậm.

3. Quyền sở hữu trí tuệ

Đây là điều khoản mà hầu hết khách hàng đọc quá nhanh. Ai sở hữu mã nguồn tùy chỉnh? Ai sở hữu mã nguồn có sẵn mà lập trình viên tích hợp? Phần mềm nguồn mở có được bao gồm không? Phần IP của SDA xác định ai có thể sử dụng, sửa đổi, bán hoặc cấp phép phần mềm sau khi giao hàng. Làm sai và hậu quả rất đắt đỏ — xem vụ án Cadence v. Avanti trong phần IP bên dưới.

4. Bảo mật

SDA nên bao gồm các nghĩa vụ bảo mật lẫn nhau. Lập trình viên không được tiết lộ dữ liệu khách hàng hoặc logic kinh doanh độc quyền; khách hàng không được tiết lộ quy trình hoặc công cụ độc quyền của lập trình viên. Để có các điều khoản NDA mạnh mẽ hơn trong một thỏa thuận độc lập, hướng dẫn NDA cho công ty phần mềm đáng đọc song song với hướng dẫn này.

5. Kiểm thử nghiệm thu

Xác định cách khách hàng đánh giá và chấp nhận từng sản phẩm bàn giao. Cửa sổ xem xét (5–10 ngày làm việc là phổ biến), định dạng phản hồi, tiêu chí đạt, và điều gì xảy ra nếu khách hàng không phản hồi trong cửa sổ xem xét (nghiệm thu được cho là đã xảy ra).

6. Bảo đảm

Lập trình viên nên bảo đảm rằng phần mềm sẽ hoạt động như đã chỉ định, rằng mã nguồn là nguyên bản (hoặc được cấp phép đúng cách), và rằng việc giao hàng sẽ không xâm phạm quyền IP của bên thứ ba. Một thởi hạn bảo đảm cho việc sửa lỗi sau khi giao hàng — thường là 30–90 ngày — bảo vệ khách hàng khỏi các lỗi phát hiện sau khi ra mắt.

7. Điều kiện chấm dứt

Mỗi bên nên có thể rút lui với thông báo hợp lý. Xác định thởi gian thông báo (30 ngày là tiêu chuẩn), điều gì xảy ra với công việc đang tiến hành, và cách tính khoản thanh toán cuối cùng khi chấm dứt sớm. Một điều khoản chấm dứt vì lý do (bao gồm vi phạm nghiêm trọng, phá sản, hoặc không thanh toán) nên tách biệt với chấm dứt theo thuận tiện.

8. Luật điều chỉnh và thẩm quyền

Nêu tên quốc gia và bang/vùng có luật điều chỉnh hợp đồng. Khi lập trình viên và khách hàng ở các quốc gia khác nhau, điều khoản này quyết định tòa án nào sẽ xử lý tranh chấp. Đừng bỏ qua vì nó có vẻ hình thức — đây là một trong những điều khoản quan trọng nhất về mặt thực tiễn trong hợp đồng xuyên biên giới.

Hai lập trình viên đang xem xét hợp đồng phát triển phần mềm cùng nhau — các điều khoản về quyền IP và phạm vi công việc hiển thị trên màn hình

Hợp đồng phát triển phần mềm cần quyền sở hữu IP, phạm vi công việc và điều khoản thanh toán theo cột mốc được thỏa thuận rõ ràng trước khi bắt đầu phát triển.

Không có tiêu chí nghiệm thu rõ ràng và cửa sổ xem xét với điều khoản nghiệm thu được cho là, tranh chấp về thanh toán gần như không thể tránh khỏi. Khách hàng luôn có thể tuyên bố phần mềm chưa "sẵn sàng" và giữ tiền vô thởi hạn. Hãy viết tiêu chí đạt/trượt trước khi phát triển bắt đầu, không phải sau khi bạn tranh cãi về việc nó có đạt hay không.

Mẫu hợp đồng phát triển phần mềm

Sử dụng mẫu này làm nền tảng cho hợp đồng của bạn. Thay thế tất cả các trường trong ngoặc vuông bằng các điều khoản cụ thể của bạn. Đối với các dự án phức tạp, hãy thuê một luật sư phần mềm để xem xét phiên bản cuối cùng — đặc biệt là các phần IP và bảo đảm.

document
SOFTWARE DEVELOPMENT AGREEMENT
Agreement Date: [Date]
Client: [Legal Entity Name]
[Address]
[City, State/Country, Postal Code]
("Client")
Developer: [Legal Entity Name or Individual Name]
[Address]
[City, State/Country, Postal Code]
("Developer")
1. SCOPE OF WORK
1.1 Developer agrees to design, develop, and deliver the software
described in Exhibit A ("Software") according to the specifications
and requirements set forth therein.
1.2 Any work not described in Exhibit A is out of scope and requires
a signed Change Order before work begins.
1.3 Developer will deliver the Software in the milestone phases
described in Exhibit B.
2. PAYMENT TERMS
2.1 Client will pay Developer the total fee of [Currency + Amount]
("Contract Fee") according to the milestone payment schedule in
Exhibit B.
2.2 Invoices are due within [Net-15 / Net-30] days of receipt.
2.3 Late payments accrue interest at [X]% per month.
2.4 Developer may suspend work if any invoice is unpaid for more
than [30] days after the due date.
3. INTELLECTUAL PROPERTY
3.1 Custom Work. Upon receipt of full payment, Developer assigns
to Client all right, title, and interest in the custom-developed
Software deliverables, including all copyrights.
3.2 Pre-Existing Work. Developer retains ownership of all
pre-existing code, tools, libraries, and frameworks incorporated
into the Software ("Developer IP"). Developer grants Client a
perpetual, royalty-free, non-exclusive license to use Developer IP
as incorporated in the delivered Software.
3.3 Open Source. The Software may incorporate open-source
components licensed under [list applicable licenses, e.g., MIT,
Apache 2.0]. Such components remain subject to their respective
open-source licenses.
3.4 Third-Party IP. Developer represents that the Software will
not infringe any third-party intellectual property rights.
4. CONFIDENTIALITY
4.1 Each party ("Receiving Party") agrees to keep confidential all
non-public information disclosed by the other party ("Disclosing
Party") in connection with this Agreement.
4.2 Confidentiality obligations survive termination of this
Agreement for [2/3/5] years.
4.3 Exceptions: Information is not confidential if it is or
becomes publicly available through no fault of the Receiving
Party, was known prior to disclosure, or is required to be
disclosed by law or court order.
5. ACCEPTANCE TESTING
5.1 Upon delivery of each milestone, Client has [10] business days
to review and either accept or provide written notice of material
defects.
5.2 If Client provides no response within the review window, the
milestone is deemed accepted.
5.3 Developer will correct confirmed defects within [10] business
days of written notice at no additional charge.
5.4 Acceptance criteria for each milestone are defined in Exhibit A.
6. WARRANTIES
6.1 Developer warrants that the Software will perform materially
as described in Exhibit A for [90] days following final delivery
("Warranty Period").
6.2 Developer warrants that the Software is Developer's original
work and does not infringe any third-party IP rights.
6.3 EXCEPT AS EXPRESSLY STATED, DEVELOPER MAKES NO OTHER
WARRANTIES, EXPRESS OR IMPLIED.
7. LIMITATION OF LIABILITY
7.1 Neither party's total liability under this Agreement will
exceed the total fees paid by Client in the [12] months preceding
the claim.
7.2 Neither party is liable for indirect, consequential,
incidental, or punitive damages.
8. TERM AND TERMINATION
8.1 This Agreement begins on the Agreement Date and continues
until final delivery and payment, unless terminated earlier.
8.2 Either party may terminate this Agreement for cause upon
[15] days written notice if the other party materially breaches
this Agreement and fails to cure the breach within the notice period.
8.3 Either party may terminate for convenience upon [30] days
written notice.
8.4 Upon termination, Developer will deliver all completed work
product; Client will pay for all accepted milestones and work
completed to the date of termination.
9. CHANGE ORDERS
9.1 All scope changes require a written Change Order signed by
both parties before any out-of-scope work begins.
9.2 Each Change Order will document the scope addition, impact
on timeline and total fee, and any affected milestones.
10. GOVERNING LAW
This Agreement is governed by the laws of [State/Country].
Disputes will be resolved by [arbitration / litigation] in
[City, State/Country].
11. ENTIRE AGREEMENT
This Agreement, together with all Exhibits and Change Orders,
constitutes the entire agreement between the parties regarding
the subject matter and supersedes all prior agreements,
representations, or understandings.
SIGNATURES
Client:
Signature: _______________________
Name: ___________________________
Title: __________________________
Date: ___________________________
Developer:
Signature: _______________________
Name: ___________________________
Title: __________________________
Date: ___________________________
---
EXHIBIT A: SOFTWARE SPECIFICATIONS
[Attach detailed functional requirements, technical specifications,
performance benchmarks, and acceptance criteria for each deliverable]
EXHIBIT B: MILESTONE SCHEDULE AND PAYMENT
MilestoneDeliverableDue DatePayment
M1: Kickoff[Deliverable description][Date][Amount]
M2: [Phase name][Deliverable description][Date][Amount]
M3: Final Delivery[Deliverable description][Date][Amount]

Đối với các công ty IT quản lý hợp đồng với nhiều đối tác phát triển, việc tập trung tất cả các SDA trong một hệ thống quản lý tài liệu duy nhất — với lịch sử phiên bản và chữ ký chống giả mạo — loại bỏ sự hỗn loạn của việc gửi tài liệu Word qua lại bằng email.

Mẫu ở trên bao gồm các điều khoản cốt lõi cho hầu hết các dự án phát triển phần mềm. Đối với các dự án đa giai đoạn phức tạp, cấp phép doanh nghiệp, hoặc thỏa thuận thuê ngoài quốc tế, hãy nhờ luật sư phần mềm xem xét các phần IP, bảo đảm và giới hạn trách nhiệm pháp lý trước khi ký. Mẫu là điểm khởi đầu, không phải thay thế cho tư vấn pháp lý.

Ký hợp đồng phát triển phần mềm của bạn chỉ trong vài phút

Sử dụng Chaindoc để gửi SDA để ký, thu thập phê duyệt được xác minh bằng blockchain, và kích hoạt thanh toán theo cột mốc — tất cả từ một bảng điều khiển. Không còn chuỗi email và "final_v3_FINAL.docx".

Hướng dẫn điền mẫu hợp đồng phát triển phần mềm từng bước

Mẫu ở trên có hơn một tá trường cần hoàn thành. Đây là cách tiếp cận từng trường mà không để lại khoảng trống gây tranh chấp sau này.

Bước 1: Xác định phạm vi trước khi chạm vào hợp đồng

Đừng mở mẫu cho đến khi bạn đã ghi chép lại phần mềm thực sự cần làm gì. Yêu cầu chức năng, ràng buộc kỹ thuật, nền tảng được hỗ trợ, phụ thuộc tích hợp — tất cả. Phần phạm vi của SDA chỉ tốt bằng tài liệu đặc tả đằng sau nó.

Đối với các dự án phức tạp, đính kèm đặc tả đầy đủ làm Phụ lục A và tham chiếu từ điều khoản phạm vi. Điều này giữ cho hợp đồng chính dễ đọc trong khi đảm bảo chi tiết kỹ thuật đầy đủ được đính kèm pháp lý.

Bước 2: Xây dựng lịch cột mốc

Làm việc ngược từ ngày giao hàng. Chia dự án thành các giai đoạn — khám phá, thiết kế, phát triển, kiểm thử, triển khai — và gán số tiền và ngày đến hạn cho mỗi giai đoạn. Các khoản thanh toán theo giai đoạn nên tương đối phù hợp với giá trị được giao ở mỗi giai đoạn.

Cảnh báo: việc này mất nhiều thởi gian hơn hầu hết các bên mong đợi, đặc biệt là trong các hợp đồng đầu tiên. Dự trù 1-2 giờ với cả hai bên hiện diện để xác định đúng cột mốc và thanh toán.

Bước 3: Giải quyết quyền sở hữu IP một cách rõ ràng

Đọc kỹ Phần 3 và điền tất cả các chỗ trống. Nếu lập trình viên đang sử dụng các framework hoặc công cụ độc quyền mà họ đã xây dựng trước dự án này, hãy liệt kê chúng trong phần loại trừ công việc có sẵn. Nếu bạn đang sử dụng thư viện nguồn mở, hãy nêu tên các giấy phép.

Điều khoản chuyển nhượng công việc tùy chỉnh (Phần 3.1) thường là điều khoản quan trọng nhất đối với khách hàng: đó là điều chuyển quyền sở hữu mã nguồn đã giao từ lập trình viên sang bạn. Đừng để nó mơ hồ.

Bước 4: Thiết lập cửa sổ xem xét và tiêu chí nghiệm thu

Quyết định cửa sổ xem xét trước khi bạn điền vào. Mười ngày làm việc là phổ biến. Hai tuần cho khách hàng bận rộn đủ thởi gian để thực sự kiểm tra sản phẩm bàn giao; bất kỳ khoảng thởi gian nào ngắn hơn đều có xu hưởng tạo ra tranh chấp khi ngưởi đánh giá đang đi công tác hoặc bận việc khác.

Đối với Phần 5, các tiêu chí nghiệm thu thuộc về Phụ lục A. Hãy viết các tiêu chí cụ thể, có thể kiểm tra: "Ứng dụng di động tải bảng điều khiển trong vòng dưới 3 giây trên kết nối 4G" tốt hơn "ứng dụng nên nhanh".

Bước 5: Chọn luật điều chỉnh một cách có chủ đích

Đối với các dự án trong nước, sử dụng bang/quốc gia của lập trình viên (họ quen thuộc hơn với tòa án địa phương). Đối với các dự án xuyên biên giới, một trong hai bên có thể thích thẩm quyền trung lập. Luật Delaware phổ biến cho các hợp đồng công nghệ tại Mỹ; luật Anh thường được sử dụng cho các thỏa thuận công nghệ quốc tế. Dù bạn chọn gì, cả hai bên cần đồng ý rõ ràng — đừng để trống phần này.

Bước 6: Ký bằng chữ ký điện tử tuân thủ

Một hình ảnh quét chữ ký viết tay trên PDF về mặt pháp lý yếu ớt ở hầu hết các thẩm quyền. Chữ ký điện tử tạo ra hàm băm tài liệu và chứng chỉ hoàn thành có dấu thởi gian khó bác bỏ hơn nhiều. Theo Đạo luật ESIGN và UETA tại Hoa Kỳ, và eIDAS tại Liên minh Châu Âu, chữ ký điện tử có đầy đủ hiệu lực pháp lý cho các thỏa thuận thương mại. Nền tảng ký nên ràng buộc mỗi chữ ký với hàm băm mật mã của tài liệu — để mọi sửa đổi sau khi ký được phát hiện ngay lập tức.

Các điều khoản quan trọng thường bị bỏ sót

Hầu hết các mẫu đều bao gồm những điều cơ bản. Đây là các điều khoản thường bị loại khỏi các hợp đồng rẻ hoặc soạn nhanh — và thường quan trọng nhất khi có sự cố xảy ra.

Kiểm thử nghiệm thu với tiêu chí đạt/trượt

Phần 5 trong mẫu ở trên xác định *khi nào* và *như thế nào* khách hàng xem xét sản phẩm bàn giao. Điều mà hầu hết các hợp đồng bỏ qua: các tiêu chí thực tế để đạt. Không có các tiêu chí đạt/trượt có thể đo lường, việc nghiệm thu trở thành một cuộc đàm phán. Khách hàng luôn có thể tranh luận phần mềm chưa "đủ tốt." Hãy viết tiêu chí khách quan trong Phụ lục A trước khi phát triển bắt đầu.

Ký gửi mã nguồn (Source code escrow)

Nếu doanh nghiệp của bạn phụ thuộc vào phần mềm tùy chỉnh và lập trình viên phá sản, bạn cần quyền truy cập vào mã nguồn. Điều khoản ký gửi mã nguồn yêu cầu lập trình viên gửi mã nguồn cho một bên ký gửi trung lập. Nếu lập trình viên ngừng hoạt động hoặc vi phạm nghiêm trọng hợp đồng, bên ký gửi sẽ phát hành mã nguồn cho khách hàng. Hầu hết khách hàng không bao giờ nghĩ đến việc yêu cầu điều này — cho đến khi họ cần.

Thởi hạn trách nhiệm sau khi giao hàng

Phần 7 giới hạn tổng trách nhiệm pháp lý, nhưng nhiều mẫu không đề cập đến cửa sổ thởi gian. Trách nhiệm khi nào kết thúc? Nếu một lỗi gây mất dữ liệu 18 tháng sau khi giao hàng, lập trình viên có còn chịu trách nhiệm không? Hãy xác định rõ ràng thởi hạn bảo đảm và cửa sổ trách nhiệm sau bảo đảm. Sau thởi hạn bảo đảm, nghĩa vụ duy nhất của lập trình viên thường là khắc phục các lỗi do họ gây ra — không phải lỗi do khách hàng sửa đổi gây ra.

Quy trình kiểm soát thay đổi

Phần 9 yêu cầu một Change Order đã ký cho các thay đổi phạm vi. Điều mà hầu hết các hợp đồng bỏ sót: xác định ai có thẩm quyền ký Change Order. Nếu một quản lý dự án bên khách hàng yêu cầu bằng miệng một tính năng mới và lập trình viên xây dựng nó, lập trình viên có được trả tiền không? Chỉ khi quy trình Change Order được tuân thủ. Hãy nêu tên các vai trò cụ thể (không phải cá nhân, vì chức danh có thể thay đổi) có thẩm quyền phê duyệt thay đổi.

Tuân thủ giấy phép nguồn mở

Linux Foundation báo cáo rằng 92% phần mềm thương mại chứa các thành phần nguồn mở. Mỗi giấy phép của thành phần áp đặt các điều kiện về cách phần mềm có thể được sử dụng, sửa đổi và phân phối. Một thư viện được cấp phép GPL, chẳng hạn, có thể kích hoạt nghĩa vụ copyleft buộc bạn phải mở mã nguồn độc quyền của mình. SDA nên yêu cầu lập trình viên tiết lộ tất cả các thành phần nguồn mở và xác nhận tính tương thích với mục đích sử dụng dự kiến của khách hàng.

Quyền sở hữu trí tuệ trong hợp đồng phát triển phần mềm

Quyền sở hữu IP là điều khoản mà hầu hết khách hàng lướt qua — và là điều khoản có hậu quả lớn nhất nếu làm sai.

Vụ án Cadence v. Avanti: bài học 265 triệu USD

Năm 2002, một tòa án California phát hiện Avanti Corporation đã sử dụng mã nguồn Cadence bị đánh cắp trong một sản phẩm cạnh tranh. Khoản bồi thường lên tới 265 triệu USD. Vụ án này thường được trích dẫn trong các vụ kiện IP phần mềm vì nó minh họa điều gì xảy ra khi quyền sở hữu mã nguồn bị tranh chấp hoặc, tệ hơn, khi mã nguồn không bao giờ nên được tích hợp vào sản phẩm lại xuất hiện ở đó. Một điều khoản IP được soạn thảo tốt không chỉ xác định ai sở hữu sản phẩm cuối cùng — nó còn yêu cầu lập trình viên bảo đảm rằng không có IP của bên thứ ba nào bị tích hợp trái phép.

Bốn mô hình IP

Mô hìnhKhách hàng nhận được gìLập trình viên giữ lại gìPhù hợp nhất cho
Khách hàng sở hữu toàn bộMọi quyền đối với mã nguồn tùy chỉnh, bao gồm quyền sửa đổi, bán lại, cấp phép lạiKhông có gì từ dự án nàyCác sản phẩm tùy chỉnh nơi khách hàng cần quyền kiểm soát thương mại đầy đủ
Cấp phép sử dụngGiấy phép sử dụng phần mềm đã giao; không thể sửa đổi IP lõiQuyền sở hữu mã nguồn, khả năng tái sử dụng cho khách hàng khácCông cụ SaaS hoặc nền tảng được xây dựng trên ngăn xếp độc quyền của lập trình viên
Kết hợp nguồn mởCác thành phần nguồn mở theo giấy phép tương ứng + công việc tùy chỉnh được chuyển cho khách hàngCác phần loại trừ IP của lập trình viênMô hình thực tế nhất cho phần mềm hiện đại
Sở hữu chungQuyền chung đối với IPQuyền chung đối với IPHiếm khi khuyến nghị; tạo ra các vấn đề phức tạp về cấp phép và bảo trì

Công việc có sẵn vs. công việc tùy chỉnh

Hầu hết các lập trình viên mang theo các công cụ, framework và thư viện họ đã xây dựng trước khi dự án của bạn bắt đầu. Đây là "các tác phẩm có sẵn" hoặc "IP nền tảng." SDA nên xác định rõ ràng công việc có sẵn nào sẽ được tích hợp và cấp cho khách hàng giấy phép sử dụng nó như một phần của phần mềm đã giao — mà không chuyển quyền sở hữu các công cụ cơ bản đó.

Để tìm hiểu sâu hơn về cách chuyển nhượng IP hoạt động trong hợp đồng lập trình viên cá nhân, hướng dẫn thỏa thuận chuyển nhượng IP cho lập trình viên bao gồm cơ chế chuyển giao và cấp phép quyền sở hữu mã nguồn.

Nguyên tắc work-for-hire

Tại Hoa Kỳ, mã nguồn được viết bởi nhân viên trong phạm vi công việc của họ tự động là work-for-hire, thuộc sở hữu của nhà tuyển dụng. Mã nguồn được viết bởi nhà thầu độc lập *không* tự động là work-for-hire — nhà thầu giữ bản quyền trừ khi hợp đồng tường minh chuyển nhượng nó. Sự khác biệt này khiến khách hàng nhầm lẫn khi cho rằng họ sở hữu mã nguồn vì đã trả tiền cho nó. Họ không sở hữu, nếu không có điều khoản chuyển nhượng.

Theo luật bản quyền Hoa Kỳ, một nhà thầu độc lập giữ quyền sở hữu mã nguồn họ viết trừ khi có một thỏa thuận chuyển nhượng quyền bằng văn bản. Nếu hợp đồng phát triển phần mềm của bạn không bao gồm điều khoản chuyển nhượng IP rõ ràng (hoặc điều khoản work-for-hire nếu áp dụng), lập trình viên sở hữu mã nguồn — ngay cả sau khi bạn đã thanh toán đầy đủ. Đây là một trong những điều bất ngờ phổ biến và tốn kém nhất trong hợp đồng phần mềm.

MSA vs. SOW: Sự khác biệt là gì?

Ba tài liệu này thường xuyên bị nhầm lẫn. Mỗi tài liệu có vai trò riêng biệt, và việc sử dụng sai — hoặc trộn lẫn chúng — tạo ra các khoảng trống trách nhiệm.

Tài liệuTác dụngRàng buộc?Khi nào tạo
Hợp đồng phát triển phần mềm (SDA)Hợp đồng đầy đủ cho một dự án duy nhất: phạm vi, IP, thanh toán, bảo đảm, chấm dứtKhi bắt đầu dự án
Master Service Agreement (MSA)Khung pháp lý dài hạn: trách nhiệm pháp lý, IP cơ bản, bảo mật, luật điều chỉnhMột lần, khi bắt đầu quan hệ
Statement of Work (SOW)Sản phẩm bàn giao, lộ trình và thanh toán cụ thể cho từng dự án theo MSATheo từng dự án dưới MSA
Change OrderSửa đổi phạm vi được ủy quyền cho SDA hoặc SOW hiện cóKhi cần trong dự án
Đề xuất / Báo giáTài liệu tiền hợp đồng; khách hàng có thể chấp nhận hoặc từ chốiKhôngTrước khi ký hợp đồng

Đối với các dự án một lần, một SDA độc lập (như mẫu trong hướng dẫn này) bao gồm mọi thứ. Đối với các hợp đồng liên tục với đối tác phát triển — nơi bạn chạy nhiều dự án theo thởi gian — cấu trúc MSA + SOW hiệu quả hơn. MSA thương lượng khung pháp lý một lần; mỗi dự án thêm một SOW mới. Hướng dẫn đầy đủ về Statement of Work của chúng tôi bao gồm cấu trúc SOW chi tiết.

Cách ký hợp đồng phát triển phần mềm trực tuyến

Việc có một SDA đã ký từng có nghĩa là in, quét, gửi email, và hy vọng phiên bản của bên kia khớp với của bạn. Không có lý do chính đáng nào để làm như vậy nữa.

Điều gì làm cho chữ ký điện tử hợp lệ về mặt pháp lý

Theo Đạo luật ESIGN (Mỹ) và eIDAS (EU), chữ ký điện tử hợp lệ về mặt pháp lý cho các thỏa thuận thương mại khi nó:

  • Được áp dụng bởi ngưởi có ý định ký
  • Được liên kết với tài liệu cụ thể đang được ký
  • Có khả năng quy cho ngưởi ký
  • Bản ghi được lưu trữ dưới hình thức có thể truy xuất sau này

Chữ ký mật mã đi xa hơn: mỗi chữ ký được ràng buộc toán học với hàm băm của tài liệu. Thay đổi một ký tự sau khi ký, và hàm băm thay đổi, khiến việc giả mạo được phát hiện ngay lập tức. Tính không thể chối bỏ này làm cho hợp đồng có thể bảo vệ trước tòa — không bên nào có thể sau này tuyên bố tài liệu đã bị thay đổi.

Quy trình ký hoạt động như thế nào

Quản lý tài liệu cho công ty IT thường xuyên chạy nhiều SDA, SOW và NDA đồng thởi. Một quy trình chuyên dụng ngăn chặn cơn ác mộng kiểm soát phiên bản đến từ việc ký qua email:

  1. 1.
    Tải SDA đã hoàn thiện lên nền tảng quản lý hợp đồng
  2. 2.
    Thêm địa chỉ email của mỗi ngưởi ký và thứ tự ký
  3. 3.
    Mỗi bên nhận được liên kết ký an toàn — không cần tài khoản để ký
  4. 4.
    Chữ ký được áp dụng; nền tảng tạo chứng chỉ hoàn thành với dấu thởi gian, địa chỉ IP, và hàm băm tài liệu
  5. 5.
    Cả hai bên tự động nhận được tài liệu đã thực thi đầy đủ
  6. 6.
    Nhật ký kiểm toán được lưu trữ bất biến, có thể truy cập để tham khảo hoặc giải quyết tranh chấp trong tương lai

Thanh toán theo cột mốc được liên kết với việc ký

Tính năng hữu ích nhất trong một nền tảng hợp đồng hiện đại không phải là bản thân chữ ký — mà là việc kết nối chữ ký với những gì xảy ra tiếp theo. Khi lập trình viên giao một cột mốc và khách hàng ký biểu mẫu nghiệm thu, kích hoạt thanh toán tự động kích hoạt. Không còn đuổi theo hóa đơn thủ công, không còn nhầm lẫn "tôi tưởng bạn sẽ gửi hóa đơn riêng." Đối với các đội ngũ quản lý thanh toán liên kết với hợp đồng, điều này loại bỏ khoảng cách giữa nghiệm thu và lập hóa đơn.

Để biết chi tiết định giá các gói quản lý hợp đồng, trang giá của Chaindoc bao gồm những gì có trong mỗi cấp.

Quy trình ký hợp đồng phát triển phần mềm — bảng điều khiển quản lý hợp đồng kỹ thuật số hiển thị thanh toán theo cột mốc và trạng thái chữ ký điện tử

Một quy trình chuyên dụng kết nối các sự kiện ký SDA với thanh toán theo cột mốc, loại bỏ khoảng cách giữa nghiệm thu và lập hóa đơn.

Thẻ

#softwaredevelopmentagreement#softwaredevelopmentcontract#softwaredevelopmentagreementtemplate#iprights#intellectualproperty#acceptancetesting#customsoftware#softwareoutsourcing#contracttemplate#msa#sow#esignact#eidas#esignature#milestonepayments#sourcecodeescrow#work-for-hire#governinglaw

Câu hỏi thường gặp

Câu hỏi thường gặp

Giải đáp nhanh về Chaindoc và quy trình ký tài liệu an toàn.


Sẵn sàng bảo mật tài liệu của bạn bằng công nghệ blockchain?

Hãy tham gia cùng hàng nghìn doanh nghiệp đang sử dụng nền tảng của chúng tôi để quản lý tài liệu an toàn, ký số điện tử và quy trình làm việc hợp tác được hỗ trợ bởi công nghệ blockchain.