Vấn đề chung đối với các nhóm lập trình ở Việt Nam đó là coi nhẹ giai đoạn thiết kế và viết tài liệu, thường chú trọng đi vào lập trình hệ thống trong khi phần tài liệu thiết kế chưa hoàn thành hoặc chưa được kiểm tra về chất lượng. Vì vậy, trong quá trình phát triển gặp rất nhiều vấn đề, thời gian phải làm lại tốn nhiều và các giải pháp đưa ra thường thiếu tính tổng quát và tối ưu.
Hình 2. 11. Nguyên nhân của vấn đề tốn nhiều thời gian phát triển lại
Những rủi ro gặp phải:
Thiết kế không khả thi và thiết kế thiếu trường hợp: người phân tích sẽ phân tích và thiết kế chức năng nghiệp vụ theo yêu cầu người dùng, đôi lúc không tính toán đến kiến trúc hệ thống dẫn đến lỗi khi thực hiện cài đặt và phải làm lại.
Tài liệu thiết kế không đồng nhất và nhập nhằng: trong tài liệu thiết kế thường không đồng nhất về cách thức đặt tên biến, độ dài các trường dữ liệu, …. Khi phát triển mỗi người lại thực hiện theo từng module mình được giao, nên có thể dẫn đến phải thay đổi thiết kế và viết mã lại khi thực hiện test tích hợp, làm kéo dài thời gian phát triển, có thể làm chậm tiến độ dự án.
Hàm/thư viện dùng chung không được cập nhật đầy đủ: thay đối thiết kế của các hàm dùng chung thường bị sai sót do không cập nhật lại toàn bộ các chức năng liên quan, hoặc việc khai báo về số lượng biến, kiểu dữ liệu của các hàm dùng chung thường bị sai trong các thiết kế có liên quan do việc review bằng mắt thường rất khó phát hiện và nhớ được.
Giải pháp:
Ít tương tác khi thiết kế yêu cầu cùng xem xét, đánh giá trong quá trình thiết kế. Kiểm tra chéo tài liệu thiết kế.
Thiếu thời gian cho giai đoạn thiết kế tăng thời gian thiết kế (giai đoạn đầu dự án) đảm bảo chất lượng tài liệu thiết kế, giảm thời gian lập trình, thời gian kiểm thử.
Không có cách nào kiểm tra tính đồng nhất giữa các thiết kế áp dụng việc mô hình hóa bằng VDM++, sử dụng overture để kiểm tra tính đúng đắn (đúng yêu cầu, thống nhất thiết kế, …) của tài liệu thiết kế.