เขียน User Story ยังไงให้ถูกใจ Dev Team

Saranya kaewsa-ard
te<h @TDG
Published in
2 min readOct 14, 2019

User Story หรือ Product Backlog ที่เป็น Artifact (ทรัพย์สิน) ของ Product และเป็นสิ่งที่จะกำหนดว่า product มีคุณสมบัติหรือทำงานอย่างไรเพื่อให้ตรงใจคุณลูกค้าหรือที่เราเรียกว่า User นั่นเอง แต่บ่อยครั้งที่เราสร้าง User story ไม่ถูกใจและไม่คลอบคลุมหรือไม่ตรงใจ Development Team สักที เรามาดูหลักการง่ายๆ ในการเขียนเพื่อให้ Development ประทับใจกันคะ

User Story
  1. เขียนเป้าหมายให้ชัดเจนว่าทำเพื่ออะไร (User statement)
    As a <ระบุผู้ใช้>, I want <ต้องการอะไร> so that <เพื่ออะไร>
    เช่น ในฐานะ user ฉันต้องการให้มี Login by social เพื่อที่จะฉันจะสามารถ login ด้วย Account social ที่ฉันมีอยู่ได้
    ส่วนนี้เป็นส่วนที่จะระบุว่า User นี้ต้องการอะไรกันแน่ และต้องการเห็นอะไรเมื่อทีมส่งงานหลังจบ sprint แต่ไม่จำเป็นต้องใช้รูปแบบที่กล่าวมาตอนต้นนะคะ PO หรือคนที่สร้าง User story สามารถใช้รูปแบบที่ถนัดได้ แต่เน้นว่าทีมต้องเข้าใจในสิ่งที่เขียนเท่านั้นเอง
  2. ระบุรายละเอียดให้ชัดเจน (Acceptance criteria)
    หน้าที่ระบุ Acceptance criteria ให้ชัดเจนยังเป็นหน้าที่ของ Product owner หรือผู้ที่สร้าง User story ที่ต้องระบุตัววัดอย่างชัดเจนเพื่อให้ทีมสามารถสร้างงานและทำการเทสต์งานได้ตรงกับสิ่งที่ลูกค้าต้องการ รวมถึงสามารถ estimate time ที่จะทำให้ story นี้สำเร็จได้ เช่น
    > เมื่อเข้ามาหน้า Login ต้องแสดง logo Facebook และ Google ใต้ช่องที่ใส่ password ของ login ปกติ
    > เมื่อนำเมาส์ไปชี้บน logo อันใดอันนึง จะต้องแสดงข้อความ Log in by Facebook และตัวlogo เปลี่ยนเป็นสีน้ำเงินเข้ม แต่เมื่อนำเมาส์ออกปุ่ม logo เปลี่ยนเป็นสีเดิม
  3. แนบ UX/UI เพื่อความชัดเจน
    ถ้า Story ที่สร้างขึ้นมาเกี่ยวข้องกับ UX/UI หรือ User flow ควรแนบสิ่งเหล่านี้มาใน Story เพื่อให้ทีมมีความเข้าใจและ Estimate งานได้ถูกต้องด้วย และที่สำคัญสิ่งนี้เป็นตัวที่ช่วยให้ทีมมองเห็นภาพว่า Story นี้มีขนาดใหญ่จนเกินกว่าจะทำได้ภายใน Sprint หรือเปล่าอีกด้วย
  4. ใช้หลัก Product Dimension Framework
    เมื่อเขียน story ออกมาแล้วให้ลอง review ดู User story ที่เขียนขึ้นมาอีกครั้งว่าตรงหลัก Product dimension ไหม
    > User: เราระบุ user ที่เกี่ยวข้องกับ Story หมดหรือยัง ถ้ายังต้องระบุด้วยจ๊ะเพราะทีมอาจต้องการข้อมูลนี้ด้วย
    > Interface: Story นี้มีมีความเกี่ยวข้องกับข้อมูลภายนอกระบบหรือเปล่า ถ้า PO ไม่สามารถระบุเรื่องนีได้ ไม่ต้องกลัวคะ แนะนำให้สอบถาม Developer ได้ เพราะเราคือทีมเดียวกัน
    > Action: User มี action หรือวิถีทางในการใช้ feature ใน storyอย่างไรบ้าง PO ควรระบุเป็น use cases scenarioให้ชัดเจน
    > Data: ข้อมูลอะไรที่ต้องใช้เพิ่มเติมในการสนับสนุน action ของ User
    > Control: มีอะไรที่เป็นตัวแปรที่ทำให้ User ไม่สามารถใช้ feature ได้บ้าง เช่น Firewall , Network configuration
    > Environment: Platforms (Hardware, software) อะไรบ้างที่ทีมต้องสร้างให้ Support productนี้
    > Quality Attribute: ความคาดหวังของลูกค้าต่อเวลาในการตอบกลับ และตัววัดคุณภาพของ Product
  5. ใช้หลัก INVEST
    > Independent — แต่ละ Story ต้องเป็นอิสระจากกันและกัน
    > Negotiable — แต่ละ Story สามารถเจรจาต่อรองกันได้ (ระหว่างทีมและผู้ใช้)
    > Value — แต่ละ Story ต้องมีคุณค่าต่อผู้ใช้
    > Estimable — แต่ละ Storyต้องสามารถประเมินขนาดได้ด้วย Development Team
    > Small — แต่ละ Story ต้องมีขนาดเล็กและจบได้ภายใน Sprint (ถ้าใหญ่ไปจง slice ให้เล็ก)
    > Testable — แต่ละ Story ต้องสามารถทดสอบได้

ข้อมูลเพิ่มเติมสำหรับการสร้าง Product backlogs หรือว่า User story
> User Story ต้องมี Value กับลูกค้า ถ้าไม่มี Value กับลูกค้าไม่ใช่ Story
> ถ้า Story เกี่ยวกับ Technical ให้สร้างเป็น Technical story แล้วอธิบายที่ story นั่น
> Defect ถือว่าเป็น Product Backlog ด้วยเช่นกัน
> ถ้าพบว่ามีบางส่วนที่ต้องการพัฒนาใน product (Improvement) ก็สามารถนำมาสร้างเป็น Product backlog ได้เช่นกัน

สุดท้ายนี้การเขียน User Story เป็นเรื่องของเทคนิคของแต่ละคน การเขียนบทความนี้ขึ้นมาไม่ได้หมายความว่าทุกคนต้องยึดปฏิบัติตามนี้ แต่ผู้เขียนหวังว่าบทความนี้จะทำให้หลายคนเห็นภาพการเขียน User story ที่ชัดเจนมากขึ้นและถูกใจ Development Team ที่รักทุกคนคะ

--

--