Làm cách nào để tôi phác thảo câu chuyện của người dùng với tư cách là nhà phát triển?


10

Tôi đang viết một hệ thống mà cả chủ sở hữu hệ thống và bản thân tôi đều là nhà phát triển và chúng tôi hiện là nguồn 'yêu cầu' hoặc yêu cầu duy nhất cho hệ thống, mà tôi muốn ghi lại trong các câu chuyện của người dùng gắn với các tính năng {1}. Ưu tiên cấp bách của tôi bây giờ là có được một hồ sơ quản lý tồn đọng. Làm thế nào tôi nên nắm bắt mức độ của thông số kỹ thuật mà tôi đã từng làm việc với các câu chuyện của người dùng, vốn không được coi là quá kỹ thuật.

{1} Tôi đang đánh giá dịch vụ quản lý dự án nhanh nhẹn TargetProcess và mỗi câu chuyện của người dùng phải được gắn với một tính năng chính. Hệ thống có vẻ phù hợp, vì vậy hạn chế nhỏ này là thứ tôi thích làm việc hơn là làm việc xung quanh.

Câu trả lời:


14

Mẫu câu chuyện điển hình rất dễ hình dung:

As a [ROLE] I need to [WHAT] so that/because [WHY].

Điều thú vị là tầm quan trọng của các thành phần được đảo ngược.

TẠI SAO quan trọng hơn CÁI GÌ và điều đó quan trọng hơn VAI TRÒ

Ví dụ sử dụng Câu hỏi này

Là một nhà phát triển phần mềm, tôi cần học cách viết Câu chuyện người dùng để tôi có thể điền vào các bản tồn đọng bằng các bản nháp để bắt đầu thảo luận về các tính năng và nhận điểm được gán cho chúng.

Bất cứ điều gì nhiều hơn là làm phức tạp ý định và việc thực hiện Câu chuyện của người dùng.

Công cụ bổ sung (Tích hợp là tốt nhất)

Các công cụ có thể được sử dụng để nắm bắt thông tin chi tiết bổ sung về các câu chuyện được ghi lại khi thảo luận về chúng để gán điểm / ước tính, nhưng chi tiết đó không phải là một phần của chính câu chuyện. Một cái gì đó đơn giản như một Wiki với 1 Trang cho mỗi câu chuyện để đặt chi tiết / bảng điểm các cuộc thảo luận là một giải pháp đủ tốt. Bảng tính Excel là một giải pháp khủng khiếp.


5

Tập trung vào những gìtại sao và tránh làm thế nào khi viết câu chuyện của người dùng.

Những gì bạn phải đối mặt thực sự là một bài tập rất tốt cho tất cả các nhà phát triển. Có thể diễn đạt yêu cầu một cách đơn giản, kinh doanh là một kỹ năng quan trọng.

Bạn nên tập trung vào yêu cầu chung như "cần có thể thực hiện một lựa chọn duy nhất từ ​​danh sách các đối tượng thả xuống để người dùng có thể kích hoạt hành động Foo" thay vì chỉ định sử dụng combobox hoặc listbox hoặc bất cứ điều gì kích hoạt một thói quen cụ thể .

Một cách khác để tiếp cận điều này là giả vờ như cơ sở / khung mã cơ bản gần như hoàn thành hộp đen. Bất cứ khi nào bạn thấy mình nói "sử dụng đối tượng XYZ", bạn có thể tự kiểm tra bằng cách hỏi xem bạn có biết điều đó trong hệ thống hộp đen không.

Cập nhật:
IMO, bạn có thể đưa chi tiết vào trường hợp sử dụng cho biết mức độ chi tiết cần thiết cho thông tin. Ví dụ: với một hệ thống tuyển sinh, trò chơi công bằng để chỉ định
- họ; trường bắt buộc
- tên đầu tiên; trường bắt buộc
- ID tài khoản; hệ thống tạo ra không cần thiết đầu vào
- dấu hiệu chiêm tinh; trường tùy chọn - (gợi ý) cung cấp tra cứu từ ngày sinh?
- Vân vân....

Điều quan trọng là bạn không chỉ định kỹ thuật làm thế nào cho thông tin đó. Nếu bạn thấy mình nói "sử dụng một lớp Chuỗi / mảng ký tự / hoặc trường varchar" cho tên cuối cùng, thì bạn biết bạn đang chỉ định quá mức.

