Jumat, 24 November 2017

Perbedaan Agile Software Development Methodology, Rapid Application Development, Dynamic System Development Model Methodology, Extreme Programing Methodology, SCRUM Development Methodology

Pada postingan kali ini saya akan menjelaskan beberapa model pengembangan software, yaitu Agile Software Development Methodology, Rapid Application Development, Dynamic System Development Model Methodology, Extreme Programing Methodology, dan SCRUM Development Methodology
Apa saja yg membedakan antara model yang satu dengan yang lain?? Langsung saja

Agile Software Development Methodology

Hasil gambar untuk agile software methodology adalah
Agile Development Methodology 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 dari agile
·         Meningkatkan kepuasan kepada klien.
·         Dapat melakukan review pelanggan mengenai software yang dibuat lebih awal.
·         Pembangunan system dibuat lebih cepat.
·         Mengurangi resiko kegagalan implementasi software dari segi non-teknis.
·         Jika pada saat pembangunan system terjadi kegagalan kerugian dari segi materi relatif kecil.
Kekurangan dari agile
·         Developer harus selalu siap dengan perubahan karena perubahan akan selalu diterima.
·         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.

Rapid Application Development

https://piyaneo.files.wordpress.com/2014/05/siklus-rad-e1399723570398.jpg
Rapid Application Development (RAD) adalah strategi siklus hidup yang ditujukan untuk menyediakan pengembangan yang jauh lebih cepat dan mendapatkan hasil dengan kualitas yang lebih baik dibandingkan dengan hasil yang dicapai melalui siklus tradisional (McLeod, 2002). RAD merupakan gabungan dari bermacam-macam teknik terstruktur dengan teknik prototyping dan teknik pengembangan joint application untuk mempercepat pengembangan sistem/aplikasi (Bentley, 2004). Dari definisi-definisi konsep RAD ini, dapat dilihat bahwa pengembangan aplikasi dengan menggunakan metode RAD ini dapat dilakukan dalam waktu yang relatif lebih cepat.
Kelebihan dari RAD
·         RAD mengikuti tahapan pengembangan sistem sepeti umumnya, tetapi mempunyai kemampuan untuk menggunakan kembali komponen yang ada (reusable object) sehingga pengembang tidak perlu membuat dari awal lagi dan waktu yang lebih singkat.
·         Setiap fungsi mayor dapat dimodulkan dalam waktu tertentu kurang dari 3 bulan dan dapat dibicarakan oleh tim RAD yang terpisah dan kemudian diintegrasikan sehingga waktunya lebih efisien.
Kekurangan dari RAD
·         Tidak cocok untuk proyek skala besar.
·         Proyek bisa gagal karena waktu yang disepakati tidak dipenuhi.
·         Sistem yang tidak bisa dimodularisasi tidak cocok untuk model ini.
·         Resiko teknis yang tinggi juga kurang cocok untuk model ini.
·         penghalusan dan penggabungan dari beberapa tim di akhir proses sangat diperlukan dan ini memerlukan kerja keras.
·         kinerja dari perangkat lunak yang dihasilkan dapat menjadi masalah manakala kebutuhan-kebutuhan diawal proses tidak dapat dimodulkan, sehingga pendekatan dengan model ini kurang bagus.
·         Model RAD memerlukan komitmen yang kuat antara pengembang dan pemesssan, bahkan keduanya bisa tergabung dalam 1 tim
·         Model RAD memerlukan sumber daya yang cukup besar, terutama untuk proyek dengan skala besar.


Dynamic System Development Method (DSDM) 

Merupakan 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.

Gambar DSDM Model

