Chia nhỏ User story theo Vertical slice (miếng bánh cắt dọc) là như thế nào?

Le ricette dei giudici di Bake Off Italia | Torta arcobaleno, Torte, Torte  alimentari
Vertical slice

User story là gì?

  • Là một người dùng, tôi có thể xem trang bình luận của bài viết nào đó.
  • Là một người dùng, tôi có thể sửa thông tin cá nhân của tôi.
  • Là một người dùng, tôi có thể xem danh sách sản phẩm.

Trên đây là một vài ví dụ về user story. Vậy user story thường là một tính năng mà người dùng có thể sử dụng trên sản phẩm, dự án mà bạn làm ra cho họ.

Kinh nghiệm khi tạo User story, thường sẽ cố gắng tạo User story càng nhỏ càng tốt.

Ví dụ cho một User story không được tốt cho lắm:

  • Là một người dùng, tôi muốn mua hàng.

Có thể thấy User story trên quá chung chung, và bao quát cả quá trình mua hàng. Nên thay vì thế, nên tạo các User story nhỏ như sau:

  • Là một người dùng, tôi muốn tìm kiếm áo ba lỗ bằng từ khóa.
  • Là một người dùng, tôi muốn xem danh sách danh mục áo ba lỗ.
  • Là một người dùng, tôi có thể custom text trên cái áo tôi đang xem.
  • Là một người dùng, tôi có thể thêm cái áo vào giỏ hàng.
  • Là một người dùng, tôi có thể tiến hành checkout.

Nhưng không phải lúc nào cũng tạo được User story tối ưu ngay từ đầu, khi dự án vừa khởi động, và bạn chưa có quá nhiều thông tin để tạo User story chính xác, nhưng chúng ta vẫn phải bắt đầu planning bằng các high level task/user story.

Hoặc đơn giản, là user story đó không thể tạo nhỏ/chi tiết hơn được nữa.

Đây là lúc chúng ta phải chia nhỏ User story đó thành subtask, vậy, khi chia nhỏ sẽ có 2 cách:

  • Horizontal slice
  • Vertical slice.

Nhìn lại hình đại diện của bài viết, bạn có thể thấy miếng bánh đc cắt dọc, miếng bánh bao gồm nhiều layers (lớp). Khi cắt bánh sinh nhật, bạn cắt bánh cũng như vậy, bạn không cắt ngang, mà cắt dọc.

Như vậy, xem một User story là cả một cái bánh, thì Horizontal slice: là cắt cái bánh theo lớp, một miếng được cắt ra chỉ có một lớp, và Vertical slice: là cắt bánh theo cách bình thường, một miếng bánh sẽ bao gồm tất cả các lớp.

Vậy ưu điểm của Vertical slice là gì? Nói về miếng bánh, một người ăn miếng bánh cắt dọc sẽ thưởng thức được toàn bộ hương vị của cái bánh, mà ko cần quan tâm miếng bánh to, hay nhỏ. Nói về User story, khi chia nhỏ bằng cách vertical slice, một sub task được tạo ra sẽ bao gồm tất cả các khía cạnh kĩ thuật cần thiết để hoàn thành sub task đó: UI/UX, Database, Backend api, Frontend, etc., vậy subtask đó khi hoàn thành sẽ demo được cho user, và QA có thể tiến hành testing dễ dàng.

Ngược lại, khi chia nhỏ User story bằng Horizontal slice, sẽ có một sub task chỉ dành cho Database, một sub task chỉ dành cho UI, một sub task chỉ dành cho Frontend development. Khi đó một sub task khi done, gần như không có cách nào để QA có thể test sub task đó nếu họ không có kiến thức chuyên môn về subtask đó (ví dụ QA làm sao test database được design đúng hay chưa?). Horizontal slice có một ưu điểm, mình thấy đó là dễ tạo. Nhưng lại khó về testing, demonstrating sau này.

Tóm lại, nên chia cái bánh bằng cách cắt dọc, hay chia một User story bằng vertical slicing sẽ tốt hơn cho việc QA, showcase, demo sau này.

Reference:
www.visual-paradigm.com

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s