Jumat, 24 November 2017

Macam - Macam dan Perbedaan Model Development

Assalamu’alaikum ….
            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

Tidak ada komentar:

Posting Komentar