Chuyên môn · Từ thiết kế tới sản phẩm

Phối hợp nhà thiết kế và lập trình: đừng để thành khoai tây nóng

Lỗi phổ biến nhất không nằm ở tay nghề mà nằm ở thời điểm hai bên gặp nhau lần đầu.

Chốt nhanh

Phối hợp tốt giữa nhà thiết kế và lập trình bắt đầu sớm hơn hầu hết mọi người nghĩ: ngay từ wireframe (bản phác thảo cấu trúc màn hình), không phải sau khi thiết kế đã hoàn chỉnh. Kéo lập trình vào sớm giúp bắt được những ràng buộc kỹ thuật trước khi thiết kế đi quá xa theo hướng không thể dựng được. Sinh Vũ duy trì một ngôn ngữ chung qua spec và quy ước đặt tên để thiết kế và kỹ thuật không rơi vào cảnh mỗi bên hiểu một kiểu.

Nhìn nhanh
Hợp với
sản phẩm có tương tác phức tạp, cần kéo lập trình vào từ wireframekhách đã có nền tảng riêng, cần thiết kế khớp vào hệ thống hiện hữunhiều trạng thái động và nhiều màn cần đồng bộ liên tục
Không hợp
bàn giao kiểu khoai tây nóng, thiết kế xong mới gặp lập trình lần đầukhông có ngôn ngữ chung nên mỗi bên hiểu spec một kiểu
Ngành hay dùng
SaaSsản phẩm sốthương mại điện tử

Phần lớn sự cố giữa thiết kế và lập trình không xảy ra vì ai kém tay nghề. Nó xảy ra vì hai bên gặp nhau quá muộn trong quy trình. Nhà thiết kế làm xong một mình, sau đó "ném qua hàng rào" cho lập trình, và lúc đó mới phát hiện ra những chỗ trông đơn giản trên màn hình lại tốn gấp ba lần thời gian dựng, hoặc không thể dựng theo đúng cách đã thiết kế. Đây là gốc rễ của hầu hết xung đột và chậm trễ trong dự án số.

Lỗi cốt lõi: bàn giao kiểu khoai tây nóng

Thuật ngữ "hot potato handoff" (bàn giao kiểu khoai tây nóng) trong ngành mô tả đúng bản chất vấn đề: ai cũng muốn chuyển trách nhiệm đi càng nhanh càng tốt, không ai muốn cầm lâu. Nhà thiết kế coi nhiệm vụ của mình kết thúc khi file thiết kế xong. Lập trình nhận file và tự tìm cách dựng mà không hiểu ý định đằng sau từng quyết định.

Hệ quả thực tế: lập trình dựng lệch thiết kế vì hiểu sai spec, thiết kế phàn nàn lập trình không tôn trọng file gốc, hai bên đổ lỗi qua lại, và người chịu thiệt cuối cùng là sản phẩm. Không có ai sai, chỉ có quy trình sai.

Kéo lập trình vào sớm hơn bạn nghĩ

Nguyên tắc Sinh Vũ giữ: không bao giờ là quá sớm để kéo lập trình vào. Lý tưởng nhất là ngay từ giai đoạn wireframe hoặc khi thảo luận ý tưởng ban đầu, trước khi thiết kế đã có màu sắc, font chữ, và hiệu ứng.

Tại sao giai đoạn này quan trọng? Vì lập trình nhìn thấy những ràng buộc mà nhà thiết kế không thấy. Một hiệu ứng chuyển cảnh trông mượt trên prototype (bản thử tương tác) có thể đòi hỏi logic phức tạp không tương xứng với giá trị mà nó mang lại. Một bố cục linh hoạt trên màn thiết kế có thể vỡ trên thiết bị thật nếu không tính đến ràng buộc của trình duyệt. Bắt được những chỗ này từ sớm, chi phí điều chỉnh gần như bằng không. Bắt được sau khi thiết kế hoàn chỉnh, chi phí đã nhân lên đáng kể.

Ngôn ngữ chung: điều kiện để cộng tác được

Cộng tác sớm không đủ nếu hai bên không có điểm gốc chung. Đây là vai trò của token (biến thiết kế) và quy ước đặt tên thống nhất.

  • Token là những giá trị dùng chung: màu chính, cỡ chữ, khoảng cách. Khi token được đặt tên nhất quán giữa file thiết kế và code, lập trình không phải đoán "màu xanh này là màu nào trong hệ thống."
  • Spec rõ ràng nghĩa là ghi lại ý định, không chỉ kết quả thị giác. Tại sao nút này có trạng thái bị vô hiệu hóa? Điều gì kích hoạt trạng thái lỗi? Thông tin này nếu không ghi vào spec thì lập trình phải tự đoán.
  • Quy ước đặt tên component (thành phần giao diện) giúp cả hai bên nói về cùng một thứ khi thảo luận hoặc báo lỗi.

Không có ngôn ngữ chung, mỗi bên làm việc trong ốc đảo của mình dù ngồi cùng phòng.

