ทำความเข้าใจ “สิ่งที่ระบบ ต้องทำ” vs “ต้องเป็นยังไง” แบบไม่งง
💡 Functional Requirement คืออะไร?
สิ่งที่ระบบต้อง ทำ เพื่อให้ตอบสนองความต้องการของผู้ใช้งาน
📌 เน้น ฟีเจอร์ หรือ พฤติกรรม ของระบบ
📌 “ถ้าขาดไป = ใช้งานไม่ได้เลย”
ตัวอย่าง:
- ระบบต้องให้พนักงาน “ยื่นคำขอลาออนไลน์ได้”
- ผู้ดูแลต้องสามารถ “อนุมัติ / ปฏิเสธคำขอได้”
- ระบบต้อง “ส่งอีเมลแจ้งเตือนหลังอนุมัติสำเร็จ”
⚙️ Non-functional Requirement คืออะไร?
สิ่งที่ระบบต้อง เป็นหรือมี เพื่อให้ระบบทำงานได้ดี มีคุณภาพ
📌 เน้น คุณลักษณะ หรือ ข้อจำกัด
📌 “ไม่ได้ส่งผลกับฟีเจอร์โดยตรง แต่ส่งผลกับประสบการณ์”
ตัวอย่าง:
- ระบบต้องใช้งานได้ 24 ชม. (Availability)
- รองรับผู้ใช้พร้อมกันได้ 1,000 คน (Scalability)
- ต้องโหลดหน้าเว็บภายใน 3 วินาที (Performance)
- ข้อมูลต้องเข้ารหัส (Security)
- รองรับการใช้งานทั้งมือถือและ Desktop (Usability)
🎯 ทำไมต้องแยกสองสิ่งนี้?
- 🧱 Functional = โครงสร้างหลักของบ้าน
- 🎨 Non-functional = สี, แสง, ความสะดวกในการอยู่บ้าน
SA ต้องรู้ทั้งสองมิติ
เพราะ “ระบบที่ทำงานได้ แต่ใช้งานไม่ดี” = ไม่มีใครอยากใช้
| คำถามเพื่อเขียน Functional | คำถามเพื่อเขียน Non-functional |
|---|---|
| • ระบบนี้ทำอะไรได้บ้าง? | • ระบบนี้ควรตอบสนองภายในกี่วินาที? |
| • ใครใช้? เค้าใช้อะไรบ้าง? | • มีข้อจำกัดด้านเวลา / อุปกรณ์ไหม? |
| • มีเงื่อนไขอะไรบ้าง? | • มีเรื่องความปลอดภัย / กฎหมายไหม? |

ใส่ความเห็น