Joshua Bloch thảo luận về điểm này trong cuộc phỏng vấn của mình cho cuốn sách "Coders at Work".
Trái với quan điểm chính thống và hàn lâm hơn, ông khuyên bạn điều gì đó để điều chỉnh suy nghĩ của bạn (có thể bạn đã tự đọc nó ở đó?): Rằng trước khi viết tài liệu bạn phải hiểu những gì bạn muốn từ hệ thống và có được "thực tế hơn" " cảm giác. Với mục đích này, anh ta sẽ thiết kế một phần của các giao diện và một số mã máy khách sử dụng chúng.
Điều quan trọng nhất là phải biết những gì bạn đang cố gắng xây dựng: vấn đề nào bạn đang cố gắng giải quyết. Tầm quan trọng của phân tích yêu cầu không thể được phóng đại. Có những người nghĩ rằng, Oh Oh, yeah, yêu cầu phân tích; bạn đến khách hàng của bạn, bạn nói, 'Bạn cần gì?' Anh ấy nói với bạn, và bạn đã hoàn thành.
Không gì có thể hơn được sự thật. Không chỉ là một cuộc đàm phán mà nó còn là một quá trình hiểu biết. Nhiều khách hàng sẽ không cho bạn biết một vấn đề; họ sẽ cho bạn biết một giải pháp. Chẳng hạn, một khách hàng có thể nói, tôi cần bạn thêm hỗ trợ cho 17 thuộc tính sau vào hệ thống này. Sau đó, bạn phải hỏi, 'Tại sao? Bạn sẽ làm gì với hệ thống? Làm thế nào để bạn mong đợi nó sẽ phát triển? 'Vv và như vậy. Bạn qua lại cho đến khi bạn tìm ra tất cả những gì khách hàng thực sự cần phần mềm để làm. Đây là những trường hợp sử dụng.
Đến với một bộ trường hợp sử dụng tốt là điều quan trọng nhất bạn có thể làm trong giai đoạn này. Một khi bạn có điều đó, bạn có một điểm chuẩn để bạn có thể đo bất kỳ giải pháp nào có thể. Sẽ ổn thôi nếu bạn dành nhiều thời gian để đưa nó gần đúng, bởi vì nếu bạn hiểu sai, bạn đã chết. Phần còn lại của quá trình sẽ là một bài tập vô ích.
Điều tồi tệ nhất mà bạn có thể làm được và tôi đã thấy điều này xảy ra, đó là bạn đưa một nhóm người thông minh vào phòng làm việc trong sáu tháng và viết một đặc tả hệ thống gồm 247 trang trước khi họ thực sự hiểu họ là ai cố gắng xây dựng. Bởi vì sau sáu tháng, họ sẽ có một hệ thống được chỉ định rất chính xác có thể là vô dụng. Và họ thường nói, chúng tôi đã đầu tư rất nhiều vào thông số kỹ thuật mà chúng tôi phải xây dựng nó. Vì vậy, họ xây dựng hệ thống vô dụng và nó không bao giờ được sử dụng. Và điều đó thật kinh khủng. Nếu bạn không sử dụng các trường hợp sử dụng, bạn xây dựng mọi thứ và sau đó bạn cố gắng làm một việc rất đơn giản và bạn nhận ra rằng, Ôi trời ơi, làm một việc rất đơn giản như lấy một tài liệu XML và in nó yêu cầu các trang trên các trang của bản tóm tắt mã. Và đó là một điều khủng khiếp.
- Joshua Bloch, từ một cuộc phỏng vấn trong " Coders tại nơi làm việc: Những phản ánh về nghề lập trình " của Peter Seibel
Nếu bạn đã suy nghĩ theo những dòng này, sẽ tốt hơn nếu bạn có thể cầm cuốn sách và đọc toàn bộ cuộc phỏng vấn. Như tôi đã nói, anh ấy luôn rất giác ngộ.