Overview
Pertemuan ini membahas dasar rekayasa kebutuhan (requirement engineering), pentingnya requirement, masalah umum dalam proyek perangkat lunak, serta tipe dan proses requirement.
Pengantar Analisis dan Spesifikasi Kebutuhan
- Analisis kebutuhan bertujuan mengidentifikasi dan mendokumentasikan kebutuhan aplikasi perangkat lunak.
- Requirement harus didasarkan pada tujuan dan kebutuhan customer, bukan sekadar asumsi.
Pentingnya Requirement Engineering
- Software harus dibuat sesuai kebutuhan dan harapan pengguna.
- Menentukan requirement sejak awal membantu mengurangi biaya dan waktu jika ada koreksi.
- Kesalahan pada tahap awal lebih mudah dan murah diperbaiki dibanding setelah tahap implementasi/koding.
Masalah Umum dalam Proyek Perangkat Lunak
- Kurangnya keterlibatan pengguna (insufficient user involvement) menyebabkan requirement tidak tergali sempurna.
- Perubahan kebutuhan secara terus menerus (creeping user requirement) mengganggu proses pengembangan.
- Requirement ambigu dapat menyebabkan interpretasi berbeda antara analis dan customer.
- Gold-plating: developer menambahkan fitur yang tidak dibutuhkan customer.
- Spesifikasi minimal dan perencanaan yang tidak akurat menyebabkan proyek tidak terarah.
- Overlook user class: terlalu banyak role pengguna bisa membingungkan pengembangan fitur.
Perbedaan Product dan Project Requirement
- Product requirement: kebutuhan fungsi dan fitur dari aplikasi yang dikembangkan.
- Project requirement: kebutuhan untuk menjalankan proyek, seperti infrastruktur, skill, dan environment.
Proses dan Tipe Requirement
- Well-established requirement process: mengikuti tahapan tetap (misal waterfall), tahap tidak boleh lompat-lompat.
- Tantangan: proses lama, sulit kolaborasi, prototyping lambat.
- Agile requirement process: tahapan requirement dilakukan per fitur, adaptif, contoh metodenya Scrum.
- Tantangan: pekerjaan berulang, dokumentasi sering kurang rapi, perlu feedback aktif dari customer.
Kesimpulan
- Requirement penting untuk memastikan aplikasi sesuai kebutuhan dan efisien dalam pengembangan.
- Terdapat dua tipe utama proses requirement: well-established dan agile, masing-masing dengan kelebihan serta tantangan.
Key Terms & Definitions
- Requirement — Spesifikasi kebutuhan dan fitur yang harus dimiliki aplikasi dari sisi pengguna maupun pengembang.
- Well-established requirement — Proses rekayasa kebutuhan yang berurutan dan ketat, seperti metode waterfall.
- Agile requirement — Proses kebutuhan yang fleksibel dan adaptif per fitur, seperti pada metode Scrum.
- Gold-plating — Penambahan fitur yang tidak diminta/dibutuhkan oleh customer.
- Product requirement — Kebutuhan fungsi/fitur aplikasi yang dikembangkan.
- Project requirement — Kebutuhan pendukung agar proyek berjalan (infrastruktur, skill, dsb).
Action Items / Next Steps
- Pelajari kembali perbedaan product dan project requirement.
- Siapkan pertanyaan terkait tipe proses requirement untuk diskusi pertemuan berikutnya.