Kelebihan dan Kekurangan dari Berbagai Metode Pengembangan Software

Badr Interactive
- 14 April 2020

Sebagaimana sulitnya membuat dan memprioritaskan produk backlog, menentukan metode pengembangan software yang akan digunakan juga bukanlah hal yang mudah. Setiap metodologi berusaha untuk memastikan bahwa software yang dikembangkan sesuai dengan requirement yang dibutuhkan. Setiap metode yang ada memiliki value proposition sendiri dan kelebihan serta kekurangannya masing-masing. Berikut ini adalah penjelasan mengenai metodologi pengembangan software yang paling populer saat ini.



 


1.      Model Waterfall


Waterfall adalah metode paling tua dalam pengembangan software. Secara substansi ia mensimplifikasi proses software engineering ke dalam diagram proses yang linear dimana penyelesaian dari task sebelumnya sangat penting bagi pengembang untuk bisa mengerjakan pekerjaan yang lain.


a.       Keunggulan

-  Mudah dimengerti, sehingga baik digunakan oleh pemula

-  Mudah untuk di-manage karena setiap fase memiliki deliverables nya masing-masing dan proses review

-  Cepat untuk diimplementasi untuk proyek dengan skala kecil dimana requirement dapat dimengerti dengan baik

-  Desain yang sederhana membuatnya mudah untuk di testing dan dianalisis

 

b.      Kelemahan

-  Metode ini hanya cocok untuk proyek dengan requirement yang sudah sangat jelas dengan detail requirement yang 

   bisa disampaikan di awal

-  Metode ini tidak cocok untuk proyek maintenance atau proyek jangka panjang

-  Tidak fleksibel: ketika aplikasi di launch, tidak memungkinkan untuk memodifikasi atau merubah sistem yang dibuat

-  Tidak bisa membuat software yang lain sampai seluruh proses waterfall selesai

 

2.      Metode Prototype


Model ini mendukung developer untuk membuat prototype sehingga mereka bisa mendemonstrasikan fungsionalitas softwarenya kepada klien dan membuat modifikasi berdasarkan feedback yang diberikan. Metode ini mirip dengan membuat MVP, kita menciptakan versi pre-develop dulu sebelum menginvestasikan waktu dan uang untuk menciptakan produk yang lebih lengkap.


a.       Keunggulan

-  Dengan metode ini, kita bisa memberikan klien experience yang lebih awal untuk software yang akan digunakan dan

   memperbaiki serta melengkapinya dengan feedback yang diberikan klien

-  Karena kita telah mengidentifikasi risiko dan isu yang mungkin terjadi di awal, kita juga dapat mengurangi risiko

   kegagalan

-  Komunikasi antara klien dan tim pengembang yang intens akan memperkuat hubungan antara kedua belah pihak


b.      Kelemahan

- Prototyping cukup mahal. Disisi lain, prototyping dapat mengurangi risiko, sehingga kita dapat meminimalisir potensi

  budget terbuang di-awal waktu

Pelibatan di awal dengan klien bisa saja menjadi hal yang buruk, mereka mungkin akan terlalu banyak ikut campur dan

  meminta banyak perubahan tanpa sepenuhnya memahami proyek secara keseluruhan

- Terlalu banyak modifikasi akan mengganggu workflow dari tim development

 

3.      Metode Agile Software Development


Agile fokus pada perencanaan yang adaptif, evolutionary development, dan improvement yang berkelanjutan melalui respon yang fleksibel terhadap perubahan. Tujuan akhir dari metode ini adalah release yang lebih cepat dengan risiko bugs/issue yang lebih sedikit.


a.       Keunggulan

-  Pendekatan yang adaptif sehingga dapat merespon perubahan requirement dengan sangat cepat dan efisien

-  Feedback yang berkesinambungan akan meminimalisir risiko dengan signifikan

-  Komunikasi yang berkelanjutan meningkatkan transparansi antara klien dan tim development

