Chương 5: Lịch Sử Commit Không Thay Hợp Đồng
Lịch sử commit không tự quyết định trách nhiệm pháp lý của Nguyễn Minh Kiệt. Nó chỉ là một phần của hồ sơ, và trước khi đi tới được khung thỏa thuận cuối cùng, Khải đã phải học điều đó theo cách chậm chạp nhất.
Sáu tháng sau cuộc chia tay, LearnVN và Kiệt vẫn đang giải quyết ba nhóm vấn đề tách biệt: mã nguồn và sở hữu trí tuệ, dữ liệu người dùng và quyền riêng tư, cổ phần và quản trị công ty. Ban đầu Khải muốn gộp tất cả vào một vụ, nhưng luật sư Lê Minh Anh không đồng ý.
“Nếu em trộn chúng lại, mỗi bên sẽ lấy một sự thật ở tầng này để kết luận cho tầng khác,” chị giải thích. Kiệt có nhiều commit, nhưng điều đó không tự chứng minh anh sở hữu phần code ấy sau khi đã có thỏa thuận chuyển giao và quan hệ lao động. Kiệt là cổ đông, nhưng điều đó không cho anh quyền xuất dữ liệu người dùng sang một công ty khác. Khải viết nhiều code sản phẩm hơn, nhưng điều đó cũng không cho Khải quyền sở hữu riêng code của công ty. Công ty có cơ sở vững về sở hữu trí tuệ, nhưng điều đó không chứng minh mọi thành phần trong kho mã đều là sáng tạo nguyên gốc, độc quyền của công ty.
Một chuyên gia độc lập về mã nguồn lập báo cáo. Họ không đếm số dòng code rồi chia phần trăm, mà phân loại từng mô-đun theo nguồn gốc: code Khải viết trước khi thành lập công ty, code Kiệt viết trước khi thành lập công ty, sản phẩm của nhân viên sau đó, phần việc của cộng tác viên, code mã nguồn mở và của bên thứ ba, cấu hình và khóa bí mật, những ý tưởng và khuôn mẫu phổ biến, và cuối cùng là những đoạn code có cách viết tương đồng đáng kể.
Báo cáo phơi ra một sự thật khó chịu với chính Khải. Một số mô-đun anh vẫn tưởng mình viết từ con số không, thực ra khởi nguồn từ ví dụ mã nguồn mở rồi được cả nhóm sửa dần. Chuyện đó không có gì sai nếu giấy phép được tuân thủ, nhưng anh không thể đứng trước luật sư hay tòa án mà nói “từng dòng là của tôi”. Về phía Kiệt, một số thành phần được tạo trước khi thành lập công ty nhưng giấy tờ chuyển giao làm muộn, nên thỏa thuận phải xử lý chuỗi chứng minh quyền thay vì giả định giấy tờ lúc nào cũng hoàn hảo.
“Startup nào cũng thích kể câu ‘hai nhà sáng lập bắt đầu bằng niềm tin’,” Minh Anh nói. “Về sau, luật sư phải biến niềm tin ấy thành giấy tờ.” Khải không cười nổi.
Cuộc điều tra về quyền riêng tư lại cho ra một hồ sơ khác. Giám định viên xác nhận một phần dữ liệu người dùng đã được đưa vào một môi trường gắn với EduPro. Không có chứng cứ cho câu chuyện bán hàng triệu bản ghi ra thị trường, cũng không thấy toàn bộ cơ sở dữ liệu LearnVN bị lấy đi. Nhưng việc đưa dữ liệu thật sang môi trường của một công ty mới, nằm ngoài mục đích và thẩm quyền ban đầu, đã đủ nghiêm trọng.
LearnVN làm việc với luật sư, chuyên gia quyền riêng tư và cơ quan có thẩm quyền theo các nghĩa vụ áp dụng. EduPro và những người liên quan đến Kiệt phải cung cấp thông tin và khắc phục trong phạm vi điều tra và thỏa thuận. Kết quả không phải một bản án hình sự đơn giản dựa trên lịch sử Git. Có những kết luận và hệ quả tuân thủ về việc xử lý dữ liệu, kèm yêu cầu khắc phục phù hợp với sự thật. Các yêu cầu dân sự và thương mại về sở hữu trí tuệ, bảo mật thông tin được giải quyết một phần bằng thỏa thuận, một phần bằng những cam kết và thay đổi cụ thể.
“Không ai đi tù à?” Khải hỏi.
Minh Anh nhìn anh. “Em muốn người bạn cũ đi tù, hay muốn quyền và dữ liệu được xử lý đúng?”
Khải im lặng một lúc. “Em giận.”
“Chị biết.”
“Nếu không có hình phạt nặng, người ta sẽ nghĩ anh ấy chẳng làm gì sai.”
“Kết quả pháp lý không được thiết kế để vừa với câu chuyện của em.” Câu đó làm anh đau, nhưng anh không cãi.
Ở tầng công ty, hội đồng quản trị LearnVN xử lý phần của Kiệt. Anh không còn vai trò quản lý hay quyền truy cập nào. Cổ phần của anh được giải quyết theo thỏa thuận cổ đông và thương lượng, không tự mất đi chỉ vì bị cáo buộc sai phạm; một phần được mua lại trong thỏa thuận chung.
Khải cũng đã phải rời ghế CEO sau một giai đoạn chuyển giao, vì hội đồng cho rằng xung đột giữa hai nhà sáng lập khiến công ty cần người lãnh đạo mới. Lúc đầu anh coi đó là bất công. “Em là người bị phản bội cơ mà.”
Chủ tịch hội đồng quản trị đáp: “Và em cũng là nhà sáng lập đã để việc quản lý truy cập, hợp đồng và quyền riêng tư yếu kém kéo dài. Lỗi không ngang nhau, nhưng công ty phải sống tiếp sau cả hai em.” Khải không thích câu trả lời ấy. Phải vài tháng sau anh mới chấp nhận nó.
LearnVN bổ nhiệm CEO và người phụ trách sản phẩm mới, và công ty tiếp tục hoạt động. Nó không biến mất chỉ vì cuộc chia tay và tranh chấp; thương hiệu LearnVN thậm chí còn tồn tại lâu hơn EduPro. Nhưng công ty đã phải tốn rất nhiều tiền để kiểm toán, sửa lại quyền truy cập, liên lạc với người dùng và xây lại niềm tin.
Lịch sử Git cuối cùng được dùng đúng vai trò của nó trong thỏa thuận và phân tích vụ việc: để dựng trình tự thời gian, tìm manh mối về người viết, lần theo lịch sử từng mô-đun. Nó không phải một chiếc máy đo đạo đức.
Khải còn làm một việc khiến nhiều người ngạc nhiên: anh gửi đề nghị đính chính cho một trang tin công nghệ từng gọi Kiệt là “người chỉ phụ trách server”. Trong email, anh viết: “Nguyễn Minh Kiệt có đóng góp kỹ thuật đáng kể vào hạ tầng và hệ thống backend của LearnVN. Tranh chấp giữa chúng tôi liên quan đến quyền sử dụng tài sản và dữ liệu sau khi tách ra, không phải việc anh ấy chưa từng tạo ra điều gì.”
Phóng viên hỏi lại: “Anh đang minh oan cho Kiệt à?”
“Không. Tôi sửa một sự thật,” Khải đáp, và anh thấy nhẹ người hơn mình tưởng. Kiệt không phản hồi gì.
Khoảng một năm sau sự cố, hai người gặp nhau tại văn phòng luật sư để ký những giấy tờ cuối cùng. Không ôm nhau, cũng không chửi nhau.
“Tao vẫn nghĩ phần code tao viết thì tao có quyền mang đi,” Kiệt nói.
“Tao hiểu vì sao mày nghĩ vậy. Nhưng thỏa thuận sở hữu trí tuệ của công ty và nghĩa vụ với dữ liệu không vận hành như một cái repo cá nhân.”
“Mày cũng từng nghĩ tất cả là code của mày.”
“Ừ.” Cả hai cùng im lặng. Không ai thắng được cuộc tranh luận với chính đời mình. Họ chỉ có một chồng giấy tờ mới làm cái việc mà đáng lẽ thỏa thuận giữa các nhà sáng lập phải làm từ đầu: nói rõ ai giữ gì, ai được dùng gì, thứ gì phải xóa, phải trả hay phải cấp phép, thứ gì vẫn thuộc về công ty, và thứ gì không được mang sang cho người dùng mới.
Khải rời phòng không cầm theo bản án nào, chỉ có một tập hồ sơ thỏa thuận và một bài học. Minh Anh còn yêu cầu LearnVN lập sổ đăng ký chuỗi quyền sở hữu cho các kho mã và mô-đun quan trọng; không cần ghi từng dòng code, nhưng phải biết phần của nhân viên, cộng tác viên hay đóng góp mã nguồn mở đi theo điều khoản nào, để lần sau không phải đợi đến lúc tranh chấp mới lục lại email cũ. Khải đưa quy tắc này vào kế hoạch khắc phục, cùng với việc rà soát quyền truy cập và quy trình nghỉ việc. Hồ sơ sở hữu trở thành một phần của vận hành công nghệ, không chỉ là giấy tờ dành cho luật sư.
Git ghi lại rất tốt chuyện code đã thay đổi thế nào. Nhưng nó không thay được hợp đồng, luật về quyền riêng tư, cơ chế quản trị hay sự phán đoán của con người.