Lợi ích của prototype trong quá trình phát triển phầm mềm

Tháng Sáu 3, 2021
Nga Pham

Một tài liệu yêu cầu (requirements document) mô tả cách thức sản phẩm hoạt động, còn bản mẫu (prototype) cho thấy cách mà sản phẩm thật sự hoạt động. Nếu một bức tranh đáng giá một nghìn từ, thì một bản mẫu có giá trị bằng cả một bản tài liệu các yêu cầu sản phẩm dài hàng trăm nghìn trang.

Prototype giúp nhanh chóng hiện thực hóa các yêu cầu của khách hàng, nhờ đó các nhà quản lý sản phẩm (Product Manager) có thể xác nhận các chức năng thực tế có đúng với yêu cầu khách hàng đề ra hay không. Nhờ tính trực quan của prototype, tất cả các bên liên quan, bao gồm cả khách hàng và lập trình viên đều có thể hiểu prototype và giao tiếp dựa trên chúng một cách dễ dàng. Dưới đây là chia sẻ của một Product Manager với 10 năm kinh nghiệm về 4 lợi ích quan trọng prototype mang lại trong quá trình phát triển phầm mềm.

1. Giảm thiểu nguy cơ nhầm lẫn

50 trang yêu cầu trong một tài liệu văn bản không phải là cách đáng tin cậy và không thể truyền tải tất cả sự tinh tế của một sản phẩm kỹ thuật số. Người đọc tài liệu sẽ nhanh chóng chán nản với hàng nghìn con chữ và thậm chí tệ hơn, họ có thể hiểu sai những gì được viết.

Prototype hiện thực hóa các yêu cầu của người dùng thành một phần hữu hình của hệ thống. Nếu các tính năng theo mô hình nhiệm vụ – cấp độ (task-level), prototype có thể mang tới cái nhìn tổng quan theo chiều rộng (về các nhiệm vụ) và cả theo chiều sâu (các cấp độ trong mỗi nhiệm vụ) một cách rõ ràng, cụ thể.

2. Tính linh hoạt và khả năng ứng dụng

Việc hoàn thành một tài liệu chính thức đòi hỏi rất nhiều sự kiên nhẫn và trí tưởng tượng của người viết. Ngoài viết lách, việc xác nhận, kiểm tra một tài liệu còn tốn nhiều thời gian hơn. Nếu muốn kiểm tra thật kỹ, người đánh giá phải chú ý đến từng câu chữ, và mỗi khi khi có thay đổi cần cập nhật, chu kỳ sửa đổi – kiểm tra lặp lại sẽ làm tốn rất nhiều thời gian, công sức và cả chi phí dự án.

Trái lại, prototype rất dễ tạo ra. Mọi người được trải nghiệm bản mẫu thay vì đọc yêu cầu, dễ dàng nắm bắt nội dung, đồng thời sự tách biệt giữa các phần của hệ thống cũng rõ ràng hơn. Người đánh giá có thể đưa ra nhận xét trực tiếp về một phần nào đó của giao diện (User Interface – UI), tiết kiệm thời gian và hiệu quả hơn nhiều so với việc phải phân tích, nghiên cứu một tài liệu dài dằng dặc.

3. Cải thiện các quyết định kỹ thuật

Các quyết định về trải nghiệm người dùng (User Experience – UX) chỉ thật sự hiệu quả khi được đưa ra dựa trên sản phẩm thực tế. Hầu hết các nhầm lẫn trong quá trình cài đặt thường xảy ra do những hiểu lầm trong quá trình trao đổi với khách hàng.

Ngay cả một bản mẫu có độ trung thực thấp (low-fidelity) cũng có thể giúp các nhà phát triển nhanh chóng nhìn thấy sự tương tác giữa các yếu tố trong hệ thống. Đánh giá sớm (early evaluation) thậm chí có thể giúp các nhà phát triển đề xuất các giải pháp tốt hơn mà nhà thiết kế không bao giờ quan tâm đến. Tất cả những điều này nên được thực hiện trước khi có ai đó mở Photoshop, Sketch hoặc một trình soạn thảo mã nguồn nào đó.

Một cách để cải thiện giao tiếp là phác thảo các yêu cầu cốt lõi trong tài liệu yêu cầu, sau đó liên kết với các nguồn bên ngoài để lấy thêm thông tin cần thiết. Chẳng hạn như, thay vì một tài liệu giấy, tài liệu Autodesk được coi như một hub – trung tâm thông tin.

Tóm tắt các yêu cầu đơn giản bằng Autodesk
Tóm tắt các yêu cầu đơn giản bằng Autodesk
Luồng tính năng dựa trên yêu cầu người dùng được tạo ra bằng Autodesk
Luồng tính năng dựa trên yêu cầu người dùng được tạo ra bằng Autodesk

4. Hữu ích khi thỏa thuận với khách hàng

Việc định giá/ mua bán sản phẩm không hề dễ dàng và khá mơ hồ vì khách hàng thường chỉ tập trung vào nhu cầu của mình mà có thể quên đi bức tranh toàn cảnh. Khi nhìn nhận những yêu cầu sản phẩm như một danh sách các nhiệm vụ, khách hàng có thể sẽ đưa ra những yêu cầu thêm bớt tính năng không phù hợp với tổng thể.

Prototype làm sáng tỏ các kỳ vọng và làm rõ định hướng sản phẩm cho tất cả các bên liên quan. Khi mọi người đều có thể tự mình trải nghiệm sản phẩm, nhu cầu của người dùng và khối lượng công việc của nhóm phát triển đều nhận được sự tập trung tương đương nhau, nhờ đó mang lại sự hiểu biết, chia sẻ và đồng cảm sâu sắc hơn giữa các bên. Nói cách khác, prototype giúp mang lại một thoả thuận hợp lý hơn và cải thiện độ hài lòng của các bên liên quan.

Kết luận

Quy trình phát triển phần mềm linh hoạt (agile) đòi hỏi nhiều sự linh động từ các thành viên trong nhóm. Cho dù các yêu cầu người dùng có chính xác và rõ ràng đến đâu, nó cũng khó có thể đi sâu vào các chi tiết trong việc thiết kế giao diện và trải nghiệm người dùng. Khi tạo prototype, thiết kế của bạn sẽ trở thành tài liệu chính. Prototype phản ánh chính xác yêu cầu người dùng và giúp nhóm phát triển tiết kiệm thời gian nghiên cứu tài liệu, đẩy nhanh tiến độ dự án. Ngoài ra, prototype cũng rất hữu ích trong việc tạo ra sự cân bằng khéo léo giữa việc tập trung vào người dùng và quy trình phát triển sản phẩm linh hoạt, nhanh chóng.

Nguồn: Atlassian Blog
Ảnh: Halacious / Unsplash