2009-07-08 22 views
7

Khi ước tính công việc, làm cách nào để thoát khỏi độ bám của Hofstadter's law?Làm thế nào để đối phó với pháp luật của Hofstadter?

+13

Bằng cách xem xét luật của Hofstadtler, ngay cả khi sử dụng luật của Hofstadtler. – amischiefr

+0

Nếu đó là luật, chắc chắn bạn không thể? –

+3

Tôi đang bỏ phiếu để đóng câu hỏi này là chủ đề không chính vì nó không phải là về lập trình. –

Trả lời

14

Nếu bạn có thể về mặt chính trị: Ước tính trong khối nhỏ, làm việc trong lần lặp nhỏ, và tập trung sự chú ý vào những gì gây ra độ lệch so với ước tính để thực hiện dự toán tiếp theo tốt hơn.

Một trong những nguyên nhân chủ yếu của dự toán xấu trong kinh nghiệm của tôi là thiếu kinh nghiệm thực tế sử dụng kiến ​​trúc lên kế hoạch cho dự án. Bằng cách điều chỉnh các ước tính khi mọi thứ trở nên cụ thể hơn và rõ ràng các ước tính trở nên tốt hơn theo thời gian.

Nguyên nhân chính khác của ước tính xấu là ước tính không có thật. Ước tính được giữ giả tạo thấp để giành được giá thầu. Cách duy nhất một công ty tư vấn có thể phá vỡ chu kỳ đó là đưa ra các ước tính tốt và giành được đủ các dự án và phân phối các ước tính để kiếm được danh tiếng rằng họ đạt được ước tính của họ. Đủ khách hàng sẽ tôn trọng điều đó để tạo ra một doanh nghiệp hợp lý, nhưng việc xây dựng nó sẽ khó khăn.

+1

Điều đầu tiên "nếu" là một điều kiện rất lớn. Tôi đã ở hai công ty tư vấn xây dựng (và giữ) danh tiếng để ước lượng chính xác cho các dự án thương mại, và đó là một lợi thế lớn. Thật không may, tôi đang thực hiện công việc tư vấn của Chính phủ hiện nay và ước tính thấp hơn không thực tế là định mức trong toàn ngành. – mpez0

7

Luật Hofstadter được không có nghĩa là để được xem xét nghiêm túc --- nếu nó là đúng với lá thư, mỗi nhiệm vụ sẽ có được một số lượng vô hạn của thời gian nếu bạn mất Luật Hofstadter của vào tài khoản.

+1

có thể điều đó có nghĩa là chúng ta không nên làm gì cả ... – LB40

+0

Vì vậy, bạn không thấy rằng nó có một số ý nghĩa với nó? – ripper234

+2

Nó vẫn có một số ý nghĩa, nhưng chỉ trong đó đó là một sự hài hước trên thực tế là chúng tôi phát triển là lousy tại thời gian ước tính. Bạn có thể đưa nó vào xem xét, nhưng mù quáng tăng ước tính thời gian không phải là tất cả những gì tốt hơn nhiều so với ước tính thời gian sai lầm ban đầu. –

1

cơ sở cho bạn ước tính trên hiệu suất trước, không phải trên tốt nhất tình huống như vậy. Điều này đòi hỏi bạn phải theo dõi thời gian dành cho các dự án của bạn. Tôi không quan tâm nếu bạn "biết" rằng nó sẽ chỉ mất "6 tuần" để hoàn thành, nếu nó đã cho bạn 3 tháng để hoàn thành một dự án tương tự thời gian qua, nó có thể sẽ đưa bạn 3 tháng trong thời gian tới.

0

1 cho @Yishai - một trong những lợi ích của một phương pháp nhanh nhẹn như scrum là người thực sự nhận được phản hồi về tính chính xác của dự đoán của họ.

Bạn sẽ không bao giờ xảy ra để có được tốt hơn ở một cái gì đó nếu bạn không bao giờ biết nếu bạn sai rồi ...

+0

Có lẽ bạn không nhận được toàn bộ điều StackOverflow. Bạn có thể nhấn mũi tên bên cạnh câu trả lời để +1 ai đó và nhận xét về câu trả lời của họ nếu bạn cần thay vì gửi câu trả lời mới. – JohnFx

+1

Và tôi đã làm, nhưng muốn thêm đề cập scrum, và mặc dù nó xứng đáng với câu trả lời của riêng mình. – chris

0

Tôi thích phương pháp này:

  1. Hãy ước tính trung thực của các nỗ lực cần thiết cho nhiệm vụ.
  2. Áp dụng hệ số cho ước tính. Ít nhất 1,5 có lẽ là 2,0. Với thời gian so sánh nỗ lực thực tế với nỗ lực ước tính, bạn sẽ có thể tính toán số nhân thực.

Thu thập các nỗ lực ước tính và thực tế là chìa khóa để cải thiện ước tính của bạn.

0

ước Agile luôn luôn sử dụng "giờ lý tưởng" mà ngầm sẽ đưa vào luật tài khoản Hofstadter của. Vì vậy, bạn không cần phải fudge.

Nếu bạn đang trả lời như một nhân viên ...

"Gee, ông chủ, Trong một thế giới hoàn hảo nó sẽ mất X ngày. Hãy thêm một đệm với nó và tôi sẽ làm tất cả Tôi có thể để mang đến cho bạn trong khoảng thời gian đó. Nếu thay đổi ước tính tôi sẽ cho phép bạn biết ngay lập tức. "

Đó là âm nhạc đến tai của một ông chủ!

Nếu bạn trả lời là chủ doanh nghiệp ...

Bạn chỉ đưa ra ước tính cho khách hàng khi được sao lưu vào một góc. Sau đó, bạn sử dụng những ngày lý tưởng với tuyên bố từ chối trách nhiệm rõ ràng và sẵn sàng điều chỉnh vì bạn biết luật của Hofstadter.

