Vì bạn chưa quen với công nghệ có liên quan và không quen thuộc với cơ sở mã chất lượng kém hiện tại mà bạn sẽ phải làm việc, nên có thể ước tính có thể thay đổi ở một mức độ nào đó theo cả hai hướng. Nhưng hãy cho khách hàng biết về lý do sau :-P
Đầu tiên, liệt kê vô số thay đổi / tính năng mà khách hàng của bạn đã yêu cầu. Đối với mỗi yêu cầu, hãy xem xét và nghiên cứu mã nhỏ về cách thực hiện và kiểm tra nó. Bạn nên đầu tư thời gian này mà không hoàn trả trước khi đưa ra ước tính.
Thứ hai, tạo 3 cột để ước tính - trường hợp tốt nhất (xác suất 25%), trường hợp trung bình (50%), trường hợp xấu nhất (75%). Vì 2 lý do được đề cập trong đoạn đầu tiên, bạn có thể chọn ước tính trường hợp xấu nhất. Sau đó, bạn có thể thêm 20% thời gian đệm. Ví dụ, đối với một yêu cầu cụ thể, ước tính trường hợp tốt nhất của bạn là 2 ngày, trường hợp trung bình là 4 ngày và trường hợp xấu nhất là 5 ngày. Thêm 20% thời gian đệm, ước tính của bạn là 6 ngày.
Thứ ba, không đưa ra một điểm ước tính cố định, thay vào đó là một phạm vi. Đối với ví dụ trên, bạn có thể nói với khách hàng rằng ước tính là 4 đến 6 ngày. Khách hàng của bạn có thể nhấn mạnh vào ước tính cho toàn bộ danh sách các thay đổi. Trong trường hợp đó, bạn có thể thêm tối thiểu và tối đa phạm vi cho tất cả các yêu cầu. Sau đó cung cấp một ước tính cuối cùng trong phạm vi, giả sử 5 đến 6,5 tháng. Điều này có lợi thế sau: bạn có thể vượt quá ước tính cho một yêu cầu, nhưng có thể hoàn thành một yêu cầu khác trước đó. Tổng cộng, họ hủy bỏ lẫn nhau và ước tính cuối cùng giữ vững.
Thứ tư, khi bạn hoàn thành từng yêu cầu của người dùng và cung cấp tăng dần, hãy xem lại các ước tính trước đó của bạn cho từng yêu cầu. Đây là một quá trình liên tục và bạn nên điều chỉnh / tinh chỉnh dự toán khi bạn tiến hành dự án và kinh nghiệm của bạn phát triển. Nếu bạn thấy sự khác biệt giữa ước tính tinh chế và ước tính ban đầu của bạn vượt ngoài tầm kiểm soát, hãy ngồi ngay với khách hàng của bạn và thảo luận vấn đề.
Tôi đã học được những điều này từ cuốn sách "Ước tính phần mềm: Làm sáng tỏ nghệ thuật đen" của Steve McConnell. Tôi biết ơn anh ấy.