Làm thế nào để tôi tính đến các nhiệm vụ đã thay đổi hoặc bị lãng quên trong một ước tính?


10

Để xử lý các ước tính cấp độ nhiệm vụ và báo cáo thời gian, tôi đã sử dụng (đại khái) kỹ thuật mà Steve McConnell mô tả trong Chương 10 của Dự toán phần mềm. Cụ thể, khi đến lúc tôi phải tạo ước tính cấp độ nhiệm vụ (ngay trước khi mã hóa bắt đầu dự án), tôi xác định các nhiệm vụ ở mức khá chi tiết để bất cứ khi nào có thể, tôi không có nhiệm vụ nào với một điểm duy nhất, 50 % - độ tin cậy ước tính lớn hơn bốn giờ. Bằng cách đó, quy trình ước tính nhiệm vụ giúp xây dựng phần mềm đồng thời giúp tôi không quên các nhiệm vụ trong quá trình ước tính. Tôi cũng đưa ra một phạm vi giờ có thể cho mỗi nhiệm vụ và bằng cách sử dụng các tính toán thống kê mà McConnell mô tả cùng với dữ liệu chính xác lịch sử của tôi, tôi có thể tạo ước tính ở các mức độ tin cậy khác khi muốn. Tôi cảm thấy như phương pháp này đã làm việc khá tốt cho tôi. Chúng tôi được yêu cầu đưa các nhiệm vụ và ước tính của chúng vào TFS để theo dõi, vì vậy tôi sử dụng các ước tính theo tỷ lệ tin cậy mà tôi được yêu cầu sử dụng.

Tuy nhiên, tôi không chắc chắn phải làm gì khi tôi quên một nhiệm vụ hoặc cuối cùng tôi cần phải thực hiện công việc không nằm gọn trong một trong những nhiệm vụ tôi ước tính. Tất nhiên, cố gắng tránh tình huống này là tốt nhất, nhưng làm thế nào để tôi tính đến các nhiệm vụ bị lãng quên / thay đổi? Tôi muốn có dữ liệu lịch sử tốt nhất có thể để giúp tôi ước tính trong tương lai, nhưng hiện tại, về cơ bản tôi chỉ đang tính toán liệu tôi có đưa ra ước tính độ tin cậy 50% hay không và liệu tôi có đưa ra ước tính trong phạm vi không.

Tôi sẽ vui lòng làm rõ những gì tôi đang hỏi nếu cần - cho tôi biết những gì không rõ ràng.