Nếu bạn là người đa ngôn ngữ, thì hãy sử dụng hai ngôn ngữ khác nhau làm bài kiểm tra giấy quỳ của bạn. Ví dụ, các chuỗi trong C thường là các mảng char (acter) trong khi C ++, Java và C # (được, và hầu hết mọi người khác ...) có một đối tượng như Chuỗi thực tế. Nếu bạn thấy rằng thông số kỹ thuật của bạn bị vô hiệu bằng cách sử dụng một trong những ngôn ngữ đó thì bạn sẽ biết bạn đã chỉ định quá mức.

Điều đáng chú ý là tôi đặc biệt sử dụng thuật ngữ Use Case trái ngược với Câu chuyện của người dùng , mặc dù biến thể mà tôi kết thúc sử dụng là sự kết hợp của cả hai. Mục tiêu của tôi về trường hợp sử dụng là đưa ra một cái nhìn tổng quan về những gì đang diễn ra (Câu chuyện người dùng theo nghĩa chặt chẽ nhất) nhưng sau đó làm việc thông qua các tác nhân, hệ thống và chức năng chung cần có. Cách tiếp cận của tôi gần hơn với những gì Fowler đang đề xuất trong bài viết trên wikipedia đó trái ngược với cách tiếp cận của Cockburn.

Vì vậy, tôi sẽ có một trường hợp sử dụng (hoặc hơn) cho kịch bản đăng ký hoặc mục công việc. Nếu nó thực sự phức tạp, tôi sẽ chia nó thành nhiều phần, nhưng đó không phải là vấn đề lớn. Ca sử dụng sau đó có thể được chia thành các nhiệm vụ riêng lẻ khi cần thiết. Những gì được đưa vào một scrum cụ thể phụ thuộc vào rất nhiều biến số, nhưng không có gì trong phương pháp này ngăn bạn có một thành phần sai lệch ở cuối scrum.


3
Thậm chí nói rằng danh sách thả xuống của Viking có thể là quá cụ thể.
Donal Fellows

@DonalFellows - Đó là một điểm tốt, và tôi đã suy nghĩ về điều đó một chút. Tôi đã sử dụng nó vì trình đơn thả xuống là một yếu tố UI chung, tiêu chuẩn mà bạn sẽ thấy với các khung lưới. Listbox và Combobox là các cấu trúc ngôn ngữ cụ thể cho danh sách thả xuống. +1 trên bình luận.

@ GlenH7 Tôi hiểu điều này, nhưng vấn đề của tôi là tôi không biết nơi để nắm bắt các công cụ kỹ thuật. Nếu một số trường nhất định được yêu cầu cho một nhân viên mới, tôi không muốn sử dụng câu chuyện cho từng trường, mà là "với tư cách là người dùng tôi cần chụp trường x và y" và "có thể chọn chụp trường q và z "Loại điều. Nếu ví dụ nhanh của tôi ở đây là đúng hướng, tôi sẽ cố gắng tập thể dục nhiều hơn theo cách đó.
ProfK

@ProfK Là một quản trị viên nhân sự, tôi cần nhập thông tin về nhân viên mới để tôi có thể đăng ký họ vào hệ thống lương, 401K và bảo hiểm. Đây phải là một Câu chuyện hay, các chi tiết về mọi thứ khác chỉ là những chi tiết cần được ghi lại trong một trang wiki hoặc một số tài liệu khác. Nếu trường hợp các tính năng mới khác cần được thêm vào câu chuyện này, Câu chuyện mới với những yêu cầu cụ thể bị bỏ lỡ sẽ trở thành câu chuyện mới trong hệ thống. Câu chuyện được thực hiện khi ROLE có thể được hoàn thành bởi sự chấp thuận của khách hàng.

2
@ProfK - cập nhật câu trả lời của tôi để trả lời câu hỏi của bạn. IMO, tôi nghĩ bạn đang đi đúng hướng. Tôi đã làm việc rất nhiều phương pháp khác nhau, và khía cạnh quan trọng cần nhớ là làm cho nó hoạt động cho tình huống của bạn. Có vẻ như bạn cần nhiều hơn một chút so với những gì mà một Câu chuyện người dùng chính thức cung cấp. Vì vậy, hãy điều chỉnh cách bạn tạo Câu chuyện người dùng và tiếp tục tiến về phía trước. Một số người có thể sẽ kích thích tôi nhận xét, nhưng thành thật mà nói, toàn bộ vấn đề là lấy mã viết và giữ cho dự án tiến lê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.