Làm thế nào để đối phó với những câu chuyện chia sẻ chức năng


27

Tôi có hai câu chuyện (tôi biết họ đang thiếu phần lợi ích)

  1. Là người dùng quản lý tín dụng, tôi có thể xem sự khác biệt về bảng lương hiện tại và trước đây cho Văn phòng.
  2. Là Người dùng Quản lý Tín dụng, tôi có thể nhận được email có chứa bản PDF về chênh lệch bảng lương hiện tại và trước đây cho Văn phòng.

Hai cái này có liên quan ở chỗ chúng sẽ có cùng tiêu chí Truy vấn / Bộ lọc. Sự khác biệt duy nhất là trong câu chuyện "Xem", kết quả được hiển thị cho Người dùng và trong câu chuyện "Email", kết quả được ghi vào tệp PDF được gửi qua email cho Người dùng.

Tôi đang vật lộn với sự tách biệt các khía cạnh chung của hai câu chuyện này hoặc nếu tôi thậm chí nên làm như vậy.

Ví dụ, cả hai sẽ có cùng một truy vấn, những gì họ làm với kết quả là khác nhau.

Tôi có nên tách truy vấn ra thành một câu chuyện hoàn toàn là kỹ thuật không?

Việc tạo PDF và gửi email nên được thực hiện ngoại tuyến, điều đó có nên trở thành một câu chuyện kỹ thuật không?

Tôi có thể thấy việc chia hai câu chuyện đó thành 2 câu chuyện chức năng và 2 câu chuyện kỹ thuật.

  1. Là Hệ thống, tôi có thể tính toán sự khác biệt trong bảng lương hiện tại và trước đây cho Văn phòng.

  2. Là người dùng quản lý tín dụng, tôi có thể xem sự khác biệt trong bảng lương hiện tại và trước đây cho Văn phòng.

  3. Với tư cách là Hệ thống, tôi có thể tạo một tài liệu PDF về sự khác biệt trong bảng lương hiện tại và trước đây cho Văn phòng.

  4. Là Người dùng Quản lý Tín dụng, tôi có thể yêu cầu nhận email có chứa bản PDF về sự khác biệt trong bảng lương hiện tại và trước đây cho Văn phòng.

Vấn đề tôi tiếp tục quay trở lại là 4 câu chuyện không độc lập và không "cắt bánh".

Vì vậy, tôi không chắc chắn làm thế nào để đối phó với hai.


4
nếu bạn định sử dụng "câu chuyện người dùng kỹ thuật" nhận ra rằng có 3 điều ở đây không phải 4. Sự khác biệt bạn tính toán từ mô hình của mình và hai loại chế độ xem, chế độ xem PDF và chế độ xem GUI. Bạn chỉ đang trình bày báo cáo khác nhau.
candied_orange

1
Giải quyết một trong số họ. Sau đó giải quyết khác. Nó là đơn giản.
Ant P

Tại sao họ là hai câu chuyện?
JeffO

Câu trả lời:


55

Câu chuyện của người dùng không phải là thông số kỹ thuật hệ thống hoặc yêu cầu chức năng. Thay vào đó, họ là khởi đầu của một cuộc trò chuyện có thể dẫn đến các thông số kỹ thuật hoặc yêu cầu như vậy.

Theo đó, tôi hy vọng sẽ có sự chồng chéo trong việc thực hiện hệ thống. Câu chuyện của người dùng không có nghĩa là để mô tả chức năng chồng chéo như vậy hoặc để loại bỏ nó. Mục đích của Câu chuyện người dùng là nắm bắt các kỳ vọng chức năng từ quan điểm của người dùng, không mô tả chi tiết triển khai.


3
Đã thực sự bắt đầu viết một cái gì đó rất giống nhau, nhưng câu trả lời này đã bao gồm tất cả các khía cạnh của tôi, vì vậy +1.
Doc Brown

Tương tự ở đây, tiếp tục thực hiện nó.
candied_orange

1
@JoeYoung: chi tiết triển khai đi vào thực hiện, còn ở đâu nữa? Và làm thế nào bạn nói với nhà phát triển khác này phụ thuộc vào cấu trúc truyền thông của nhóm của bạn. Tất nhiên, có thể có một yêu cầu chức năng liên quan ở đây, như "khi xem sự khác biệt về tiền lương trực tuyến hoặc khi truy xuất chúng dưới dạng PDF, điều quan trọng là phải có chính xác cùng một nội dung trong cả hai trường hợp" . Nếu đó là trường hợp, thêm điều này như một ghi chú cho ít nhất một (tốt hơn cả hai) câu chuyện người dùng. Tuy nhiên, đừng đặt bất kỳ mô tả nào về cách yêu cầu này sẽ được thực hiện trong câu chuyện.
Doc Brown

