Tôi nghĩ rằng câu trả lời bao quát là nó thường quá phức tạp (hoặc không thể) để tính lượng thời gian cần thiết.
Đôi khi, đó chỉ là vấn đề cần thêm thời gian tính toán để ước tính tốt hơn số lượng công việc cần thiết (ví dụ: phân tích tốt hơn các tệp sẽ được sao chép hoặc áp dụng phép tính phức tạp hơn để ước tính tốt hơn số bước cần thiết để hoàn thành một mô phỏng).
Những lần khác, nó khá là không xác định. Khi hệ thống của bạn đang cài đặt một chương trình mới, nó thường có nhiều phụ thuộc để kiểm tra được cài đặt. Và nói chung, nó không có ý tưởng về việc mỗi người sẽ mất bao lâu và những phụ thuộc mà những người này có thể cần đến. Bạn có thể đã cài đặt tất cả các phụ thuộc và có thể mất 30 giây hoặc bạn có thể thiếu hàng tá và phải mất hàng giờ. Khó có thể đưa ra một sân bóng công bằng về điều đó, đặc biệt là khi mỗi tình huống sẽ là duy nhất.
Ngoài ra, các cống khác trên hệ thống có thể thay đổi theo thời gian (do những gì người dùng thực hiện ... hoặc quá trình nền / lịch trình).
Đôi khi ước tính có thể được cải thiện nếu lập trình viên sẽ đưa thêm một chút công việc vào chúng. Nhưng sau đó, một thực tế khác có lẽ đây không phải là mối quan tâm hàng đầu của các nhà phát triển, so với việc tiếp tục thực hiện các nhiệm vụ sản xuất thực tế mà ứng dụng có thể thực hiện.
Cuối cùng, ngay bây giờ, tôi tin rằng nó thường chỉ là một ước tính tuyến tính - xem xét có bao nhiêu nhiệm vụ cơ bản cần thiết đã hoàn thành chương trình. Vì vậy, nó thực sự có xu hướng là một ước tính rất sơ bộ, và bạn thường nên xem xét nó như vậy đi vào.
Một sự tương tự tốt có thể là khi bạn đang đọc một cuốn sách.
Và bạn quyết định bạn muốn có một ý tưởng về việc mất bao lâu để hoàn thành cuốn sách ...
Bạn có thể kiểm tra số lượng trang và có được ước tính nhanh dựa trên tốc độ cho đến nay.
Nó có thể là một ước tính xấu nếu bạn mới bắt đầu đọc, bởi vì tốc độ của bạn có thể chưa phải là điển hình. Nhưng thường thì đó là một phỏng đoán sơ bộ.
Hoặc bạn cũng có thể đọc lướt qua cuốn sách, hiểu sơ bộ về số lượng hình ảnh và khoảng cách văn bản. Và sau đó có một ý tưởng tốt hơn về những gì bạn phải đối mặt.
Nhưng nó vẫn có thể là một ước tính kém nếu, ví dụ, khả năng đọc văn bản giảm, có lẽ chuyển từ văn xuôi đơn giản sang phức tạp. Hoặc ước tính có thể kết thúc sai vì bạn không lường trước được một nhiệm vụ khác sẽ chuyển hướng sự chú ý của bạn.
Bạn có thể có được một ước tính tuyệt vời bằng cách áp dụng một lượng lớn thời gian để phân tích cẩn thận những gì còn lại trong trang sách theo từng trang, và cũng có thể cải thiện nó bằng cách kiểm tra lịch của bạn và giữ một danh sách các bước đọc dài hạn cho các cuốn sách khác nhau.
Nhưng cuối cùng, thời gian cần thiết để làm như vậy có đáng để trì hoãn việc chỉ đọc cuốn sách không?
Tất cả chúng ta đều thích các chỉ số tốt hơn. Nhưng cũng như vậy, có lẽ chúng ta sẽ phải đưa ra các ước tính sơ bộ, ít nhất là cho đến khi toàn bộ máy tính bắt đầu nhận được các thuật toán tiêu chuẩn hóa được cải thiện và có khả năng cân nhắc và dự đoán các yếu tố động "thông minh" (như cách của bạn)!
Và thanh tiến trình trên đó có thể bị kẹt ở mức 5% ngay bây giờ. Chúng ta sẽ phải xem điều đó diễn ra như thế nào 8-)