User story là gì?
User story là một câu chuyện có người dùng, hành động và kết quả. Nó thường được mô tả theo cấu trúc sau:
Là một [người dùng], Tôi muốn [làm gì đó] để tôi có thể [nhận được một kết quả nào đó]
Trong bài viết này, tôi sẽ sử dụng những ví dụ về một công ty tưởng tượng có tên là Enable Quiz. Công ty này đang xây dựng một ứng dụng giúp cho các quản lý nhân sự tìm kiếm các ứng viên dựa trên những kỹ năng cụ thể tương ứng với một bản mô tả công việc.
Ví dụ cho user story:
Là một quản lý nhân sự, tôi muốn ghép các kỹ năng của một vị trí cần tuyển với những chủ đề quiz, để tôi có thể tạo được các quiz lọc ứng viên
Các story thường được tổ chức theo mô hình top-down (từ trên xuống dưới). Sẽ có một
epic story mô tả một câu chuyện tổng quát. Epic story này sẽ bao gồm nhiều user story, mỗi user story sẽ thực hiện một chức năng riêng biệt. Mỗi user story sẽ có nhiều test case để kiểm tra chúng
Ví dụ cho epic story:
Là một quản lý nhân sự, tôi muốn tạo ra các quiz để tôi có thể dùng khi phỏng vấn ứng viên
Là một [người dùng], Tôi muốn [làm gì đó] để tôi có thể [nhận được một kết quả nào đó]
Là một quản lý nhân sự, tôi muốn ghép các kỹ năng của một vị trí cần tuyển với những chủ đề quiz, để tôi có thể tạo được các quiz lọc ứng viên
Là một quản lý nhân sự, tôi muốn tạo ra các quiz để tôi có thể dùng khi phỏng vấn ứng viên
Những thứ cần có để xây dựng user story
Người dùng là ai?
Nếu bạn không xác định rõ người dùng sản phẩm là ai thì sẽ rất khó để xây dựng user story. Và có thể bạn sẽ gặp phải lỗi the twin anti-poles of design failure
:
- Nếu bạn làm chính xác những gì người dùng yêu cầu, thì cuối cùng bạn sẽ rơi vào vòng lặp vô tận
Product Death Cycle
:
- hỏi khách hàng chức năng nào đang thiếu
- xây dựng những chức năng thiếu
- không ai sử dụng sản phẩm của bạn
- cuối cùng lại quay trở lại 1
- Nếu bạn cho rằng mình biết rõ người dùng muốn gì, cuối cùng thì cũng không ai sử dụng sản phẩm của bạn
Để tránh lỗi thiết kế the twin anti-poles
, hãy đặt mình vào vị trí người sử dụng (persona): đặt một cái tên cụ thể cho người dùng (ví dụ như chị quản lý nhân sự Helen
) và đưa ra ý tưởng về mối liên quan giữa cô ấy và phần mềm của bạn:
- Cô ấy nghĩ như thế nào về các mọi thứ vận động hàng ngày?
- Cô ấy muốn trở thành người như thế nào?
- Cô ấy nhìn thấy người khác làm những gì, và điều đó ảnh hưởng đến quan điểm của cô ấy như thế nào?
- Cô ấy cảm nhận như thế nào về công việc của mình?
- Cô ấy thực sự đang làm gì trong lĩnh vực nghiệp vụ mà phần mềm của bạn sẽ đụng chạm tới nó?
Nếu thật sự hiểu người dùng nghĩ - nhìn thấy - cảm nhận - làm những gì, bạn sẽ tìm ra được nhiều user story.
the twin anti-poles of design failure:
Product Death Cycle:
- hỏi khách hàng chức năng nào đang thiếu
- xây dựng những chức năng thiếu
- không ai sử dụng sản phẩm của bạn
- cuối cùng lại quay trở lại 1
twin anti-poles, hãy đặt mình vào vị trí người sử dụng (persona): đặt một cái tên cụ thể cho người dùng (ví dụ như
chị quản lý nhân sự Helen) và đưa ra ý tưởng về mối liên quan giữa cô ấy và phần mềm của bạn:
Người dùng muốn gì?
Hãy xây dựng một tình huống để mô tả cái mà người dùng muốn làm. Nó phải tương đối tổng quát để có thể tương đương với nhiều tình huống khác.
Ví dụ
- Tình huống
Tìm kiếm các tài năng kỹ thuật
tương đương với đọc các CV
hay là gọi điện cho các ứng viên
. Vì vậy mà tình huống này sẽ xây dựng được những user story tốt
- Tình huống
Thuê được những tài năng kỹ thuật
thì quá rộng
- Các tình huống chi tiết hơn như
Người quản lý nhân sự chuẩn bị một quiz cho một vị trí cần tuyển
hoặc Người quản lý nhân sự gửi những ghi chú về các ứng viên cho một nhân viên HR khác
thì quá chi tiết
Tìm kiếm các tài năng kỹ thuậttương đương với
đọc các CVhay là
gọi điện cho các ứng viên. Vì vậy mà tình huống này sẽ xây dựng được những user story tốt
Thuê được những tài năng kỹ thuậtthì quá rộng
Người quản lý nhân sự chuẩn bị một quiz cho một vị trí cần tuyểnhoặc
Người quản lý nhân sự gửi những ghi chú về các ứng viên cho một nhân viên HR khácthì quá chi tiết
Để thiết kế những user story tốt hơn
User story nên có mức độ chi tiết như thế nào là đủ?
Các user story nên chi tiết, mô tả hành động cụ thể, có thể test được và gắn liền với các tình huống
Ví dụ
- User story
Tôi muốn tìm kiếm các ứng viên kỹ thuật để công ty của tôi có thể thu được lợi ích tuyển dụng cao nhất
thì quá rộng và không thể test được trực tiếp
- Với tình huống
Tìm kiếm các tài năng kỹ thuật
thì user story Là một người quản lý nhân sự, tôi muốn tìm kiếm các ứng viên kỹ thuật để tôi có thể biết được những kỹ năng của họ
là cụ thể hơn, có thể test được
Để tìm kiếm được hết các user story của một epic story, bạn nên sử dụng các storyboard. Đây là một công cụ bao gồm những hình ảnh với người dùng, hành động và bối cảnh. Nó mô tả epic story theo cách của một câu truyện tranh
Ví dụ với epic story Là một quản lý nhân sự, tôi muốn tạo ra các quiz để tôi có thể dùng khi phỏng vấn ứng viên
Tôi muốn tìm kiếm các ứng viên kỹ thuật để công ty của tôi có thể thu được lợi ích tuyển dụng cao nhấtthì quá rộng và không thể test được trực tiếp
Tìm kiếm các tài năng kỹ thuậtthì user story
Là một người quản lý nhân sự, tôi muốn tìm kiếm các ứng viên kỹ thuật để tôi có thể biết được những kỹ năng của họlà cụ thể hơn, có thể test được
Là một quản lý nhân sự, tôi muốn tạo ra các quiz để tôi có thể dùng khi phỏng vấn ứng viên
Kết quả có những gì?
Kết quả phải có thể test được, và là những gì người dùng muốn nhận được khi họ thực hiện hành động. Ví dụ với user story ở trên Là một người quản lý nhân sự, tôi muốn tìm kiếm các ứng viên kỹ thuật
thì kết quả biết được những kỹ năng của các ứng viên
có thể test được, nhưng nó không phải là kết quả mong muốn của Helen. Không phải ngẫu nhiên mà Helen tìm kiếm các ứng viên kỹ thuật, mà thường đó là do yêu cầu từ các phòng ban khác. Vì vậy mà kết quả có thể sử dụng thông tin các ứng viên khi phỏng vấn họ
mới là cái mà Helen cần.
Là một người quản lý nhân sự, tôi muốn tìm kiếm các ứng viên kỹ thuậtthì kết quả
biết được những kỹ năng của các ứng viêncó thể test được, nhưng nó không phải là kết quả mong muốn của Helen. Không phải ngẫu nhiên mà Helen tìm kiếm các ứng viên kỹ thuật, mà thường đó là do yêu cầu từ các phòng ban khác. Vì vậy mà kết quả
có thể sử dụng thông tin các ứng viên khi phỏng vấn họmới là cái mà Helen cần.