3
Thiết kế không phải là nói cho nhà phát triển cách giải quyết vấn đề. Nó đang nói với một nhà phát triển những vấn đề cần giải quyết.
candied_orange

1
Khi bạn đánh giá chi phí thời gian của những câu chuyện này, làm thế nào để bạn đánh giá chúng? Giả sử phần truy vấn chung mất 5 giờ, phần xem web mất 6 giờ và phần xem PDF mất 7 giờ. Bạn có ước tính thời gian không, bạn có tự ý nói một chi phí 11 giờ (5 + 6) và 7 (hoặc ngược lại: 12 và 6) khác, hoặc bạn ước tính chúng ở mức 6 và 7, nhưng lưu ý ở một nơi khác trong một số cách 5 giờ trên cao cho cả hai kết hợp? 11 và 12 (5 thêm vào cả hai)? Nếu bạn nói "Mô hình này không có ý định xử lý các trường hợp như vậy. Chỉ cần nói ra." nó vẫn có thể được ghi lại trên bảng phân cảnh, nhưng bằng cách nào?
Aaron

15

Đừng: Thử và chia các câu chuyện, Thực hiện một câu chuyện và sau đó là câu chuyện khác.

Nên: Đảm bảo nhóm dev nhận thức được câu chuyện thứ hai.

Vấn đề với việc cố gắng lên kế hoạch cho các nhiệm vụ chi tiết và tạo ra một mô hình chung có thể xử lý cả hai một cách tao nhã là nó khó.

Mục đích của câu chuyện người dùng là để hoàn thành công việc. Thanh lịch là một mục tiêu thứ yếu và nên để tái cấu trúc.

Rõ ràng là cực kỳ khó chịu nếu bạn thực hiện điều này đến mức tối đa và không nói cho ai biết về mười nhiệm vụ tương tự khác cần thực hiện, nhưng cũng hoàn toàn có thể hình dung rằng nhiệm vụ thứ hai hoặc thứ ba không nghĩ đến cho đến khi nhiệm vụ đầu tiên được thực hiện. Nếu bạn muốn lập kế hoạch tất cả ra ngoài đi với thác nước.


4

Trong thỏa thuận bạo lực với Robert Harvey, mục đích của câu chuyện người dùng là để hiểu người dùng cần gì để có thể làm gì. Khi bạn chải chuốt, khách hàng hiểu và quan tâm đến câu chuyện của người dùng, nhưng các nhà phát triển quan tâm hơn một chút. Khi bạn hỏi đủ câu hỏi để hiểu và ước tính công việc, bạn có thể tạo các nhiệm vụ để hỗ trợ chúng.

Trong trường hợp cụ thể này, bạn có thể tạo các tác vụ cho phép cốt lõi của cả hai câu chuyện người dùng sẽ được thực hiện cùng với bất kỳ vấn đề nào bạn giải quyết trước.

Những điều quan trọng để thêm vào câu chuyện của người dùng là:

  • Tiêu chí chấp nhận
  • Giả định

Điều đáng chú ý là bạn không nhất thiết phải ghi lại nhiều hơn câu chuyện. Câu chuyện cung cấp cho bạn bối cảnh cấp độ kinh doanh. Những gì bạn cần theo dõi chi tiết hơn tùy thuộc vào bạn (và chủ yếu phụ thuộc vào các ràng buộc của tổ chức). Bạn nên cố gắng giảm thiểu nó (mọi người qua quá trình và tất cả những thứ đó).
Ant P

@AntP, đã đồng ý, nhưng điều này đi về Định nghĩa Hoàn thành (DoD) và nó sẽ phù hợp với mặt sau của thẻ 3x5 của bạn có câu chuyện người dùng.
Berin Loritsch

2

Nói đúng ra, Câu chuyện của người dùng là lời hứa của một cuộc trò chuyện để hiểu kết quả được yêu cầu.

Ví dụ: lấy câu chuyện người dùng thứ hai của bạn

Là Người dùng Quản lý Tín dụng, tôi có thể nhận được email có chứa bản PDF về chênh lệch bảng lương hiện tại và trước đây cho Văn phòng.