1
Nhân với 3 ( lập trình
blueberryfields

Tôi nghĩ rằng tôi sẽ cần đưa ra một ví dụ về cách tôi đang thực hiện các tính toán này cũng như vấn đề tôi đang cố gắng giải quyết. Hiện tại tôi không có thời gian, nhưng tôi sẽ đến ngay khi có thể.
Andrew

Trong scrum bạn không đưa ra ước tính thời gian; bạn cho điểm câu chuyện, mà cho người khác một ý tưởng. Bạn cũng không kích thước từ dưới lên. Bạn không cần phải - vận tốc là một điều mơ hồ.
Công việc

@Job Chúng tôi không phải là một cửa hàng scrum tại thời điểm này. Ngoài ra, không giống như những gì người trả lời khác đã đề xuất, cho đến nay, các ước tính từ dưới lên đã cải thiện độ chính xác ước tính của tôi, phần lớn bằng cách giảm đáng kể số lượng nhiệm vụ bị lãng quên trong ước tính cấp độ nhiệm vụ.
Andrew

@blueberryfields - chỉ nhân với 50% là đủ, ít nhất là trong một công ty có nhiều cấp bậc, trong đó mỗi cấp có thêm yếu tố đánh giá quá cao của riêng mình.
mouviciel

Câu trả lời:


6

Cuốn sách Waltzing With Bears: Quản lý rủi ro đối với các dự án phần mềm (của DeMarco và Lister, các tác giả của Peopleware) có một cách tiếp cận tuyệt vời cho vấn đề này. Đây là cách diễn giải của tôi:

Hãy ước tính "mọi thứ diễn ra hoàn hảo". Tất nhiên, mọi thứ hiếm khi diễn ra hoàn hảo, do đó có khả năng xảy ra thấp, nói 0,1 phần trăm. Nói cách khác, chỉ có một dự án trong một nghìn sẽ hoàn thành kế hoạch. Đây là những gì hầu hết mọi người sử dụng như "ước tính" của họ rõ ràng là điên rồ.

Thay vào đó chúng ta nên nghĩ về các ước tính như phân phối xác suất. Ước tính "thế giới hoàn hảo" này là điểm trái nhất trong phân phối xác suất ước tính.

Tiếp theo, hãy ước tính "nếu mọi thứ diễn ra như thế đã xảy ra đối với các dự án tương tự như thế này". Ước tính này giúp bạn có "chế độ xem bên ngoài" ( http://wiki.lesswrong.com/wiki/Outside_view ), thoát khỏi sai lầm kế hoạch ( http://wiki.lesswrong.com/wiki/Planning_fallacy ).

Tiếp theo, hãy ước tính "Tôi chắc chắn 90% sẽ được thực hiện bằng X". Hãy rất, rất chắc chắn rằng bạn có nghĩa là chắc chắn 90%. Nói cách khác, bạn dự kiến ​​sẽ mất nhiều thời gian hơn dự toán này chỉ một lần cho mỗi mười dự án bạn làm.

Bây giờ chúng tôi có thể sử dụng ước tính đầu tiên của bạn làm ước tính xác suất 0,1% và ước tính thứ hai của bạn là ước tính xác suất 50% (theo mùa) và thứ ba là ước tính 90% của bạn, sẽ cho bạn một đường cong đẹp.

Giả sử các ước tính 0%, 50% và 90% của bạn là ngày 1 tháng 5, ngày 1 tháng 6 và ngày 1 tháng 8, thì đường cong ước tính của bạn sẽ trông giống như thế này:

     100 |                                  ......
         |                        ..........
% chance |                ........
of being |          ......
  done   |      ....
         |   ...
         |...
       0 +-----------------------------------------
          \           \           \           \
           May 1st     June 1st    July 1st    August 1st

Lưu ý cách tăng trưởng của xác suất chậm lại theo thời gian. Nếu ai đó hỏi bạn ước tính 99,9% trong kịch bản này, đó có thể là ngày 1 tháng 1 năm sau.


Cảm ơn câu trả lời. Tuy nhiên, phương pháp tôi đang sử dụng đã cho phép tôi thực hiện những gì bạn dường như đang đề xuất, tuy nhiên, nó cũng tính đến (gián tiếp, bằng cách sử dụng tỷ lệ phần trăm chính xác trong lịch sử) với thành công trong quá khứ của tôi với các ước tính của tôi để tạo ra tỷ lệ phần trăm ước tính tự tin mong muốn. Tuy nhiên, điều tôi đang hỏi là làm thế nào để kết hợp các nhiệm vụ bị bỏ lỡ vào độ chính xác lịch sử đó khi độ chính xác được tính toán cơ bản bằng việc tôi có hoàn thành một nhiệm vụ trong phạm vi tôi sử dụng cho ước tính ban đầu của mình hay không.
Andrew

@Andrew, nếu tôi hiểu bạn một cách chính xác, "các nhiệm vụ bị bỏ lỡ" được tính bằng xác suất dưới 100% được thực hiện tại một thời điểm nhất định. Nếu bạn đã thực hiện nhiều dự án như dự án hiện tại, đường cong của bạn sẽ nhanh chóng dốc từ 0% xuống (giả sử) 90%. Đó là bởi vì bạn rất tự tin về việc có ít nhiệm vụ bị bỏ lỡ. Nếu bạn có độ tin cậy thấp, thì độ dốc sẽ dần dần hơn nhiều. Điều đó đi cho bất kỳ lý do, không chỉ các nhiệm vụ bị lãng quên, mà cả các yếu tố rủi ro khác.
Benji York

Có, các nhiệm vụ bị bỏ lỡ được bao phủ trong tổng hợp bởi các phạm vi cấp độ nhiệm vụ, tính đến mức độ tin cậy mà tôi đưa ra. Tôi tính toán các mức đó bằng phương pháp McConnell đề xuất trong Chương 10 của Dự toán phần mềm, như tôi đã nói trước đây. Tôi chủ yếu tự hỏi làm thế nào tôi tính đến các nhiệm vụ bị thiếu hoặc thay đổi này trong báo cáo giờ TFS cũng như cách đưa vào những giờ này khi tính toán độ chính xác lịch sử của tôi.
Andrew

5

Trong một từ - dự phòng.

Dự phòng là số tiền bạn thêm cho "những thứ khác" - những thứ bạn không thể tính đến ở nơi khác trong ước tính của mình. SMc có bao gồm nó trong Dự toán phần mềm không? Tôi không thể nhớ và bản sao của tôi đang ở nơi làm việc (Tôi đang trong kỳ nghỉ trả lời điều này - tôi buồn như thế nào) ...

Dù sao, nói chung, có ba loại dự phòng mà tôi khuyên bạn nên xem xét:

1) Dự phòng rủi ro cụ thể - đó là nơi bạn xác định một rủi ro cụ thể và thêm một khoảng thời gian nhất định để chi trả cho khả năng vượt quá tiềm năng liên quan đến nó. Điều đầu tiên cần làm rõ ở đây là rủi ro là gì - đó là điều có thể xảy ra, điều này sẽ tác động tiêu cực đến dự án, nằm ngoài tầm kiểm soát của bạn .

Phần cuối cùng này rất quan trọng - đó không chỉ là "mọi thứ mất nhiều thời gian hơn tôi nghĩ", đó là "mô-đun lập lịch của bên thứ 3 mà chúng tôi đã nói rằng chúng tôi phải sử dụng vì đó là tiêu chuẩn của công ty có thể không theo nhiệm vụ". Cách bạn tính toán mức độ rủi ro cần thêm là bao nhiêu phần trăm cơ hội rủi ro có thể vượt qua được biểu thị dưới dạng thập phân (vì vậy 50% = 0,5), nhân với tác động của rủi ro đó (vì vậy, trong ví dụ nói rằng bạn cần phải viết CRON theo cách thủ công công việc thay vì sử dụng công cụ lên lịch và việc này sẽ mất 10 ngày, con số này là 10 ngày).

Vì vậy, nếu có 50% khả năng rủi ro của bạn sẽ vượt qua, và sẽ mất 10 ngày nỗ lực để hoàn thành nó nếu có, bạn thêm 5 ngày. Thêm tất cả các giá trị cho tất cả các rủi ro đã xác định trên dự án và thêm nó vào tổng số.

2) Shit xảy ra tình cờ - Mô tả hay nhất tôi từng nghe về nó, ngay cả khi nó không thanh lịch. Đó là một dự án CNTT, shit xảy ra. Nó không bao giờ đi theo cách bạn nghĩ nó sẽ, mọi thứ mất nhiều thời gian hơn, bị bỏ lỡ và như vậy. Nói chung, Dự phòng SH sẽ nằm trong khoảng từ 10% (tối thiểu tuyệt đối) và 25% (mặc dù có thể cao hơn) với 15% là về mức độ điển hình, mức độ chính xác phụ thuộc vào mức độ không chắc chắn và rủi ro chung (chuyển mục tiêu, yêu cầu không chắc chắn, v.v. ).

