Pengembangan perangkat lunak adaptif adalah prinsip desain untuk pembuatan sistem perangkat lunak. Prinsipnya berfokus pada penciptaan dan evolusi sistem perangkat lunak yang cepat. Tidak pernah ada periode di mana perangkat lunak selesai; hanya ada periode stabil antara rilis baru. Metode pengembangan adaptif tumbuh dari metode pengembangan aplikasi cepat . Kedua metode ini memiliki struktur yang serupa, tetapi pengembangan aplikasi yang cepat memungkinkan waktu ketika proyek selesai, sedangkan pengembangan perangkat lunak adaptif tidak.
Pengembangan perangkat lunak adaptif terdiri dari tiga langkah, masing-masing berkisar pada pengkodean program.
Fokus pengembangan adaptif ada pada kode komputer. Alih-alih merencanakan perangkat lunak sebelumnya, pengembang memiliki ide dasar di kepala mereka dan mereka mulai bekerja. Ketika potongan perlu diubah atau beradaptasi dengan sistem baru, pembuat kode hanya melakukannya. Jika program membutuhkan tambalan, seseorang hanya membuatnya.
Secara keseluruhan, kurangnya langkah pra-perencanaan memungkinkan pengembang untuk membuat perangkat lunak dengan sangat cepat. Meskipun hal ini kadang-kadang akan menghasilkan perangkat lunak yang tidak melakukan fungsi tepat yang diperlukan, itu umumnya tidak menjadi masalah. Siklus pengembangan dalam proses ini sangat singkat sehingga versi baru dengan fitur tambahan dapat keluar dengan sangat cepat. Proses atau prototyping cepat ini merupakan landasan dari pengembangan perangkat lunak adaptif dan pengembangan aplikasi yang cepat.
Titik di mana kedua metode berbeda adalah pada titik akhir akhirnya. Untuk pengembangan perangkat lunak adaptif, tidak ada titik akhir yang nyata, hanya saat perangkat lunak tidak lagi diperlukan atau kode dipindahkan ke aplikasi generasi yang lebih tinggi. Di sisi lain, pengembangan aplikasi yang cepat memungkinkan akhir proyek, saat perangkat lunak bebas bug dan telah memenuhi persyaratan pembeli.
Pengembangan perangkat lunak adaptif terdiri dari tiga langkah, masing-masing berkisar pada pengkodean program. Langkah pertama adalah spekulasi. Selama fase ini, pembuat kode berusaha memahami sifat sebenarnya dari perangkat lunak dan kebutuhan pengguna. Fase ini bergantung pada laporan bug dan pengguna untuk memandu proyek. Dalam tidak ada laporan yang tersedia, pengembang menggunakan persyaratan dasar yang digariskan oleh pembeli.
Fase kolaborasi adalah ketika masing-masing pengembang memantapkan apa yang mereka lakukan masing-masing dan bagaimana menggabungkan bagian mereka. Fase ini umumnya sepenuhnya in-house. Pengembang tidak memerlukan informasi tambahan atau masukan dari luar untuk mengelola bagian perangkat lunak ini.
Langkah terakhir adalah belajar. Selama fase pembelajaran, versi terbaru dari perangkat lunak dirilis ke pengguna. Ini menghasilkan bug dan laporan pengguna yang digunakan selama fase pertama proyek, dan siklus berulang.