-  Fokus pada pengerjaan software, sehingga tidak perlu terlalu khawatir pada dokumentasi


b.      Kekurangan:

-  Scope pengerjaan yang bisa berubah kapanpun dapat menyebabkan kurangnya fokus dari tim development dan

   menyebabkan isu jika brief yang diberikan tidak jelas

-  Kurangnya dokumentasi dana meningkatkan risiko miscommunication

 

4.      Rapid Application Development (RAD)


Tujuan utama adalah menghasilkan pengerjaan yang lebih cepat dan kualitas yang lebih tinggi dibandingkan yang bisa didapatkan dengan opsi yang lain. Metode ini terkait dengan agile development, dimana menekankan pada pengerjaan software dan feedback user dalam perencanaannya. Bisa dibilang, “lebih sedikit bicara, lebih banyak testing”.


a.       Keunggulan

-  Mengurangi risiko karena identifikasi issue di awal dan feedback client

-  Feedback berkala meningkatkan transparansi antara tim development dank lien

-  Klien yang dapat melihat hasil dari prototype di awal akan menghasilkan kualitas produk yang lebih baik di akhir

-  Perencanaan dan dokumentasi yang lebih sedikit meningkatkan kecepatan development


b.      Kelemahan

-  Mengurangi fitur karena “time boxing” dimana ketika fitur di dorong kembali ke versi yang lebih baru untuk

   menyelesaikan rilis dalam waktu singkat

-  Tidak cocok untuk proyek dengan budget yang rendah karena biaya modeling dan automated generation code sangat

   tinggi

-  Metode ini relative baru sehingga cukup berisiko

-  Butuh kerja sama tim yang tinggi di kantor untuk proses yang sangat cepat bergerak agar bisa sukses.

 

5.      Dynamic Systems Development Model


Metode ini prinsipnya mengacu pada RAD model yang telah dijelaskan sebelumnya. Pendekatan iterative yang menekankan pada improvement berkelanjutan dan keterlibatan user. Metode ini tidak hanya berfokus pada software development dan codingan, namun juga melibatkan project management dan project delivery – dimana alasannya adalah karena kebanyakan digunakan oleh proyek non-IT. Tujuan utamanya adalah menciptakan produk atau servis tepat waktu dan sesuai budget.


a.       Keunggulan

-  User sangat dilibatkan dalam proses development sehingga mereka dapat melihat progress pengembangan software

   sejak dini

-  Meningkatkan transparansi dan pengembangan secara berkala mampu mengurangi risiko


b.      Kelemahan

-  Costly untuk diimplementasikan karena membutuhkan lebih dari 10 peran dedicated, belum ditambah dengan

   frequent testing

-  Tidak cocok untuk organisasi yang kecil karena kebutuhan peran yang sangat tinggi dalam metode ini

 

6.      Spiral Model


Model ini berfokus pada identifikasi risiko di awal. Developer mulai meneliti potensial isu ketika proyek masih dalam skala yang kecil. Kemudian mereka mengatasi risiko tersebut dengan membuat perencanaan untuk tetap menjalankan project sebagaimana rencana awal atau dengan menyelesaikan isu yang mungkin terjadi dulu baru kemudian melanjutkan ke iterasi berikutnya.


a.       Keunggulan

-  Tim butuh waktu yang lama dan energy yang besar untuk menganalisis risiko yang dapat meminimalisir risiko yang

   akan datang kemudian

-  Metode ini efektif untuk skala yang besar dan proyek yang sangat krusial

-  Cukup fleksibel dan mampu memberikan fungsionalitas tambahan di kemudian hari


b.      Kelemahan

-  Mahal karena level analisis yang cukup complicated

-  Kesuksesan dari seluruh proyek tergantung dari kesuksesan dalam analisis risiko

-  Tidak ada definisi selesai yang pasti, dimana proyek bisa saja overtime dan budget jika tidak di manage dengan hati-

   hati

 

7.      Metode Extreme Programming


