Mont-E
Kỹ thuật · 2026-05-14 · Mont-E Engineering

Vì sao chúng tôi xây dựng trên ERP mã nguồn mở

Vì sao chúng tôi xây dựng trên ERP mã nguồn mở

Mọi cuộc bàn luận về ERP rồi cũng đến một ngã rẽ: mua license một sản phẩm, hay xây trên một lõi mã nguồn mở. Nhiều năm qua chúng tôi chọn hướng thứ hai, và điều đó đáng được giải thích — kể cả những phần khó.

Lập luận thường gặp cho mã nguồn mở là chi phí, và đó lại là lập luận kém thú vị nhất. License chỉ là một dòng trong ngân sách; chi phí thật của một ERP là cả thập kỷ bạn sống bên trong nó. Điều quan trọng là bạn còn thay đổi được nó vào năm thứ bảy hay không, khi doanh nghiệp đã khác và những người tư vấn ban đầu đã đi nơi khác.

Với nền tảng thương mại, câu trả lời đó do lộ trình của người khác quyết định. Logic riêng phải nằm trong cơ chế mở rộng mà nhà cung cấp cho phép, mỗi lần nâng cấp là một sự kiện phải gồng mình, và mô hình dữ liệu chỉ được tài liệu hóa tới mức nhà cung cấp muốn. Khi độ khớp cao, điều đó hoàn toàn ổn. Khi doanh nghiệp của bạn thực sự khác biệt — giá cho thành viên hợp tác xã, điều khoản ký gửi, hạch toán đa công ty theo quy định trong nước — khoảng cách ấy trở thành một cuộc đàm phán mỗi năm.

Với một lõi mở như Apache OFBiz, mô hình dữ liệu nằm ngay trước mặt bạn. Hai thập kỷ mô hình hóa chuỗi cung ứng và bán lẻ đã có sẵn: đối tác, sản phẩm, kho bãi, vòng đời đơn hàng và hóa đơn, bút toán kế toán. Bạn không bắt đầu từ trang giấy trắng — bạn bắt đầu từ một mô hình nghiệp vụ đã va chạm với rất nhiều doanh nghiệp thật.

Kỷ luật khiến cách làm này hiệu quả là sự tiết chế. Mỗi dòng code viết lệch khỏi bản gốc là một dòng bạn gánh mãi mãi. Chúng tôi tách phần tùy biến thành các component riêng, ưu tiên cấu hình hơn code và code hơn fork, và ghi lại lý do cho từng chỗ khác biệt. Dự án bỏ qua kỷ luật này sẽ kết thúc với một bản fork riêng mà không ai dám nâng cấp — đúng cái bẫy họ định tránh.

Đánh đổi thành thật là: mã nguồn mở chuyển trách nhiệm về phía bạn. Không có nhà cung cấp để leo thang lúc nửa đêm; đơn vị vận hành phải đủ năng lực, và phải có người sở hữu lộ trình nâng cấp. Chính vì vậy chúng tôi không bàn giao hệ thống rồi rời đi. Xây và vận hành là cùng một công việc, và tách rời chúng là cách hệ thống mục ruỗng.

Thứ khách hàng thực sự sở hữu cuối cùng mới là điều quan trọng: mã nguồn, cấu trúc dữ liệu, pipeline triển khai và tài liệu vận hành. Nếu một ngày họ muốn đưa hệ thống về nội bộ, hay giao cho một đơn vị khác, câu trả lời là một cuộc bàn giao — không phải làm lại từ đầu.