Assalamu alaikum wr. wb.
This Is Mind - - Pada
zaman sekarang siapa yang tidak tahu mengenai Aplikasi, software, program atau
dengan kata lainnya yaitu perangkat lunak, sudah banyak orang yang memakai
perangkat lunak dalam kegiatannya sehari-hari. Semakin berkembangnya zaman dan
kemajuan ilmu pengetahuan, perangkat lunak mengalami sebuah pengembangan untuk
menambah fungsi-fungsi dari perangkat lunak tersebut.
Metodologi
pengembangan perangkat lunak sendiri adalah sebuah metodologi yang
digunakan untuk membuat struktur, rencana, dan kontrol pengerjaan suatu proyek,
sedangkan Proses pengembangan perangkat lunak adalah model-model dan
metodologi yang digunakan untuk mengembangkan suatu perangkat lunak. Ada
beberapa model Metodologi pengembangan perangkat
lunak diantaranya : waterfall, fountain, spiral, rapid, prototyping,
incremental, build & fix, dan synchronize & stabilize. Terdapat enam
langkah yang digunakan dalam Metodologi pengembangan perangkat
lunak, yaitu :
- · Perencanaan, pada langkah ini pengembang dan klien membuat rencana tentang kebutuhan dari perangkat lunak yang akan dibuat.
- · Implementasi, bagian dari proses dimana programmer melakukan pengkodean perangkat lunak.
- · Tes perangkat lunak, disini perangkat lunak yang telah dibuat di tes oleh bagian kontrol kualitas agar bug yang ditemukan bisa segera diperbaiki dan kualitas perangkat lunak terjaga.
- · Dokumentasi, setelah dilakukan tes perangkat lunak langkah selanjutnya yaitu proses dokumentasi perangkat lunak untuk mempermudah proses maintenanance kedepannya.
- · Deployment, yaitu proses yang dilakukan oleh penjamin kualitas untuk menguji kualitas sistem. Setelah sistem memenuhi syarat maka perangkat lunak siap dideployment.
- · Pemeliharaan, langkah terakhir yaitu pemeliharaan. Tidak ada perangkat lunak yang 100% bebas dari bug, oleh karena itu sangatlah penting agar perangkat lunak dipelihara secara berkala.
Berikut
ini beberapa model dari perangkat lunak yang menurut saya efektif dan efisien
berdasarkan dari segi biaya,segi waktu, dan dari segi dokumentasi. Yaitu :
1. Model Spiral.
Awalnya diusulkan oleh
Boehm (BOE88), adalah model proses perangkat lunak yang evolusioner, merangkai
sifat iterative dari prototype dengan cara control dan aspek sistematis dari
model sekuensial linier. Model yang berpotensi untuk pengembangan versi
pertambahan perangkat lunak secara cepat. Model spiral dibagi menjadi sejumlah
aktifitas kerangka kerja atau wilayah tugas, antara lain :
·
Komunikasi
pelanggan, tugas-tugas yang dibutuhkan untuk membangun komunikasi yang efektif
diantara pengembang dan pelanggan.
·
Perencanaan,
tugas-tugas yang dibutuhkan untuk mendefinisikan sumber-sumber daya, ketepatan
waktu, dan proyek informasi lain yang berhubungan.
·
Analisis resiko,
tugas-tugas yang dibutuhkan untuk menaksir resiko-resiko, baik manajemen maupun
teknis.
·
Perekayasaan,
tugas-tugas yang dibutuhkan untuk membangun satu atau lebih representasi dari
aplikasi tersebut.
·
Konstruksi dan
peluncuran, tugas-tugas yang dibutuhkan untuk mengkonstruksi, menguji, memasang
(instal), dan memberikan pelayanan kepada pemakai (contohnya pelatihan dan
dokumentasi)
·
Evaluasi
pelanggan, tugas-tugas untuk memperoleh umpan balik dari pelanggan dengan
didasarkan pada evaluasi representasi perangkat lunak, yang dibuat selama masa
perekayasaan, dan dimplementasikan selama masa pemasangan.
Model
spiral menjadi pendekatan yang realistis bagi perkembangan system dan perangkat
lunak skala besar. Karena perangkat lunak terus bekerja selama proses bergerak, pengembang dan
pemakai memahami, dan bereaksi lebih baik terhadap resiko dari Setiap tingkat
evolusi. Model spiral menggunakan prototype sebagai mekanisme pengurangan
resiko.
2.
Model Agile
Agile memiliki pengertian bersifat cepat, ringan,
bebas bergerak, dan waspada. Sehingga saat membuat perangkat lunak dengan
menggunakan model agile diperlukan inovasi dan responsibiliti yang
baik antara tim pengembang dan klien agar kualitas dari perangkat lunak yang
dihasilkan bagus dan kelincahan dari tim seimbang.
Secara garis besar
tujuan dirumuskannya model agile ,yaitu :
- · High-value & working App system, diharapkan dengan memakai agile development methods dapat dihasilkan perangkat lunak yang mempunyai nilai jual yang tinggi, biaya pembuatan bisa di tekan dan perangkat lunak bisa berjalan dengan baik.
- · Iterative, incremental, evolutionary, agile adalah metode pengembangan perangkat lunak yang iteratif, selalu mengalami perubahan, dan evolusioner. Tim harus bekerja dalam waktu yang singkat(biasanya 1-3 minggu) dan juga selalu menambah fungsionalitas dari perangkat lunak sesuai dengan kebutuhan klien. Agile dapat dianalogikan ketika seseorang ingin pergi ke suatu kota dan dia tidak tahu jalannya. Lalu bagaimana dia bisa sampai tujuan? Dengan sering bertanya kepada orang yang dia temui dijalan hingga dia sampai di tempat tujuan.
- · Cost control & value-driven development, salah satu tujuan dari agile yaitu pengembangan perangkat lunak disesuaikan dengan kebutuhan pengguna, tim bisa dengan cepat merespon kebutuhan yang diinginkan pengguna sehingga waktu dan biaya pembuatan perangkat lunak bisa dikontrol.
- · High-quality production, walaupun biaya pembuatan perangkat lunak bisa ditekan dan proses pembuatan bisa dipercepat , tetapi kualitas dari perangkat lunak yang dibuat harus tetap dijaga. Dengan melakukan tes setiap fungsionalitas perangkat lunak setelah selesei dibuat berarti agile juga mengakomodir kebutuhan ini.
- · Flexible & risk management, jika kita menggunakan metode pembuatan yang biasanya dipakai, jika ingin mengubah fungsionalitas dari wireframe yang telah dibuat di butuhkan proses yang rumit. Mulai dari pertemuan dengan sistem analis untuk mengubah sistem perangkat lunak, perubahan rencana rilis produk hingga perubahan biaya produksi. Pertemuan dengan klien untuk melakukan tes perangkat lunak juga sering dilakukan sehingga fungsionalitas perangkat lunak mudah diubah dan akhirnya kegagalan perangkat lunakpun bisa diminimalisir.
- · Collaboration, dengan menggunakan agile, tim pengembang diharuskan sering bertemu untuk membahas perkembangan proyek dan feedback dari klien yang nantinya akan ditambahkan dalam perangkat lunak, sehingga tim bisa berkolaborasi dengan maksimal.
- · Self-organizing, self-managing teams, rekrut orang terbaik, beri dan dukung kebutuhan mereka lalu biarkan mereka bekerja. Itulah perbedaan agile dan SDM lainnya. Dengan agile, developer dapat memanajemen dirinya sendiri, sedangkan manajer tim hanya bertugas mengkolaborasikan developer perangkat lunak dengan klien. Sehingga terciptalah tim yang solid.
Referensi :
http://id.wikipedia.org/wiki/Agile_Development_Methods
Kinanti, Elsa, Wahyu, Edo, Priyo.”Metode Pengembangan Perangkat Lunak”.doc


Tidak ada komentar: