Chuông điện thoại bàn reo lúc gần trưa. Đầu dây bên kia là một trang trại quen, khách lâu năm của xưởng làm máy nông nghiệp cỡ nhỏ, cái xưởng chuyên máy băm cỏ và máy sấy nông sản. Khách nói chỗ họ điện lưới yếu quá, họ muốn cái máy băm cỏ chạy động cơ xăng thay vì động cơ điện, còn lại giữ nguyên hết. Nghe thì đơn giản. Nhưng đặt máy xuống, anh Phúc, người phụ trách kỹ thuật, mở bản vẽ ra xem, rồi ngồi im một lúc lâu. Cái giá bắt động cơ được hàn thẳng vào khung, khung lại đỡ luôn phễu nạp liệu, hộp che dây curoa lại bắt vít vào chính cái giá đó, và cụm công tắc thì gắn trên tấm che. Đổi động cơ nghĩa là đổi giá, đổi giá là đụng khung, đụng khung là phải sửa phễu và tấm che, sửa tấm che là phải tìm chỗ khác cho công tắc. Một yêu cầu tưởng nhỏ kéo theo gần như vẽ lại cả cái máy.
Chúng tôi xin phép đổi tên anh Phúc, như mọi nhân vật trong kênh này. Chuyện đó không phải lỗi tay nghề. Người thợ hàn giỏi, người vẽ cũng giỏi. Cái thiếu là một thứ nằm trước cả bản vẽ chi tiết, gọi là kiến trúc sản phẩm.
Nói cho gọn, mỗi sản phẩm đều có hai phần. Phần sờ được, nắm được, nhìn thấy được là các chi tiết và những cụm ghép lại từ chúng. Phần không sờ được là các chức năng, tức là những việc mà sản phẩm phải làm: cấp liệu, cắt, truyền động, che chắn, bật tắt, báo tình trạng. Kiến trúc sản phẩm chính là bản đồ nối hai phần đó lại với nhau, cho biết chức năng nào được giao cho cụm vật lý nào. Với cái máy sấy nông sản, kiến trúc sẽ nói rõ khối nào lo sinh nhiệt, khối nào lo thổi gió, khối nào lo giữ và đảo nguyên liệu, khối nào lo đo và điều khiển nhiệt độ. Nghe rất hiển nhiên, nhưng phần lớn xưởng nhỏ không bao giờ viết nó ra. Máy cứ lớn dần lên theo từng lần chữa, và cuối cùng không ai nói được chính xác cụm nào chịu trách nhiệm việc gì.
Người ta chia kiến trúc sản phẩm thành hai kiểu cơ bản. Kiểu thứ nhất gọi là kiến trúc mô đun. Ở đây mỗi khối lo một việc riêng, ranh giới rõ ràng, không chồng lấn. Cụm truyền động là cụm truyền động, cụm điều khiển là cụm điều khiển, tháo cái này ra không làm cái kia chết theo. Kiểu này dễ hiểu, dễ sửa, dễ thay, nhưng tốn chỗ và tốn vật tư, vì cái gì cũng phải có vỏ riêng, khung riêng và đầu nối riêng của nó. Kiểu thứ hai gọi là kiến trúc tích hợp. Ở đây một khối gánh nhiều chức năng cùng lúc, và một chức năng có thể do nhiều khối cùng lo. Cách này tiết kiệm không gian, tiết kiệm vật liệu, thường cho hiệu năng tốt hơn, nhưng thiết kế phức tạp và các phần dính nhau, một chỗ trục trặc là kéo theo chỗ khác.
Trên thực tế gần như không có sản phẩm nào thuần một kiểu. Đa số là hỗn hợp. Ngay chiếc máy tính xách tay trên bàn cũng vậy: viên pin và thanh RAM là những mô đun tiêu chuẩn, tháo ra lắp vào dễ dàng, còn màn hình thì tích hợp chặt vào thân máy theo cơ chế phức tạp hơn nhiều. Cái khéo của người thiết kế là biết chỗ nào nên tách rời cho dễ sống, chỗ nào nên gộp lại cho gọn.
Quay lại cái máy băm cỏ của anh Phúc. Nếu ngay từ đầu cụm động cơ được xem là một mô đun riêng, có một mặt bích và mấy lỗ bắt vít cố định làm chỗ nối, thì việc đổi từ động cơ điện sang động cơ xăng chỉ là thay một mô đun, phần còn lại của máy không phải động vào. Cái chỗ nối đó, trong nghề gọi là giao diện giữa các mô đun, và nó quan trọng không kém bản thân mô đun.
Các mô đun nối với nhau theo mấy kiểu quen thuộc. Có kiểu mỗi mô đun cắm vào một khe riêng trên khối nền, khe nào ra khe đó, không hoán đổi cho nhau được. Nghĩ tới mấy giắc cắm khác hình dạng trên một tủ điện là hình dung ra ngay. Có kiểu nhiều mô đun khác nhau cùng cắm vào một loại đầu nối giống hệt nhau, giống như cổng USB trên máy tính, cắm gì vào cũng được miễn là đúng chuẩn. Và có kiểu các mô đun ghép trực tiếp vào nhau qua bề mặt, không cần khối nền chung, như bộ ghế sofa ghép từng khối rời hay dãy tủ hồ sơ nối nhau. Biết mình đang dùng kiểu nối nào là biết trước sau này máy sẽ dễ nâng cấp hay khó nâng cấp.
Việc chia máy thành các cụm lớn rồi chia tiếp cụm lớn thành khối nhỏ hơn, người ta gọi là mô đun hóa. Lợi ích của nó thì rất đời. Thứ nhất là thuê ngoài dễ hơn: một cụm có ranh giới rõ, có đầu nối rõ thì đưa cho xưởng khác làm được, mình chỉ kiểm phần giáp nối. Thứ hai là bảo trì dễ hơn: máy nằm ngoài đồng, hỏng cụm nào thay cụm đó, không phải kéo cả máy về xưởng. Thứ ba là ra được nhiều mã hàng mà không phải thiết kế lại từ đầu: giữ nguyên khung và cụm truyền động, đổi cụm dao và cụm phễu là có phiên bản cho loại nông sản khác. Nhiều hãng lớn sống bằng đúng cách này, giữ chung phần khung sườn cho cả một dòng và chỉ thay phần vỏ, phần trang bị.
Kiến trúc sản phẩm còn dính tới những chuyện tưởng như xa nó. Chuyện tiêu chuẩn hóa, vì khi các cụm được chuẩn hóa thì dùng chung được giữa nhiều sản phẩm, đặt số lượng lớn hơn, đơn giá xuống. Chuyện chi phí sản xuất, vì kiến trúc hợp lý giúp gộp bớt chi tiết, giảm số lượng chi tiết phải quản. Chuyện quản lý dự án, vì máy đã chia thành các khối rõ ràng thì chia việc cho từng nhóm cũng rõ ràng, ai chậm biết ngay. Và chuyện đơn giản mà lại quan trọng với xưởng nhỏ: khi kiến trúc được viết ra, sản phẩm bớt phụ thuộc vào trí nhớ của một vài người lâu năm, người mới vào cũng đọc mà hiểu được máy.
Vậy xác lập kiến trúc thì làm thế nào. Không cần phần mềm gì ghê gớm. Cách quen thuộc là cả nhóm ngồi trước một tấm bảng trắng, liệt kê ra tất cả chức năng mà máy phải làm, mỗi chức năng một mảnh giấy dán lên bảng. Với một sản phẩm độ phức tạp vừa phải thì liệt kê cỡ hai chục chức năng là đủ, đừng chẻ nhỏ quá. Xong bước liệt kê thì tới bước gom: những chức năng nào nên nằm chung một khối thì kéo các mảnh giấy lại gần nhau, khoanh lại, đặt tên cho khối đó. Khi gom thì cân nhắc mấy điều. Các chi tiết ấy có xếp cạnh nhau được về mặt hình học không, khối gộp ra có chuẩn hóa được không, có giống khối nào mình từng làm ở sản phẩm trước không để tận dụng lại đồ gá và dây chuyền cũ. Sau đó nhóm dựng layout hình học, tức là bản phác khối nào nằm ở đâu, giáp với khối nào, vẽ tay trên giấy hay cắt xốp cắt bìa dựng thử đều được. Cuối cùng là ngồi rà xem giữa các khối có tương tác gì với nhau: nhiệt, rung, bụi, nước, nhiễu điện. Chính bước rà tương tác này hay lôi ra những sự cố mà nếu để đến lúc chạy thật mới thấy thì đã tốn khuôn, tốn vật tư.
Kiến trúc sản phẩm không phải thứ chỉ dành cho sản phẩm mới. Một cái máy đang bán chạy nhưng chưa bao giờ được vẽ kiến trúc cũng nên ngồi vẽ lại, để biết chỗ nào đang dính chặt vô lý và chỗ nào có thể tách ra làm mô đun cho lần cải tiến tới.
Còn ở xưởng anh chị, nếu bây giờ khách đòi đổi một cụm trên sản phẩm đang bán, thì phải vẽ lại bao nhiêu phần cái máy?