Chương 144 — Nhật ký cân đo
Minh gõ lệnh cuối lúc gần mười một giờ tối, đẩy ghế ra nhìn màn hình với ánh mắt của người vừa xong việc.
Dashboard hiện ra trên màn hình chiều rộng, nền tối với những đường biểu đồ xanh lam nhấp nhô. Góc trên bên trái: Tổng kiện cargo hôm nay — 247. Góc phải: một biểu đồ hình tròn chia vùng màu theo tỷ lệ sai lệch cân đo, xanh lá cho dưới 2%, vàng cho 2–5%, đỏ cho trên 5%. Tỷ lệ đỏ tuần qua: 3,1%.
Minh nhìn con số đó một lúc rồi mở cửa sổ chat nội bộ, gõ cho Hoàng:
“Dashboard sai lệch cân đo xong. Anh xem qua lúc nào tiện thì vào link.”
Hoàng nhận được tin nhắn khi đang ở nhà bếp rót nước. Anh mở link trên điện thoại, lướt qua một lượt, rồi chụp màn hình gửi vào nhóm ba người gồm anh, Minh và ông Vũ kèm dòng chữ:
“Ông Vũ, anh cho ý kiến trước 9 giờ sáng mai để team còn điều chỉnh trước khi demo với Nam Hải?”
Ông Vũ gọi lại vào tám giờ kém mười lăm.
Không phải tin nhắn. Gọi thẳng vào nhóm ba người, loại cuộc gọi video mà Minh bao giờ cũng phải lật úp chiếc bàn phím xuống vì tiếng gõ phím của anh phát ra loa nghe như mưa rào.
Minh kịp vuốt màn hình chấp nhận, mặt còn dính nếp gối. Hoàng đã ngồi thẳng trong bộ đồng phục học, đặt điện thoại dựng lên bằng hộp bút.
“Tôi xem rồi.” Ông Vũ không vào lề. “Đẹp. Tỷ lệ sai lệch, biểu đồ tuần, cảnh báo ngưỡng. Thiếu một thứ.”
Minh ngồi dậy hẳn. “Thiếu thứ gì, ông?”
“Ai cân? Cân nào? Lúc mấy giờ? Ai kiểm? Ai quyết định cho qua hay giữ lại?” Ông Vũ dừng lại. “Tôi hỏi ba câu về cái lô hàng sai lệch tuần trước, cậu trả lời được bao nhiêu câu?”
Minh im lặng. Anh kéo dashboard lên lại, nhìn vào ô Kiện sai lệch > 5% — ngày 17/01. Số lượng: 8. Không có trường nào ghi tên người.
“Hệ thống ghi theo lô, theo thùng,” Minh nói. “Ai cân thì bộ phận kho tự theo dõi, không cần ghi vào đây.”
“Cậu tưởng thế.” Giọng ông Vũ không lên xuống. “Tôi bay Antonov cargo hai mươi năm. Hỏi thăm mấy vụ lệch tải, câu trả lời đầu tiên bao giờ cũng là: không phải tôi, hỏi anh kia. Anh kia nói: số liệu tôi nộp đúng rồi, sai ở khâu tổng hợp. Khâu tổng hợp bảo: tôi chỉ gộp số, sai thì sai từ đầu vào.” Ông dừng lại. “Vòng tròn hoàn hảo. Không ai sai. Không ai chịu trách nhiệm. Mà hàng thì vẫn lệch.”
Minh không nói gì trong vài giây.
“Ý ông là cần ghi tên người vào từng dòng log?” anh hỏi, giọng phẳng lặng nhưng không phải giọng đồng ý.
“Không phải ý kiến. Là điều kiện.” Ông Vũ nhấn rõ từng chữ. “Hàng không không có cảnh báo vô danh. Mỗi điểm kiểm tra phải có tên người chịu trách nhiệm ký. Không ghi tên thì cảnh báo chỉ là số liệu. Số liệu không dừng được chuyến bay.”
Minh tắt camera một giây rồi bật lại, mắt nhìn xuống bàn phím. “Ông hiểu không phải tôi phản đối lý do. Tôi đang nói về mặt kỹ thuật — nếu ghi tên người vào từng bản ghi thì cấu trúc bảng dữ liệu phải thiết kế lại từ đầu. Không phải sửa một chỗ.”
“Thì thiết kế lại từ đầu.”
“Mất hai tuần.”
“Hai tuần bây giờ hay hai tháng sau khi lô hàng bị giữ vì không truy xuất nguồn gốc được?”
Hoàng đặt điện thoại xuống bàn học, mắt nhìn ra cửa sổ trong khi hai người vẫn đang qua lại. Ngoài kia trời chưa sáng hẳn, mái nhà hàng xóm còn ướt đẫm sương.
Anh không vào giữa.
Khi anh còn ở giai đoạn đầu làm việc với Minh, anh từng giải quyết những va chạm kiểu này bằng cách vào phân xử nhanh, đưa ra quyết định để tránh mất thêm thời gian. Đôi khi đúng, đôi khi tạo ra một vết nứt ngầm: người thua thôi không tranh nữa, nhưng cũng không thực sự tin vào lý do tại sao họ phải thực hiện.
Decision log không phải để giải quyết ai đúng ai sai. Nó để lưu lý do đằng sau.
Anh gõ vào nhóm chat:
“Hai anh dừng lại một chút. Trước khi tiếp tục, mỗi anh viết ra một đoạn ngắn: quan điểm của mình là gì và vì sao. Gửi vào đây. Không cần dài.”
Có khoảng mười giây trôi qua.
“Lại decision log?” Minh gõ.
“Ừ.”
“Xong rồi tranh luận tiếp hay thôi?”
“Xong rồi thấy cần tranh luận thêm không thì quyết.”
Minh gõ đoạn của mình trước, đúng tám dòng:
“Dashboard hiện tại theo dõi tỷ lệ sai lệch theo lô hàng. Mục tiêu là phát hiện điểm hệ thống có vấn đề (ví dụ: kho Bình Thạnh có tỷ lệ lệch cao hơn kho Tân Bình liên tục ba tuần → kiểm tra lại cân). Gắn tên người vào từng bản ghi sẽ tạo tâm lý phòng thủ trong nhóm vận hành: người ta sợ bị quy trách nhiệm nên sẽ ghi mập mờ thay vì ghi thật. Dữ liệu sẽ xấu hơn, không tốt hơn.”
Ông Vũ mất lâu hơn. Năm phút sau mới có tin nhắn, gõ bằng một ngón tay rõ ràng, không dấu phẩy ở những chỗ người khác sẽ có:
“Tôi từng làm báo cáo điều tra cho ba sự cố lệch tải ở các hãng cargo khu vực. Không có vụ nào mà khi xem log lại tìm được người ra quyết định. Người cân nói đúng quy trình. Người tổng hợp nói số vào đúng. Người phê duyệt nói không ai báo lên. Kết quả: hàng sai trọng tâm lên máy bay. Nếu quyết định cho qua hay giữ lại không có tên người ký thì khi sai không ai sửa được cả quy trình lẫn cả người. Dữ liệu đẹp nhưng không có chân.”
Hoàng đọc cả hai đoạn, một lần.
Anh hiểu Minh không sai về tâm lý phòng thủ. Trong vận hành thực, khi mọi dòng log đều phải ký tên, người ta sẽ tránh ghi sai lệch bằng cách đo lại cho chắc — hoặc bằng cách điều chỉnh con số. Rủi ro đó có thật.
Ông Vũ cũng không sai. Dữ liệu không có người đứng sau là dữ liệu chết. Khi sự cố xảy ra, truy xuất ngược chỉ tìm được lỗi hệ thống, không tìm được điểm quyết định.
Anh gõ:
“Minh: lo ngại về tâm lý phòng thủ có cơ sở. Thiết kế cần tính đến việc ghi sai lệch không tự động kết nối sang đánh giá hiệu suất cá nhân — đây là hai hệ thống riêng. Ông Vũ: yêu cầu về trách nhiệm cũng có cơ sở. Mỗi bản ghi cần ít nhất một người ký xác nhận trạng thái tại thời điểm đó. Không phải để quy tội — để sau này truy ngược được điểm quyết định.”
Một lúc sau Minh gõ lại: “Được. Nhưng chỉ ký người kiểm cuối cùng mỗi điểm, không phải tất cả người trong quy trình.”
“Tôi chấp nhận được.” Ông Vũ trả lời.
Buổi chiều hôm đó Minh ngồi ở góc làm việc cuối văn phòng Tô Hiến Thành, mở máy tính và bắt đầu phác bảng cấu trúc mới.
Ông Vũ kéo ghế ngồi cạnh, tay cầm một tờ giấy in sơ đồ quy trình kiểm hàng mà ông đã vẽ tay từ sáng. Không ai nói gì trong mười lăm phút đầu.
Minh gõ lên màn hình:
WEIGHT_LOG_ENTRY
├── shipment_id // mã lô hàng
├── package_id // mã thùng
├── measured_weight // kg
├── declared_weight // kg (nhà cung cấp khai)
├── delta_pct // % sai lệch
├── checkpoint // điểm cân: kho_BT / kho_NamHai / sân bay
├── scale_id // mã cân đã dùng
├── measured_at // timestamp
├── inspector_id // người kiểm
├── status // green / yellow / red
└── inspector_sign // chữ ký xác nhận (hoặc ID thẻ quét)
“Trường inspector_sign — ông muốn chữ ký thật hay quét thẻ?” Minh hỏi mà không quay lại.
Ông Vũ nhìn vào màn hình. “Thẻ quét nhanh hơn. Nhưng phải có thẻ vật lý. Điện thoại không đủ tin cậy khi wifi chập chờn.”
“Thẻ RFID hay mã QR?”
“Mã QR đơn giản. In được, thay được, dán lên áo bảo hộ được.”
Minh gõ thêm một dòng ghi chú bên lề. “Nếu dùng QR thì hệ thống offline cũng chạy được — scanner đọc mã, lưu vào local, sync khi có mạng.”
Ông Vũ gật đầu. “Cái đó được.”
Đến bốn giờ chiều, họ có bảng cấu trúc hoàn chỉnh và một kịch bản thử nghiệm: mười thùng hàng khô từ kho Bình Thạnh, đi qua quy trình cân đo thực tế, mỗi bước kiểm ghi vào nhật ký theo format mới.
Khoa chạy lại một lượt vận hành kho lúc bốn rưỡi. Minh đứng cạnh với laptop mở cửa sổ log, ông Vũ đứng cạnh Khoa với tờ giấy in sơ đồ quy trình.
Thùng đầu tiên lên cân. Cân điện tử hiện 12,4 kg. Nhà cung cấp khai 12,0 kg.
“Delta 3,3%,” Khoa đọc to. “Vàng.”
Anh cầm máy quét QR, đưa lên thẻ nhựa cài trên ngực. Hệ thống ghi nhận: inspector: Nguyen_Minh_Khoa / checkpoint: kho_BinhThanh / 16:31:07 / status: yellow.
“Lần đầu tiên có tên tôi trong log kho,” Khoa nói, giọng bình thản không rõ ý. “Cảm giác lạ.”
Ông Vũ nói: “Cậu sẽ quen. Khi phi hành đoàn ký vào manifest, không ai thấy lạ. Vì tên mình trên đó có nghĩa là mình biết trạng thái của chuyến bay.”
Khoa cúi xuống nhấc thùng tiếp theo.
Mười thùng mất hơn hai mươi phút. Khi xong, Minh kéo log lên màn hình, cuộn qua mười dòng, mỗi dòng đủ trường, đủ trạng thái, đủ tên người kiểm.
Không dòng nào thiếu.
Anh nhìn vào cột inspector_id một lúc. Tên Khoa xuất hiện ở tám dòng, tên một nhân viên kho tên Tuấn ở hai dòng còn lại vì Khoa phải nghe điện thoại giữa chừng.
“Nếu mai có sự cố,” Minh nói, không quay sang ông Vũ, “tôi có thể biết ai cân thùng nào lúc mấy giờ. Biết cân nào dùng. Biết trạng thái lúc đó là vàng hay đỏ. Biết ai quyết định cho qua.”
“Đúng vậy.” Ông Vũ gấp tờ sơ đồ lại, nhét vào túi áo. “Đó là điều dữ liệu cần phải làm được.”
Minh gọi Hoàng vào nhóm chat, gõ ngắn:
“Thử xong mười thùng. Log sạch. Cấu trúc ổn. Ông Vũ xác nhận.”
Hoàng trả lời gần như ngay lập tức: “Tốt. Đặt tên gì cho cái này?”
Minh nhìn màn hình, nhìn sang ông Vũ.
Ông Vũ nói, không do dự: “Nhật ký cân đo. Đơn giản thôi. Đừng đặt tên nghe như phần mềm.”
Cuối buổi, khi Khoa và nhân viên kho đã về, ông Vũ ngồi lại viết thêm mấy dòng vào tờ sơ đồ quy trình bằng bút bi.
Minh đóng laptop, nhìn ông viết. Chữ ông to, nghiêng về bên phải, nét bút hơi run ở cuối vì cầm bút không quen.
“Ông hay dùng bút thật à?”
“Ngón tay không quen bàn phím cảm ứng,” ông nói, không ngẩng đầu lên. “Tuổi rồi.”
“Ông học bay từ khi nào?”
Ông Vũ dừng bút. “Hai mươi hai tuổi. Năm 1988.”
Minh không hỏi thêm. Nhưng anh ngồi lại thêm vài phút, nhìn tờ giấy mà ông Vũ đang ghi những điểm kiểm tra tay, từng ô một, tên gọi không có trong bất kỳ tài liệu kỹ thuật nào mà anh từng đọc.
Hoàng về đến nhà lúc bảy giờ tối, mở điện thoại đọc lại log mười thùng mà Minh đã gửi dưới dạng file CSV.
Anh cuộn qua từng dòng. Nhìn cột timestamp, cột inspector_id, cột status. Nhìn hai dòng Tuấn ký giữa chừng khi Khoa nghe điện thoại — không có khoảng trống, không có dòng nào bỏ sót.
Hệ thống Kiến Quốc trong đầu anh không hiện cảnh báo. Không có điểm thưởng nhấp nháy, không có thông báo nhiệm vụ hoàn thành.
Chỉ có một dòng chữ nhỏ ở góc phải tầm nhìn nội tâm, màu xám bạc như chữ khắc trên đá:
AN TOÀN HỆ THỐNG — dữ liệu có trách nhiệm: lớp đầu tiên.
Anh gập điện thoại lại, cất vào túi áo.
Qua phòng khác, tiếng mẹ anh gọi vào ăn cơm.
Sáng hôm sau, trước khi vào lớp, Minh gửi vào nhóm chat một tin nhắn ngắn, không có emoji, không có dấu chấm cảm:
“Tôi đọc lại đoạn decision log của ông Vũ hôm qua. Cái câu ‘dữ liệu đẹp nhưng không có chân’ — tôi nghĩ cần thêm câu đó vào phần giới thiệu tài liệu Nhật ký cân đo. Như một lý do tại sao chúng tôi thiết kế thế này.”
Ông Vũ đọc được lúc đang ngồi ở sân bay Tân Sơn Nhất chờ chuyến bay đi Đà Nẵng. Ông nhìn tin nhắn một lúc, rồi gõ lại bằng một ngón tay:
“Được.”
Hoàng nhìn hai tin nhắn đó, không gõ thêm gì.
Minh nhìn bản ghi đầu tiên có tên người cân, người kiểm, người niêm phong và người được quyền dừng. Anh gõ vào cửa sổ chat riêng với Hoàng, không đưa vào nhóm:
“Code này không đẹp. Nhưng nó có trách nhiệm.”
Hoàng đọc xong, cất điện thoại vào cặp, bước vào cổng trường.