Tôi nghĩ rằng câu trả lời của Frank và Encaita bao gồm rất nhiều nhưng có một số điều cần xem xét thêm:
Tại sao sử dụng điểm câu chuyện
Mục đích của việc ước tính với các điểm câu chuyện là đưa ra sự phức tạp tương đối của việc phát triển các tính năng cho ứng dụng của bạn. Một cách đơn giản để suy nghĩ về nó là lấy một câu chuyện bạn có trong lần chạy nước rút sắp tới, ví dụ như thay đổi url. Bạn biết điều này đơn giản về độ phức tạp và đã xác định rõ các tiêu chí chấp nhận để cả nhóm đồng ý rằng ngay cả khi thử nghiệm nó là 1 (sử dụng thang đo Fibo).
Câu chuyện tiếp theo được ước tính là tổng hợp một tập hợp dữ liệu người dùng và trực quan hóa nó ở mặt trước. Bây giờ là một nhà phát triển, bạn biết ngay điều này phức tạp hơn nhiều so với việc thay đổi một url. Bạn thảo luận về câu chuyện và các tiêu chí chấp nhận và bạn có rất nhiều câu hỏi và có thể thấy một số giải pháp tiềm năng để làm điều này. Các nhà phát triển và QA khác cũng đồng ý rằng nó rất phức tạp. Vì vậy, tất cả các bạn đồng ý rằng đó là một câu chuyện 34 điểm. Điều đáng chú ý là thang đo Fibo cũng cho phép bạn chỉ ra mức độ tin cậy của bạn đối với thực tế - khoảng cách giữa các con số càng lớn cho thấy mức độ tin cậy của bạn trong ước tính càng ít
Tại thời điểm này, chủ Scrum của bạn nên nhảy và nói rằng đây là một câu chuyện quá lớn và cần được chia thành các câu chuyện nhỏ ít phức tạp hơn. Bạn có thể tiếp cận điều này bằng cách thực hiện cái được gọi là SPIKES - đây chỉ là một thời gian dành để điều tra một cái gì đó. Vì vậy, với ví dụ này, bạn và các nhà phát triển khác đồng ý rằng bạn muốn 4 giờ để thảo luận và điều tra các giải pháp kỹ thuật có thể.
Để cắt ngắn một câu chuyện dài, bạn chia câu chuyện lớn đó thành bốn câu chuyện khác gồm 5, 8, 8 và 13 điểm. Không nhớ rằng các ước tính này đều liên quan đến độ phức tạp tương đối - chúng không phải thêm vào ước tính ban đầu cộng với bạn có thêm thông tin ngay bây giờ để ước tính chính xác hơn.
Sau đó, bạn đồng ý với tư cách là một nhóm cho lần chạy nước rút này, bạn sẽ nhắm đến việc hoàn thành câu chuyện 13 điểm, một câu chuyện 8 điểm cộng với thay đổi url 1 điểm mà bạn đã xác định. Vậy tổng cộng có 22 điểm. Lần chạy nước rút tiếp theo bạn nhận được 27 điểm, lần chạy nước rút sau bạn có được 18 điểm. Sau 3 lần chạy nước rút, bạn có thể bắt đầu có được sự tự tin về vận tốc của mình (vận tốc là khối lượng công việc mà nhóm của bạn có thể hoàn thành trong một lần chạy nước rút). Để có được vận tốc lấy trung bình của các lần chạy nước rút trước đó. Vì vậy, trong ví dụ này, trung bình là (22 + 27 + 18) / 3 = 22.3, làm tròn nó đến gần nhất trên thang Fibo là 21.
Bây giờ cho lần chạy nước rút tiếp theo chỉ nhằm mục đích đạt được 21 điểm.
Đừng gác máy khi ước tính điểm câu chuyện của bạn chính xác - đó không phải là một khoa học chính xác. Bạn biết một thay đổi url ít phức tạp hơn nhiều so với tổng hợp dữ liệu vì vậy chỉ cần chấm điểm cho phù hợp.
Cộng với việc thảo luận về những điều này như là một đội là tốt. Nhìn lại các ước tính của bạn trong quá trình xem xét nước rút và thảo luận xem bạn có hài lòng với chúng hay không và sau đó đưa thông tin này vào phiên lập kế hoạch nước rút tiếp theo.
Ước tính toàn đội
Toàn đội phải thống nhất một ước tính duy nhất cho mỗi câu chuyện. Một tính năng không được thực hiện cho đến khi nó sẵn sàng sản xuất. Chỉ cần nhận được mã được viết là không có nghĩa là được thực hiện. Theo kinh nghiệm của tôi, các nhóm Scrum đã hiệu quả hơn rất nhiều khi làm việc theo nhóm. Lấy một ví dụ về đội ngũ tôi đang làm việc với ngay bây giờ. Khi tôi tham gia, họ đã thực hiện tất cả các cuộc họp chạy nước rút và lập kế hoạch chơi bài nhưng trong quá trình chạy nước rút, quy trình là 1. BA / Chủ sở hữu sản phẩm xác định các yêu cầu là câu chuyện với tiêu chí chấp nhận và kiểm tra chấp nhận 2. Họ trao các yêu cầu này cho nhà phát triển sau đó viết mã 3. Nhà phát triển có mã được sáp nhập vào nhánh phát triển để QA kiểm tra 4. Kiểm tra QA sau đó họ bắt đầu đặt câu hỏi và kiểm tra không thành công để nó quay trở lại phát triển.
Cái gì còn thiếu ở đây? Không có đủ thảo luận trước và mỗi thành viên trong nhóm chỉ nhìn thấy nhiệm vụ của riêng họ. Bây giờ BA / PO, nhà phát triển và QA gặp nhau trước khi viết bất kỳ mã nào để thảo luận chi tiết các yêu cầu và đặt câu hỏi trước, sau đó tiếp tục thảo luận trong suốt giai đoạn nước rút. Điều này là hiệu quả hơn nhiều và dẫn đến các giải pháp chất lượng tốt hơn.
Lập kế hoạch poker giúp quá trình này bởi vì nó buộc nhóm phải thảo luận về tính năng và đồng ý, với tư cách là một nhóm, việc phân phối tính năng đó phức tạp như thế nào. Trong phát triển phần mềm truyền thống, Project Manager chịu trách nhiệm phân phối dự án nhưng bất kỳ ai có kinh nghiệm về cách tiếp cận đó đều biết rằng nó không hoạt động bởi vì thường thì mọi người không chịu trách nhiệm trong việc phân phối ứng dụng. Trong Agile, bạn không cần người quản lý dự án vì nhóm chịu trách nhiệm toàn bộ việc phân phối ứng dụng.
Dự toán thời gian
Quan điểm của tôi đã làm việc với các nhóm ước tính thời gian cho các nhiệm vụ và các nhóm chỉ thực hiện các điểm bắt đầu câu chuyện là KHÔNG ĐƯỢC THỰC HIỆN THỜI GIAN! Họ thực sự chỉ là một sự lãng phí thời gian. Chúng không chính xác như các điểm câu chuyện vì chúng dành riêng cho các cá nhân không phải là nhóm và mỗi cá nhân sẽ có một ý tưởng khác nhau về ước tính thời gian (đưa vào ngọn lửa).
Điểm câu chuyện chấp nhận rằng mọi thứ tức là yêu cầu, thay đổi mọi lúc nên bạn thực sự cần một chỉ số về những gì nhóm có thể hoàn thành trong một lần chạy nước rút.
Khi bạn đã hiểu về vận tốc, bạn có thể đo thời gian giao hàng của mình vì bạn biết những gì bạn có thể hoàn thành trong mỗi lần chạy nước rút, ví dụ cứ sau hai tuần bạn biết những tính năng nào có thể được cung cấp. Chủ sở hữu sản phẩm và chủ sở hữu sản phẩm của bạn sẽ có các phiên ước tính để xem trước các lần chạy nước rút trong tương lai sau đó bạn có thể nhận được một chỉ số về số lượng công việc bạn sẽ hoàn thành trong vài tháng tới. Điều này cho phép chủ sở hữu sản phẩm đưa ra quyết định ưu tiên về những tính năng cần có trong ứng dụng cuối cùng.
Tôi đã có các nhà phát triển yêu cầu chúng tôi ước tính thời gian cho các nhiệm vụ để lập kế hoạch nhưng tôi thực sự không đồng ý với cách tiếp cận này (thực tế tôi không đồng ý với cách tiếp cận này) bởi vì nó không chính xác, ví dụ như điều này sẽ khiến tôi mất 4 giờ thực sự có ý nghĩa gì: một nhà phát triển có thể chỉ bao gồm thời gian cho nhiệm vụ, người khác có thể thêm thời gian để pha trà!
Ước tính thời gian luôn được trao cho người khác cho mục đích báo cáo và nó cũng nhấn mạnh đến các yếu tố riêng lẻ trong việc cung cấp một tính năng so với toàn bộ nỗ lực của nhóm.
Ước tính không phải là vấn đề lớn nhất
Bên cạnh đó, việc tìm ra ước tính không phải là vấn đề lớn nhất mà tôi nghĩ các đội phải giải quyết. Điều quan trọng nhất là làm việc cùng nhau như một đội để hoàn thành công việc trong suốt giai đoạn nước rút, để bạn không bàn giao mọi thứ để thử nghiệm vào ngày cuối cùng. Bạn muốn thấy một loạt các tính năng ổn định trong suốt 2 tuần nước rút. Đội ngũ năng động tôi đã giải thích ở trên là một phần lớn của điều này. Ước tính điểm câu chuyện sẽ giúp bạn lập kế hoạch cho việc này vì bạn sẽ thấy những câu chuyện lớn cần chia thành những câu chuyện nhỏ hơn có thể được đưa vào thử nghiệm thường xuyên.