Chương 2: Dữ Liệu Người Dùng Không Thuộc Về Hai Founder
Dữ liệu người dùng không thuộc về Trần Đình Khải, cũng không thuộc về Nguyễn Minh Kiệt. Luật sư Lê Minh Anh nói câu đó trong cuộc họp khẩn sáng hôm sau, khi Khải vẫn còn tức đến mức chỉ chực phản bác.
“Người dùng đăng ký vì cái app em xây.”
“Điều đó không biến dữ liệu của họ thành tài sản cá nhân của em.”
“Nhưng Kiệt mang nó sang công ty mới.”
“Nếu đúng vậy thì có thể là vi phạm nghiêm trọng,” Minh Anh đáp. “Nhưng cách nghĩ ‘dữ liệu của tôi bị lấy’ vẫn sai hướng. Công ty là bên xử lý dữ liệu và có nghĩa vụ với người dùng. Hai nhà sáng lập không thể chia dữ liệu như chia mã nguồn.”
Đội bảo mật đã xác định được tập dữ liệu bị xuất: một số trường thông tin tài khoản và tiến độ học tập lấy từ bản sao dùng cho phân tích. Chưa thấy dữ liệu thẻ thanh toán gốc trong đó, vì phần thanh toán do một bên thứ ba xử lý và được tách biệt hơn. Nhưng có email, mã người dùng, lịch sử bài học và một số trường hồ sơ cá nhân, đủ để phải xử lý nghiêm túc.
Nhật ký cho thấy dữ liệu được tải xuống một thiết bị gắn với Kiệt. Chưa có bằng chứng nó đã được đẩy lên hệ thống của EduPro. Minh Anh yêu cầu giám định viên và luật sư xử lý phần đó theo quy trình hợp pháp, và Khải không được tự ý lục máy tính của Kiệt.
“Lỡ nó bán dữ liệu rồi thì sao?”
“Đừng đi từ một khả năng thẳng tới kết luận. Ta sẽ xác minh.”
Cuộc họp chuyển sang việc vẽ bản đồ dữ liệu, và Khải thấy xấu hổ vì công ty không có nổi một bản hoàn chỉnh. Họ có chính sách quyền riêng tư, có sơ đồ cơ sở dữ liệu kỹ thuật, nhưng không có bảng kiểm kê nào đủ tốt để trả lời ngay: trường nào nằm ở đâu, dùng cho mục đích gì, lưu bao lâu, ai được truy cập, đối tác xử lý nào liên quan, loại nào nhạy cảm hơn.
“Sự cố này đang phơi ra cả những lỗi quản trị cũ của LearnVN, không chỉ hành vi của Kiệt,” Minh Anh nói. Khải không thích nghe, nhưng nó đúng. Quyền của CTO rộng hơn mức cần. Bản sao phân tích dùng dữ liệu thật nhiều hơn mức tối thiểu. Môi trường thử nghiệm có những tập dữ liệu được ẩn danh hóa không nhất quán. Việc thay khóa bí mật chưa được tự động hóa. Tài khoản của hai nhà sáng lập được miễn trừ khỏi nhiều quy tắc vì “hai anh cần xử lý mọi thứ”. Hai anh, nghĩa là hai điểm mà một người duy nhất có thể làm mọi thứ.
Buổi trưa, Khải gọi cho mẹ. Bà Trần Thị Hoa đang ngồi chấm bài ở trường.
“Con mất code à?” bà hỏi.
“Con chưa biết nên gọi là mất gì mẹ ạ. Kiệt lấy một bản repo và một phần dữ liệu người dùng.”
Đầu dây im một lúc. “Dữ liệu học sinh lớp mẹ có trong đó không?”
Khải giật mình. Lớp của mẹ từng dùng LearnVN từ những ngày đầu, và một số tài khoản cũ còn để tên thật. “Có thể có.”
“Vậy con lo cho người ta trước đã.” Bà không nói những câu kiểu “người ta lấy được code chứ đâu lấy được cái đầu con”. Bà hỏi đúng thứ quan trọng hơn.
Khải cúp máy, quay lại phòng xử lý sự cố. “Kế hoạch thông báo cho người dùng đâu?”
“Mình chưa biết phạm vi,” trưởng bộ phận truyền thông nói.
“Vậy soạn sẵn theo những gì đã biết và theo từng tình huống.”
Minh Anh gật đầu. Họ chuẩn bị nội dung cho nhiều kịch bản khác nhau, để nếu việc đánh giá rủi ro và nghĩa vụ pháp lý cho thấy phải thông báo, họ không mất thêm giờ nào. Không giấu giếm, không phóng đại, không viết “dữ liệu của bạn chắc chắn an toàn” khi chưa biết điều đó có đúng không.
Cùng lúc, hội đồng quản trị LearnVN phải xử lý chuyện quản trị giữa hai nhà sáng lập. Bảng cổ phần đã được chính thức hóa từ hai năm trước: Khải và Kiệt đều là cổ đông lớn, không phải tỷ lệ bảy mươi, ba mươi nói miệng như Khải vẫn kể trong ký ức. Sau một đợt phát hành cổ phần thưởng nhỏ cho nhân viên, tỷ lệ còn thay đổi thêm. Hợp đồng làm việc của hai nhà sáng lập có tồn tại, dù phần chuyển giao sở hữu trí tuệ cho code giai đoạn đầu vẫn còn chỗ chưa sạch.
Minh Anh yêu cầu rà soát toàn bộ sở hữu trí tuệ. Trong kho mã có code Khải viết trước khi thành lập công ty, code Kiệt viết cả trước lẫn sau, code của nhân viên trong thời gian làm việc, code của cộng tác viên với đủ loại hợp đồng khác nhau, các gói mã nguồn mở theo nhiều giấy phép, nội dung giáo dục được cấp phép, và cả các thành phần mô hình, dữ liệu do bên thứ ba cung cấp.
“Vậy rốt cuộc ai sở hữu LearnVN?” Khải hỏi.
“Đừng hỏi một câu rộng như vậy,” Minh Anh nói. “Ta lập bản đồ cho từng tài sản, từng quyền. Công ty có cơ sở vững với phần lớn sản phẩm công việc, nhưng giai đoạn đầu cần giấy tờ chứng minh.”
Lịch sử Git cho thấy Kiệt viết một khối lượng hạ tầng đáng kể, không phải mười lăm phần trăm như Khải từng nói, mà cũng không dễ quy ra phần trăm nào cả. Số lần commit không đo được tầm quan trọng; một tệp cấu hình hay một lệnh chuyển đổi dữ liệu có thể chỉ vài dòng nhưng sống còn với cả hệ thống. Nhìn biểu đồ đóng góp, Khải nhận ra mình đã kể câu chuyện “tôi viết tất cả, Kiệt chỉ chạy server” quá lâu. Kiệt đã thiết kế phần lớn hệ thống triển khai, giám sát, bộ nhớ đệm, sao lưu, đường ống dữ liệu và nhiều dịch vụ backend.
Điều đó không cho Kiệt quyền mang dữ liệu người dùng đi, cũng không tự cho anh quyền sao nguyên một sản phẩm độc quyền sang công ty mới nếu sở hữu trí tuệ thuộc về LearnVN. Nhưng nó khiến câu “Kiệt chẳng tạo ra gì” trở thành sai.
Trước hội đồng quản trị, Khải nói: “Tôi muốn sửa lại cách kể chuyện trong nội bộ. Đừng gọi Kiệt là kẻ chỉ biết chép code của tôi.”
Một thành viên hội đồng nhíu mày. “Anh đang bênh anh ta?”
“Không. Tôi bảo vệ sự thật trong hồ sơ. Anh ấy có đóng góp thật. Tranh chấp nằm ở quyền sử dụng sau khi tách ra, ở dữ liệu và khóa bí mật.” Đó là lần đầu tiên Khải tách được cảm giác bị phản bội khỏi tấm bản đồ tài sản.
Công ty thuê một đơn vị độc lập rà soát bảo mật và quyền riêng tư. Họ áp dụng nguyên tắc quyền tối thiểu; tài khoản nhà sáng lập không còn được miễn trừ. Việc xuất dữ liệu từ hệ thống thật cần lý do, phê duyệt và giám sát chặt hơn. Môi trường thử nghiệm chuyển sang dùng dữ liệu giả hoặc dữ liệu đã ẩn danh phù hợp. Việc quản lý khóa bí mật được chuẩn hóa, quy trình nghỉ việc có danh sách kiểm tra rõ ràng. Không phải vì “Kiệt xấu”, mà vì không hệ thống nào nên cho phép một người, kể cả nhà sáng lập, mang quá nhiều thứ đi chỉ vì quyền của họ chưa kịp bị thu hồi.
Khải thêm một dòng vào danh sách kiểm tra sự cố mới: quyền truy cập của nhà sáng lập cũng phải có mục đích rõ ràng và được rà soát định kỳ như mọi vai trò đặc quyền khác.
Cuối ngày, mẹ anh gửi ảnh cuốn từ điển Oxford cũ bà vẫn để trên bàn giáo viên, kèm dòng chữ: “Đồ của ai thì giữ cho đúng. Bài của học sinh cũng vậy.” Khải bật cười. Mẹ anh không biết quản trị dữ liệu là gì, nhưng bà đã đặt đúng câu hỏi.
Không phải “ai code giỏi hơn”, mà là: thứ này được giao cho ai, để làm gì, và ai có quyền mang nó đi?