@Joe "Chúng tôi là một cửa hàng" Agile ", vì vậy tôi nhận thấy rằng chúng tôi phải điều chỉnh và những gì không, nhưng đôi khi sự thay đổi là lớn và không có gì tầm thường."
Nếu quy trình của bạn không cho phép bạn kiểm soát tốc độ thay đổi trong yêu cầu, quy trình của bạn không phải là nhanh nhẹn, mà là sự ngớ ngẩn. Agile không có nghĩa là "lấy bất cứ thứ gì theo cách của tôi."
Để kiểm soát thay đổi yêu cầu / creep bạn có thể áp dụng - trong quy trình của bạn - khái niệm rằng một yêu cầu không thay đổi (một khái niệm là trung tâm của Scrum.) Hãy coi một thay đổi yêu cầu là thay thế một yêu cầu cũ bằng một yêu cầu mới. Bạn phải có một yêu cầu tồn đọng và bạn phải có người dùng chọn những yêu cầu mà họ muốn thực hiện.
Bạn muốn X và Y trong hai tuần, nhưng đột nhiên bạn muốn Z. Chà, sau đó tôi có thể giao cho bạn cả ba trong 4 tuần. Hoặc tôi có thể cho một cặp (X và Z) hoặc (X và Y) hoặc (Y và Z) trong hai tuần và giao hàng còn lại sau đó. Chọn.
Đây là cách bạn đàm phán với khách hàng. Đây là cách bạn truyền đạt chi phí thay đổi yêu cầu. Nếu nhóm của bạn không có sức mạnh đó, bạn không ở trong một cửa hàng nhanh nhẹn và bạn không thể làm gì về điều đó. Nó thật tệ, nhưng đó là sự thật.
Trong trường hợp bạn có thể thương lượng, bạn phải theo dõi (với độ chính xác) thời gian cần thiết để thực hiện các yêu cầu và thay đổi yêu cầu. Đó là, bạn phải thu thập dữ liệu này từ các dự án trong quá khứ và hiện tại.
Bạn thu thập ước tính thời gian ban đầu và thời gian hoàn thành thực tế (ngoài các tài nguyên như số lượng nhà phát triển) cho mỗi yêu cầu (hoặc mô-đun bị ảnh hưởng bởi N yêu cầu). Tốt hơn hết, hãy ước tính kích thước của thay đổi yêu cầu / yêu cầu (về các dòng mã hoặc điểm chức năng trong các dự án và yêu cầu trong quá khứ.)
Giả sử bạn có một số liệu mà bạn có thể nói chuyện với người dùng. Bạn biết rằng một yêu cầu mới sẽ lấy, ví dụ, 1K dòng mã hoặc 10 trang web với trung bình 5 trường đầu vào mỗi (50 điểm chức năng).
Sau đó, bằng cách xem dữ liệu lịch sử cụ thể cho các dự án trước đây của bạn (một số theo dòng mã, một số theo trang web, một số theo điểm chức năng thực tế) và bạn có thể ước tính mỗi chi phí này theo thời gian hoàn thành tuyệt đối như thế nào. Đối với những người có đủ dữ liệu, bạn cũng có thể xác định những yêu cầu theo dõi số lượng người phát triển thực tế.
Sau đó, bạn sử dụng và bạn nói với khách hàng của bạn dựa trên dữ liệu lịch sử; bạn cho rằng thất bại của dự án có xu hướng tuân theo phân phối theo cấp số nhân; và sau đó bạn được trang bị các đối số sau đây cho khách hàng của mình:
Dựa trên dữ liệu từ các dự án trong quá khứ và hiện tại của chúng tôi và các tài nguyên có sẵn, yêu cầu bạn yêu cầu sẽ đưa ra
X lượng thời gian để hoàn thành với xác suất thất bại 25% (hoặc 75% thành công)
1,5 * X lượng thời gian để hoàn thành với 5% thất bại (hoặc 95% thành công)
Lượng thời gian 0,5 * X để hoàn thành với 95% thất bại (hoặc 5% thành công)
Xác suất thất bại là một hàm của lượng tài nguyên thời gian thường là 95%, 25% và 5% (giống như một bản phân phối theo cấp số nhân.) Bạn truyền tải thông điệp rằng một lượng cơ sở nhất định mang lại cơ hội thành công khá cao (nhưng có rủi ro thực sự ). 1,5 trong số đó có thể mang lại gần như một cơ hội thành công nhất định với rủi ro tối thiểu, nhưng ít hơn nhiều so với điều đó (0,5 trong số các đảm bảo ban đầu gần như thất bại nhất định.)
Bạn để họ tiêu hóa về điều đó. Nếu họ vẫn đi theo đề xuất rủi ro ( thực hiện ngày hôm qua! ) Thì ít nhất bạn có bằng văn bản mà bạn đã nói với họ như vậy. Nếu có hy vọng cho nhóm của bạn không chỉ nhanh nhẹn mà giống như kỹ thuật, thì khách hàng có thể cân nhắc nghiêm túc về số của bạn và lên lịch cho các yêu cầu này và tương lai.
Công việc của bạn là một kỹ sư để giải thích bằng kỹ sư, các điều khoản có thể kiểm chứng và rõ ràng rằng yêu cầu thay đổi không phải là một bữa ăn miễn phí.