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
Post a Comment