การวิเคราะห์ความต้องการและ Agile User Stories สำหรับแพลตฟอร์ม Grocery POS
เปลี่ยนโจทย์ร้านขายของชำให้เป็นเอกสารความต้องการเชิงวิศวกรรม (SRS), Product Backlog ที่ประเมินขนาดได้จริง และทะเบียนความเสี่ยงเริ่มต้นก่อนเริ่ม Sprint 1
เมื่อจบบทเรียนสัปดาห์ที่ 3 นักศึกษาจะสามารถ:
- จำแนกความต้องการของระบบ (FR & NFR) สำหรับระบบขายหน้าร้านของชำและคลังสินค้าได้อย่างชัดเจนและวัดผลได้
- จัดทำโครงร่างเอกสาร SRS ที่เชื่อมโยงบริบทธุรกิจ สถาปัตยกรรมฐานข้อมูลเชิงสัมพันธ์ (3NF) และข้อกำหนดด้านประสิทธิภาพ
- เขียน User Stories ตามหลัก INVEST และ MoSCoW พร้อม Acceptance Criteria (Given-When-Then) ที่ทดสอบได้จริง
- ประเมินขนาดงานด้วย Story Points (Planning Poker) และระบุ Initial Risk Register เช่น ปัญหาตัดสต็อกพร้อมกัน (Race Condition)
จากข้อมูล Log ยอดขายในชั้นปีที่ 1 สู่ระบบ POS แบบทีมด้วยกระบวนการ Agile/Scrum ในชั้นปีที่ 2
บริบทแพลตฟอร์ม Grocery POS: ผู้มีส่วนได้ส่วนเสียและแกนข้อมูลหลัก
ระบบขายหน้าร้านขายของชำไม่ได้มีแค่หน้าคิดเงิน แต่ต้องคุมสินค้าหมดอายุ บาร์โค้ด สต็อกตัดทันที และการชำระเงินหลายช่องทาง
พนักงานคิดเงิน (Cashier)
ต้องการสแกนบาร์โค้ดเร็ว คิดเงินทอนไม่ผิด รองรับ PromptPay/เงินสด/บัตร และพักบิลลูกค้าเมื่อเกิดปัญหา
ผู้จัดการร้าน (Store Manager)
ต้องการเห็นสินค้าใกล้หมด (Reorder Level) สินค้าใกล้วันหมดอายุ และสรุปยอดขายรายกะ/รายวันแบบเรียลไทม์
พนักงานคลัง (Inventory Clerk)
ต้องการรับสินค้าเข้าคลัง ตรวจนับสต็อก (Stock Adjustment) และผูกหน่วยนับปลีก-ส่ง (แพ็ก vs ชิ้น)
โครงสร้างตารางฐานข้อมูลที่ Requirement ต้องอ้างอิง
อ้างอิงจากต้นแบบชิ้นงานชั้นปีที่ 2 (1145 204): ปรับให้รองรับสินค้าของชำที่มีบาร์โค้ด หน่วยนับ และวันหมดอายุ
ความต้องการเชิงหน้าที่ (FR) เทียบกับความต้องการเชิงคุณภาพ (NFR)
FR ตอบคำถามว่า "ระบบต้องทำอะไรได้บ้าง" ส่วน NFR กำหนดว่า "ระบบต้องทำงานได้ดี ปลอดภัย และเสถียรแค่ไหน"
สิ่งที่ระบบต้องดำเนินการ (Behavior)
- FR-01 การสแกนและค้นหาสินค้า: ระบบอ่านบาร์โค้ด EAN-13 หรือค้นหาชื่อสินค้าเพื่อเพิ่มลงตะกร้า
- FR-02 การคำนวณและชำระเงิน: คำนวณส่วนลด ภาษีมูลค่าเพิ่ม และออกใบเสร็จพร้อมบันทึกช่องทางชำระเงิน
- FR-03 การตัดสต็อกอัตโนมัติ: ลดจำนวนสินค้าคงคลังทันทีเมื่อยืนยันการชำระเงิน และแจ้งเตือนเมื่อต่ำกว่าจุดสั่งซื้อซ้ำ
- FR-04 การจัดการสิทธิ์ผู้ใช้: แยกสิทธิ์ Cashier กับ Manager ในการยกเลิกบิล (Void) หรือแก้ไขราคา
คุณลักษณะเชิงระบบที่วัดผลเป็นตัวเลขได้
- NFR-01 Performance: การค้นหาบาร์โค้ดและเพิ่มสินค้าลงตะกร้าต้องตอบสนองภายในไม่เกิน 300 มิลลิวินาที
- NFR-02 Data Integrity: การตัดสต็อกหลายจุดพร้อมกันต้องเป็น Atomic Transaction ไม่มีสต็อกติดลบ
- NFR-03 Security & PDPA: รหัสผ่านต้องเข้ารหัส Hash (bcrypt/Argon2) และปิดบังข้อมูลส่วนบุคคลลูกค้าในรายงานสรุป
- NFR-04 Reliability: ระบบต้องทำงานออฟไลน์ชั่วคราวหรือกู้คืนบิลล่าสุดได้เมื่ออินเทอร์เน็ตสะดุด
ลองคลิกจำแนกข้อกำหนดของ Grocery POS ต่อไปนี้
เอกสารข้อกำหนดความต้องการซอฟต์แวร์ (SRS) แบบกระชับสำหรับทีม Agile
เอกสาร SRS ไม่ใช่การเขียนนิยาย 100 หน้า แต่คือ "สัญญาความเข้าใจร่วมกัน" ระหว่างทีมพัฒนากับอาจารย์/เจ้าของร้าน ก่อนลงมือเขียนโค้ด
วัตถุประสงค์: พัฒนาระบบ Grocery POS สำหรับร้านค้าปลีกขนาดกลาง รองรับแคชเชียร์ 2–3 จุดพร้อมกัน
ขอบเขตที่ทำ (In-Scope): ขายหน้าร้าน, รับชำระ PromptPay/เงินสด, ตัดสต็อก, แจ้งเตือนสินค้าใกล้หมด และรายงานยอดขาย
ขอบเขตที่ยังไม่ทำในเฟสนี้ (Out-of-Scope): ระบบบัญชีภาษีเต็มรูปแบบ และแอปสั่งซื้อออนไลน์สำหรับลูกค้า
กลุ่มผู้ใช้ (User Classes): Cashier (ใช้งานทุกวัน เน้นความเร็ว), Manager (ดูรายงาน/อนุมัติ Void), Admin (จัดการผู้ใช้)
ข้อจำกัดทางเทคนิค: ใช้ฐานข้อมูลเชิงสัมพันธ์ MySQL/PostgreSQL (3NF), รองรับเครื่องอ่านบาร์โค้ด USB HID และเครื่องพิมพ์ใบเสร็จความร้อน 80mm
Use Cases หลัก: UC-01 Check Out Item (สแกนบาร์โค้ด → แสดงราคา → ชำระเงิน → พิมพ์ใบเสร็จ), UC-02 Manual Price/Barcode Fallback (กรณีบาร์โค้ดอ่านไม่ออก)
Data & Traceability: ทุก FR ต้องผูกกับรหัส User Story (US-xxx) และ Test Case (TC-xxx) เพื่อยืนยันความครบถ้วน
User Story Mapping: จัดลำดับความสำคัญด้วย Walking Skeleton และ MoSCoW
Backlog แบบรายการเรียงเดี่ยวทำให้หลงทางได้ง่าย Story Map ช่วยให้เห็นเส้นทางการทำงานของร้านชำตั้งแต่รับของจนปิดกะ
ขาดไม่ได้ ระบบจะใช้งานจริงหรือปล่อย Release ไม่ได้
สำคัญ แต่มีวิธีแก้ขัดชั่วคราวได้ใน Sprint แรก
มีก็ดี (Wish-list) ตัดออกก่อนหากเวลาไม่พอ
ตกลงไม่ทำในรอบนี้ ย้ายไป Icebox ไว้พิจารณาภายหลัง
Agile User Story Backlog สำหรับระบบ Grocery POS
User Story คือ "ตัวแทนบทสนทนา" (Mnemonic Token) ที่บอกบทบาท เป้าหมาย และคุณค่าทางธุรกิจ โดยไม่ยัดไส้รายละเอียดโค้ด
| รหัส | Epic | User Story (As a / I want / So that) | MoSCoW | Sprint | Points |
|---|
เกณฑ์การยอมรับงาน (Acceptance Criteria) ด้วยรูปแบบ Given–When–Then
Story จะยังไม่ถือว่า "Done" จนกว่าจะผ่าน Automated หรือ Manual Acceptance Tests ทุกกรณีทั้งสภาวะปกติและกรณีผิดพลาด
การประเมินขนาดงานด้วย Story Points และการคำนวณ Sprint Capacity
Story Points วัด "ขนาดสัมพัทธ์ ความซับซ้อน และความไม่แน่นอน" ไม่ใช่จำนวนชั่วโมงตรงๆ — ทีมใช้ Planning Poker เพื่อสร้างความเข้าใจร่วมกัน
ตัวอย่าง Grocery POS: หน้าสแกนบาร์โค้ดและเพิ่มรายการลงตะกร้า (US-02) มีการเชื่อมต่อ DB พื้นฐานและจัดการ Error กรณีไม่พบบาร์โค้ด
Backlog รวม 0 Points · เพียงพอต่อแผน 3 สปรินต์ตามกรอบวิชา 1145 204
ทะเบียนความเสี่ยงเริ่มต้น (Initial Risk Register) สำหรับระบบ Grocery POS
ระบุความเสี่ยงทางเทคนิคและธุรกิจตั้งแต่สัปดาห์ที่ 3 เพื่อป้องกันวิกฤตระหว่างพัฒนาและรองรับรายงานวิเคราะห์ความเสี่ยงของวิชา
| รหัส | ความเสี่ยง (Risk Event) | ระดับ | แผนบรรเทาความเสี่ยง (Mitigation Plan) |
|---|
เกณฑ์การให้คะแนนและรายการส่งมอบงานของทีม (Week 3 Workshop)
ตรวจสอบความครบถ้วนของเอกสาร SRS, Backlog และ Risk Register เทียบกับเกณฑ์ประเมินระดับ "ดีเยี่ยม (22–25 คะแนน)"
| ระดับคุณภาพ | ช่วงคะแนน | ลักษณะงานตามเกณฑ์รายวิชา 1145 204 |
|---|---|---|
| ดีเยี่ยม | 22–25 | วิเคราะห์ FR/NFR ได้ถูกต้อง ครอบคลุม เขียน User Stories ตามมาตรฐาน Agile พร้อมประเมิน Story Points และระบุ Acceptance Criteria ได้อย่างสมบูรณ์ |
| ดี | 18–21 | Requirements และ User Stories ครอบคลุมฟังก์ชันหลักของระบบ มีการประเมิน Story Points โดยมีจุดที่ต้องปรับแก้เล็กน้อย |
| พอใช้ | 14–17 | User Stories เขียนไม่ถูกรูปแบบ ขาดรายละเอียด Acceptance Criteria หรือวิเคราะห์ Requirements ไม่ครอบคลุม |
| ปรับปรุง | 0–13 | ไม่มีการวิเคราะห์ Requirements หรือจัดทำ User Story Backlog ตามหลักวิศวกรรมซอฟต์แวร์ |
เรียบเรียงจากแนวทางโครงงานรายวิชา 1145 204 (โครงงานระดับชั้นปีที่ 2), เกณฑ์รูบริกการวิเคราะห์ความต้องการของหลักสูตร, คู่มือ Scrum Guide (Ken Schwaber & Jeff Sutherland), หนังสือ Agile Estimating and Planning (Mike Cohn), Agile Principles, Patterns, and Practices (Robert C. Martin) และแนวทาง User Story Mapping และ GitHub Projects for Agile