Pendekatan Pengembangan Sistem
Waterfall (Traditional predictive SDLC) adalah pendekatan SDLC yang mengharuskan projek unruk direncanakan/disusun terlebih dahulu sehingga sistem informasi dapat dikembangkan berdasarkan rencana yang telah dibuat. Requirements pada waterfall telah didefinisikan terlebih dahulu sebelum tim pengembang mulai mengembangkan sistem.
Waterfall mengembangkan system/software secara bertahap, berurutan, dan sistematis. Waterfall memiliki fase yang berurutan dan tidak tumpang-tindih atau iterasi. Setiap satu fase waterfall selesai, maka lanjut ke fase berikutnya dan tidak dapat kembali ke fase sebelumnya. Adapun tahapan/fase pada waterfall predictive SDLC adalah analysis, design, development, testing, deployment, dan maintenance. Berikut merupakan visualisasi tahapan/fase pada waterfall.

Adaptive approach (pendekatan adaptive) hadir sebagai respon/solusi terhadap pengembangan perangkat lunak di mana memiliki requirements yang kompleks yang sering bertambah atau belum pasti. Pendekatan adaptive memiliki resiko teknikal yang lebih besar dikarenakan oleh requirement dan lingkungan teknikal yang belum pasti. Pendekatan adaptive erat hubungannya dengan iterative model karena selalu meliputi iterasi di mana desain dan implementasi selesai dari tahap awal. Iterative model adalah model yang bersifat lebih fleksibel, dikembangkan secara iterative, dan dapat beradaptasi pada kebutuhan yang berubah-ubah selama projek dijalankan.
Pendekatan adaptive meliputi incremental development dan walking skeleton. Incremental development adalah metode pengembangan sistem yang menyelesaikan porsi sistem dalam increments kecil dan akan terintegrasi selama proses berlangsung. Incremental development sering dikenal dengan “growing” system. Di sisi lain, walking skeleton adalah metode pengembangan sistem yang menyelesaikan kerangka struktur sistem terlebih dahulu.
Pendekatan adaptive secara general memiliki enam inti proses, yaitu:
- Mengidentifikasi masalah dan mendapatkan approval
- Merencanakan dan memonitor proyek
- Menemukan dan memahami detail
- Mendesain komponen sistem
- Membangun, tes, dan mengintegrasi komponen sistem
- Menyelesaikan system test dan menerapkan solusinya
Metodologi berperan sebagai pedoman untuk pengembangan sistem, seperti apa yang harus dilakukan, kenapa, dan bagaimana. Metodologi menspesifikasikan aktivitas, tugas, perencanaan proyek, project management, pelaporan, analisis dan desain yang akan dibuat, teknik implementasi dan testing, deployment dan support techniques. Metodologi juga meliputi sebuah koleksi dari teknik yang digunakan untuk menyelesaikan aktivitas dan tugas, seperti pemetaan, untuk setiap aspek dari proyek.
Model adalah sebuah abstrak dari sebuah aspek penting dari dunia nyata. Model berfungsi untuk memahami konsep yang kompleks dengan memfokuskan kepada bagian yang relevan saja. Model bersifat krusial untuk menyampaikan informasi proyek. Pada sistem informasi, beberapa model merupakan komponen sistem yang akan dikembangkan.
Tools adalah aplikasi perangkat lunak yang membantu tim pengembangan (developers) dalam membuat model atau komponen lain yang dibutuhkan oleh sebuah proyek. Integrated Development Environment (IDE) adalah serangkaian alat yang bekerja bersama untuk memfasilitasi/menyediakan lingkungan pengembangan yang komprehensif. Visual modeling tools adalah sebuah alat untuk menciptakan model secara grafik.
Teknik adalah sebuah koleksi dari guidelines/pedoman yang membantu seorang analyst untuk menyelesaikan sebuah aktivitas atau tugas. Mempelajari teknik merupakan kunci untuk mempunyai keahlian dalam suatu bidang. Teknik-teknik tersebut contohnya seperti user-interface technique, data-modeling technique, domain modeling technique, use case technique, dll.
Agile development adalah sebuah filosofi dan serangkaian guidelines/pedoman untuk mengembangkan sistem informasi dalam lingkungan yang terus berubah atau tidak pasti. Agile didasarkan pada proses pengerjaan yang berulang sesuai dengan aturan yang telah disepakati. Agile memiliki beberapa ciri-ciri, yaitu merespon terhadap perubahan, interaksi dalam proses, mengutamakan working software daripada dokumentasi yang komprehensif, melibatkan kolaborasi dengan pelanggan daripada negosiasi kontrak, dll.
Berikut ini merupakan 11 agile principle:
- Mengembangkan perangkat lunak sebagai tujuan utama. Tidak terganggu dengan dokumentasi atau model.
- Upaya berikutnya sebagai tujuan kedua. Waspada terhadap versi atau revisi pada langkah selanjutnya.
- Meminimalisir aktivitas modeling. Hanya membuat apa yang diperlukan agar projek dapat terus bergerak maju.
- Menerima perubahan dan perubahan secara bertahap. Mengambil langkah kecil yang akan membantu dalam menjaga project on-track.
- Model dengan sebuah tujuan. Model mempunyai tujuan seperti untuk memahami atau berkomunikasi mengenai informasi proyek.
- Membuat banyak model = melihat masalah dari berbagai perspektif.
- Fokus kepada konten daripada representasi. Fokus terhadap kebutuhan stakeholder.
- Belajar dari satu sama lain dengan komunikasi secara terbuka.
- Mengetahui model dan bagaimana cara menggunakannya.
- Adaptasi terhadap kebutuhan spesifik projek.
- Memaksimalkan stakeholder RMI.
Unified Process (UP) adalah kerangka proses pengembangan sistem/perangkat lunak yang bersifat use-case driven dan dikembangkan secara iterative dan incremental. UP dikembangkan bersama dengan UML (Unified Modeling Language). Beberapa diagram dengan menggunakan UML, antara lain seperti activity diagram, use case diagram, domain class diagram, state machine diagram, sequence diagram, dll.
Fase UP mengorganisasikan iterasi pada empat area utama untuk difokuskan selama projek, yaitu inception, elaboration, construction, dan transition. Inception phase memulai sebuah proyek, elaboration memahami requirement dari sistem, construction membangun sistem, dan transition menyiapkan sistem dan bergerak menuju penerapan sistem baru.
Berikut merupakan objektif dari setiap fase Unified Process (UP) :
|
Phases |
Objective |
| Inception | Menyusun perkiraan visi dari sistem dengan cara membuat business case, mendefinisikan scope, membuat estimasi secara kasar untuk biaya dan jadwal sebuah proyek. |
| Elaboration | Mendefinisikan visi, mengidentifikasikan dan mendeskripsikan semua requirements, memfinalisasikan scope, desain dan implementasi inti arsitektur dan fungsi, menyelesaikan resiko yang besar, membuat estimasi yang realistis untuk biaya dan jadwal sebuah proyek. |
| Construction | Mengimplementasikan sistem secara iteratif, terprediksi, dan menyiapkan sistem untuk diterapkan. |
| Transition | Menyelesaikan beta test dan menerapkan sistem baru sehingga pengguna dapat menggunakan sistem dan sistem dapat memberikan keuntungan yang diinginkan. |
Extreme Programming adalah praktik pengembangan perangkat lunak bersifat agile yang bertujuan untuk mengembangkan software yang lebih berkualitas. Extreme programming fokus kepada praktik industri yang telah terbukti. Extreme programming mengkombinasikan praktik tersebut dalam cara yang unik untuk mendapatkan hasil yang lebih baik. Extreme programming memiliki nilai inti, yaitu communication, simplicity, feedback, dan courage.
Adapun praktik extreme programming adalah sebagai berikut.
| Praktik XP | Deskripsi |
| Planning | Merencanakan berdasarkan user stories |
| Testing | Melakukan testing sistem secara keseluruhan pada setiap fase |
| Pair programming | Melakukan inspeksi dan tradeoff |
| Simple design | Membuat desain berdasarkan pada agile modeling principle |
| Refactoring | Melakukan redo dan clean up |
| Owning the code collectively | Meninjau dan memperbaiki kode di mana dapat dilakukan oleh semua orang |
Tiga level pendekatan Extreme Programming (XP) adalah outside ring, middle ring, dan inside. Outside ring adalah membuat user stories dan mendefinisikan acceptance test, middle ring melakukan tes dan melakukan perencanaan secara keseluruhan, dan inside ring melakukan iterasi coding dan testing.
Scrum adalah kombinasi dari principle rugby dan agile yang melakukan upaya intens dengan melibatkan seluruh tim untuk periode waktu yang telah ditentukan. Pada scrum terdapat produk backlog dan scrum sprint. Product backlog adalah daftar prioritas dari user requirement, sedangkan scrum sprint adalah sebuah mini projek dalam sebuah waktu yang telah dikontrol untuk mengimplementasikan sebuah bagian dari sistem.
Peranan utama yang terdapat dalam metode Scrum adalah produk owner. Product owner adalah client stakeholder yang mengontrol backlog. Product owner bertugas untuk memastikan bahwa kinerja tim Scrum berjalan sesuai dengan project yang dikembangkan. Product owner harus memahami business requirement dan stakeholders yang terlibat.
Scrum master adalah pihak yang bertanggung jawab untuk memastikan operasi tim berjalan dengan seefektif mungkin. Scrum master berperan sebagai scrum project manager. Scrum master menjaga agar tim bekerja sesuai dengan metode scrum. Scrum master juga bertugas untuk merencanakan, memimpin rapat, serta mengatasi hambatan yang timbul selama projek.
Peran terakhir dalam scrum adalah development team atau tim pengembangan. Development team terdiri dari anggota profesional/expert di bidangnya masing-masing yang akan melakukan pekerjaan tugas dalam scrum sprint. Anggota tersebut antara lain, seperti programmer, data scientist, data analyst, system analyst, computer engineer, dll.
Referensi:
- Agile principles. (2023, July 6). Knowledge Train. https://www.knowledgetrain.co.uk/agile/agile-project-management/agile-project-management-course/agile-principles
- Approaches to System Development. (2023). PPT BinusMaya Session 31&32.
- Dewaweb Team. (2021, May 28). Scrum methodology: Panduan project management. Blog Dewaweb. https://www.dewaweb.com/blog/scrum-methodology-panduan-project-management/
- Extreme programming: 5 Tahapan, Kelebihan, Dan Kekurangan. (2023, June 14). Sekawan Media. https://www.sekawanmedia.co.id/blog/extreme-programming-adalah/
- Metode Agile: Pengertian, Tujuan, Dan Prinsipnya. (2023, November 24). Binar Academy: Bootcamp Online & Kelas Online Bersertifikat. https://www.binaracademy.com/blog/metode-agile-adalah
- Perdana, A. (2022, February 11). Metode Scrum: Definisi, Cara Kerja, Manfaat, Dan peran-peran Di Dalamnya. Glints Blog. https://glints.com/id/lowongan/metode-scrum/
- Rizky, D. (2019, October 4). APA ITU SDLC waterfall? Medium. https://medium.com/dot-intern/sdlc-metode-waterfall-5ae2071f161d
- Unified process Dan unified modeling language (Rekayasa Perangkat Lunak). (2013, 27). Alvyandi I Fadhilah. https://alvyandifadhilah17.blogspot.com/2013/01/unified-process-dan-unified-modeling_27.html
Comments :