Sebelum baris kode pertama ditulis, ada proses penting yang menentukan arah dan keberhasilan proyek perangkat lunak:analisis dan spesifikasi kebutuhan