Đây là một chủ đề phức tạp, và có những cuộc tranh luận thường xuyên về chủ đề này. Tôi không thích khái niệm ý kiến "kinh điển" về vấn đề này: có nhiều ý kiến khác nhau có giá trị. Nhưng có những giá trị, nguyên tắc và thực tiễn hỗ trợ nên hướng dẫn cách tiếp cận.
Sau đây là dựa trên ý kiến của riêng tôi làm việc với các nhóm scrum trong hơn 10 năm. Nhưng đó chỉ là ý kiến của tôi.
Điểm câu chuyện như một phương pháp dự báo Mục đích ban đầu của các điểm câu chuyện là tìm ra một phương pháp nhanh chóng để ước tính nỗ lực với mục đích dự báo những gì một nhóm có thể hoàn thành trong một khoảng thời gian. Một số trạng thái "độ sáng" cho biết các điểm chỉ được sử dụng để dự báo phạm vi dài hạn (ví dụ: trên một bản phát hành) và không xác định công suất ở cấp độ nước rút. Ngoài ra, khái niệm là các đội đang áp dụng "kích thước tương đối" dựa trên các giá trị lịch sử (Effort X tương tự như Effort B, được 3 điểm). Điều này tăng tốc quá trình ước tính để các nhóm không phải chia nhỏ công việc trong tương lai thành các gói công việc chi tiết và áp dụng hàng giờ cho tất cả các nhiệm vụ. Các nhóm hiệu suất cao cố gắng phát triển tất cả các công nhân kỹ thuật thành các thành viên rất có năng lực ở các cấp độ kỹ năng tương tự. (Khái niệm này sẽ được khám phá nhiều hơn ở điểm số 4) Khi đạt được điều này, thì mức độ kỹ năng cá nhân thực sự không phải là một biến số trong kích thước. NHƯNG: Thường mất khá nhiều thời gian và nỗ lực phối hợp để đạt được mục tiêu đó. VẬY ... chúng ta phải làm gì trước khi đến đó?
Giờ làm việc xác định khả năng chạy nước rút: Theo cùng một "ngôi sao sáng" nói rằng các điểm được sử dụng để dự báo dài hạn, họ cũng đề xuất rằng Giờ nhiệm vụ được sử dụng để xác định khả năng chạy nước rút, thay vì điểm. Theo tôi, điều đó cũng tốt, nhưng tôi sẽ nói rằng khi tôi đã giúp các đội huấn luyện viên "Hiệu suất cao", các kỹ năng san bằng của họ trung bình đến nơi họ có thể xác định chính xác những gì họ có thể hoàn thành trong lần chạy nước rút chỉ bằng Story Points . Một lần nữa, đó có thể là một mục tiêu mà chúng tôi phấn đấu, nhưng các đội mới hơn chưa sẵn sàng cho điều đó. Do đó, bạn có thể tìm thấy trong một lần chạy nước rút một Câu chuyện với 2 điểm có 12 giờ nỗ lực và một điểm khác với 25 giờ nỗ lực. Vậy bạn làm gì? Một số người mà tôi gọi là "những người theo chủ nghĩa thuần túy" sẽ nói rằng kích thước Câu chuyện (tính theo điểm) nên không theo thời gian. Những người khác không đồng ý. Đọc qua logic trên mục số 3 và xem những gì bạn nghĩ.
- Kể chuyện theo sự đồng thuận: Áp dụng khối lượng, ẩn số, độ phức tạp, kiến thức
Vì vậy, các nhóm xem xét một phần công việc và cần thống nhất về các điểm sẽ là ủy quyền cho Mức độ nỗ lực. Đúng? Giả sử rằng tất cả các kỹ năng đều bình đẳng, thì sự đồng thuận là dễ dàng đạt được. Nhưng thường thì các đội có một anh chàng là một bậc thầy về Java, một người khác không giỏi về Java (có thể cô ấy là người C # hoặc .Net hoặc Cobol và đang học Java). Vì vậy, nhiệm vụ X cho Bob rất đơn giản. Đối với Jane, điều đó khó khăn hơn.
Các nhóm Agile cố gắng thúc đẩy quyền sở hữu mã tập thể và phát triển / mở rộng chuyên môn. Vì vậy, chúng tôi thường không phân công câu chuyện cho mọi người dựa trên chuyên môn của họ: chúng tôi thích các nhóm cùng nhau làm việc trên các câu chuyện và học hỏi cùng nhau. Điều này phù hợp với khái niệm "làm chậm để tăng tốc": nếu chúng ta dành thời gian để cho Jane trải nghiệm với Java, trong khi điều này có thể làm chúng ta chậm lại, sau này chúng ta sẽ có nhiều nhà phát triển Java có năng lực hơn. Trên thực tế, nếu chúng ta chỉ có MỘT chuyên gia Java và mọi người làm việc trên các lĩnh vực chuyên môn của riêng họ, chúng ta sẽ tạo ra một tình huống có nhiều "điểm thất bại" tiềm năng. Điều gì xảy ra trong giai đoạn nước rút khi 90% công việc là Java, nhưng Bob (chuyên gia Java của chúng tôi) bị ốm hoặc đang trong kỳ nghỉ? Bằng cách mở rộng các kỹ năng, chúng tôi loại bỏ các tắc nghẽn tiềm năng và giảm rủi ro. Với ý nghĩ đó: Khi nhóm nghiên cứu xem xét một câu chuyện, họ nên có một vài khái niệm trong đầu khi định cỡ. Bạn có thể nghĩ về chữ viết tắt Vucks để ghi nhớ điều này.
Khối lượng: Một số nỗ lực khá đơn giản, nhưng đòi hỏi một khối lượng lớn các nhiệm vụ lặp đi lặp lại. (Tôi đã có một anh chàng phải sao chép và định dạng lại hơn 50 bảng, người nói rằng đó là 1 điểm vì nó đơn giản. Nhưng khi suy nghĩ, nhóm đã nhận ra rằng trong khi nó dễ dàng, nó đã tốn thời gian và có một khối lượng lớn các bảng để được di chuyển và tối ưu hóa. Vì vậy, chúng tôi đã phải điều chỉnh lại điểm do khối lượng công việc)
Những điều chưa biết: Đôi khi chúng tôi nghĩ rằng chúng tôi biết phải làm gì, nhưng chúng tôi cũng xác định một số điều chưa biết - những điều này đại diện cho RỦI RO . Và điều này ngụ ý rằng chúng tôi có thể gặp phải các sự cố không mong muốn mà chúng tôi phải giải quyết, thiết kế lại hoặc thử một giải pháp khác.
Độ phức tạp: Điều này là khá rõ ràng. Một số giải pháp phức tạp về mặt kỹ thuật. Chúng tôi biết chính xác những gì cần làm, nhưng nó đòi hỏi chuyên môn kỹ thuật. Sự phức tạp cũng tiềm ẩn một số rủi ro, phải không? Vì vậy, ngay cả khi tất cả chúng ta đều có các kỹ năng như nhau, sự phức tạp về kỹ thuật ngụ ý rằng chúng ta có thể gặp phải những thách thức không lường trước được. Vì vậy, chúng tôi có thể làm cho câu chuyện này lớn hơn.
Kiến thức: Chúng ta có THỰC SỰ biết những gì chúng ta đang giải quyết không? Đôi khi khách hàng không hoàn toàn rõ ràng về giải pháp họ muốn và chúng tôi đang thử nghiệm một chút. Hoặc có lẽ chưa ai từng thực hiện giải pháp này (công nghệ mới chưa từng được sử dụng trước đây) và vì vậy chúng tôi không biết những gì chúng tôi không biết.
Theo tôi, mỗi một trong những cân nhắc này thực sự là một proxy cho thời gian kéo dài. Câu chuyện dễ, nhiều âm lượng? Sẽ mất nhiều thời gian hơn, hoặc chúng ta cần chia câu chuyện. Không biết? Thêm rủi ro, nghiên cứu, thử nghiệm, có thể mất nhiều thời gian hơn hoặc chúng ta cần phải chia tách câu chuyện. Phức tạp? Đã thêm rủi ro, cần sửa lỗi, thiết kế lại, v.v ... nên có thể mất nhiều thời gian hơn. Không biết chúng ta có Kiến thức cần thiết không? Chúng tôi có thêm rủi ro, có thể cần thử nghiệm, v.v., vì vậy có thể mất nhiều thời gian hơn ...
Thấy nơi đang tới không? Vì vậy, trong khi khái niệm về các điểm câu chuyện khiến chúng ta không nghĩ về thời lượng khi ước tính, mặt khác, sẽ là phi logic khi có một câu chuyện 1 điểm mà chúng ta có thể hoàn thành trong 4 giờ và một câu chuyện 1 điểm khác đơn giản nhưng sẽ mất 2 tuần.
- Các nhóm có hiệu suất cao loại bỏ Silo & Nút cổ chai: Bởi vì các đội cố gắng tăng cấp cho tất cả các thành viên, đôi khi họ có các thành viên ít kinh nghiệm hơn thực hiện các thử thách mới hoặc sẽ ghép mã để chia sẻ kiến thức để cải thiện thành một nhóm. Như đã đề cập trước đây, đây là điều cần thiết nếu nhóm sẽ đạt được mức Hiệu suất cao thực sự.
Vì vậy, nếu Jane tình nguyện thực hiện nỗ lực Java đó và điều đó sẽ khiến nỗ lực đó gấp 2 hoặc 3 lần thời gian của cùng một nỗ lực nếu Bob làm điều đó, bạn sẽ làm gì? Theo thời gian, các nhóm của tôi đã giải quyết việc định cỡ các câu chuyện dựa trên mức độ nỗ lực (LOE) / Vucks cho những người làm việc nỗ lực. Thật vô nghĩa khi Bob, nhóm Chuyên gia, nói rằng "đó là 1" khi đối với Jane, sẽ không dễ dàng và phải mất một tuần để hoàn thành, cộng với yêu cầu một số thời gian của Bob để xem xét mã hóa và mã hóa cặp. Do đó, chúng tôi đã tìm ra những điểm đó để phản ánh LOE thực sự. Lần tiếp theo, một câu chuyện tương tự xuất hiện, số 8 đối với Jane trước đó đã trở thành 5. Cuối cùng, mọi người đều đồng ý rằng đó là một điều dễ dàng 3. Vào thời điểm đó, chúng tôi biết rằng chúng tôi đang phát triển như một đội.