5
  1. Ước tính thời gian cần thiết để viết mã.
  2. Nhân với pi.
  3. Hãy ngạc nhiên trước mức độ thường xuyên xảy ra trong bao lâu.

(Điều này cũng không phải là để được thực hiện như một phương pháp khoa học, nhưng nó là một cách khác để thể hiện thế nào là khó để ước tính một cách chính xác thời gian. Tôi thực sự sử dụng nó đôi khi, mặc dù ...)

:)

Chỉnh sửa:
Phương pháp khoa học hơn một chút: Chỉ định thời gian cho thời gian tối thiểu và tối đa tuyệt đối cho một tác vụ, ví dụ như chắc chắn sẽ mất từ ​​5 đến 30 giờ. (Chia thành các phần phụ để có thể thu hẹp khoảng thời gian một chút.) Bạn nhận được một khoảng thời gian rất rộng, nhưng ít nhất nó đáng tin cậy hơn một guesstimate.

+0

Điều này thường làm việc cho tôi, mặc dù tôi đã sử dụng một số cao hơn. –

+0

Thú vị. Tôi sẽ bắt đầu thử điều này, chỉ để so sánh với thời gian dự án đã hoàn thành. Bạn có thể là một cái gì đó. =) –

+0

Thật buồn cười, trong nhiều năm kinh nghiệm của tôi ước tính một hệ số nhân 3x là đáng ngạc nhiên chính xác cho cả bản thân tôi và những lập trình viên khác đã làm việc cho tôi. Có lẽ nó là một số hằng số phổ quát. – JohnFx

4

Trong khi "Hofstadter của Luật" là một chút lưỡi-in-cheek, có một vài hoạt động có thể giúp bạn, đặc biệt đối với đầu-pass/dự toán hạng mục lớn:

  • Ước tính trong tương kích cỡ. Có nghĩa là bạn không nói rằng một mục mất X thời gian, bạn nói rằng một mục A lớn gấp đôi mục B và mục B đó lớn gấp 4 lần mục C.

  • Thu thập dữ liệu từ trước ước lượng vòng và sử dụng nó như là một đường cơ sở. Vì vậy, khi bạn ước lượng dự án và chú ý rằng mục A lớn bằng mục B từ lần lặp lại/dự án trước đó và bạn biết rằng mục B đã mất 2 ngày, bạn biết rằng mục A có nhiều khả năng sẽ nhận dài

  • Sử dụng "trí tuệ của đám đông" để có ước tính chất lượng cao hơn. Tôi đã sử dụng Planning Poker trong một vài dự án và kết quả khá tốt.

Nếu bạn muốn tìm hiểu thêm về vấn đề này bạn có thể bắt đầu bằng cách trình bày hồ Mike Cohn của (Part 1Part 2) và/hoặc đọc book mình. Trong khi nó không phải là kết thúc tất cả, được tất cả các ước tính, ông hiện nay một số thực hành tốt và tốt nhất của tất cả, lý do đằng sau các thực hành.

0

Ước tính là một nghệ thuật, như bạn biết và có một nghệ thuật phụ là nghệ thuật ước tính dự phòng. :) Để ước tính đúng dự phòng (thường là một% của tổng dự toán), người ta phải hiểu risks and mitigations. Về cơ bản, bạn nhân rủi ro của một cái gì đó xảy ra với những thiệt hại nó có thể làm để đến với một yếu tố nguy cơ. Sau đó, bạn tổng hợp tất cả các yếu tố rủi ro và ước tính tổng rủi ro của mình. Dự phòng phải dao động từ 15% cho các dự án rủi ro rất thấp (tôi không bao giờ thấp hơn 15% dự phòng) đến 50% vì rủi ro rất cao (đó là kinh nghiệm của tôi rằng rất ít khách hàng sẽ trừ dự toán dự phòng cao hơn 50%).

0

Luật của Hofstadter chỉ là một hàm ý khác về cách tự tham chiếu khét tiếng! ..... sự hài hước tinh tế có tác dụng rất lớn.Trong tầm nhìn xa, luật này xác nhận rằng mọi luật/nguyên tắc/tiên đề được cấu trúc bởi logic, là không đầy đủ (Godel thích), do đó thậm chí đưa các luật như vậy vào mối quan tâm, logic có thể không bao giờ hoàn thành. Cảm giác vô cùng là một lần chơi từ nghịch lý của Zeno (rùa so với Achilles) .... vô hạn thời gian cho Achilles để hoàn thành cuộc đua .... vv .... đây là những minh họa về cái ác toàn năng của tự tham chiếu mà gây ô nhiễm tất cả cấu trúc hợp lý affine.

3

Tôi đã sử dụng xúc xắc. Công khai. Trước mặt người quản lý của tôi. Thông thường tôi sử dụng 3 con xúc xắc tiêu chuẩn sáu mặt.

Boss: "Mất bao lâu?"

Tôi: (cuộn) "Khoảng 11 ngày".

Boss: "Không, nghiêm túc".

Tôi: "Ồ, nghiêm túc." (cuộn) "Khoảng 7 ngày".

Tôi cũng đã từng có một áp phích trên tường của tôi cho biết "Thời hạn thích thú cho tôi". Lấy từ đó những gì bạn sẽ làm.

+0

Vui nhộn, đơn giản và đơn giản! ;) –

+0

Đúng vậy. Tất nhiên tôi đã làm điều này trước một người quản lý tôi biết rất, rất, rất tốt. Anh ấy đang làm toàn bộ hành động nghiêm khắc trong khi cố gắng mắng tôi. Nó đã thất bại. –

Các vấn đề liên quan