Pengembangan Perangkat Lunak Adaptif - Konsep
Pada bab ini, kita akan memahami berbagai konsep Pengembangan Perangkat Lunak Adaptif.
Teori Sistem Adaptif Kompleks (CAS)
Brian Arthur dan koleganya, di Santa Fe institute, menggunakan teori Complex Adaptive Systems (CAS) untuk merevolusi pemahaman Fisika, Biologi, Evolusi, dan Ekonomi.
Brian Arthur memuncak selama lebih dari dua dekade mencoba meyakinkan ekonom arus utama bahwa pandangan mereka, yang didominasi oleh asumsi fundamental tentang pengembalian yang menurun, ekuilibrium, dan dinamika deterministik, tidak lagi cukup untuk memahami kenyataan. Dunia baru adalah salah satu dari hasil yang meningkat, ketidakstabilan, dan ketidakmampuan untuk menentukan sebab dan akibat.
Kedua dunia itu berbeda dalam perilaku, gaya, dan budaya. Mereka menyerukan -
- Teknik Manajemen yang Berbeda
- Strategi Berbeda
- Pemahaman yang Berbeda
Pengembangan Perangkat Lunak Kompleks
Dengan cakupan Aplikasi Perangkat Lunak yang meledak, bahkan organisasi pengembangan perangkat lunak mengalami kontradiksi serupa seperti yang disebutkan di atas.
One World diwakili oleh perkembangan Deterministik, yang berasal dari praktik manajemen yang berakar pada dasar-dasar stabilitas dan prediktabilitas (yang dalam istilah Arthur berarti pengembalian yang menurun)
Dunia Kedua diwakili oleh industri yang bergerak dari penurunan ke lingkungan pengembalian yang meningkat yang tidak dapat diprediksi, nonlinier, dan cepat.
Untuk mengatasi masalah dunia kedua ini, Jig Highsmith menawarkan kerangka kerja, Pengembangan Perangkat Lunak Adaptif yang berbeda dari Pengembangan Perangkat Lunak Penentu.
Pengembangan Perangkat Lunak Adaptif berfokus pada penanganan sistem yang kompleks -
Pengembangan Perangkat Lunak Adaptif untuk siklus hidup pengembangan.
Teknik Manajemen Adaptif meminta pola pikir yang berbeda dari praktik manajemen proyek tradisional.
Dalam tutorial ini, Anda dapat memahami kedua implementasi ini.
Adaptive Software Development (ASD) didasarkan pada dua perspektif -
Perspektif konseptual berdasarkan teori Complex Adaptive Systems (CAS), seperti yang diberikan di bagian pertama bab ini.
Perspektif Praktis berdasarkan
Pengalaman bertahun-tahun dengan metodologi pengembangan perangkat lunak deterministik.
Konsultasi, praktik, dan penulisan tentang teknik Rapid Application Development (RAD); dan bekerja dengan perusahaan perangkat lunak berteknologi tinggi dalam mengelola pengembangan produk mereka.
Dalam bab ini, Anda akan memahami perspektif konseptual Pengembangan Perangkat Lunak Adaptif.
Konsep Sistem Adaptif Kompleks (CAS)
Teori Complex Adaptive Systems (CAS) memiliki banyak konsep. Pengembangan Perangkat Lunak Adaptif didasarkan pada dua konsep berikut -
- Emergence
- Complexity
Munculnya
Dalam proyek pengembangan produk perangkat lunak yang kompleks, hasilnya secara inheren tidak dapat diprediksi. Namun, produk yang sukses muncul dari lingkungan seperti itu sepanjang waktu.
Hal ini dapat terjadi dengan Munculnya, seperti yang diilustrasikan dalam teori Sistem Adaptif Kompleks (CAS). Ini bisa dipahami dengan contoh sederhana, perilaku berkelompok burung.
Ketika Anda mengamati sekawanan burung, Anda memperhatikan bahwa -
Setiap burung mencoba melakukannya
Pertahankan jarak minimum dari objek lain di lingkungan, termasuk burung lain.
Cocokkan kecepatan dengan burung di lingkungannya.
Bergerak menuju pusat massa burung yang terlihat di lingkungannya.
Tidak ada aturan perilaku untuk grup. Satu-satunya aturan adalah tentang perilaku burung.
Namun, ada perilaku yang muncul, berkelompok burung. Ketika burung-burung yang nakal bergegas mengejar, kawanannya berpisah di sekitar rintangan dan membentuk kembali di sisi lain.
Hal ini menunjukkan kebutuhan perubahan model mental yang paling sulit dalam Perkembangan Adaptif - Dari cara mengelola dan mengatur kebebasan individu hingga gagasan bahwa tatanan baru yang kreatif muncul secara tak terduga dari organisasi mandiri yang spontan.
Selain pengembangan, kemunculan merupakan konsep terpenting dari perspektif manajemen juga.
Kompleksitas
Dalam konteks Pengembangan Perangkat Lunak, Kompleksitas adalah tentang -
Individu dari tim seperti pengembang, pelanggan, vendor, pesaing, dan pemegang saham, jumlah dan kecepatan mereka.
Ukuran dan kompleksitas teknologi.
Praktik Pengembangan Perangkat Lunak Adaptif
Pengembangan Perangkat Lunak Adaptif menawarkan perspektif yang berbeda tentang praktik manajemen perangkat lunak. Pada bagian di bawah ini, Anda dapat memahami dua praktik penting - Kualitas dan RAD, keduanya memiliki konsekuensi untuk persyaratan pengumpulan.
Anda dapat menemukan detail dari semua praktik di bab, Praktik Pengembangan Perangkat Lunak Adaptif dalam tutorial ini.
Kualitas
Dalam lingkungan yang kompleks, praktik kuno "Lakukan dengan benar pada kali pertama" tidak berhasil karena Anda tidak dapat memprediksi apa yang benar di awal. Anda harus memiliki tujuan untuk menghasilkan nilai yang tepat. Namun, dalam lingkungan yang kompleks, kombinasi dan permutasi komponen nilai seperti cakupan (fitur, kinerja, tingkat cacat), jadwal, dan sumber daya sangat luas sehingga tidak akan pernah ada nilai yang optimal. Oleh karena itu, fokusnya adalah bergeser untuk memberikan nilai terbaik di pasar yang kompetitif.
Praktek RAD
Praktik RAD umumnya melibatkan kombinasi dari berikut ini -
- Siklus Hidup Evolusioner
- Grup Fokus Pelanggan, Sesi JAD, Tinjauan Teknis
- Manajemen Proyek dengan Waktu Terbatas
- Rekayasa Perangkat Lunak Berkelanjutan
- Tim yang berdedikasi dengan ruang perang
Proyek RAD memiliki rasa adaptif yang melekat dan muncul. Banyak organisasi TI yang menentang RAD. Namun, Microsoft dan lainnya telah menghasilkan perangkat lunak yang sangat besar dan kompleks menggunakan teknik yang sebanding dengan RAD karena hal itu menimbulkan pertanyaan tentang pandangan dunia fundamental mereka.
Praktik RAD dan proses Microsoft adalah contoh dari Adaptive Development yang sedang beraksi. Memberi mereka label (yaitu, Perkembangan Adaptif) dan menyadari bahwa ada ilmu pengetahuan ilmiah yang berkembang (yaitu, teori CAS) menjelaskan mengapa mereka bekerja. Ini harus memberikan dasar untuk penggunaan yang lebih luas dari praktik-praktik ini.