Mô hình tạo mẫu vứt bỏ trong công nghệ phần mềm là gì và tại sao chúng ta cần nó? Làm thế nào để nó khác biệt với Prototyping tiến hóa?
Mô hình tạo mẫu vứt bỏ trong công nghệ phần mềm là gì và tại sao chúng ta cần nó? Làm thế nào để nó khác biệt với Prototyping tiến hóa?
Câu trả lời:
Tạo mẫu bỏ đi là tạo ra, càng nhanh càng tốt, một phần của ứng dụng trong tương lai để đảm bảo tính năng khả thi về mặt kỹ thuật hoặc hiển thị tính năng này cho các bên liên quan hoặc người dùng tiềm năng để thu thập phản hồi từ họ.
Vì mã nguồn của nguyên mẫu này không được sử dụng lại sau này khi phát triển ứng dụng, nên nó biến nó thành một nguyên mẫu bỏ đi. Biết rằng đó là mã vứt đi giúp tập trung vào tính năng thực tế, đồng thời bỏ qua các khía cạnh như khả năng duy trì mã, kiểu dáng, mẫu thiết kế hoặc thử nghiệm. Điều này làm cho nó có thể hoàn thành nguyên mẫu rất nhanh, mà không ảnh hưởng tiêu cực đến nợ kỹ thuật của sản phẩm cuối cùng.
Tạo mẫu ném đi khác với phác thảo . Phác thảo là đồ họa nhiều hơn và hướng đến giao diện người dùng và trải nghiệm người dùng, và không bao gồm viết mã lập trình. Tạo mẫu bỏ đi thường được sử dụng khi phác thảo là không đủ (ví dụ: khi bạn cần hiển thị cách một tính năng sẽ hoạt động trên các điện thoại thông minh khác nhau hoặc khi bạn cần hiển thị hiệu suất và khả năng đáp ứng thực tế).
Tạo mẫu bỏ đi có thể gặp rủi ro khi giao dịch với các bên liên quan mà không có nền tảng kỹ thuật và trong bối cảnh thời hạn chặt chẽ và nguồn lực rất hạn chế: các bên liên quan có thể cố gắng thuyết phục bạn sử dụng lại trong sản phẩm cuối cùng mã nguồn từ nguyên mẫu. Thật tự nhiên khi tin rằng nó sẽ rút ngắn thời gian cần thiết để phát hành sản phẩm, nhưng thực tế, nó sẽ chỉ trì hoãn ngày giao hàng. Một cách để ngăn chặn điều này là sử dụng cho nguyên mẫu một ngôn ngữ không thể sử dụng trong sản xuất (ví dụ: sử dụng C # khi bạn biết rằng sản phẩm cuối cùng sẽ được lưu trữ trên các máy chủ Linux chỉ cài đặt Python).
Hình 1: Tạo mẫu và phác thảo vứt bỏ : các nguyên mẫu giúp thu thập phản hồi sớm trước khi bắt đầu phát triển tính năng thực tế.
Tạo mẫu tiến hóa bao gồm xây dựng một nguyên mẫu sau đó được tinh chỉnh dựa trên phản hồi thường xuyên từ các bên liên quan hoặc người dùng tiềm năng.
Ở đây, khả năng duy trì của mã, kiểu dáng, mẫu thiết kế hoặc số lượng thử nghiệm ngay từ đầu, điều này cho phép phát triển nguyên mẫu thành một sản phẩm cấp doanh nghiệp đầy đủ tính năng. Các bước trước của nguyên mẫu chỉ chứa phần cốt lõi của sản phẩm trong tương lai và sau đó, các tính năng được thêm dần dần.
Hình 2: Tạo mẫu tiến hóa : các tính năng được tổng hợp theo nguyên mẫu để xây dựng sản phẩm cuối cùng.
Tạo mẫu tiến hóa khác với tạo mẫu gia tăng . Tạo mẫu tăng dần bao gồm xây dựng một số nguyên mẫu, mỗi nguyên mẫu đại diện cho một phần của hệ thống tương lai, sau đó kết hợp chúng. Tạo mẫu tiến hóa gần với Agile hơn: thông thường, bạn sẽ có thể sớm có được một sản phẩm hoạt động với các tính năng hạn chế và mở rộng cho đến khi các bên liên quan có tiền. Mặt khác, tạo mẫu tăng dần, phù hợp hơn cho các dự án lớn với nhiều nhóm đóng góp, mỗi nhóm làm việc trên một nguyên mẫu riêng biệt.
Hình 3: Tạo mẫu tăng dần : một số nguyên mẫu được kết hợp để tạo thành sản phẩm cuối cùng.
Tạo mẫu tiến hóa khác với các phương pháp Agile . Agile là về các công việc lặp lại và các cột mốc thường xuyên trong đó một sản phẩm đầy đủ chức năng có thể được phát hành để sản xuất. Nếu bạn có một sản phẩm làm việc vào mỗi thứ năm, bạn đang làm Agile. Trong nguyên mẫu tiến hóa, bạn mở rộng nguyên mẫu, nhưng không có gì buộc bạn phải có một sản phẩm đầy đủ chức năng thường xuyên. Bạn có thể dành hai tháng để tạo nguyên mẫu đầu tiên, hơn là mở rộng nó với một vài tính năng tương ứng hai và ba ngày, sau đó dành ba tháng cho một tính năng khác. Bạn không thể có loại mô hình bất thường này trong Agile.
Các phương pháp Agile cụ thể thực thi các quy tắc bổ sung. Ví dụ: nếu bạn không thực hiện lập trình cặp, bạn không thể khẳng định rằng bạn đang thực hiện Lập trình cực đoan. Nếu nhóm của bạn không có các cuộc họp hàng ngày, bạn sẽ không thực hiện Scrum.
Prototyping được sử dụng vì nhiều lý do. Có thể bạn muốn đánh giá trải nghiệm người dùng với một ứng dụng mới để ước tính liệu nó có đáng để xây dựng hay không mà không phải chịu chi phí thực sự xây dựng nó. Có thể bạn cần một cái gì đó nói chuyện với một chương trình hiện có qua mạng để thực hiện kiểm tra tích hợp hoặc tải trên mạng của bạn, trước khi bạn có thời gian để hoàn thành phần mềm thực tế đang chạy trên nút của mình. Có lẽ bạn cần cho các nhà đầu tư của mình thấy một cái gì đó trông giống như một chương trình đã hoàn thành để họ sẵn sàng đưa ra khoản đầu tư cần thiết để thực sựkết thúc chương trình (Điều này không liên quan gì đến sự lừa dối. Người dùng và người quản lý chỉ đánh giá phần mềm bằng giao diện của nó, vì vậy điều quan trọng là phải trình bày cho họ một giao diện tốt để họ tin rằng dự án sẽ đi xa như thực tế.)
Một nguyên mẫu vứt bỏ chỉ đơn giản là một nguyên mẫu sẽ không được chuyển đổi dần dần thành giải pháp thực tế, mà được thay thế bằng một mẫu mới được viết. Rõ ràng có một số lãng phí liên quan đến việc vứt bỏ mã đã thực hiện ít nhất một số thứ bạn muốn, nhưng tính toàn vẹn kiến trúc tốt hơn của mã phù hợp có thể dễ dàng bù đắp nhược điểm đó.