Metode Extreme Programming (XP Methodology) digunakan oleh tim development untuk membuat software dalam environment yang tidak stabil seperti ketika requirement yang ada sangat cepat berubah. Metode ini memiliki release berkala dalam waktu development yang singkat.


a.       Keunggulan

- Pelibatan client dalam proyek meningkatkan transparansi dan hubungan antara vendor dank lien

Frequent checkpoints dalam metode ini akan membantu developer membuat perencanaan dan jadwal

- Feedback yang banyak akan membantu meminimalisir risiko dan meningkatkan improvement


b.      Kelemahan

- Model ini membutuhkan meeting berkala dimana bisa jadi mahal untuk kedua belah pihak

- Perubahan yang terlalu sering bisa mengganggu developer dan cukup tricky untuk mengkalkulasi waktu dan estimasi

  harga

- Biaya untuk merubah requirement di kemudian hari dalam proyek cukup mahal

 

 

8.      Feature-Driven Development (FDD)


FDD adalah proses development yang iterative yang banyak digunakan dalam industri praktis. Sebagaimana namanya, fokus metode ini adalah mengorganisir software development based on features yang ada. Tujuannya adalah untuk mendeliver pengerjaan software kepada klien secepat mungkin


a.       Keunggulan

Lima proses yang simple (develop model, build feature list, plan, design and build by feature) memberikan struktur dan

  overview yang baik dari proyek

- Model ini dibangun atas set standar yang digunakan dalam industri pengembangan software, dimana membuat

  developer lebih mudah untuk mengerti lebih cepat


b.      Kelemahan

Kompleksitas dari metode ini membuatnya tidak cocok untuk proyek atau tim yang kecil

Banyak tanggungjawab yang diberikan kepada lead developer, sehingga mereka harus benar-benar terlatih dan siap

  untuk berperan menjadi koordinator, desainer dan mentor

 

9.      Metode Joint Application Development (JAD)


Sistem development awalnya digunakan untuk mendesain sistem berbasis komputer sebelum dimigrasikan kepada software development. Metode ini melibatkan interaksi antara user dan tim development untuk bekerja dengan sistem yang berbeda dan requirement yang berbeda ketika software sedang dikembangkan. Tujuan utama adalah melibatkan klien dalam proses development sebanyak mungkin via collaborative workshop bernama JAD sessions. Fokus dari pertemuan ini adalah lebih membahas tujuan perusahaan dibandingkan pembahasan teknis.


a.       Keunggulan

- Komunikasi yang intens meningkatkan transparansi dan kolaborasi

- Pendekatan ini menghasilkan kualitas informasi yang sangat baik dalam waktu yang singkat

- JAD mengurangi waktu dan biaya

- Tim dapat menyelesaikan permasalahan dengan cepat


b.      Kelemahan

- Pertemuan berkala dan workshop dapat menghabiskan waktu, dan tentu saja mahal

- Butuh perencanaan yang panjang dan detail; jika tidak, akan menghabiskan waktu lebih lama dari metode yang lain

- Pendekatan ini membutuhkan pemimpin yang kuat dan developer yang berpengalaman untuk memastikan workshop

  berjalan dengan fokus dan produktif

 

10.  Metode Lean Development


Metode ini menggunakan prinsip dari lean manufacturing (mengurangi cost, biaya, dan waste), dan mengaplikasikannya dalam pengembangan software untuk mengurangi effort programming dan budget. Metode ini memberikan conceptual framework yang sangat baik. Metode ini juga lebih fleksibel dari metode agile.


a.       Keunggulan

Meningkatkan efisiensi dengan mempercepat development dan mengurangi biaya keseluruhan dari proyek

- Development yang lebih cepat sehingga tim developer dapat men-deliver lebih banyak fungsionalitas dalam waktu yang

  singkat

- Tim developer memiliki kewenangan lebih untuk mengambil keputusan dimana dapat memperkuat seseorang dan

  meningkatkan motivasi serta progress.


