20 Apr, 2021
Tại sao chúng ta cần bản mẫu ?
Một sinh viên khoa học máy tính hỏi: “Tại sao chúng em cần xây dựng bản mẫu? Em tin rằng em có thể làm phần mềm dựa trên các yêu cầu mà không phải đi qua bước khác của việc làm bản mẫu. Điều đó là phí thời gian và em bị rối tung. Xin thầy lời khuyên.”
Đáp: Theo định nghĩa, bản mẫu là mô hình làm việc tương đương về chức năng với cấu phần của sản phẩm. Bản mẫu KHÔNG phải là sản phẩm thực nhưng chỉ là phiên bản không đầy đủ của sản phẩm. Sinh viên thường bị lẫn lộn về làm bản mẫu vì ở trường họ được cho các yêu cầu rõ ràng, từ đó họ có thể bắt đầu thiết kế và viết mã ngay lập tức, nhưng trong môi trường làm việc, khách hàng thường không cho yêu cầu rõ ràng. Họ chỉ có cái nhìn chung về sản phẩm phần mềm nhưng không đủ chi tiết. Tất nhiên không có thông tin chi tiết, người phát triển không thể thiết kế và viết mã được cho nên họ cần xây dựng một mô hình hay bản mẫu và cho phép khách hàng dùng nó để xem liệu nó có phải là điều họ cần không. Bằng tương tác với bản mẫu làm việc, khách hàng có thể cung cấp cái vào, phản hồi và các chức năng chi tiết cho nên người phát triển hiểu nhu cầu của khách hàng là gì và làm tài liệu chúng trong bản đặc tả yêu cầu và bắt đầu dự án.
Qui trình làm bản mẫu bao gồm các bước sau: Nhận diện các yêu cầu cơ sở cho sản phẩm. Xác định thông tin cái vào và cái ra được mong muốn. Xây dựng bản mẫu thứ nhất mà chỉ bao gồm giao diện người dùng. Để khách hàng kiểm tra, tương tác và cung cấp phản hồi về bổ sung hay thay đổi. Sửa lại bản mẫu với giao diện người dùng cho tới khi khách hàng được thoả mãn. Bắt đầu thêm lời gọi tới các chức năng mà không phát triển chức năng thực và thương lượng với khách hàng về chức năng nào được cần, ưu tiên của các chức năng cũng như phạm vi của dự án.
Bằng việc dùng phần mềm làm bản mẫu người phát triển có thể thu được phản hồi từ khách hàng sớm trong dự án cho nên các yêu cầu được xác định tốt hơn. Khách hàng và người phát triển có thể xác định liệu sản phẩm phần mềm có sánh đúng với yêu cầu phần mềm không. Nó cũng cho phép người phát triển phần mềm ước lượng tốt hơn về thời gian và chi phí dựa trên độ chính xác của đặc tả yêu cầu rồi lập kế hoạch cho dự án tương ứng. Không có làm bản mẫu, người phát triển có thể xây dựng cái gì đó mà khách hàng không muốn, điều yêu cầu sửa đổi và chữa lại, mà thường dẫn tới chi phí cao hơn và nhiều lỗi hơn.
—-English version—-
Why do we need a prototype?
A Computer Science student asked: “Why do we need to build a prototype? I believe that I can build software based on the requirements without have to go through another step of prototyping. It is a waste of time and I am confused. Please advice.”
Answer: By definition, a prototype is a working model that is functionally equivalent to a component of the product. A prototype is NOT the real product but only incomplete versions of the product. Students often confused about prototyping because in school they are given a clear requirements where they can start design and code immediately but in the working environment, customers often do not give a clear requirements. They only have a general view of the software product but not enough details. Of course without detailed information, developer cannot design and code so they need to build a model or prototype and allow customers to use it to see if it is what they need. By interacting with a working prototype, customers can provide inputs, feedbacks and detailed functionalities so developers understand what customer’s needs are and document them in the requirements specifications and start the project.
The process of prototyping consists of the following steps: Identify basic requirements for the product. Determine the input and output information desired. Develop the first prototype that only includes user interfaces. Let customers examine, interact and provide feedback on additions or changes. Revise the prototype with the user interfaces until customers are satisfied. Begin to add call to each function without develop the real function and negotiate with customers about what functions are needed, the priority of the functions as well as the scope of the project.
By using prototyping software developers can obtain feedback from the customers early in the project so the requirements are better defined. The customers and developers can determine if the software product matches the software requirements. It also allows the software developers to better estimate the time and costs based on the accuracy of requirements specification then plan the project accordingly. Without prototyping, developers may build something that customers do not want which requires modifications and fixings which often lead to higher costs and more defects.