TacQuyen.comTác Quyền
Designer, kiến trúc sư và lập trình viên tự do

Nghỉ việc mang theo app tự viết lúc làm nhân viên: mã nào của bạn, mã nào của công ty

Lập trình viên nghỉ việc muốn phát triển tiếp ứng dụng từng viết: phân biệt mã làm theo nhiệm vụ, mã viết ngoài giờ, và những bước nên làm trước khi rời công ty.

Software developer in Ho Chi Minh City packing a backpack at an office desk after work, laptop closed, empty chairs around, evening light through glass, seen from behind

Chương trình bạn viết khi thực hiện nhiệm vụ công ty giao thường thuộc quyền sở hữu của công ty, dù bạn là tác giả; chương trình viết ngoài giờ, ngoài nhiệm vụ, bằng thiết bị riêng có thể là của bạn, nhưng ranh giới phụ thuộc rất nhiều vào hợp đồng lao động và cách bạn đã làm. Câu hỏi "app này của ai" thường chỉ được đặt ra lúc nghỉ việc, khi đã quá muộn để tách bạch.

Bài này dành cho lập trình viên đang làm thuê và có ý định ra làm riêng, hoặc đã nghỉ và muốn phát triển tiếp một ứng dụng từng viết. Bạn sẽ có cách phân loại mã, danh sách việc nên làm trước khi nộp đơn nghỉ, và những điều tuyệt đối không nên làm dù tưởng là vô hại.

Tình huống: anh Duy và ứng dụng quản lý lịch hẹn

Anh Duy làm lập trình viên cho một công ty phần mềm ở Thành phố Hồ Chí Minh (ví dụ giả định). Công ty giao anh viết một mô-đun đặt lịch cho sản phẩm quản lý phòng khám. Trong lúc làm, anh nảy ý tưởng một ứng dụng đặt lịch gọn hơn cho tiệm cắt tóc, và bắt đầu viết vào buổi tối, trên máy tính công ty mang về nhà, đẩy mã lên kho mã cá nhân.

Một năm sau, anh nghỉ việc để làm riêng. Ứng dụng tiệm tóc đã có vài chục cửa hàng dùng thử. Công ty cũ gửi thư nói ứng dụng này dùng lại mô-đun đặt lịch của họ và thuộc quyền sở hữu của công ty. Anh Duy cho rằng mình viết ngoài giờ nên là của mình.

Cả hai đều có phần lý. Mấu chốt nằm ở bốn câu hỏi: ứng dụng có nằm trong nhiệm vụ được giao không, có dùng lại mã của công ty không, có dùng tài nguyên của công ty không, và hợp đồng lao động cùng các cam kết kèm theo nói gì.

Nguyên lý về chương trình máy tính viết khi đi làm

Bạn là tác giả, công ty thường là chủ sở hữu. Luật Sở hữu trí tuệ 2005 (sửa đổi, bổ sung 2009, 2019, 2022) bảo hộ chương trình máy tính như tác phẩm văn học, ở cả dạng mã nguồn và mã máy. Với tác phẩm tạo ra theo nhiệm vụ do tổ chức giao, tổ chức giao nhiệm vụ là chủ sở hữu quyền tài sản, trừ khi có thoả thuận khác. Bạn vẫn là tác giả và giữ quyền đứng tên.

Nhiệm vụ được hiểu theo công việc thực tế. Không chỉ là những gì ghi trong bản mô tả công việc. Nếu bạn được giao phát triển tính năng đặt lịch, một ứng dụng đặt lịch khác viết lúc tối dễ bị coi là gắn với nhiệm vụ, nhất là khi giải pháp giống nhau.

Hợp đồng có thể mở rộng phạm vi. Nhiều hợp đồng lao động ngành phần mềm có điều khoản sở hữu trí tuệ rộng: mọi sản phẩm liên quan tới lĩnh vực kinh doanh của công ty, tạo ra trong thời gian làm việc, đều thuộc công ty. Điều khoản rộng tới đâu thì có hiệu lực tới đâu là câu hỏi pháp lý, nhưng bạn đã ký thì nó là điểm khởi đầu của tranh luận.