Nếu PM của bạn không chấp nhận SH Contingency (và có thể, anh ta có thể không có kinh nghiệm về các dự án CNTT hoặc là một người lạc quan mù quáng), thì chỉ cần thêm nó vào tất cả số tiền riêng lẻ. Nếu anh ấy biết những gì anh ấy đang làm, anh ấy sẽ có một bản ghi rủi ro của riêng mình và yêu bạn vì đã nghĩ về những thứ này. Chắc chắn nếu anh ta có bất kỳ loại bằng cấp PM nào (như PRINCE2), anh ta sẽ biết về nó.

3) Thay đổi dự phòng - Đây là nơi bạn khá chắc chắn rằng khách hàng sẽ đưa ra các thay đổi nhưng không muốn nó là một điểm gây tranh cãi. Thêm X ngày hoặc X% và nó sẽ được đưa vào nhóm để thay đổi khách hàng tăng. Có hai cách để đối phó với nó: hoặc bạn nói với họ về điều đó và đó là chi tiêu của họ hoặc bạn không nói với họ về điều đó.

Cách đầu tiên là tốt nhất nhưng cần một khách hàng có học thức và công bằng - mọi thứ được phân loại là thay đổi và anh ta có thể chi tiêu nồi của mình khi anh ta thấy phù hợp (dựa trên bạn ước tính mọi thứ khi họ đưa ra).

