Mã UNSPSC 81111600 — Lập trình viên máy tính (Computer programmers)
Class 81111600 (English: Computer programmers) trong UNSPSC phân loại các dịch vụ lập trình máy tính (computer programming services) được phân biệt theo ngôn ngữ lập trình (programming language) cụ thể. Class này thuộc Family 81110000 Computer services, Segment 81000000 Engineering and Research and Technology Based Services. Đối tượng mua sắm tại Việt Nam gồm các cơ quan nhà nước, doanh nghiệp thuê ngoài phát triển phần mềm (outsourcing), các đơn vị tích hợp hệ thống (system integrator) và tổ chức cần nguồn lực lập trình theo hợp đồng dịch vụ.
Định nghĩa #
Class 81111600 bao gồm dịch vụ cung cấp nhân lực hoặc năng lực lập trình (programming services) theo từng ngôn ngữ lập trình cụ thể. Nội hàm của class không giới hạn ở việc thuê lập trình viên theo thời gian (time-and-materials), mà còn bao trùm cả hợp đồng khoán sản phẩm (fixed-price deliverable) mà đối tượng mua sắm là công việc viết mã nguồn (source code authoring) gắn với một ngôn ngữ lập trình xác định.
Các commodity tiêu biểu trong class 81111600 được tổ chức theo ngôn ngữ lập trình: Visual Basic, Java, HTML, ALGOL, Assembler. Cấu trúc này phản ánh cách thức phân loại của UNSPSC — lấy ngôn ngữ lập trình làm trục phân biệt chính giữa các commodity, thay vì phân theo lĩnh vực ứng dụng hay mô hình triển khai.
Trong ngữ cảnh procurement Việt Nam, class 81111600 thường xuất hiện trong các gói thầu dịch vụ phát triển phần mềm theo yêu cầu (custom software development), thuê lập trình viên nhân lực (staff augmentation), hoặc gia công phần mềm xuất khẩu (offshore software outsourcing).
Khi nào chọn mã này #
Chọn 81111600 khi đối tượng mua sắm là dịch vụ lập trình — tức là dịch vụ viết, sửa, tối ưu mã nguồn do con người thực hiện, gắn với một hoặc nhiều ngôn ngữ lập trình cụ thể. Một số tình huống điển hình:
- Thuê ngoài lập trình viên (outsourcing/staff augmentation): Hợp đồng cung cấp lập trình viên Java hoặc Python theo tháng để bổ sung nhân lực cho đội phát triển nội bộ.
- Phát triển module phần mềm theo đặt hàng: Gói thầu yêu cầu nhà cung cấp viết một module ứng dụng web bằng HTML/JavaScript hoặc backend bằng Java.
- Chuyển đổi mã nguồn (code migration): Dịch vụ chuyển đổi ứng dụng từ ngôn ngữ cũ (COBOL, ALGOL) sang ngôn ngữ mới, khi công việc chính là viết lại mã.
- Lập trình nhúng và hệ thống (embedded/system programming): Dịch vụ viết firmware hoặc mã Assembler cho thiết bị phần cứng chuyên dụng.
Khi gói thầu chỉ định rõ ngôn ngữ lập trình, ưu tiên dùng commodity 8 chữ số (ví dụ 81111602 cho Java). Khi gói thầu yêu cầu nhiều ngôn ngữ hoặc không xác định ngôn ngữ cụ thể, dùng class 81111600 làm mã gộp.
Dễ nhầm với mã nào #
| Mã UNSPSC | Tên (EN) | Điểm phân biệt với 81111600 |
|---|---|---|
| 81111500 | Software or hardware engineering | Dịch vụ kỹ thuật phần mềm/phần cứng tổng thể (kiến trúc, thiết kế hệ thống, phân tích yêu cầu); 81111600 tập trung vào hành động viết mã nguồn theo ngôn ngữ cụ thể. |
| 81111700 | Management information systems MIS | Dịch vụ tư vấn và triển khai hệ thống thông tin quản lý; không giới hạn ở viết mã mà bao gồm tư vấn quy trình và tích hợp hệ thống. |
| 81112200 | Software maintenance and support | Bảo trì và hỗ trợ phần mềm sau khi triển khai; 81111600 là dịch vụ phát triển/viết mới, không phải vận hành sau bàn giao. |
| 81111800 | System and system component administration services | Quản trị hệ thống và thành phần hệ thống (sysadmin, quản trị máy chủ, mạng); khác với lập trình viết mã. |
| 81112000 | Data services | Dịch vụ xử lý, phân tích, quản lý dữ liệu; khi công việc là phân tích dữ liệu hoặc ETL mà không chủ yếu là viết mã theo ngôn ngữ cụ thể. |
Nguyên tắc phân biệt tổng quát: Nếu công việc cốt lõi là viết mã nguồn theo một ngôn ngữ lập trình xác định → chọn 81111600. Nếu công việc là thiết kế kiến trúc, phân tích yêu cầu, tư vấn hệ thống dù có liên quan đến lập trình → cân nhắc 81111500 hoặc 81111700.
Các commodity tiêu biểu #
Các commodity 8 chữ số trong class 81111600 phân biệt theo ngôn ngữ lập trình:
| Code | Tên (EN) | Ghi chú |
|---|---|---|
| 81111601 | Programming for Visual Basic | Lập trình Visual Basic — phổ biến trong ứng dụng desktop Windows, macro Office |
| 81111602 | Programming for Java | Lập trình Java — ứng dụng doanh nghiệp, Android, hệ thống phân tán |
| 81111603 | Programming for HTML | Lập trình HTML — phát triển giao diện web (front-end markup) |
| 81111604 | Programming for ALGOL | Lập trình ALGOL — ngôn ngữ cũ, dùng cho hệ thống legacy |
| 81111605 | Programming for Assembler | Lập trình Assembler — lập trình hệ thống, nhúng, firmware |
Danh sách trên không đầy đủ; các ngôn ngữ lập trình phổ biến hiện đại như Python, C/C++, TypeScript, Go có thể được gắn mã commodity theo bổ sung của từng phiên bản UNSPSC. Khi ngôn ngữ không có commodity riêng, dùng class 81111600 là phù hợp.
Lưu ý procurement tại Việt Nam #
Trong đấu thầu mua sắm công tại Việt Nam, dịch vụ lập trình máy tính thuộc phạm vi điều chỉnh của Luật Đấu thầu và thường được phân loại vào nhóm dịch vụ tư vấn (consultancy services) hoặc dịch vụ phi tư vấn (non-consultancy services) tùy hình thức hợp đồng. Khi lập hồ sơ mời thầu, bên mời thầu cần phân biệt rõ:
- Hợp đồng theo thời gian và vật liệu (time-and-materials): Thuê lập trình viên theo giờ/ngày/tháng → mã 81111600 hoặc commodity cụ thể.
- Hợp đồng trọn gói kết quả (lump-sum deliverable): Kết quả là phần mềm hoàn chỉnh → có thể cân nhắc class 81111500 (Software or hardware engineering) nếu phạm vi bao gồm cả thiết kế và kiến trúc, không chỉ viết mã.
Ngoài ra, dịch vụ gia công phần mềm xuất khẩu (software outsourcing) là một trong những nhóm dịch vụ xuất khẩu chủ lực của Việt Nam theo số liệu của VINASA (Vietnam Software and IT Services Association). Mã 81111600 thường được các doanh nghiệp FDI trong lĩnh vực này sử dụng để phân loại danh mục dịch vụ nội bộ.
Câu hỏi thường gặp #
- Dịch vụ thuê lập trình viên Python có thuộc class 81111600 không?
Có. Dịch vụ cung cấp lập trình viên theo ngôn ngữ Python thuộc class 81111600 Computer programmers. Hiện tại Python chưa có commodity 8 chữ số riêng trong danh sách mẫu, nhưng class 81111600 là mã phù hợp để phân loại dịch vụ lập trình theo bất kỳ ngôn ngữ nào không có commodity riêng biệt.
- Gói thầu phát triển ứng dụng web toàn diện (full-stack) nên dùng mã nào?
Nếu phạm vi bao gồm cả thiết kế kiến trúc, phân tích yêu cầu và viết mã, nên cân nhắc class 81111500 Software or hardware engineering. Nếu phạm vi chủ yếu là viết mã front-end và back-end theo ngôn ngữ đã xác định, class 81111600 phù hợp hơn. Khi gói thầu kết hợp nhiều hạng mục, có thể dùng class 81111600 cho phần lập trình và 81111500 cho phần thiết kế hệ thống.
- Dịch vụ bảo trì và sửa lỗi phần mềm sau bàn giao có thuộc 81111600 không?
Không. Dịch vụ bảo trì, sửa lỗi và hỗ trợ phần mềm sau khi đã triển khai thuộc class 81112200 Software maintenance and support. Class 81111600 chỉ áp dụng cho công việc phát triển và viết mã nguồn, không bao gồm giai đoạn vận hành sau bàn giao.
- Lập trình viên nhúng (embedded programmer) viết firmware cho thiết bị IoT thuộc mã nào?
Dịch vụ lập trình firmware bằng ngôn ngữ Assembler thuộc commodity 81111605 (Programming for Assembler). Nếu firmware sử dụng ngôn ngữ C hoặc C++ mà chưa có commodity riêng, dùng class 81111600 là phù hợp. Nếu phạm vi bao gồm thiết kế kiến trúc phần cứng kèm phần mềm, cân nhắc thêm 81111500.
- Dịch vụ phát triển ứng dụng di động (mobile app development) thuộc mã nào?
Phát triển ứng dụng di động Android bằng Java thuộc commodity 81111602 (Programming for Java). Ứng dụng iOS hoặc cross-platform (Swift, Flutter, React Native) có thể phân vào class 81111600 khi không có commodity riêng. Nếu gói thầu bao gồm cả thiết kế UX/UI và kiến trúc hệ thống, cần cân nhắc thêm class 81111500.
- Dịch vụ phân tích dữ liệu và viết script Python có dùng 81111600 không?
Phụ thuộc vào nội dung chính của hợp đồng. Nếu trọng tâm là phân tích, xử lý và quản lý dữ liệu (data processing, ETL, reporting), mã phù hợp hơn là class 81112000 Data services. Nếu trọng tâm là viết mã nguồn theo ngôn ngữ Python để xây dựng công cụ hoặc ứng dụng, class 81111600 phù hợp hơn.
- Mã UNSPSC 81111600 có phân biệt theo trình độ lập trình viên (junior/senior) không?
Không. Cấu trúc UNSPSC phân loại theo loại dịch vụ và ngôn ngữ lập trình, không theo cấp độ kinh nghiệm hay chức danh của lập trình viên. Việc phân cấp kinh nghiệm (junior, mid-level, senior) là điều kiện kỹ thuật trong hồ sơ yêu cầu, không ảnh hưởng đến lựa chọn mã UNSPSC.