Bí mật kinh doanh là lớp riêng. Ngoài quyền tác giả, công ty có thể có bí mật kinh doanh: thuật toán nội bộ, cấu trúc dữ liệu khách hàng, danh sách khách. Bộ luật Lao động 2019 cho phép hai bên thoả thuận về bảo vệ bí mật kinh doanh. Mang những thứ này sang sản phẩm riêng là rủi ro, kể cả khi bạn viết lại từ đầu.

Phân loại mã của bạn trước khi nghỉ

Ngồi xuống với kho mã của dự án riêng và chia từng phần vào một trong bốn nhóm. Việc này cần làm trung thực, vì nếu có tranh chấp, người khác cũng sẽ làm đúng như vậy.

NhómDấu hiệuNên làm
Rõ là của công tyChép hoặc chỉnh từ kho mã công ty; viết trong giờ làm theo nhiệm vụXoá khỏi dự án riêng, không mang theo
Dùng tài nguyên công tyViết trên máy công ty, dùng tài khoản, máy chủ, công cụ có giấy phép của công tyĐánh giá lại; nếu là phần lõi, cân nhắc viết lại sạch hoặc thoả thuận với công ty
Liên quan nhiệm vụViết ngoài giờ nhưng cùng bài toán với việc được giaoHỏi luật sư; cân nhắc xin văn bản xác nhận từ công ty
Độc lập rõ ràngViết ngoài giờ, máy riêng, khác lĩnh vực công ty, không dùng mã công tyGiữ lại, lưu lịch sử commit và bằng chứng thời gian

Với anh Duy, việc dùng máy tính công ty và cùng bài toán đặt lịch kéo phần lớn dự án vào nhóm hai và ba. Nếu anh đã chép vài hàm từ mô-đun của công ty, phần đó rơi vào nhóm một, và đó là phần dễ bị chứng minh nhất qua so sánh mã.

Việc nên làm trước khi nộp đơn nghỉ

Nếu bạn có dự án riêng và sắp nghỉ việc, đây là thứ tự nên làm, càng sớm càng tốt:

  1. Đọc lại hợp đồng lao động, phụ lục, thoả thuận bảo mật, nội quy về sở hữu trí tuệ mà bạn đã ký.
  2. Tách dự án riêng khỏi mọi tài nguyên công ty: máy, tài khoản kho mã, máy chủ thử, công cụ có giấy phép.
  3. Rà kho mã dự án riêng, loại bỏ mọi đoạn có nguồn từ mã công ty; ghi lại đã loại gì, lúc nào.
  4. Lưu bằng chứng quá trình phát triển riêng: lịch sử commit với giờ, ghi chú thiết kế, bản phác giao diện.
  5. Nếu dự án có nguy cơ bị coi là liên quan nhiệm vụ, cân nhắc đề nghị công ty ký văn bản xác nhận không yêu cầu quyền với dự án, hoặc thoả thuận cấp phép.
  6. Khi bàn giao, trả lại đầy đủ tài liệu, mã, thiết bị của công ty và giữ biên bản bàn giao.

Văn bản xác nhận của công ty là thứ quý nhất bạn có thể có. Nhiều công ty sẵn lòng ký nếu dự án không cạnh tranh trực tiếp, và đề nghị trước khi nghỉ thường được tiếp nhận thiện chí hơn đề nghị sau khi đã ra mắt sản phẩm.

Viết lại sạch một phần mã: làm sao cho thuyết phục

Khi một phần lõi của dự án rơi vào vùng tranh cãi, cách an toàn nhất là viết lại phần đó. Nhưng viết lại theo kiểu mở mã cũ bên cạnh rồi gõ lại bằng cách khác thì không thuyết phục được ai, vì kết quả vẫn mang cấu trúc, cách chia hàm, thậm chí cả lỗi của bản cũ. Người so mã sẽ nhận ra.

