Một số lời khuyên từ mặt tối từ một người học cách khó khăn.
Các yêu cầu không rõ ràng. Không ai đã thực hiện một phân tích chuyên sâu về tất cả các tác động.
Đừng ước tính vào thời điểm này. Người ta không ước tính có bao nhiêu binh sĩ cần thiết để giành chiến thắng trong một trận chiến mà không có manh mối về số lượng kẻ thù. Dự toán được thực hiện sau khi trinh sát. Điều này là trừ khi bạn đã chiến đấu với kẻ thù này.
Tính năng mới có thể sẽ phá vỡ một số giả định bạn đã thực hiện trong mã của mình và bạn bắt đầu nghĩ ngay đến tất cả những điều bạn có thể phải cấu trúc lại.
Đây là trách nhiệm của bạn để tham gia trừ khi bạn mong đợi người khác có chuyên môn về lĩnh vực này.
Bạn có những thứ khác để làm từ các bài tập trước đây và bạn sẽ phải đưa ra một ước tính có tính đến công việc khác đó.
Tương tự như trên, ngay cả đối với công việc không dự đoán được tạo bởi một người bạn đồng đội bên cạnh bạn với quy trình kiểm tra gần như không tồn tại khiến mã của bạn bị trục trặc mà bạn không thể dự đoán trước một cách hoàn hảo. Đó là một dự báo thời tiết.
Định nghĩa 'xong' có lẽ không rõ ràng: Khi nào nó sẽ được thực hiện? 'Xong' như vừa hoàn thành mã hóa nó, hay 'xong' như trong "người dùng đang sử dụng nó"?
Hiểu yêu cầu kết thúc của người dùng ở đây, suy nghĩ như một người dùng. Đừng làm những gì đồng nghiệp của bạn làm nếu họ ước tính một cái gì đó sẽ được "thực hiện" chỉ vì một số chức năng cơ bản với quy trình làm việc của barebones mà không người dùng nào có thể chịu đựng được là những gì họ cho là "hoàn thành" . Hãy nghĩ về nó từ quan điểm người dùng, bởi vì đó là tất cả các khách hàng bạn đang ước tính sẽ hiểu. Ước tính theo yêu cầu hoàn chỉnh của người dùng, không phải theo yêu cầu kỹ thuật của barebone. Và nhận ra rằng khách hàng của bạn yêu cầu ước tính sẽ hoàn toàn không chính xác ở đây về cách họ diễn đạt mọi thứ và hiểu các khía cạnh kỹ thuật của những gì bạn nói.
Cho dù bạn có ý thức như thế nào về tất cả những điều này, đôi khi "niềm tự hào của lập trình viên" khiến bạn cho / chấp nhận thời gian ngắn hơn so với ban đầu bạn cho rằng nó có thể mất. Đặc biệt khi bạn cảm thấy áp lực của thời hạn và kỳ vọng quản lý.
Đừng làm điều này! Bạn có vẻ như là một nhân viên chăm chỉ tự động viên và có thể là một người dễ dàng nhượng bộ.
Vấn đề ở đây là: giả sử bạn và Joe ước tính thời gian cho cùng một nhiệm vụ (nhưng giữa hai nhân viên riêng biệt, không biết cả hai ước tính cùng một lúc). Bạn ước tính dũng cảm, "một tuần" . Bạn nghĩ không sao, bạn sẽ làm việc hơn 100 giờ một tuần, không được trả lương ngoài giờ. Bây giờ bạn trễ ba ngày.
Trong khi đó, Joe ước tính 5 tháng. Bạn nghĩ rằng điều này là vô lý, bạn nghĩ rằng bạn có thể thực hiện điều này trong một tuần. Joe làm việc bao nhiêu? 10 giờ một tuần? ... ngoại trừ anh ấy hoàn thành đúng hạn trong đúng 5 tháng.
Đoán xem ai được coi là kẻ ngốc? Đúng vậy, bạn. Joe có vẻ như là một công nhân tuyệt vời, bạn dường như không đáng tin cậy. Nó không quan trọng đến mức bạn có thể đạt được kết quả thậm chí còn tốt hơn trong ~ 7% thời gian Joe đã làm. Vấn đề là bạn được nghỉ 3 ngày so với ước tính một tuần.
Không bao giờ sai ở phía ước tính chặt chẽ hơn. Err về phía ước tính lỏng lẻo. Có một danh tiếng để xây dựng tại công ty của bạn và nó sẽ không dựa trên độ dài của các ước tính của bạn gần bằng độ chính xác của các ước tính của bạn. Thật dễ dàng để chính xác với một ước tính quá dài, bạn chỉ cần có thêm thời gian để giải quyết vấn đề và giải quyết nó tốt hơn. Một ước tính quá ngắn không có phòng thở, bạn sẽ gặp nó một cách tuyệt vọng hoặc bạn bị lừa.