Persyaratan mendefinisikan apa yang harus dilakukan oleh suatu produk — sebuah harapan terdokumentasi mengenai hasil dari pelaksanaan proyek. Dokumen ini mencakup harapan pelanggan maupun pengembang terkait program, fungsi-fungsinya, dan proyek secara keseluruhan. Persyaratan mencakup karakteristik, biaya, jadwal, dan risiko. Dengan demikian, persyaratan merupakan pernyataan tentang apa yang perlu dikembangkan, atau deskripsi kuantitatif yang tepat mengenai apa yang diharapkan diperoleh sebagai hasil dari pelaksanaan proyek. Definisi persyaratan yang buruk merupakan penyebab utama masalah selama pelaksanaan proyek.
Persyaratan menentukan apa yang harus dilakukan, seberapa baik hal itu dilakukan, dan dalam batasan apa. Jika persyaratan salah, proyek dan produk akan cacat. Persyaratan, kendala, dan asumsi memecah masalah menjadi bagian-bagian. Hal ini menentukan keberhasilan keseluruhan proyek.
Jenis-jenis persyaratan:
- Persyaratan fungsional mendefinisikan apa yang harus dilakukan oleh suatu elemen sistem tertentu.
- Persyaratan kinerja mendefinisikan parameter kuantitatif dari fungsi-fungsi terkait yang dijalankan oleh sistem.
- Persyaratan kendala muncul dari batasan mode operasi, kondisi lingkungan, pertimbangan keselamatan, atau kepatuhan terhadap regulasi.
- Persyaratan verifikasi memberikan keyakinan bahwa sistem memiliki karakteristik yang ditentukan dalam lingkungan operasionalnya yang sesungguhnya.
- Persyaratan antarmuka mendefinisikan fungsi, karakteristik, toleransi, dan kendala dari semua antarmuka.
- Persyaratan operasional menentukan kesiapan operasional sistem, dengan fokus pada kinerja sistem, sekaligus mendefinisikan bagaimana sistem berinteraksi dengan penggunanya.
Dalam literatur berbahasa Inggris, akronim SMART digunakan untuk mengingat karakteristik persyaratan yang baik.
- Specific (spesifik) — persyaratan harus mengacu hanya pada satu fitur proyek atau satu karakteristik sistem. Persyaratan harus dirumuskan dalam bentuk apa yang harus dilakukan dan seberapa baik, tetapi tidak boleh dalam bentuk solusi yang mungkin — yaitu bagaimana cara melakukannya.
- Measurable (terukur) — parameter yang terukur dinyatakan secara objektif dan kuantitatif.
- Achievable (dapat dicapai) — suatu persyaratan harus dapat dicapai secara teknis dengan biaya yang wajar.
- Relevant (relevan) — suatu persyaratan harus sesuai dengan tingkat sistem yang dipilih.
- Traceable (dapat ditelusuri) — persyaratan pada tingkat yang lebih rendah harus secara eksplisit diturunkan dari dan/atau didukung oleh persyaratan pada tingkat yang lebih tinggi. Persyaratan tanpa persyaratan “induk” dianggap sebagai persyaratan “yatim” dan harus dinilai perlu tidaknya untuk diterapkan.
Keharusan. Jika ada keraguan tentang perlu tidaknya suatu persyaratan, cukup tanyakan: “Kerugian apa yang akan dialami sistem jika persyaratan ini tidak dimasukkan dalam daftar?” Jika tidak ada jawabannya, kemungkinan besar persyaratan tersebut tidak diperlukan.
Keterverifikasian. Segera setelah suatu persyaratan dirumuskan, perlu ditentukan bagaimana persyaratan tersebut dapat diverifikasi. Untuk itu, kriteria kesesuaian yang tepat harus dipilih.
Keterdapatcapaian. Agar dapat dicapai, suatu persyaratan harus layak secara teknis dalam jadwal dan anggaran yang ditentukan, dengan memperhatikan kendala tambahan. Jika terdapat ketidakpastian mengenai kelayakan teknis suatu persyaratan, kajian atau penyelidikan lebih lanjut yang sesuai harus dilakukan. Jika ketidakpastian tetap ada setelah itu, sebaiknya dirumuskan sebuah tujuan, bukan sebuah persyaratan. Jelas bahwa meskipun suatu persyaratan layak secara teknis, persyaratan tersebut mungkin tidak dapat dicapai karena biaya, jadwal, atau kendala lain seperti berat. Tidak ada gunanya merumuskan persyaratan untuk sesuatu yang mustahil dicapai; seseorang harus bersikap pragmatis.
Kejelasan. Setiap persyaratan harus mengungkapkan satu gagasan tunggal serta ringkas dan sederhana. Penting bahwa persyaratan itu jelas dan tidak ambigu. Persyaratan yang baik sering kali tidak memerlukan lebih dari sekadar kalimat sederhana.
Suatu persyaratan harus dinyatakan secara positif dan tidak boleh diawali dengan negasi. Persyaratan harus benar secara tata bahasa, bebas dari kesalahan ketik dan kekurangan. Terminologi yang konsisten harus digunakan pada semua tingkat sistem.