ข้อกำหนด กำหนดสิ่งที่ผลิตภัณฑ์ต้องทำ — เป็นความคาดหวังที่บันทึกไว้เกี่ยวกับผลลัพธ์ของการดำเนินโครงการ เอกสารนี้บันทึกความคาดหวังของลูกค้าและของผู้พัฒนาเกี่ยวกับโปรแกรม หน้าที่การทำงานของโปรแกรม และโครงการโดยรวม ข้อกำหนดครอบคลุมคุณลักษณะ ต้นทุน กำหนดเวลา และความเสี่ยง ดังนั้น ข้อกำหนดคือถ้อยแถลงว่าสิ่งใดที่ต้องพัฒนา หรือคำอธิบายเชิงปริมาณที่แม่นยำถึงสิ่งที่คาดว่าจะได้รับเป็นผลจากการดำเนินโครงการ การกำหนดข้อกำหนดที่ไม่ดีเป็นสาเหตุหลักของปัญหาในระหว่างการดำเนินโครงการ
ข้อกำหนดระบุว่าต้องทำสิ่งใด ทำได้ดีเพียงใด และภายใต้ข้อจำกัดใด หากข้อกำหนดผิดพลาด โครงการและผลิตภัณฑ์ก็จะมีข้อบกพร่อง ข้อกำหนด ข้อจำกัด และข้อสมมติจะแบ่งปัญหาออกเป็นส่วนต่าง ๆ สิ่งนี้เป็นตัวกำหนดความสำเร็จโดยรวมของโครงการ
ประเภทของข้อกำหนด:
- ข้อกำหนดเชิงหน้าที่กำหนดสิ่งที่องค์ประกอบของระบบที่กำหนดต้องทำ
- ข้อกำหนดด้านสมรรถนะกำหนดพารามิเตอร์เชิงปริมาณของหน้าที่ที่สอดคล้องกันซึ่งระบบต้องปฏิบัติ
- ข้อกำหนดเชิงข้อจำกัดเกิดขึ้นจากข้อจำกัดของโหมดการทำงาน สภาพแวดล้อม ข้อพิจารณาด้านความปลอดภัย หรือการปฏิบัติตามกฎระเบียบ
- ข้อกำหนดด้านการทวนสอบให้ความมั่นใจว่าระบบมีคุณลักษณะตามที่ระบุไว้ในสภาพแวดล้อมการทำงานจริง
- ข้อกำหนดด้านส่วนต่อประสานกำหนดหน้าที่ คุณลักษณะ ค่าความเผื่อ และข้อจำกัดของส่วนต่อประสานทั้งหมด
- ข้อกำหนดด้านการปฏิบัติงานระบุความพร้อมในการปฏิบัติงานของระบบ โดยเน้นที่สมรรถนะของระบบ พร้อมทั้งกำหนดวิธีที่ระบบมีปฏิสัมพันธ์กับผู้ใช้
ในวรรณกรรมภาษาอังกฤษ มีการใช้ตัวอักษรย่อ SMART เพื่อช่วยจดจำคุณลักษณะของข้อกำหนดที่ดี
- Specific (เจาะจง) — ข้อกำหนดต้องกล่าวถึงเพียงลักษณะเดียวของโครงการหรือคุณลักษณะเดียวของระบบ ควรกำหนดในรูปของสิ่งที่ต้องทำและทำได้ดีเพียงใด แต่ไม่ควรกำหนดในรูปของแนวทางแก้ปัญหาที่เป็นไปได้ — คือวิธีการทำ
- Measurable (วัดได้) — พารามิเตอร์ที่วัดได้ต้องแสดงออกอย่างเป็นภาวะวิสัยและเชิงปริมาณ
- Achievable (บรรลุได้) — ข้อกำหนดต้องสามารถบรรลุได้ทางเทคนิคด้วยต้นทุนที่สมเหตุสมผล
- Relevant (สอดคล้อง) — ข้อกำหนดต้องสอดคล้องกับระดับของระบบที่เลือกไว้
- Traceable (สืบย้อนได้) — ข้อกำหนดในระดับล่างต้องสืบย้อนได้อย่างชัดเจนจากและ/หรือได้รับการสนับสนุนจากข้อกำหนดในระดับสูงกว่า ข้อกำหนดที่ไม่มีข้อกำหนด “ต้นทาง” จะถูกถือว่าเป็น “ข้อกำหนดกำพร้า” และต้องได้รับการประเมินถึงความจำเป็นในการนำไปปฏิบัติ
ความจำเป็น หากมีข้อสงสัยว่าจำเป็นต้องมีข้อกำหนดหนึ่งหรือไม่ ให้ลองถามว่า “ระบบจะได้รับความเสียหายอย่างไรหากไม่รวมข้อกำหนดนี้ไว้ในรายการ” หากไม่มีคำตอบ ข้อกำหนดนั้นก็อาจไม่จำเป็น
ความสามารถในการทวนสอบ เมื่อกำหนดข้อกำหนดขึ้นแล้ว จำเป็นต้องพิจารณาว่าจะทวนสอบได้อย่างไร เพื่อการนี้ต้องเลือกเกณฑ์ความสอดคล้องที่เหมาะสม
ความสามารถในการบรรลุผล เพื่อให้บรรลุได้ ข้อกำหนดต้องเป็นไปได้ทางเทคนิคภายในกำหนดเวลาและงบประมาณที่กำหนด โดยอยู่ภายใต้ข้อจำกัดเพิ่มเติม หากมีความไม่แน่นอนเกี่ยวกับความเป็นไปได้ทางเทคนิคของข้อกำหนด จำเป็นต้องมีการศึกษาหรือการสืบค้นเพิ่มเติมที่เหมาะสม หากยังคงมีความไม่แน่นอนอยู่แม้หลังจากนั้น ควรกำหนดเป็นเป้าหมายแทนที่จะเป็นข้อกำหนด เป็นที่ชัดเจนว่าแม้ข้อกำหนดจะเป็นไปได้ทางเทคนิค แต่ก็อาจไม่สามารถบรรลุได้เนื่องจากต้นทุน กำหนดเวลา หรือข้อจำกัดอื่น ๆ เช่น น้ำหนัก การกำหนดข้อกำหนดสำหรับสิ่งที่ไม่สามารถทำได้นั้นไม่มีประโยชน์ ต้องมีความเป็นจริงในทางปฏิบัติ
ความชัดเจน ข้อกำหนดแต่ละข้อต้องแสดงความคิดเพียงหนึ่งเดียวและต้องกระชับและเรียบง่าย สิ่งสำคัญคือข้อกำหนดต้องชัดเจนและไม่คลุมเครือ ข้อกำหนดที่ดีมักไม่จำเป็นต้องมีอะไรมากไปกว่าประโยคง่าย ๆ
ข้อกำหนดควรระบุในเชิงบวกและไม่ควรเริ่มต้นด้วยคำปฏิเสธ ต้องถูกต้องตามหลักไวยากรณ์ ปราศจากข้อผิดพลาดในการพิมพ์และการละเว้น ต้องใช้ศัพท์ที่สอดคล้องกันในทุกระดับของระบบ