b.      Kelemahan

- Kesuksesan tergantung dari kedisiplinan tim, komitmen dan kemampuan teknikal

- Metode ini membutuhkan business analyst untuk memastikan dokumentasi sudah benar dan dimengerti oleh semua orang

  yang terlibat

- Fleksibilitas developer yang sangat tinggi dapat menyebabkan kekurangan fokus dimana akan mempengaruhi workflow   

  dari proyek keseluruhan.

 

11.  Metode Rational unified process (RUP)


Metode ini adalah framework proses yang adaptable dengan organisasi. Metode RUP menentukan project life-cycle yang terdiri dari 4 fase (inception, elaboration, construction, dan transition), masing-masing dengan milestone dan objektifnya.


a.       Keunggulan

Membantu anggota tim untuk mengidentifikasi dan menyelesaikan risiko proyek yang terkait dengan client melalui request

  management and review yang lebih berhati-hati.

- Metode ini cukup scalable, sehingga cocok untuk berapapun jumlah tim atau proyeknya

- Review berkala membantu untuk menjaga fokus dan meningkatkan transparansi bagi kedua belah pihak


b.      Kelemahan

- Proses development kompleks dan membutuhkan skill yang mendalam dari tim

- Component testing yang berkelanjutan meningkatkan kompleksitas dan hasil dimana banyak issue yang terjadi ketika fase

  testing

 

12.  Metode Scrum development


Metode ini merupakan metode yang terbaik untuk proyek yang cepat berubah dengan deadline yang juga mepet. Metode ini didesain untuk tim dengan tiga sampai 9 orang dimana pekerjaannya dibagi dengan istilah sprints untuk menyelesaikan suatu scope pekerjaan pada waktu yang disepakati (biasanya dua pekan). Setiap hari, tim akan mereview progress dalam sebuah meeting yang dinamakan daily scrums.

a.       Keunggulan

Meningkatkan kecepatan dalam proses development dan dapat membawa proyek yang lambat kembali ke track

- Pengambilan keputusan sebagian besar berada dalam tangan tim developer. Hal ini membantu mereka untuk fokus dan

  meningkatkan motivasi

- Fleksibel, dimana memudahkan update dan perubahan berkala

- Daily meeting membantu manajer untuk mengukur produktivitas individual. Metode ini juga meningkatkan kolaborasi dan

  produktivitas dalam tim


b.      Kelemahan

Sangat cocok untuk skala kecil, dan proyek yang cepat berubah. Tidak cocok untuk skala besar

- Metode ini membutuhkan orang berpengalaman yang pernah bekerja di proyek yang mirip dengan yang ingin dikerjakan

  saat ini.

- Anggota tim harus memiliki skills yang banyak sehingga mampu membantu mereka dalam mengerjakan task di luar dari

  area spesialisasinya. Beberapa anggota tim, oleh karena itu, membutuhkan training tambahan

- Membagi development produk dalam sprint singkat membutuhkan perencanaan yang matang dan hati-hati.

 

Penutup

 

Memilih salah satu metode yang telah dijelaskan sebelumnya membutuhkan waktu untuk riset dan perencanaan jangka panjang. Mengetahui kekuatan dan kekurangan tim kita, akan membantu dalam menentukan metode apa yang paling cocok untuk digunakan. Pilih lah metode yang cocok untuk cara kerja dan kemampuan tim Anda, kemudian kerucutkan opsi yang ada dengan membandingkan model mana yang paling baik untuk diberikan kepada klien dalam proyek yang ingin dikerjakan.


 

Source: https://backlog.com/blog/12-software-development-methodologies-explained/


100+ perusahaan bekerjasama dengan Badr Interactive untuk mengoptimalkan website dan aplikasi mereka.

Selama lebih dari 8 tahun, kami telah mengembangkan 200+ website/aplikasi untuk berbagai klien kami.

Mari bergabung dan ciptakan sistem terbaik untuk perusahaan Anda