Hai hướng tổ chức phối hợp
Phối hợp với đội kỹ thuật sẵn có của khách: Sinh Vũ đảm nhận thiết kế và làm việc trực tiếp với đội lập trình của Anh/Chị. Hướng này phù hợp khi khách đã có nền tảng và hệ thống riêng, thiết kế cần khớp vào hạ tầng đang chạy. Yêu cầu thiết lập ngôn ngữ chung và nhịp góp ý rõ ràng từ đầu.

Sinh Vũ dựng trọn gói: Sinh Vũ chịu trách nhiệm cả thiết kế lẫn dựng thật, một đầu mối. Hướng này phù hợp khi khách không có đội kỹ thuật hoặc muốn tránh chi phí quản lý phối hợp giữa nhiều bên. Góc nhìn kỹ thuật đi cùng ngay từ khâu dựng luồng trải nghiệm, bắt sớm chỗ trông đơn giản mà khó dựng.

Phối hợp là liên tục, không phải một lần

Ngay cả khi bắt đầu tốt, nhiều dự án vẫn hỏng ở giữa vì coi phối hợp là sự kiện một lần: họp kick-off rồi mỗi bên tự làm, gặp lại khi bàn giao. Thực tế, thiết kế thay đổi suốt quá trình. Màn hình mới được thêm vào. Trạng thái bị phát hiện khi dựng. Yêu cầu khách điều chỉnh.

Nếu không có nhịp góp ý qua lại định kỳ và kiểm soát phiên bản rõ ràng, lập trình đang dựng theo file cũ trong khi thiết kế đã sang phiên bản khác. Đây là nguồn gốc của phần lớn tranh cãi về "dựng không đúng thiết kế" mà thực chất là hai bên dùng hai phiên bản khác nhau.

Đội mạnh nhất không chăm chăm vào một thời điểm bàn giao, mà dần xây hiểu biết chung và không gian để thiết kế cùng lập trình định hình sản phẩm.

Figma Blog, The Designer's Handbook for Developer Handoff

Góc nhìn của Sinh Vũ

Vì Sinh Vũ vừa thiết kế vừa dựng website chạy thật, góc nhìn về tính khả thi kỹ thuật không phải thứ được thêm vào sau, mà đi cùng ngay từ khi xây luồng trải nghiệm. Điều này giúp bắt sớm những quyết định thiết kế trông hợp lý trên màn hình nhưng tốn kém hoặc dễ vỡ khi dựng thật.

Khi làm việc với đội kỹ thuật của khách, Sinh Vũ không bàn giao file rồi bước ra. Sinh Vũ thiết lập ngôn ngữ chung từ đầu, duy trì kênh trao đổi trong suốt dự án, và chốt rõ ai quyết định khi thiết kế và ràng buộc kỹ thuật xung đột. Đó là thứ giúp dự án không bị mắc kẹt giữa hai ốc đảo.

Nguồn tham khảo

Figma Blog, The Designer's Handbook for Developer Handoff; WeAreBrain, Designer-Developer Handoff: The Art of Collaboration; Lucidchart Blog, Best Practices for Designer to Developer Handoffs; kinh nghiệm thực hành Sinh Vũ.

Câu hỏi thường gặp

Nếu khách hàng đã có đội lập trình riêng thì Sinh Vũ phối hợp như thế nào?

Sinh Vũ sẽ làm việc trực tiếp với đội kỹ thuật của Anh/Chị, thiết lập ngôn ngữ chung qua spec rõ ràng và quy ước đặt tên thống nhất. Thay vì bàn giao một lần rồi thôi, Sinh Vũ duy trì nhịp góp ý qua lại trong suốt dự án để bắt sớm chỗ lệch giữa thiết kế và thực tế dựng.

Nếu thiết kế xong rồi mới tìm lập trình thì có sao không?

Được, nhưng rủi ro cao hơn đáng kể. Thiết kế xong mới gặp lập trình lần đầu là kiểu bàn giao mà ngành gọi là 'khoai tây nóng': thiết kế ném qua hàng rào cho kỹ thuật, và phát hiện muộn những chỗ không thể dựng được thì chi phí sửa đã nhân lên. Nếu bắt buộc đi theo trình tự này, ít nhất cần có spec thật chi tiết và sẵn sàng điều chỉnh thiết kế sau khi lập trình đánh giá.

Token và quy ước đặt tên là gì, có cần thiết không?

Token (biến thiết kế) là những giá trị dùng chung như màu sắc, cỡ chữ, khoảng cách, được đặt tên thống nhất để cả thiết kế lẫn code dùng cùng một điểm gốc. Quy ước đặt tên giúp lập trình hiểu đúng ý định thiết kế mà không cần giải thích lại từng trường hợp. Với dự án có nhiều màn hình hoặc nhiều trạng thái, đây là thứ giúp hai bên không lạc nhau.

← Về Trải nghiệm số
{INJ}