Phần lớn doanh nghiệp nhỏ nên bắt đầu bằng phần mềm đóng gói có sẵn và chỉ đặt viết riêng cho đúng phần việc tạo nên khác biệt của mình, sau khi đã dùng thử phần mềm có sẵn đủ lâu để biết nó thiếu gì. Viết riêng từ đầu khi chưa rõ nhu cầu thường dẫn đến một phần mềm đắt, chậm hoàn thành, phụ thuộc vào một người viết, và vẫn không khớp với cách làm việc vì chính công ty cũng chưa biết mình muốn gì.
Bài này giúp chủ doanh nghiệp và quản lý vận hành phân biệt ba lựa chọn, nhận ra khi nào viết riêng là đáng, tính chi phí ẩn, và biết những điều cần chốt trong hợp đồng nếu quyết định thuê người viết. Bài không đánh giá đơn vị lập trình cụ thể nào; các con số nếu có đều là ví dụ giả định.
Ba lựa chọn và đặc điểm của từng loại
Giữa hai đầu "mua sẵn" và "viết riêng" còn một lựa chọn ở giữa mà nhiều công ty bỏ qua. Bảng dưới so sánh ba hướng ở mức nguyên lý:
| Hướng | Hợp với | Điều cần chấp nhận |
|---|---|---|
| Phần mềm đóng gói dùng ngay | Nghiệp vụ phổ biến: bán hàng, kế toán, chấm công, quản lý khách hàng | Làm theo cách phần mềm thiết kế, ít chỗ chỉnh |
| Phần mềm đóng gói có tuỳ biến hoặc thêm phần mở rộng | Nghiệp vụ phổ biến cộng vài đặc thù như mẫu phiếu riêng, trường dữ liệu riêng, báo cáo riêng | Phụ thuộc vào khả năng mở của phần mềm gốc; mỗi lần phần mềm gốc cập nhật có thể ảnh hưởng phần tuỳ biến |
| Viết riêng từ đầu | Quy trình đặc thù tạo khác biệt cạnh tranh, không phần mềm nào có sẵn làm được | Chi phí ban đầu cao, cần người bảo trì lâu dài, rủi ro phụ thuộc người viết |
Câu hỏi then chốt không phải là phần mềm nào hợp ý hơn, mà là phần việc đó có thật sự khác biệt hay không. Bán hàng, thu tiền, xuất hoá đơn, chấm công gần như công ty nào cũng làm giống nhau; điều chỉnh cách làm của mình cho khớp phần mềm thường rẻ hơn viết phần mềm cho khớp cách làm của mình.
Khi nào phần mềm có sẵn là đủ
Phần mềm đóng gói thường là lựa chọn đúng khi có nhiều dấu hiệu dưới đây cùng lúc:
- Nghiệp vụ cần số hoá là nghiệp vụ phổ biến, nhiều công ty cùng ngành đang làm tương tự.
- Công ty chưa từng dùng phần mềm nào cho việc này, nên chưa biết rõ mình cần gì ngoài những điều cơ bản.
- Không có người trong công ty đủ thời gian để làm việc với đơn vị lập trình suốt nhiều tháng.
- Ngân sách dành cho công nghệ còn hạn chế và cần thấy kết quả trong vài tháng.
- Những chỗ phần mềm có sẵn không đáp ứng có thể xử lý bằng một bảng tính hay một bước thủ công nhỏ.
- Việc cần nhiều cập nhật theo quy định, như kế toán, thuế, hoá đơn, mà một công ty phần mềm chuyên làm sẽ theo kịp tốt hơn.
Một mẹo thực tế: dùng phần mềm có sẵn ít nhất sáu tháng đến một năm rồi mới cân nhắc viết riêng. Khoảng thời gian đó cho bạn danh sách chính xác những gì còn thiếu, và nhiều khi danh sách ấy ngắn hơn bạn nghĩ ban đầu.
Trong thời gian dùng thử, hãy ghi mỗi lần nhân viên phải làm vòng ngoài phần mềm: chép số ra bảng tính, ghi tay một bước, nhắn tin hỏi nhau. Cuối kỳ, những ghi chép này cho thấy chỗ nào thiếu thật, chỗ nào chỉ là chưa quen, và đó chính là nguyên liệu cho bản yêu cầu nếu sau này cần viết riêng.
Khi nào viết riêng đáng cân nhắc
Quy trình là lợi thế cạnh tranh. Ví dụ giả định: một xưởng in nhận đơn tuỳ chỉnh theo cách tính giá riêng mà khách rất thích vì nhanh và minh bạch. Nếu phần mềm có sẵn ép xưởng bỏ cách tính đó, viết riêng phần báo giá có thể đáng tiền.
Đã dùng phần mềm có sẵn và chạm trần. Công ty đã dùng nghiêm túc, đã thử tuỳ biến, và có danh sách cụ thể những việc không làm được, kèm số giờ thủ công đang phải bù mỗi tuần.
Cần nối nhiều hệ thống có sẵn lại với nhau. Nhiều khi thứ cần viết riêng chỉ là một phần nhỏ nối dữ liệu giữa phần mềm bán hàng, kho và kế toán, không phải cả một hệ thống mới.
Có người nội bộ đủ sức làm chủ dự án. Phải có ít nhất một người hiểu nghiệp vụ, có thời gian viết yêu cầu, thử nghiệm, nghiệm thu, và về lâu dài hiểu đủ để làm việc với người bảo trì.
Có ngân sách cho bảo trì nhiều năm. Phần mềm viết riêng không phải mua một lần là xong. Nếu chỉ đủ tiền viết mà không đủ tiền bảo trì, rủi ro là phần mềm hỏng dần sau một hai năm mà không ai sửa. Khi lập ngân sách, hãy dành riêng một khoản bảo trì hằng năm thay vì coi đó là chi phí phát sinh.
Chi phí ẩn của phần mềm viết riêng
Khi nhận báo giá viết phần mềm, chủ doanh nghiệp thường chỉ nhìn con số phát triển ban đầu. Những chi phí phát sinh sau đó lại hay lớn hơn: máy chủ và tên miền để chạy phần mềm, sao lưu dữ liệu, cập nhật bảo mật cho các thành phần phần mềm, sửa lỗi phát sinh khi điện thoại hay trình duyệt đổi phiên bản, và thêm tính năng khi công ty thay đổi cách làm.
Rủi ro lớn nhất là phụ thuộc vào một người. Phần mềm do một lập trình viên tự do hoặc một nhóm rất nhỏ viết, không có tài liệu, mã nguồn nằm trên máy của họ. Khi người đó bận việc khác, chuyển nghề hay tăng giá, công ty gần như không có lựa chọn. Người mới tiếp nhận phải mất nhiều thời gian đọc hiểu, có khi đề nghị viết lại từ đầu.
Ngoài ra còn chi phí thời gian của chính công ty: những buổi họp mô tả yêu cầu, những vòng thử nghiệm, những lần sửa đi sửa lại vì người viết hiểu sai. Ví dụ giả định: một dự án dự kiến ba tháng kéo thành chín tháng, trong suốt thời gian đó quản lý vận hành dành một phần ba thời gian cho dự án thay vì việc chính. Khoản này ít khi được tính vào ngân sách nhưng là chi phí thật.
Nếu quyết viết riêng: những điều phải chốt trong hợp đồng
Hợp đồng phát triển phần mềm là chỗ bảo vệ công ty tốt nhất. Những điểm dưới đây nên có trong hợp đồng hoặc phụ lục, viết rõ bằng lời thường:
- Quyền sở hữu mã nguồn và dữ liệu thuộc về công ty sau khi thanh toán, kèm thời điểm bàn giao mã nguồn.
- Mã nguồn được lưu ở kho do công ty đứng tên tài khoản, không phải tài khoản cá nhân của người viết.
- Tài liệu bàn giao gồm hướng dẫn cài đặt, cấu trúc dữ liệu, cách sao lưu và khôi phục.
- Tiêu chí nghiệm thu cụ thể cho từng phần, gắn với các tình huống nghiệp vụ có thật.
- Thời gian bảo hành sửa lỗi miễn phí sau nghiệm thu và mức phí bảo trì sau đó.
- Tài khoản máy chủ, tên miền, dịch vụ bên thứ ba đều đứng tên công ty.
- Cách xử lý khi một bên muốn chấm dứt giữa chừng: phần đã làm được bàn giao thế nào.
Phần quyền sở hữu trí tuệ và điều khoản hợp đồng có những điểm pháp lý cần người làm luật xem lại. Bạn có thể hỏi nguyên lý chung ở AI Cố Vấn, nhưng với hợp đồng giá trị lớn nên nhờ luật sư rà bản cuối trước khi ký.
Thử trước bằng bảng tính hoặc công cụ không cần lập trình
Trước khi đặt viết một phần mềm riêng, nhiều công ty có thể chạy thử quy trình mới bằng những công cụ có sẵn: bảng tính dùng chung, biểu mẫu trực tuyến, công cụ tạo ứng dụng đơn giản bằng cách kéo thả mà không cần viết mã. Cách này không thay được phần mềm thật về lâu dài, nhưng giúp kiểm chứng quy trình với chi phí thấp.
Ví dụ giả định: một công ty dịch vụ vệ sinh muốn có ứng dụng cho nhân viên báo cáo công việc tại nhà khách. Thay vì đặt viết ứng dụng ngay, họ dùng biểu mẫu trực tuyến có ảnh chụp và bảng tính tổng hợp trong ba tháng. Sau ba tháng, họ biết chính xác cần những trường nào, bước nào thừa, quản lý cần báo cáo gì. Bản yêu cầu viết ra sau đó cụ thể hơn nhiều, và báo giá cũng sát hơn.
AI hiện có thể giúp người không biết lập trình tạo công thức bảng tính, viết đoạn tự động hoá nhỏ hay dựng nguyên mẫu đơn giản. Đây là cách tốt để thử ý tưởng, nhưng đừng đưa những thứ tự dựng vội bằng AI vào xử lý dữ liệu khách hàng hay tiền bạc mà không có người hiểu kỹ thuật rà lại, vì lỗi bảo mật và lỗi logic thường không lộ ra cho đến khi có sự cố.
Dùng AI để cân nhắc quyết định trước khi gặp đơn vị lập trình
Chatbot là người phản biện tốt cho quyết định này, miễn là bạn đưa đủ bối cảnh và không dán dữ liệu nhạy cảm:
- Mô tả quy trình cần số hoá, quy mô công ty và lý do muốn viết riêng, đã bỏ tên công ty và khách hàng.
- Hỏi: "Liệt kê các lý do nên dùng phần mềm có sẵn thay vì viết riêng trong trường hợp này, và các câu hỏi cần trả lời trước khi quyết."
- Hỏi tiếp: "Nếu viết riêng, những rủi ro nào hay xảy ra với doanh nghiệp quy mô này, và cách giảm từng rủi ro?"
- Nhờ AI soạn bản yêu cầu nghiệp vụ dạng các tình huống người dùng, từ mô tả của bạn, để mang đi hỏi báo giá.
- Đưa bản yêu cầu đó cho hai ba đơn vị báo giá; so sánh cách họ hiểu yêu cầu chứ không chỉ so con số.
AI không biết tình hình tài chính, con người và thị trường của bạn đầy đủ như bạn. Dùng nó để không bỏ sót câu hỏi, còn quyết định cuối thuộc về chủ doanh nghiệp, sau khi đã nghe người dùng thật trong công ty.
Câu hỏi thường gặp
Viết phần mềm riêng có rẻ hơn thuê phần mềm có sẵn về lâu dài không?
Không chắc. Phí thuê có vẻ cộng dồn lớn, nhưng phần mềm viết riêng cũng có chi phí máy chủ, bảo trì, sửa lỗi, nâng cấp và rủi ro phụ thuộc người viết. Hãy so tổng chi phí trong ba đến năm năm, ghi rõ giả định, thay vì so mỗi con số ban đầu.
Có nên thuê lập trình viên tự do viết phần mềm cho công ty không?
Có thể, với phần mềm nhỏ và khi hợp đồng chặt chẽ về mã nguồn, tài liệu, tài khoản đứng tên công ty. Rủi ro chính là phụ thuộc một người; hãy đảm bảo người khác có thể tiếp nhận được nếu người viết không tiếp tục.
Mã nguồn phần mềm viết riêng thuộc về ai?
Tuỳ thoả thuận trong hợp đồng, vì vậy phải ghi rõ ngay từ đầu. Công ty nên yêu cầu quyền sở hữu mã nguồn sau khi thanh toán và mã được lưu ở kho do công ty đứng tên. Các điểm pháp lý cụ thể nên nhờ người làm luật xem lại.
Tuỳ biến phần mềm có sẵn có rủi ro gì?
Phần tuỳ biến có thể bị ảnh hưởng khi phần mềm gốc cập nhật phiên bản, và chi phí tuỳ biến thường tính riêng. Hãy hỏi bên bán phần tuỳ biến có được giữ qua các lần cập nhật không và ai chịu trách nhiệm sửa nếu bị lỗi.
AI có thể tự viết phần mềm cho công ty không?
AI giúp viết công thức, đoạn tự động hoá nhỏ và nguyên mẫu để thử ý tưởng. Với phần mềm xử lý dữ liệu khách hàng hay tiền bạc, vẫn cần người có chuyên môn rà soát bảo mật, kiểm thử và chịu trách nhiệm bảo trì lâu dài.
Làm sao biết yêu cầu đã đủ rõ để đi hỏi báo giá?
Khi bạn mô tả được từng tình huống có thật: ai làm, làm gì, dữ liệu vào là gì, kết quả ra là gì, và trường hợp ngoại lệ xử lý thế nào. Nếu hai đơn vị báo giá hiểu yêu cầu rất khác nhau, đó là dấu hiệu yêu cầu chưa đủ rõ.