Metode pengembangan perangkat lunak meliputi model air terjun klasik, prototype, RAD, spiral, agile, dan scrum. Masing-masing memiliki kelebihan dan kekurangan tergantung jenis dan skala proyek perangkat lunak. Metode agile dan scrum lebih menekankan pengembangan berulang dalam waktu singkat untuk mencapai tujuan akhir.