Functional และ Non-functional Requirement
Why this matters
Requirement แบ่งใหญ่ ๆ ได้สองประเภท และโปรเจกต์จำนวนมากพังเพราะเขียนแต่ประเภทแรกจนลืมประเภทที่สอง
7.3 Functional Requirement
บอกว่า system ต้องทำอะไร
ตัวอย่าง:
The system shall allow QA users to search historical complaints by
Part Number, Customer, Defect Type and free-text query.
ลักษณะของ functional requirement ที่ดี: เป็นการกระทำที่ระบบทำได้ ตรวจสอบได้ว่ามี/ไม่มี และไม่กำกวม
7.4 Non-functional Requirement
บอก คุณสมบัติของระบบ — ไม่ใช่ว่าทำอะไร แต่ทำได้ดีแค่ไหน ปลอดภัยแค่ไหน เช่น:
- Security — ใครเข้าถึงได้ ต้อง login ไหม
- Performance — ตอบเร็วแค่ไหน
- Availability — ระบบต้องพร้อมใช้เมื่อไรบ้าง
- Auditability — ตรวจย้อนหลังได้ไหมว่าใครทำอะไร
- Privacy — ข้อมูลส่วนตัว/ความลับถูกปกป้องอย่างไร
- Scalability — รองรับการใช้งานที่โตขึ้นได้แค่ไหน
ตัวอย่างที่วัดได้:
Search results should be returned within 3 seconds for 95% of queries.
What a BA needs to know
สำหรับระบบที่มี AI ตัว non-functional มักเป็นตัวชี้เป็นชี้ตาย: ระบบค้น complaint ที่ตอบใน 3 วินาทีแต่เปิดข้อมูล confidential ให้คนไม่มีสิทธิ์อ่าน คือระบบที่ใช้ไม่ได้ — เทียบกับงานเดิมของคุณ: functional คือ “ชิ้นงานทำหน้าที่ได้” ส่วน non-functional คือ specification ด้านความทนทาน ความปลอดภัย ที่ของต้องผ่านเหมือนกันทุกชิ้น