Beberapa Karakteristik DSDM yaitu sebagai berikut :

  1. Menyajikan kerangka kerja (framework) untuk membangun dan memelihara sistem dalam waktu yang terbatas melalui penggunaan prototyping yang incremental dalam lingkungan yang terkondisikan.
  2. Membangun software dengan cepat : 80% dari proyek diserahkan dalam 20% dari waktu total untuk menyerahkan proyek secara utuh.
  3. Aktifitas Feasibility Study : Siapkan requirement, dan batasan, lalu uji apakah sesuai gunakan proses DSDM
  4. Aktifitas Business Study : Susun kebutuhan fungsional dan informasi, tentukan arsitektur aplikasi dan identifikasi kebutuhan pemeliharaan untuk aplikasi
  5. Aktifitas Functional model iteration : Hasilkan incremental prototype yang perlihatkan fungsi software ke klien untuk dapatkan kebutuhan lebih jelas dan konfirmasi
  6. Aktifitas Design and Build Iteration : Cek ulang prototype yang dibangun untuk pastikan bahwa prototype dibangun dengan cara yang memungkinkan fungsi tersebut benar-benar bekerja
  7. Aktifitas Implementation : Menempatkan software pada lingkungan sebenar sekalipun belum lengkap atau masih ada perubahan.
  8. DSDM dapat dikombinasikan dengan XP menghasilkan kombinasi model proses yang mengikuti DSDM dan praktek yang sejalan dengan XP.

Extreme Programing Methology

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.
Core Value Extreme Programming, yaitu:
Core Value Extreme Programming
  • Komunikasi (Communication)
Kurangnya komunikasi merupakan penyebab utama kegagalan pengembangan software. Oleh karena itu Extreme Programming(XP) memfokuskan diri pada hubungan komunikasi yang baik antar tim-klien, anggota tim, dan manajer proyek.Komunikasi dalam XP dibangun dengan melakukan pemrograman berpasangan (pair programming).Klien harus dilibatkan dalam proses pengembangan perangkat lunaknya dengan tujuannya untuk memberikan pandangan pengembang sesuai dengan pandangan pengguna sistem yang dibangun.
  • Kesederhanaan (Simplicity)
Extreme Programming (XP) melakukan semua pekerjaan dengan sederhana dan praktis tanpa mengurangi fungsi utamanya. Dalam pengerjaan, metode yang dipilih adalah metode yang pendek dan simpel. Jangan terlalu rumit dalam membuat desain, hilangkan fitur yang tidak ada gunanya atau hapus fungsi yang tidak terpakai. Dengan kata lain lebih baik melakukan hal yang sederhana saat sekarang (sesuai kebutuhan) dan mengembangkannya nanti jika diperlukan.
  • Umpan balik (Feedback)
Selalu evaluasi perkembangan perangkat lunak yang sedang dikerjakan. Segala informasi harus dikumpulkan setiap interval waktu yang konsisten dan kesalahan-kesalahan yang muncul selama proses pengembangan harus dibahas dan dicari solusinya. Umpan balik tersebut berfungsi sebagai indikator kemajuan proyek dan menginformasikan pemimpin proyek apabila perubahan perlu dibuat.
  • Keberanian (Courage).
Programmer Extreme Programming (XP) didorong untuk berani bereksperimen dan menulis ulang kode jika mereka tidak puas dengan kode atau desain yang sudah ada. Hal ini membantu mempertahankan moral serta intgritas para pengembang proyek dan dapat mendukung lebih lanjut komunikasi dengan anggota proyek lainnya.
Tahapan Dalam XP Programming
Tahapan Dalam Etreme (XP) Programming, yaitu:
Aktivitas planning dimulai dengan membentuk user stories. Anggota XP team kemudian menilai setiap story dan menentukan cost — diukur dalam development week.
Planning. Customer dan XP team bekerja bersama untuk memutuskan bagaimana grup story untuk release berikutnya (software increment berikutnya) untuk dibangun oleh XP team. Jika komitmen telah dibuat, XP team akan membangun story-story dengan cara :
Semua story segera diimplemetasikan (dalam beberapa minggu)
1. Story dengan value tertinggi akan dipindahkan dari jadwal dan dimplementasikan pertama.
2. Story dengan resiko paling tinggi akan diimplemetasikan terlebih dulu. Setelah project pertama direlease dan didelivery, XP team memperhitungkan kecepatan project. Selama development, customer dapat menambah story, merubah value, membagi story atau menghapusnya.
Design. XP menggunakan CRC card, untuk mengenali dan mengatur object oriented class yang sesuai dengan software increment.
Coding. Sebelum membuat code, lebih baik membuat unit test tiap story untuk dimasukkan dalam software increment. XP menyarankan agar dua orang bekerja bersama pada satu komputer workstation untuk membuat code dari satu story (pair programming), untuk menyediakan real time problem solving dan jaminan real time quality. Setelah pair programming selesai, code diintegrasikan dengan kerja laiinnya (continuous integration).
Testing. Unit test yang telah dibuat harus diimplementasikan menggunakan suatu framework dan diatur ke dalam universal testing suite, integrasi dan validasi sistem dapat dilakukan setiap hari. Customer test (acceptance test) dilakukan oleh customer dan fokus pada keseluruhan fitur dan fungsional sistem. Acceptance test diperoleh dari customer stories yang telah diimplemetasikan sebagai bagian dari software release.
Berikut Siklus Hidup dalam XP Programming.
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.

