Perbedaan Beserta Kekurangan dan Kelebihan dari Metode-Metode Perancangan Sistem Informasi

 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.

 

 

 

Perbedaan 10 antara metodologi Waterfall dan metodologi Agile.

Berikut adalah perbedaan 10 teratas antara Agile dan Waterfall Methodology:

 

1.      Air terjun adalah yang terstruktur dan seringkali itu bisa sangat kaku, sementara metodologi Agile dikenal karena fleksibilitasnya.

2.      Proses pengembangan perangkat lunak dibagi menjadi beberapa fase berbeda dalam model Waterfall, sementara metodologi Agile memisahkan siklus hidup pengembangan proyek menjadi sprint.

3.      Menurut model Waterfall, pengembangan perangkat lunak harus diselesaikan sebagai satu proyek. Ini kemudian dibagi menjadi beberapa fase yang berbeda, dengan setiap fase hanya terjadi satu kali selama proyek. Metodologi Agile, di sisi lain, dapat dilihat sebagai kumpulan dari banyak proyek kecil yang berbeda. Proyek yang tidak lain adalah iterasi fase yang berbeda yang bertujuan untuk meningkatkan kualitas perangkat lunak secara keseluruhan dengan umpan balik dari pengguna atau tim QA.

4.      Semua fase pengembangan proyek seperti desain, pengembangan, pengujian, dan lain-lain selesai satu kali dalam model Waterfall, sambil menerapkan pendekatan pengembangan berulang sebagai bagian dari metodologi Agile. Perencanaan, pengembangan, pembuatan prototipe, dan fase pengembangan perangkat lunak lainnya dapat terjadi lebih dari satu kali selama proyek Agile.

5.      Jika Anda ingin menggunakan model Waterfall untuk pengembangan perangkat lunak, Anda harus mengetahui dengan jelas semua persyaratan sebelumnya. Tidak ada ruang untuk mengubah persyaratan begitu pengembangan proyek dimulai. Metodologi Agile cukup fleksibel dan memungkinkan untuk membuat perubahan pada persyaratan, bahkan setelah perencanaan awal selesai.

6.      Sementara metodologi Waterfall adalah proses internal dan tidak memerlukan partisipasi pengguna, pendekatan pengembangan perangkat lunak Agile berfokus pada kepuasan pengguna dan dengan demikian pada partisipasi pengguna selama fase pengembangan.

7.      Salah satu perbedaan paling penting antara metodologi pengembangan Agile dan Waterfall adalah pendekatan mereka sendiri terhadap kualitas dan pengujian. Dalam model Waterfall, fase “Pengujian” muncul setelah fase “Bangunan”, tetapi dalam metode Agile, pengujian biasanya dilakukan bersamaan dengan pemrograman atau setidaknya selama iterasi yang sama dengan pemrograman.

8.      Model Waterfall dapat dianggap sebagai proses sekuensial yang ketat, tetapi metodologi Agile adalah proses pengembangan perangkat lunak yang sangat kolaboratif, yang mengarah pada input tim yang lebih baik dan penyelesaian masalah yang lebih cepat.

9.      Model Waterfall memerlukan pola pikir proyek dan berfokus secara eksklusif pada penyelesaian pengembangan proyek. Agile telah memperkenalkan pola pikir produk yang bertujuan untuk memastikan bahwa produk yang dikembangkan memenuhi kebutuhan pengguna dan dapat disesuaikan jika kebutuhan pengguna berubah.

10.  Model Waterfall paling cocok untuk proyek dengan persyaratan yang jelas dan di mana tidak ada perubahan yang diharapkan sama sekali. Pengembangan lincah mendukung proses di mana persyaratan diharapkan untuk berubah dan berkembang. Jadi, jika Anda berencana untuk mengembangkan perangkat lunak yang perlu ditinjau secara teratur dan yang harus mengikuti perkembangan teknologi dan persyaratan pengguna, Agile adalah pendekatan terbaik untuk diikuti.

Comments

Popular posts from this blog

Sejarah dan Perkembangan Sistem Informasi dan Teknologi Informasi sampai saat ini

MANAJEMEN RESIKO TEKNOLOGI INFORMASI