Building ChemERP: What It Takes to Engineer Software That Thinks Like?
Xây dựng ChemERP là một hành trình đầy thách thức trong việc phát triển phần mềm có khả năng tư duy như một nhà hóa học. Bài viết chia sẻ từ góc nhìn của người sáng lập về quá trình chuyển đổi thực tế sản xuất theo lô thành một hệ thống phần mềm hoạt động hiệu quả. Trong đó, những quyết định quan trọng, sự đánh đổi giữa các yếu tố kỹ thuật và nhu cầu thực tiễn được phân tích chi tiết. Đồng thời, tác giả cũng đề cập đến những hướng đi tiếp theo nhằm hoàn thiện và phát triển ChemERP, góp phần nâng cao hiệu suất và độ chính xác trong quản lý quy trình hóa học.

Insight Summary
Tóm tắt nhanh
- Bài viết nói về cách xây phần mềm quản lý cho ngành hóa chất sao cho “nghĩ như người làm hóa chất”.
- Điểm khó nhất là phần mềm phải hiểu quy trình thật ngoài nhà máy, không chỉ là nhập số liệu.
- Hệ thống này giúp theo dõi lô nguyên liệu, chi phí thật, tỷ lệ hao hụt và lịch sử sản xuất.
- Tác giả chọn nhiều công nghệ để tránh sai số, nhất là khi tính tiền và quản lý dữ liệu.
- Phần mềm hiện đã làm tốt việc ghi nhận sản xuất, và đang mở rộng sang truy xuất nguồn gốc, cảnh báo hết hạn, và quản lý chất lượng.
Bài viết tổng hợp
Nhiều phần mềm quản lý doanh nghiệp được làm theo cách chung chung. Nhưng với ngành hóa chất, cách làm đó thường không đủ. Lý do là sản xuất hóa chất không giống bán hàng hay lắp ráp thông thường. Một mẻ có thể thay đổi theo nguyên liệu thực tế, độ hao hụt, chất lượng lô hàng, và cả quy định an toàn. Vì vậy, nếu phần mềm không hiểu đúng quy trình sản xuất hóa chất, người dùng vẫn phải quay về Excel. Tác giả của ChemERP kể rằng họ không bắt đầu từ code, mà bắt đầu từ việc học ngành trước. Đây là điểm rất quan trọng, vì phần mềm tốt trong lĩnh vực này không chỉ “chạy được”, mà phải phản ánh đúng cách người làm hóa chất vận hành mỗi ngày.
Một số khái niệm trong bài được giải thích khá thực tế
- **Yield** là sản lượng thu được sau khi sản xuất xong.
- **FIFO** là cách xuất nguyên liệu theo thứ tự nhập trước dùng trước. - **Compensator ingredient** là nguyên liệu bù, thường dùng để chốt đủ khối lượng cuối cùng của mẻ. - **QC** là kiểm tra chất lượng nguyên liệu hoặc sản phẩm.
Với người không chuyên, có thể hiểu đơn giản
ChemERP được thiết kế để không chỉ “ghi chép”, mà còn giúp quyết định đúng hơn trong sản xuất. Một ví dụ dễ hiểu là chuyện **tỷ lệ hao hụt**. Nếu một mẻ dự kiến ra 50 kg nhưng chỉ ra 47,3 kg thì phần mềm không coi đó là chuyện nhỏ. Nó tính ra chênh lệch thực tế và theo dõi theo thời gian để xem có phải công thức đó đang liên tục gây lỗ hay không. Điều này khác với nhiều hệ thống phổ thông, vốn chỉ ghi nhận con số cuối cùng. Với hóa chất, chênh lệch 2–3% không chỉ là số lẻ, mà là tiền nguyên liệu, tiền giá vốn, và cả kế hoạch mua hàng sau đó. Một điểm rất đặc thù khác là **nguyên liệu bù**. Trong thực tế, khi pha trộn hóa chất, không phải lúc nào các thành phần cũng ra đúng như lý thuyết. Có khi cần thêm nước, dung môi hoặc chất nền để “đổ đầy” đến đúng khối lượng hoặc thể tích mong muốn. ChemERP cho phép chọn một thành phần làm nguyên liệu bù.
Khi các nguyên liệu khác đã được ghi nhận, hệ thống tự tính lượng cần thêm để chốt mẻ. Việc này cũng được ghi vào lịch sử để sau này kiểm tra, vì kiểm toán hoặc quản lý chất lượng cần biết vì sao lượng dùng thực tế khác công thức ban đầu. Ngoài ra, hệ thống còn xử lý chuyện **trạng thái lô nguyên liệu** theo kiểu chặt chẽ hơn. Một lô có thể ở ba trạng thái: cách ly, đã duyệt, hoặc bị loại. Nói đơn giản, nếu lô đang bị cách ly hoặc đã bị loại thì phần mềm sẽ không cho đem đi sản xuất. Điều này giúp tránh việc nhân viên vô tình lấy nhầm nguyên liệu chưa đạt kiểm tra chất lượng, đặc biệt khi hàng gấp và kho ít. Một phần quan trọng khác là **tính giá thành thật**. Nhiều đơn vị chỉ nhìn giá dự kiến trên công thức, nhưng chi phí thật thường khác vì sản lượng thực tế thấp hơn dự đoán hoặc có phát sinh thêm.
ChemERP tính chi phí dựa trên số liệu thật của mẻ
- Nguyên liệu đã dùng, - khối lượng sản phẩm đạt được, - chi phí nhân công, - điện, bao bì, bảo trì và các khoản liên quan.
Nhờ đó, doanh nghiệp biết rõ một kg sản phẩm thật sự tốn bao nhiêu, thay vì chỉ ước lượng. Đây là điểm có giá trị thực tế cao vì giúp tính giá bán và biết biên lợi nhuận có đang bị mỏng đi hay không. Về mặt kỹ thuật, tác giả chọn các công cụ khá phổ biến nhưng có lý do rõ ràng. Frontend dùng React, TypeScript và Tailwind. Backend dùng Supabase, tức là một nền tảng dựa trên PostgreSQL để lưu dữ liệu và quản lý đăng nhập.
Nếu nói đơn giản
- **React** giúp làm giao diện web nhanh và linh hoạt.
- **TypeScript** giúp giảm lỗi do nhập sai kiểu dữ liệu. - **Tailwind** giúp xây giao diện thống nhất mà ít phải viết CSS thủ công. - **Supabase/PostgreSQL** là nơi lưu dữ liệu và quản lý người dùng. - **JWT auth** là cách xác thực đăng nhập bằng “vé truy cập” số. Điểm đáng chú ý nhất là hệ thống dữ liệu được tách theo từng công ty ngay từ tầng cơ sở dữ liệu. Điều này giúp một doanh nghiệp không nhìn thấy dữ liệu của doanh nghiệp khác, giảm rủi ro bảo mật. Bài viết cũng nhấn mạnh chuyện **sai số tính toán**. Với phần mềm thông thường, dùng số thực kiểu JavaScript đôi khi có thể gây lệch nhỏ khi tính toán. Nhưng trong hóa chất, lệch nhỏ ở nhiều dòng dữ liệu cộng lại có thể thành sai giá thành. Vì vậy, ChemERP dùng thư viện tính số chính xác hơn để tránh lỗi kiểu “0,1 cộng 0,2 ra 0,3000000004”. Nghe có vẻ kỹ thuật, nhưng ý nghĩa rất đời thường: tránh tính tiền sai.
Một số năng lực hệ thống đang làm tốt
- Theo dõi quy trình từ công thức đến sản xuất đến chốt chi phí.
- Tính giá thành theo sản lượng thực tế, không chỉ theo kế hoạch.
- Kiểm soát nguyên liệu theo thứ tự nhập và trạng thái chất lượng.
- Lưu lịch sử thao tác để phục vụ kiểm tra sau này.
- Giữ dữ liệu chi phí và công thức ở mức khá an toàn và nhất quán.
Tuy nhiên, tác giả cũng nói khá thẳng về giới hạn của sản phẩm. ChemERP hiện là hệ thống ghi nhận và báo cáo, chưa phải hệ thống điều khiển máy móc trong nhà máy.
Điều đó có nghĩa là
- Nó chưa nối trực tiếp với cân, cảm biến hay thiết bị phòng lab.
- Dữ liệu vẫn phụ thuộc vào việc nhân viên nhập đúng.
- Nó chưa có quy trình phê duyệt chặt như ngành dược.
- Chưa lưu sâu các kết quả phân tích chất lượng như phổ đo, chỉ số tinh khiết hay hồ sơ thử nghiệm.
Nói cách khác, đây là nền tảng tốt cho doanh nghiệp hóa chất nhỏ và vừa, nhưng chưa phải giải pháp đầy đủ cho những ngành bị quản lý rất chặt như dược phẩm. Phần roadmap của bài viết cho thấy ChemERP muốn đi theo từng bước rõ ràng, không làm ồ ạt. Bước đầu là tăng khả năng truy xuất và tuân thủ. Sau đó là đưa thêm công cụ hỗ trợ quyết định. Rồi mới mở rộng sang chất lượng, tích hợp hệ thống khác và làm việc trên nhiều nhà máy.
Có thể hiểu roadmap này theo 4 nhóm việc
- **Bước 1: truy xuất và báo cáo** Biết một mẻ thành phẩm đã dùng nguyên liệu nào, từ lô nào, của nhà cung cấp nào.
- **Bước 2: hỗ trợ vận hành thông minh hơn** Dự đoán chi phí, dự đoán tỷ lệ đạt, theo dõi hao hụt và kế hoạch mua hàng. - **Bước 3: quản lý chất lượng sâu hơn** Ghi nhận lỗi sản xuất, quy trình phê duyệt, theo dõi độ ổn định sản phẩm, xử lý chất thải. - **Bước 4: mở rộng hệ thống** Làm app cho công nhân, kết nối phần mềm kế toán, gắn đơn hàng khách, quản lý nhiều địa điểm. Nếu nhìn theo góc độ kinh doanh, giá trị lớn nhất của ChemERP không nằm ở giao diện, mà ở việc giúp doanh nghiệp biết chính xác mình đang làm ăn thế nào. Trước đây, nhiều nơi chỉ biết “có lời hay không” bằng cảm giác hoặc báo cáo chậm. Còn hệ thống này cố gắng biến mọi thứ thành số liệu rõ ràng. Với doanh nghiệp hóa chất nhỏ và vừa, đây là lợi ích rất thực tế:
- Bớt lệch giữa công thức và sản xuất thật, - giảm thất thoát do nguyên liệu, - kiểm soát lô hàng tốt hơn, - và có dữ liệu để giải thích khi có vấn đề.
Nói ngắn gọn, ChemERP là ví dụ của một phần mềm được thiết kế từ nỗi đau thật của ngành, chứ không phải từ một mẫu ERP chung chung. Bài viết đáng chú ý ở chỗ nó cho thấy: làm phần mềm cho ngành đặc thù không chỉ là viết code, mà là hiểu đúng cách ngành đó vận hành.
Vì sao nên đọc các bài tóm tắt trên Insight
Nếu bạn không làm trong ngành công nghệ, những bài gốc dài hàng nghìn từ thường khá tốn thời gian để đọc hết. Tóm tắt trên Insight giúp bạn nắm được ý chính nhanh hơn, không cần đi qua quá nhiều thuật ngữ hay chi tiết kỹ thuật. Lợi ích lớn nhất là **tiết kiệm thời gian**. Chỉ trong vài phút, bạn biết bài đang nói về gì, vấn đề nằm ở đâu, và điểm đáng chú ý là gì. Điều này rất hữu ích khi bạn cần cập nhật nhiều chủ đề mỗi ngày mà không muốn bị ngập trong thông tin dài dòng. Ngoài ra, Insight giúp **lọc nhiễu**. Nhiều bài gốc có thể đi sâu vào công nghệ, nhưng người đọc thường chỉ cần hiểu: sản phẩm này giải quyết vấn đề gì, có gì mới, và có giới hạn nào. Tóm tắt tốt sẽ giữ lại phần đó, bỏ bớt lớp kỹ thuật không cần thiết. Cuối cùng, bạn có thể **nắm ý chính nhanh và đúng** để phục vụ công việc.
Dù bạn là người làm sản phẩm, kinh doanh, vận hành hay chỉ đơn giản là muốn hiểu xu hướng, một bản tóm tắt rõ ràng sẽ giúp bạn ra quyết định hoặc trao đổi với người khác dễ hơn rất nhiều.
Nguồn bài viết
Khám phá hệ sinh thái 1997 Studio
Nếu bạn đang xây sản phẩm hoặc tăng trưởng, có thể tham khảo thêm các công cụ trong hệ sinh thái để áp dụng nhanh những insight này.
Bài liên quan