Cách thứ hai bạn đề cập rằng đó là một sự thay đổi nhưng đừng tìm cách tính phí anh ta thêm. Bạn phải lưu ý tất cả những thứ bạn chi tiêu cho nó vì vậy nếu nó đến mức nó hết và bạn phải quay lại với khách hàng và yêu cầu thêm thời gian hoặc tiền bạc và họ nói "giữ lấy, tôi ' m pay blah blah blah "bạn có thể chỉ ra tất cả những điều họ đã thay đổi mà bạn đã không tính phí như một dấu hiệu cho thấy bạn không hoàn toàn vô lý. Nó không phải lúc nào cũng hoạt động nhưng nó hầu như luôn củng cố sức mạnh của bạn trong các cuộc thảo luận.

Không ai trong số ba điều cụ thể bao gồm những điều bạn đã quên nhưng tôi nghĩ giữa chúng sẽ lấp đầy rất nhiều khoảng trống bạn có.


Cảm ơn về câu trả lời của bạn. Bạn nêu lên những điểm thú vị. Tôi đã kết hợp ba mục này theo nhiều cách khác nhau trong ước tính của mình. Loại đầu tiên của bạn, tôi đã tìm thấy, thường có thể được khớp nối và liên kết với một hoặc nhiều nhiệm vụ. Loại thứ hai chỉ được tích hợp vào các ước tính phạm vi cấp độ nhiệm vụ của tôi: Tôi không được phép có thêm một mục cho nó (chúng tôi đã tranh luận về nó và hiện tại, đó là chính sách đối với nhóm của chúng tôi). Đối với phần ba, các khách hàng nội bộ chấp nhận rằng các thay đổi sẽ tăng ước tính của chúng tôi và các khách hàng bên ngoài có văn bản đó, vì vậy chúng tôi không nên xem xét các thay đổi.
Andrew

Về việc McConnell có bao gồm các trường hợp dự phòng hay không, bản sao của tôi cũng đang hoạt động, vì vậy tôi phải kiểm tra. Tôi nghĩ những gì tôi đang hỏi là làm thế nào để tính toán các nhiệm vụ bị thiếu / thay đổi khi tính toán dữ liệu lịch sử để thông báo cho ước tính tiếp theo cũng như nơi để gán giờ trong TFS, vì một nhiệm vụ dự phòng thường không được phép trong nhóm của chúng tôi.
Andrew

0

Khi được yêu cầu ước tính cho một nhiệm vụ, hãy đưa ra ước tính cao cấp cho nhóm và ước tính cấp thấp cho chính mình, làm điều đó bạn sẽ luôn có thời gian sau khi hoàn thành nhiệm vụ để làm việc gì đó mà bạn có thể đã quên đề cập ở vị trí đầu tiên.


Cảm ơn câu trả lời. Toàn bộ phạm vi tôi đưa ra làm, có xu hướng cho phép tôi có đủ thời gian để thêm các nhiệm vụ bị lãng quên mà không bỏ lỡ ước tính cho toàn bộ dự án. Câu hỏi của tôi nói nhiều hơn đến việc sử dụng thông tin này trong quy trình tính toán mà tôi đang sử dụng từ cuốn sách McConnell.
Andrew

0

Bạn có lo ngại rằng bằng cách thêm các nhiệm vụ bổ sung, bạn sẽ làm lệch độ chính xác lịch sử của bạn? Hoặc bạn có nghĩ rằng không bao gồm các nhiệm vụ bổ sung sẽ làm lệch độ chính xác?

Tôi nghĩ rằng để tốt nhất cho dự án, các nhiệm vụ nên được đưa vào hệ thống theo dõi. Tôi chắc chắn rằng trưởng dự án sẽ có thể đưa ra một lời giải thích phù hợp cho ban quản lý về sự khác biệt ...


Tôi chỉ có thể đợi đến ngày mai và trực tiếp nói với bạn điều này. :) Tôi quan tâm nhiều hơn đến sự thiếu chính xác của lịch sử nếu không bao gồm các nhiệm vụ bổ sung. Rõ ràng, thiếu một nhiệm vụ trong quá trình ước tính nhiệm vụ là một "sai lầm" liên quan đến độ chính xác - nhưng con số chính xác nào? Cái tôi thực sự sử dụng theo nghĩa định lượng là liệu hiệu suất nhiệm vụ thực tế của tôi cho mỗi nhiệm vụ có nằm trong phạm vi dự đoán hay không. Một biện pháp khác, định tính hơn, là tần suất tôi đáp ứng các ước tính điểm đơn lẻ 50% tự tin của tôi. Quá xa hoặc dưới 50% và tôi nên điều chỉnh "phán đoán của chuyên gia" cho các ước tính 50% trong tương lai.
Andrew
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.