Các rủi ro thuê ngoài phần mềm phổ biến nhất không nằm ở chuyện làm dở, mà ở chuyện phụ thuộc: phụ thuộc vào một người, vào một nhóm không có tài liệu, hoặc vào một bên giữ toàn bộ mã nguồn và tài khoản máy chủ. Khi người đó biến mất hoặc quan hệ xấu đi, bạn không còn đường lùi.
Bài này so sánh ba cách thường gặp (thuê lập trình viên freelance, lập đội nội bộ, thuê công ty), chỉ ra rủi ro của từng cách và biện pháp giảm thiểu. Không có cách nào hoàn toàn không rủi ro.
Ba cách có phần mềm và điểm mạnh yếu
Thuê lập trình viên freelance
Điểm mạnh: linh hoạt, thường phù hợp việc nhỏ, rõ phạm vi. Rủi ro: toàn bộ hiểu biết về hệ thống nằm trong đầu một người. Người đó bận, nghỉ, đổi nghề hoặc mất liên lạc là dự án dừng. Chất lượng kiểm thử và bảo mật phụ thuộc hoàn toàn vào thói quen cá nhân.
Lập đội nội bộ
Điểm mạnh: hiểu sâu doanh nghiệp, phản hồi nhanh, kiểm soát hoàn toàn. Rủi ro: cần tuyển, giữ người và quản lý kỹ thuật, nên chi phí cố định cao. Nếu đội chỉ có một hai người thì rủi ro phụ thuộc vẫn còn nguyên. Cách này hợp với doanh nghiệp có nhu cầu phần mềm liên tục và đủ quy mô.
Thuê công ty
Điểm mạnh: có đội nhiều vai trò, quy trình và người thay thế khi ai đó vắng. Rủi ro: chất lượng khác nhau giữa các đơn vị, giao tiếp qua lớp trung gian, và vẫn có thể bị khóa vào nhà cung cấp nếu hợp đồng không rõ về mã nguồn.
Những rủi ro cụ thể và cách giảm
Phụ thuộc vào một người hoặc một bên
Biện pháp: yêu cầu tài liệu cài đặt và vận hành, mã nguồn nằm trong kho mà bạn có quyền truy cập, và hỏi ai là người thay thế nếu người chính vắng.
Không nắm mã nguồn, dữ liệu và tài khoản
Biện pháp: tên miền, máy chủ, kho mã nên đứng tên doanh nghiệp bạn. Ghi việc bàn giao vào hợp đồng. Xem danh sách câu hỏi ở bài quyền sở hữu mã nguồn và hợp đồng làm phần mềm và nhờ luật sư của bạn xem xét văn bản.
Hiểu sai yêu cầu
Biện pháp: viết rõ yêu cầu trước khi báo giá, chia nhỏ giai đoạn để xem kết quả sớm, và nghiệm thu theo tiêu chí ghi sẵn.
Chất lượng kém, lỗi khi cập nhật
Biện pháp: hỏi về kiểm thử tự động và kiểm tra mã tự động trước mỗi lần cập nhật. Phần mềm không có lớp kiểm tra này thường dễ vỡ khi sửa.
Bảo mật và dữ liệu nhạy cảm
Biện pháp: giới hạn quyền truy cập của bên làm đúng vào những gì họ cần, yêu cầu phân quyền theo vai trò trong chính phần mềm, ghi điều khoản giữ bí mật vào hợp đồng, và hỏi cách sao lưu.
Chi phí tăng dần ngoài dự kiến
Biện pháp: thống nhất cách xử lý thay đổi phạm vi bằng văn bản, và làm theo giai đoạn để mỗi lần chỉ cam kết một phần.
Cách chọn theo tình huống
- Việc nhỏ, rõ, ít phụ thuộc: freelance có thể đủ, miễn bạn nắm tài khoản và mã nguồn
- Nhu cầu phần mềm liên tục, quy mô lớn: cân nhắc đội nội bộ, có thể kết hợp với đơn vị ngoài cho phần chuyên sâu
- Hệ thống nghiệp vụ quan trọng, cần nhiều vai trò và có người thay thế: công ty thường phù hợp hơn
Nhiều doanh nghiệp kết hợp: một người nội bộ hiểu nghiệp vụ làm đầu mối, đơn vị ngoài thực hiện kỹ thuật.
Khi nào lời khuyên này không áp dụng
Với việc rất nhỏ như chỉnh sửa một trang, một tập lệnh đơn giản, bạn không cần quy trình nặng. Ngoài ra, không có hình thức nào miễn nhiễm rủi ro: công ty lớn cũng có thể làm kém, freelance giỏi cũng có thể làm rất tốt. Điều quan trọng là bạn thiết kế quan hệ sao cho mình không bị kẹt. Với điều khoản hợp đồng, hãy nhờ luật sư tư vấn.
Dấu hiệu cảnh báo sớm
Một vài tín hiệu cho thấy bạn đang đi vào vùng rủi ro, bất kể chọn hình thức nào:
- Bên làm không muốn cho bạn xem bản đang chạy hoặc chỉ cho xem khi đã xong
- Không có tài liệu, hoặc tài liệu chỉ có trong tin nhắn
- Mọi tài khoản quan trọng đều đứng tên cá nhân của người làm
- Câu trả lời về kiểm thử, sao lưu và bảo mật luôn chung chung
- Mỗi yêu cầu nhỏ đều bị coi là phát sinh mà không có cách tính rõ ràng
Gặp một trong những dấu hiệu này, hãy dừng lại, yêu cầu làm rõ bằng văn bản trước khi tiếp tục thanh toán các mốc sau.
Bước tiếp theo
Trước khi chọn bất kỳ hình thức nào, dùng bộ câu hỏi trong bài cách chọn công ty làm phần mềm để kiểm chứng. Nếu bạn muốn trao đổi về một dự án cụ thể, xem dịch vụ viết phần mềm theo yêu cầu của chúng tôi.


