แบ็กล็อก — คือรายการเรียงลำดับของงาน ข้อกำหนด และการปรับปรุงทั้งหมดที่ต้องดำเนินการในโปรเจกต์ เป็นสิ่งประดิษฐ์หลักของวิธีการแบบคล่องตัว: ใน Scrum แบ็กล็อกถูกจัดการโดย Product Owner ใน Kanban — โดยทั้งทีม ตามScrum Guide, 2020 แบ็กล็อกไม่มีวันเสร็จสมบูรณ์: มันพัฒนาอย่างต่อเนื่องไปพร้อมกับผลิตภัณฑ์และความต้องการของตลาด
ประเด็นสำคัญ
แบ็กล็อก — คือแหล่งข้อกำหนดเดียวสำหรับการเปลี่ยนแปลงทั้งหมดในผลิตภัณฑ์ Product Owner รับผิดชอบต่อเนื้อหา ความพร้อมใช้งาน และความโปร่งใส: สมาชิกทีมทุกคนต้องเข้าใจว่างานใดอยู่ในแบ็กล็อกและจะดำเนินการตามลำดับใด
Product Backlog มีงานโปรเจกต์ทั้งหมดในอนาคต — ตั้งแต่ฟีเจอร์สำหรับไตรมาสถัดไปไปจนถึงแนวคิดสำหรับปี Sprint Backlog — คือชุดย่อยของงานจาก Product Backlog ที่ทีมนำไปสู่สปรินต์ปัจจุบัน Sprint Backlog จะถูกตรึงระหว่างสปรินต์ ในขณะที่ Product Backlog เปลี่ยนแปลงตลอดเวลา
ใน Scrum แบ็กล็อกมีโครงสร้างที่เข้มงวด: มี Product Backlog และ Sprint Backlog งานถูกประเมินเป็น story point สปรินต์มีระยะเวลาคงที่ ใน Kanban แบ็กล็อกมีความยืดหยุ่นมากกว่า: งานจะถูกดึงเมื่อนักพัฒนาว่าง ลำดับความสำคัญสามารถเปลี่ยนได้ทุกวัน และขีดจำกัด WIP (work in progress) จะควบคุมการไหลของงาน
แบ็กล็อกที่มีคุณภาพประกอบด้วย งานประเภทต่างๆ ไม่ใช่แค่ฟีเจอร์ใหม่ แบ็กล็อกที่สมดุลคำนึงถึงทุกด้านของการพัฒนาผลิตภัณฑ์
| ประเภทองค์ประกอบ | คำอธิบาย | ตัวอย่าง |
|---|---|---|
| User Story | ฟังก์ชันใหม่จากมุมมองผู้ใช้ | “ในฐานะผู้ใช้ ฉันต้องการรีเซ็ตรหัสผ่าน” |
| Bug | ข้อบกพร่องหรือข้อผิดพลาดในฟังก์ชันที่มีอยู่ | “ปุ่มลงทะเบียนไม่ทำงานบน iOS 16” |
| Tech Debt | การปรับปรุงฐานโค้ดที่ผู้ใช้ไม่เห็น | “อัปเดต dependencies เป็นเวอร์ชันล่าสุด” |
| Spike / Research | การวิจัยหรือต้นแบบเพื่อลดความไม่แน่นอน | “สำรวจความเป็นไปได้ในการย้ายไปยัง Jetpack Compose” |
| Improvement | การปรับปรุงกระบวนการหรือโครงสร้างพื้นฐาน | “ตั้งค่า CI/CD สำหรับบิลด์อัตโนมัติ” |
ส่วนประกอบหลักของแบ็กล็อกคือ User Story (เรื่องราวผู้ใช้) User Story ที่มีคุณภาพอธิบายว่าผู้ใช้จะได้รับคุณค่าอะไร ไม่ใช่การดำเนินการทางเทคนิคที่ต้องทำ รูปแบบ INVEST: Independent, Negotiable, Valuable, Estimable, Small, Testable เรื่องราวควรอยู่ในสปรินต์เดียว มิฉะนั้นจะต้องถูกแบ่งย่อย
เกณฑ์การยอมรับ กำหนดเมื่องานถือว่าเสร็จสมบูรณ์ เขียนในรูปแบบ Given-When-Then หรือเป็นรายการเงื่อนไขง่ายๆ ตัวอย่างเช่น: “ผู้ใช้สามารถรีเซ็ตรหัสผ่านทางอีเมล อีเมลมาถึงภายใน 30 วินาที ลิงก์มีอายุ 24 ชั่วโมง” เกณฑ์การยอมรับที่ชัดเจนช่วยขจัดข้อโต้แย้งในขั้นตอนการสาธิต
การจัดลำดับความสำคัญ — เป็นกระบวนการที่สำคัญและซับซ้อนที่สุดในการจัดการแบ็กล็อก Product Owner ต้องพิจารณาคุณค่าทางธุรกิจ ความพยายาม ความเสี่ยง และการพึ่งพาระหว่างงาน
MoSCoW — วิธีการจัดลำดับความสำคัญแบบคลาสสิก Must have — งานมีความสำคัญต่อผลิตภัณฑ์ Should have — งานสำคัญที่สามารถเลื่อนได้ Could have — การปรับปรุงที่อยากทำ Won't have — งานที่เลื่อนออกไปในอนาคต การกระจาย: 60% Must, 20% Should, 20% Could วิธีนี้ช่วยโฟกัสที่ฟังก์ชันที่สำคัญ
เมทริกซ์คุณค่าเทียบกับความพยายาม แบ่งงานออกเป็นสี่ส่วน: Quick Wins (คุณค่าสูง, ความพยายามต่ำ) — ทำก่อน, Big Bets (คุณค่าสูง, ความพยายามสูง) — วางแผนล่วงหน้า, Fill-ins (คุณค่าต่ำ, ความพยายามต่ำ) — ทำระหว่าง, และ Avoid (คุณค่าต่ำ, ความพยายามสูง) — อย่าทำ แนวทางนี้เพิ่มคุณค่าสูงสุดด้วยทรัพยากรที่จำกัด
WSJF — วิธีการจัดลำดับความสำคัญจาก SAFe ตามสูตร: คุณค่า / ขนาดงาน ยิ่งอัตราส่วนคุณค่าต่อขนาดสูง ลำดับความสำคัญยิ่งสูง WSJF พิจารณาคุณค่าทางธุรกิจ ความสำคัญด้านเวลา และความเสี่ยง วิธีนี้เหมาะสำหรับทีมผลิตภัณฑ์ที่เติบโตเต็มที่ซึ่งมีแบ็กล็อกจำนวนมาก
การจัดการแบ็กล็อกอย่างมีประสิทธิภาพ ต้องมีกิจกรรมปกติ เครื่องมือที่เหมาะสม และวินัยของทั้งทีม
Refinement — การประชุมปกติ (ปกติสัปดาห์ละครั้ง) ที่ทีมชี้แจง ประเมิน และจัดลำดับความสำคัญขององค์ประกอบแบ็กล็อกใหม่ Scrum Guide แนะนำให้ใช้เวลา refinement ไม่เกิน 10% ของเวลาทีม ผลลัพธ์: 20-30% แรกของแบ็กล็อกพร้อมสำหรับการวางแผนสปรินต์ — มีการประเมิน เกณฑ์การยอมรับ และการอนุมัติ
เครื่องมือ ยอดนิยมที่สุดสำหรับการจัดการแบ็กล็อก: Jira (มาตรฐานอุตสาหกรรมพร้อมการกำหนดค่าเวิร์กโฟลว์ที่ยืดหยุ่น), Linear (ตัวติดตามที่รวดเร็วและทันสมัย), Trello (สำหรับทีมขนาดเล็กและ Kanban), Notion (พื้นที่ทำงานที่ยืดหยุ่นพร้อมฐานข้อมูล) และ YouTrack การเลือกเครื่องมือขึ้นอยู่กับขนาดทีม วิธีการ และงบประมาณ
แม้แต่ Product Owner ที่มีประสบการณ์ก็ทำ ข้อผิดพลาดในการจัดการแบ็กล็อก ซึ่งลดประสิทธิภาพของทีมและคุณภาพของผลิตภัณฑ์
ข้อผิดพลาดที่พบบ่อยที่สุด — การโยนความคิดทั้งหมดลงในแบ็กล็อกโดยไม่กรองหรือจัดลำดับความสำคัญ แบ็กล็อกเติบโตเป็นงานหลายร้อยงาน ทำให้ไม่สามารถนำทางได้ วิธีแก้ไข: ทำความสะอาดแบ็กล็อกเป็นประจำ — ลบงานที่ล้าสมัย รวมงานที่คล้ายกัน เลื่อนงานที่ไม่เร่งด่วน แบ็กล็อกที่สุขภาพดีมี 50-100 รายการ ไม่ใช่หลายพัน
เมื่อแบ็กล็อกประกอบด้วย เพียง User Stories หนี้ทางเทคนิคเพิ่มขึ้นและการปรับปรุงโครงสร้างพื้นฐานถูกเลื่อนออกไป ไม่ช้าก็เร็ว ทีมจะถึงขีดจำกัดประสิทธิภาพเนื่องจาก dependencies ที่ล้าสมัย ขาดการทดสอบ หรือปัญหาสถาปัตยกรรม กฎ: 20% ของงานในสปรินต์ควรเป็นงานด้านเทคนิค — การปรับโครงสร้าง การทดสอบ การอัปเดต
การให้รายละเอียด งานล่วงหน้า 3-6 เดือน — เสียเวลา ข้อกำหนดเปลี่ยนแปลง ตลาดพัฒนา และงานที่มีรายละเอียดต้องเขียนใหม่ ให้รายละเอียดเฉพาะงานที่จะเข้า 1-2 สปรินต์ถัดไป สำหรับงานที่ไกลออกไป หัวเรื่องและคำอธิบายสั้นๆ ก็เพียงพอ
บั๊กเล็กๆ ไม่เข้าสู่แบ็กล็อกเพราะ “ไม่มีเวลา” หรือ “เดี๋ยวแก้ทีหลัง” เมื่อเวลาผ่านไป บั๊กสะสม คุณภาพลดลง และผลิตภัณฑ์สูญเสียความไว้วางใจจากผู้ใช้ กฎ: ทุกบั๊กถูกบันทึกในแบ็กล็อก แม้ว่าลำดับความสำคัญจะต่ำ หากบั๊กสะสมมาก — จัดสรรสปรินต์เพื่อแก้ไข
คำถามที่พบบ่อย
Product Backlog — คือรายการที่สมบูรณ์ของงานโปรเจกต์ทั้งหมดในระยะยาว จัดการโดย Product Owner Sprint Backlog — คือชุดย่อยของงานจาก Product Backlog ที่ทีมนำไปสู่สปรินต์ปัจจุบัน Sprint Backlog ถูกตรึงระหว่างสปรินต์ ส่วน Product Backlog เปลี่ยนแปลงตลอดเวลา
แบ็กล็อก เป็นความรับผิดชอบของ Product Owner เขากำหนดลำดับความสำคัญ กำหนดงาน และตัดสินใจเมื่อองค์ประกอบพร้อมสำหรับสปรินต์ นักพัฒนาสามารถเสนอการเปลี่ยนแปลง เพิ่มงานด้านเทคนิค และประเมินความซับซ้อน แต่การตัดสินใจขั้นสุดท้ายเกี่ยวกับลำดับความสำคัญยังคงเป็นของ Product Owner
Grooming แนะนำให้ทำสัปดาห์ละครั้งหรืออย่างน้อยสปรินต์ละครั้ง Scrum Guide แนะนำให้ใช้เวลา refinement ไม่เกิน 10% ของเวลานักพัฒนา สำหรับสปรินต์สองสัปดาห์ นั่นคือประมาณ 1-2 ชั่วโมงต่อสัปดาห์ การ grooming เป็นประจำป้องกันการสะสมของ “ขยะ” ในแบ็กล็อก
Product Backlog ที่สุขภาพดีมี 50-100 รายการ น้อยกว่านั้นหมายถึงทีมไม่ได้คิดถึงอนาคต มากกว่านั้นหมายถึงแบ็กล็อกกลายเป็นที่ทิ้ง สิ่งสำคัญไม่ใช่จำนวนรายการ แต่คุณภาพของมัน: 20-30% แรกควรพร้อมสำหรับสปรินต์ ที่เหลือในระดับรายละเอียดต่างๆ
Product Backlog สามารถเปลี่ยนได้ตลอดเวลา — นี่คือสภาวะปกติของมัน แต่ Sprint Backlog จะถูกตรึงระหว่างสปรินต์เพื่อให้ทีมสามารถโฟกัสที่เป้าหมายได้ ข้อยกเว้นเดียว: หาก Product Owner ลบงานออกจากสปรินต์เพราะมันไม่เกี่ยวข้องอีกต่อไป
สรุป
เราจะพัฒนาแอปพลิเคชันบนมือถือแบบครบวงจร
IT Sectr สร้างแอปพลิเคชัน iOS และ Android สำหรับสตาร์ทอัพและธุรกิจตั้งแต่ปี 2017 เราจะให้คำแนะนำและเสนอวิธีแก้ปัญหาที่ดีที่สุดแก่คุณ
อ่านเพิ่มเติม