Cách làm được giới phần mềm dùng lâu nay là tách người: một người viết bản mô tả chức năng thuần tuý, nói phần đó phải làm gì, nhận đầu vào nào, trả đầu ra nào, không chép mã; một người khác, chưa từng xem mã cũ, viết lại từ bản mô tả. Với lập trình viên làm một mình thì khó tách người, nhưng vẫn có thể giữ nguyên tắc: viết bản mô tả trước, cất mã cũ đi, viết lại theo kiến trúc khác, và lưu lại toàn bộ quá trình.

Lịch sử commit của phần viết lại là bằng chứng. Mỗi lần commit có giờ, có thông điệp rõ ràng, cho thấy mã được dựng dần từ đầu chứ không phải dán vào một lần. Đây là lý do không nên xoá hay gộp lịch sử.

Viết lại sạch không tự động xoá mọi rủi ro, nhất là khi ý tưởng giải pháp tự nó là bí mật kinh doanh của công ty cũ. Nhưng nó biến câu chuyện từ "anh mang mã của công ty đi" thành "hai bên cùng giải một bài toán", và đó là vị thế dễ thương lượng hơn nhiều.

Những việc tuyệt đối không nên làm

Một số việc nghe như tiện tay nhưng có thể biến tình huống tranh luận được thành tình huống bất lợi rõ ràng:

  • Sao chép kho mã công ty ra ổ cứng riêng "để tham khảo" trước khi nghỉ.
  • Xuất danh sách khách hàng, dữ liệu người dùng của sản phẩm công ty.
  • Đổi tên biến, đổi cấu trúc thư mục của mã công ty rồi coi là mã mới. Thay đổi bề mặt không xoá được nguồn gốc.
  • Mời khách hàng của công ty chuyển sang sản phẩm của bạn bằng thông tin có được khi đang làm.
  • Xoá lịch sử commit để che dấu vết thời gian. Việc này làm mất chính bằng chứng có thể giúp bạn.

Những hành vi này không chỉ là chuyện quyền tác giả mà có thể dính tới bí mật kinh doanh, cạnh tranh không lành mạnh và trách nhiệm theo hợp đồng lao động. Khi đã lỡ làm, đừng làm thêm để che; hãy hỏi luật sư.

Lập công ty riêng: chuyển quyền từ cá nhân sang pháp nhân mới

Quyền đang nằm ở cá nhân. Mã bạn viết ngoài nhiệm vụ, nếu đã xác định là của bạn, thuộc quyền sở hữu của bạn với tư cách cá nhân. Khi lập công ty để kinh doanh ứng dụng, công ty không tự động có quyền đó.

Cần văn bản chuyển giao hoặc cấp phép. Bạn chuyển nhượng hoặc cấp phép quyền tài sản đối với chương trình cho công ty bằng văn bản, hoặc góp quyền đó làm vốn theo thủ tục góp vốn bằng tài sản. Có giấy tờ thì nhà đầu tư, đối tác sau này mới tin rằng công ty thật sự giữ sản phẩm.

Người cùng viết cũng phải ký. Nếu có bạn bè cùng viết mã trước khi lập công ty, họ là đồng tác giả và có thể là đồng chủ sở hữu. Thiếu chữ ký của họ, quyền của công ty với sản phẩm có lỗ hổng.

Người làm sau khi có công ty. Nhân viên, cộng tác viên tham gia sau cần hợp đồng ghi rõ sản phẩm làm theo nhiệm vụ thuộc công ty. Đây chính là điều khoản bạn từng ký khi đi làm thuê, giờ bạn ở phía bên kia bàn.

Khi đã nhận thư của công ty cũ

Thư của công ty cũ thường viết mạnh. Đừng trả lời ngay trong lúc bực. Đọc kỹ họ yêu cầu gì: ngừng phát hành, chuyển giao mã, trả phí cấp phép hay chỉ cần bạn xác nhận không dùng mã của họ. Mỗi yêu cầu có cách phản hồi khác nhau.

