Bagaimana keadaan para pembaca
semua, sehat kan …
Disini kita
akan membahas macam-macam development dan juga perbedaannya, development disini
ada bermacam-macam. Dengan menerti apa itu development kita akan mengerti
pengamatan-pengamatan dan tentang apa itu pengembangan.
1. Agile
software development methodology
Agile Development Methods adalah
sekelompok metodologi pengembangan perangkat lunak yang didasarkan pada
prinsip-prinsip yang sama atau pengembangan sistem jangka pendek yang
memerlukan adaptasi cepat dari pengembang terhadap perubahan dalam bentuk
apapun. Agile
development methods merupakan salah satu dari Metodologi pengembangan perangkat lunak yang digunakan
dalam pengembangan perangkat lunak. Agile memiliki pengertian bersifat cepat,
ringan, bebas bergerak, dan waspada. Sehingga saat membuat perangkat lunak dengan menggunakan agile
development methods diperlukan inovasi dan responsibiliti yang baik antara tim
pengembang dan klien agar kualitas dari perangkat lunak yang dihasilkan bagus
dan kelincahan dari tim seimbang.
Kelebihan
- 82% Menambah produktivitas tim.
- 77% Menambah kualitas perangkat lunak.
- 78% Menambah kepuasan klien.
- 37% Menghemat biaya.
Kekurangan
- Agile tidak akan berjalan dengan baik jika komitmen tim kurang.
- Tidak cocok dalam skala tim yang besar (>20 orang).
- Perkiraan waktu release dan harga perangkat lunak sulit ditentukan.
2. Rapid application development methodology(RAD)
Rapid application development (RAD) atau rapid prototyping adalah model proses pembangunan perangkat lunak yang tergolong
dalam teknik incremental (bertingkat). RAD menekankan pada siklus pembangunan
pendek, singkat, dan cepat. Waktu yang singkat adalah batasan yang penting
untuk model ini. Rapid application development menggunakan metode iteratif
(berulang) dalam mengembangkan sistem di mana working model (model bekerja)
sistem dikonstruksikan di awal tahap pengembangan dengan tujuan menetapkan
kebutuhan (requirement) user dan selanjutnya disingkirkan. Working model
digunakan kadang-kadang saja sebagai basis desain dan implementasi sistem
final.
Kelebihan
RAD (Rapid Application Development)
- Mudah mengakomodasi peruabahan sistem
- Progress development bisa di ukur
- Waktu iterasi bisa di perpendek menggunakan RAD Tools
- Mengurangi waktu development
- Mudah dalam menentukan dasar sistem
- Mempermudah feedback customer
- Cocok untuk proyek yang membutuhkan waktu pengembangan yang lebih pendek.
- Cocok untuk sistem yang berbasis komponen dan terukur.
Kekurangan
RAD (Rapid Application Development)
- Ketergantungan pada anggota bisnis tim untuk mengidentifikasi persyaratan bisnis
- Hanya sistem yang bisa di modularized yang bisa dibangun menggunakan RAD
- Membutuhkan developer / designer yang berpengalaman
- Ketergantungan pada keterampilan model
- Kompleksitas manajemen
- Tidak dapat diterapkan pada proyek yang kecil / murah
3. Dynamic
System Development methodology (DSDM)
Dynamic
System Development Method (DSDM) adalah suatu kerangka dalam
pengembangan suatu project terutama digunakan sebagai metode pengembangan perangkat
lunak, DSDM ini merupakan iteratif dan incremental pendekatan yang mencakup
prinsip-prinsip pembangunan Agile, termasuk keterlibatan pengguna/pelanggan
terus-menerus, jadi intinya DSDM ini termasuk dalam metodologi DSDM ini
mendekati dari metode Incremental dan Agile Alliance.
Faktor
Kunci Kesuksesan DSDM:
- Konsorsium DSDM telah membuat sepuluh faktor penting bagi penganutnya :
- Menyetujui terlebih dahulu filosofi DSDM sebelum memulai kerja.
- Pengambilan keputusan haruslah melibatkan pengguna dan pengembang.
- Komitmen dari manajemen senior haruslah penting
- Penyampaian yang rutin
- Kemudahan akses antara developer dan pengguna
- Kestabilan team
- Kemampuan bekerjasama pada tim pengembang
- Ukuran tim pengembang
- Dukungan komersil
- Teknologi pada pengembangan
Kelemahan
dari DSDM:
- Biaya lisensi
- Penghalang yang relatif tinggi untuk masuk
- Pergeseran budaya dalam organisasi
4. Extreme Programming methodology(XP)
Extreme Programming adalah suatu model yang termasuk
dalam pendekatan agile yang diperkenalkan oleh Kent
Back. Menurut penjelasannya, definisi XP adalah sebagai berikut: “Extreme
Programming (XP) adalah metode pengembangan software yang cepat, efisien,
beresiko rendah, fleksibel, terprediksi, scientific, dan menyenangkan“.Model ini cenderung menggunakan pendekatan Object-Oriented.
Tahapan-tahapan yang harus dilalui antara lain: Planning, Design, Coding, dan Testing. Sasaran Extreme Programming
adalah tim yang dibentuk berukuran antara kecil sampai medium saja, tidak perlu
menggunakan sebuah tim yang besar. Hal ini dimaksudkan untuk menghadapi
requirements yang tidak jelas maupun terjadinya perubahan-perubahan
requirements yang sangat cepat. Extreme Programming merupakan agile methods
yang paling banyak digunakan dan menjadi sebuah pendekatan yang sangat
terkenal.
Extreme Programming tepat untuk dipergunakan untuk
pembuatan program yang:
- Membutuhkan perubahan yang cepat (misalnya: Game Mobile)
- Proyek beresiko tinggi dengan tantangan yang berat
- Tim programmer sedikit, yaitu sekitar 2–10 orang
- Adanya permintaan dari pelanggan secara langsung
Kelebihan Extreme Programming, yaitu:
- Meningkatkan kepuasan kepada klien
- Pembangunan system dibuat lebih cepat
- Menjalin komunikasi yang baik dengan client.
- Meningkatkan komunikasi dan sifat saling menghargai antar developer.
Kelemahan Extreme Programming, yaitu:
- Cerita-cerita yang menunjukkan requirements dari pelanggan kemungkinan besar tidak lengkap sehingga Developer harus selalu siap dengan perubahan karena perubahan akan selalu diterima.
- Tidak bisa membuat kode yang detail di awal (prinsip simplicity dan juga anjuran untuk melakukan apa yang diperlukan hari itu juga).
- XP tidak memiliki dokumentasi formal yang dibuat selama
pengembangan. Satu-satunya dokumentasi adalah dokumentasi awal yang dilakukan
oleh user.
5. Scrum Development methodology
Pertama kali diperkenalkan oleh Jeff
Sutherland tahun awal tahun 1990an, dan dikembangkan selanjutnya dilakukan oleh
Schwaber dan Beedle. Pada dasarnya Scrum merupakan salah satu komponen dari
metodologi pengembangan Agile mengenai pertemuan harian untuk membahas kemajuan
sedangkan XP adalah menekankan metodologi yang berbeda yaitu ujian, pemrograman
dan pembangunan. Scrum menguraikan proses untuk mengidentifikasi dan
katalogisasi pekerjaan yang perlu dilakukan, memprioritaskan yang bekerja
dengan berkomunikasi dengan pelanggan atau wakil pelanggan, dan pelaksanaan
yang bekerja menggunakan rilis iterative dan memiliki tujuan utama untuk
mendapatkan perkiraan berapa lama akan pembangunan. XP lebih lanjut tentang
pengembang membantu menyelesaikan pekerjaan secepat dan maintainably mungkin
Scrum merupakan suatu kerangka kerja. Jadi, bukannya
menyediakan deskripsi rinci tentang bagaimana segala sesuatu yang harus
dilakukan pada proyek seperti diserahkan kepada tim pengembangan perangkat
lunak pada umumnya. Hal ini dilakukan supaya tim akan tahu bagaimana cara
terbaik untuk memecahkan masalah yang mereka disajikan. Ada 3 elemen
organisasi utama pada scrum yaitu product owner, Scrum master, dan the
Scrum team. Scrum Master dapat dianggap sebagai pelatih bagi tim,
membantu anggota tim menggunakan kerangka Scrum untuk tampil di tingkat
tertinggi. Product Owner mewakili bisnis, pelanggan atau
pengguna dan memandu tim ke arah pegembangan produk yang tepat. Sedangkan The
Scrum Team merupakan grup pengembang kecil biasanya terdiri dari 5-9 orang.
Untuk projek yang sangat besar, pekerjaan biasanya dibagi dan didelegasikan ke
grup-grup kecil. Jika sangat dibutuhkan the scrum master juga dapat ikut
membantu dalam koordinasi team.
Scrum
tepat digunakan saat kondisi:
- Keperluan berubah dengan cepat
- Tim programmer sedikit, yaitu 5-9 orang
- Pelanggan tidak terlalu paham dengan apa yang diinginkan
Scrum
memiliki prinsip yaitu:
- Ukuran tim yang kecil melancarkan komunikasi, mengurangi biaya, dan memberdayakan satu sama lainProses dapat beradaptasi terhadap perubahan teknis dan bisnis
- Proses menghasilkan beberapa software increment
- Pembangunan dan orang yang membangun dibagi dalam tim yang kecil
- Dokumentasi dan pengujian terus menerus dilakukan setelah software dibangun
- Proses scrum mampu menyatakan bahwa produk selesai kapanpun diperlukan
Kelebihan
Scrum antara lain:
- Keperluan berubah dengan cepat
- Tim berukuran kecil sehingga melancarkan komunikasi, mengurangi biaya dan memberdayakan satu sama lain
- Pekerjaan terbagi-bagi sehingga dapat diselesaikan dengan cepat
- Dokumentasi dan pengujian terus menerus dilakukan setelah software dibangun
- Proses Scrum mampu menyatakan bahwa produk selesai kapanpun diperlukan
- Kelemahan Scrum antara lain:
- Developer harus selalu siap dengan perubahan karena perubahan akan selalu diterima.
Kesimpulan
”manakah
metode yang paling baik?” mungkin ini adalah pertanyaan
yang kurang tepat – hidup (proyek) kadang jauh lebih rumit dari yang kita
perkirakan. Semua metode-metode yang ada jika ditempatkan pada
proyek yang tepat pasti akan menghasilkan sebuah produk yang berkualitas dan
bersaing. Sebaliknya jika ditempatkan pada proyek yang salah karena kesalahan
analisa proyek, bisa jadi akan memakan biaya waktu dan uang yang jauh lebih
besar dari yang diperkirakan. Kebijakan manajemen proyek dalam memilih
metode dapat memberikan solusi yang lebih baik dan murah. Banyak aspek yang
bisa dijadikan sebagai pertimbangan untuk memilih metode ini. Diantaranya
seperti dari sisi planing dan analisa system, timeline, resiko, komposisi tim,
ukuran tim, budget, waktu serta masih banyak lagi aspek lainnya