SCRUM Development Methodology

Merupakan salah satu metode rekayasa perangkat lunak dengan menggunakan prinsip-prinsip pendekatan AGILE, yang bertumpu pada kekuatan kolaborasi tim, incremental product dan proses iterasi untuk mewujudkan hasil akhir.
Scrum sendiri bukan satu-satunya metode yang menggunakan pendekatan AGILE. Mungkin kita juga pernah mendengar metode Extreme Programming (XP) yang juga menggunakan pendekatan AGILE dalam rekayasa perangkat lunak. Masing-masing metode memiliki fokus atau penekanan yang berbeda yang tentu saja dapat dikombinasika untuk menghasilkan proses yang optimal.
Hasil gambar untuk scrum development methodology adalah
Teknik SCRUM dapat dilakukan di sebuah kepanitiaan ataupun project lain diluar bisnis teknologi informasi. Dalam teknik SCRUM terbagi dalam tiga roles, yang pertama adalah Product Owner, Scrum Master dan Develophment/Scurm Team. Product owner bertugas mengatur urusan dengan Stakeholder sedangkan Scrum Master mengurusi bagian internal, di bagian Development Team mengatur urusan teknik pengerjaan project dan pembahasan yag lebih rinci.
Banyak perusahaan multinasional menginternalisasi atau mengadopsi teknik ini sebagai standar bekerja mereka, karena secara umum teknik crum berhasil membuat beberapa perusahaan menaikan omset karena system yang telah teruji ini. Teknik scrum membuat pekerjaan anda menjadi lebih tertata dan lebih detail.
Namun segala sesuatu memiliki nilai plus dan minus, begitu juga dengan teknik scrum ini, scrum menjadikan pekerjaan lebih rapi namun teknik ini tidak cocok diterapkan pada perusahaan jasa yang butuh deadline cepat. Scrum membuat pekerjaan menjadi lebih lama dalam estimasi waktu. Namun segala sesuatunya pasti dapat di selesaikan apabila sudah memiliki persiapan yang matang dari awalnya.

Teknik srum dimulai dari pembahasan project antara Product Owner dengan Stakeholder terkait, lalu dibentuklah Srum Master dan Team Development. Lahkah pertama yang dilakukan oleh Scrum master adalah dengan membuat semua list pekerjaan yang sebut juga dengan User Story, User Stori tersebut dibuat di media yang dinamakan Backlog yang di tempel di TaskBoard, User Story terdiri :
As a , I want so that .

Contoh :
As a registered user,I want to upload videos, so I can share it to other people.
Setiap Backlog yang dibuat diberi setimasi dan standar atau tingkat kesulitan, anda bisa memakai angka 1, 2, 3 dan seterusnya untuk menjelaskan tingkat kesulitan maupun huruf seperti A, B, C dan lain sebagainya, dan yang paling penting dari kode ini adalah semua team development harus mengerti maksud kode tersebut. Setelah dibuat kode maka tugas selanjutnya membuat sprint, sprint adalah batasan waktu pengerjaan dan jika telah ditetapkan maka teknik scrumk tidak diberkenankan mengubah konspe ditengah jalan.

Kelebihan dari scrum
·         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 kapan pun diperlukan.
Kekurangan sari scrum
·         Developer harus selalu siap dengan perubahan karena perubahan akan selalu diterima.
·         Lemah dalam perencanaan arsitektur

Tidak ada komentar:

Posting Komentar