Tập hợp bảng phân loại mã, bằng chứng phát triển riêng, hợp đồng lao động và mang tới luật sư sở hữu trí tuệ. Một cuộc gặp tư vấn sớm thường rẻ hơn nhiều so với việc phải viết lại toàn bộ sản phẩm sau một tranh chấp kéo dài. Nhiều vụ kết thúc bằng thoả thuận cấp phép hoặc chia phần hợp lý, nhất là khi phần trùng lặp nhỏ và bạn sẵn sàng viết lại.

Đăng ký quyền tác giả cho chương trình của bạn lúc này không giải quyết được tranh chấp về chủ sở hữu, vì người nộp tự cam đoan và giấy chứng nhận có thể bị huỷ nếu sau đó xác định bạn không phải chủ sở hữu. Đăng ký chỉ có ích sau khi quyền đã rõ ràng.

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

Viết app ngoài giờ làm thì app có chắc là của mình không?

Không chắc. Còn phụ thuộc vào việc app có liên quan nhiệm vụ được giao không, có dùng mã hay thiết bị của công ty không, và hợp đồng lao động nói gì. Ngoài giờ chỉ là một yếu tố, không quyết định tất cả.

Mang mã nguồn từng viết ở công ty cũ sang dự án mới có vi phạm không?

Mã viết theo nhiệm vụ thường thuộc quyền sở hữu của công ty, dù bạn là tác giả. Mang sang dự án mới mà không có sự đồng ý có thể xâm phạm quyền tác giả và vi phạm cam kết bảo mật. Nên loại bỏ hoặc viết lại sạch.

Lập trình viên có còn quyền gì với phần mềm viết cho công ty không?

Bạn vẫn là tác giả và giữ quyền đứng tên. Quyền tài sản như sao chép, phân phối, sửa đổi thường thuộc công ty. Bạn có thể ghi vai trò của mình trong hồ sơ năng lực nếu không vi phạm cam kết bảo mật.

Có nên xin công ty văn bản xác nhận không đòi quyền với dự án riêng không?

Rất nên, nếu dự án có khả năng bị coi là liên quan nhiệm vụ. Văn bản này là căn cứ rõ ràng nhất cho bạn sau này. Đề nghị trước khi nghỉ thường được tiếp nhận thiện chí hơn sau khi sản phẩm đã ra mắt.

Đổi tên biến và cấu trúc mã của công ty thì có thành mã mới không?

Không. Thay đổi bề mặt không xoá nguồn gốc, và so sánh mã có thể chỉ ra cấu trúc, logic giống nhau. Muốn an toàn, phần đó phải được viết lại thật sự từ đầu mà không nhìn mã cũ.

Đăng ký quyền tác giả cho app có giúp thắng tranh chấp với công ty cũ không?

Không giải quyết được tranh chấp về chủ sở hữu. Người nộp tự cam đoan, và giấy chứng nhận có thể bị huỷ nếu xác định người nộp không phải chủ sở hữu. Nên xử lý dứt điểm quyền trước rồi mới đăng ký.

Cần tư vấn cụ thể cho trường hợp của bạn?

Chúng tôi sẽ liên hệ trong vòng 24 giờ.

Đăng ký tư vấn ngay

Bài viết liên quan

Cần người soạn và nộp hồ sơ đăng ký quyền tác giả?

Cho biết tác phẩm của bạn thuộc loại nào (bài hát, truyện, ảnh, video, thiết kế, phần mềm…), ai là tác giả, ai đứng tên chủ sở hữu và tác phẩm đã công bố chưa. Tác Quyền đọc nhu cầu và liên hệ lại để giới thiệu đơn vị soạn, nộp hồ sơ đăng ký quyền tác giả phù hợp.

hoặc
Gọi ngay 0926 138 138