Hãy suy nghĩ về những điều sau đây:

  • "Nhu cầu" người dùng đang thúc đẩy yêu cầu này là gì? (Có PDF trong email như một giải pháp đến từ họ không? Điều này có thể không giải quyết được nhu cầu và nhóm của bạn có thể đưa ra giải pháp tốt hơn)
  • Các lát tối thiểu có thể giải quyết "nhu cầu" của người dùng này và xác nhận giải pháp của bạn là gì? Các vòng phản hồi ngắn có giá trị.

Khi tiếp cận chia tách câu chuyện, hãy nhớ tiêu chí ĐẦU TƯ của bạn nếu có thể.

  1. Tôi phụ thuộc
  2. N vô nghĩa
  3. V aluable
  4. E kích thích
  5. S trung tâm
  6. T estable

Có thể có những câu chuyện có một trật tự tự nhiên. Hãy xem xét điều đó - thường thì câu chuyện đầu tiên lớn hơn vì nó mang lại chức năng cần thiết và câu chuyện thứ hai được xây dựng trên đó.

Tôi sẽ thách thức các câu chuyện "kỹ thuật", vì nhìn chung chúng rất có thể là các nhiệm vụ để giúp hỗ trợ việc thực hiện các câu chuyện tập trung vào kết quả của người dùng.


2

TL; DR

Giả sử cả hai câu chuyện của người dùng được đưa vào phạm vi trong cùng một lần lặp, công việc của nhóm là phân tách các câu chuyện thành một kế hoạch thực hiện và các nhiệm vụ tiếp viên của nó. Câu chuyện của người dùng cung cấp bối cảnh và phạm vi; họ không triển khai, thông số kỹ thuật hoặc các mục danh sách cú đấm.

Câu chuyện nên được phân tách thành nhiệm vụ lặp

Cho dù bạn đang theo dõi Scrum hay một số phương pháp nhanh nhẹn khác, đó là một lỗi phổ biến để bỏ qua giai đoạn lập kế hoạch của một lần lặp. Trong Scrum, khi một Mục tồn đọng của sản phẩm (không cần phải là câu chuyện của người dùng, nói đúng ra) được đưa vào Sprint hiện tại, nhóm sau đó phải sử dụng một phần của Lập kế hoạch Sprint để xác định điểm chung giữa các mục công việc, xác định các phụ thuộc và sau đó phát triển Sprint Backlog để nắm bắt công việc ở cấp độ nhiệm vụ.

Như bạn đã chỉ ra trong bài đăng của mình, không có gì lạ (và thực tế là mong muốn) cho một phép lặp nhanh để chứa các câu chuyện người dùng liên quan chặt chẽ. Trong Scrum, điều này được thể hiện thông qua việc sử dụng Mục tiêu Sprint. Bên ngoài khuôn khổ Scrum, thường vẫn có ý nghĩa để kéo theo những câu chuyện liên quan các mục tiêu chung hoặc phụ thuộc chung của chúng. Bằng cách trích xuất và sau đó làm việc trên các phụ thuộc được chia sẻ trong một lần lặp duy nhất, các nhóm thường có thể tránh được yêu cầu phải cấu trúc lại hoặc lặp lại mã cho các tính năng tương tự nhưng không giống nhau trong tương lai.

Nhiệm vụ thực hiện Câu chuyện

Đây là một cách khác để suy nghĩ về kế hoạch phụ thuộc cho câu chuyện của người dùng. Nói chung:

  1. Một sử thi / chủ đề được sử dụng để lập kế hoạch dài hạn hoặc nhóm trên một hồ sơ tồn đọng.
  2. Một câu chuyện người dùng được sử dụng để truyền đạt các mục tiêu, bối cảnh và phạm vi.
  3. Lập kế hoạch đúng lúc được sử dụng để phát triển một triển khai phù hợp với một lần lặp duy nhất.
  4. Nhiệm vụ thực hiện kế hoạch đúng lúc đáp ứng Định nghĩa Hoàn thành cho một hoặc nhiều câu chuyện của người dùng.

Đối xử với các câu chuyện của người dùng như một kế hoạch thực hiện hoặc một danh sách nhiệm vụ được hầu hết các học viên coi là một mô hình chống nhanh nhẹn. Dù bạn chọn cách nào để gọi nó, đừng bỏ qua giai đoạn lập kế hoạch kịp thời của khung nhanh nhẹn của bạn và đảm bảo theo dõi các phụ thuộc và chi tiết triển khai được chia sẻ ở đâu đó trong quy trình của nhóm bạn.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.