M E T O D O L O G I P E N G E M B A N G A N
P E R A N G K AT L U N A K
D E S A I N P R O D U K
I N T R O D U C T I O N
• Siklus hidup perangkat lunak adalah sebuah usaha untuk mengidentifikasi aktifitas
yang terjadi selama pengembangan sebuah perangkat lunak. Aktifitas ini kemudian
diurutkan sesuai dengan waktu pelaksanaannya pada proyek pengembangan
manapun dan diaplikasikan teknik yang tepat pada setiap aktifitasnya.
• Pemilihan metodologi yang tepat
• Metodologi yang dipilih membentuk bagaimana proyek direncanakan,
dieksekusi, dan disampaikan. Tidak cocoknya metodologi dengan karakteristik
proyek dapat menyebabkan ketidaksempurnaan, penundaan, dan hasil yang
kurang optimal.
I N T R O D U C T I O N
• Pengaruh metodologi yang digunakan
• Keberhasilan: Metodologi yang tepat meningkatkan kemungkinan kesuksesan proyek.
Penerapan metodologi yang benar menghasilkan produk berkualitas tinggi, kesesuaian yang
lebih baik dengan kebutuhan pengguna, dan kepuasan pemangku kepentingan yang lebih baik.
• Waktu Pengerjaan: Metodologi secara langsung memengaruhi jadwal proyek. Model tradisional
seperti Waterfall memiliki siklus pengembangan yang lebih panjang, sementara metodologi Agile
mendorong siklus pengembangan yang lebih pendek dan iteratif yang memungkinkan rilis lebih
cepat.
• Kolaborasi: Metodologi menentukan bagaimana tim berkolaborasi dan berkomunikasi.
Metodologi Agile menekankan kolaborasi yang erat antara pengembang, pemangku kepentingan,
dan pengguna, sementara model-model yang lebih tradisional mungkin memiliki interaksi yang
lebih sedikit.
J E N I S - J E N I S S O F T W A R E
D E V E L O P M E N T L I F E C Y C L E
• Waterfall : Pendekatan linier dan berurutan di mana setiap fase harus diselesaikan
sebelum fase berikutnya dimulai.
• Agile : Pendekatan berulang dan bertahap yang berfokus pada kolaborasi dan
fleksibilitas. Metodologi ini memprioritaskan perencanaan adaptif dan melibatkan
umpan balik rutin dari para pemangku kepentingan.
• Iterative : Mirip dengan pendekatan Agile, model ini melibatkan pemecahan
proses pengembangan perangkat lunak ke dalam siklus yang lebih kecil (iterasi), di
mana setiap iterasi menghasilkan versi perangkat lunak yang berfungsi. Setiap
iterasi dibangun berdasarkan iterasi sebelumnya, menyempurnakan produk secara
bertahap.
J E N I S - J E N I S S O F T W A R E
D E V E L O P M E N T L I F E C Y C L E
• Spiral : Kombinasi dari pengembangan agile dan model waterfall. Model ini
menekankan pada penilaian dan mitigasi risiko.
• V-Model (Validation and Verification) : Variasi dari model Waterfall yang
menekankan hubungan antara fase pengembangan dan fase pengujian yang
sesuai. Setiap fase pengembangan memiliki fase pengujian yang sesuai,
membentuk bentuk "V".
• RAD (Rapid Application Development) : Model yang memprioritaskan pembuatan
prototipe yang cepat dan umpan balik yang cepat. Model ini melibatkan
stakeholders di seluruh proses pengembangan untuk memastikan produk akhir
sesuai dengan kebutuhan.
J E N I S - J E N I S S O F T W A R E
D E V E L O P M E N T L I F E C Y C L E
• Incremental : Model ini membagi proses pengembangan perangkat lunak menjadi bagian-
bagian yang lebih kecil dan mudah dikelola yang disebut increment. Setiap increment
dikembangkan dan dikirimkan secara terpisah, dengan setiap increment berikutnya dibangun
di atas increment sebelumnya.
• DevOps : DevOps berfokus pada kolaborasi antara tim pengembangan dan tim operasi TI
untuk mengotomatisasi dan merampingkan proses pengiriman perangkat lunak. Siklus ini
menekankan integrasi berkelanjutan, pengiriman berkelanjutan, dan penerapan berkelanjutan.
• Lean Development : Terinspirasi dari prinsip-prinsip lean manufacturing, pendekatan ini
bertujuan untuk memaksimalkan nilai sekaligus meminimalkan pemborosan. Pendekatan ini
berfokus pada memberikan hanya apa yang diperlukan dan menghilangkan proses yang tidak
bernilai tambah.
J E N I S - J E N I S S O F T W A R E
D E V E L O P M E N T L I F E C Y C L E
• Feature-Driven Development (FDD) : Model yang mengatur pengembangan
perangkat lunak di sekitar fitur yang akan bangunan. Model ini melibatkan
penelusuran domain, desain, dan implementasi fitur satu per satu.
• Crystal : Rangkaian metodologi yang dirancang agar sesuai dengan karakteristik
proyek yang berbeda. Metode ini menekankan pada komunikasi, kerja sama tim,
dan beradaptasi dengan kebutuhan proyek.
• Rational Unified Process (RUP) : Model berulang yang memberikan panduan
untuk merancang, mengimplementasikan, dan mendokumentasikan sistem
perangkat lunak. Model ini mudah beradaptasi dan menekankan pada
pengembangan yang berpusat pada arsitektur.
J E N I S - J E N I S S O F T W A R E
D E V E L O P M E N T L I F E C Y C L E
• Big-bang : Pendekatan informal yang sederhana di mana pengembangan dimulai
tanpa proses yang jelas, sering digunakan untuk proyek kecil atau perangkat lunak
eksperimental.
• Evolutionary Prototyping : Melibatkan pembuatan prototipe perangkat lunak
yang berfungsi dan menyempurnakannya melalui iterasi berdasarkan umpan balik
pengguna.
• Continuous Integration/Continuous Delivery (CI/CD) : CI/CD adalah serangkaian
praktik yang mengotomatiskan pembuatan, pengujian, dan penerapan perangkat
lunak. Hal ini sering kali dikombinasikan dengan metodologi pengembangan
lainnya.
J E N I S - J E N I S S O F T W A R E
D E V E L O P M E N T L I F E C Y C L E
• Big-bang : Pendekatan informal yang sederhana di mana pengembangan dimulai
tanpa proses yang jelas, sering digunakan untuk proyek kecil atau perangkat lunak
eksperimental.
• Evolutionary Prototyping : Melibatkan pembuatan prototipe perangkat lunak
yang berfungsi dan menyempurnakannya melalui iterasi berdasarkan umpan balik
pengguna.
• Continuous Integration/Continuous Delivery (CI/CD) : CI/CD adalah serangkaian
praktik yang mengotomatiskan pembuatan, pengujian, dan penerapan perangkat
lunak. Hal ini sering kali dikombinasikan dengan metodologi pengembangan
lainnya.
W A T E R F A L L
• Metode pengembangan perangkat lunak tradisional yang
dicirikan oleh pendekatan berurutan.
• Metode pengembangan linier melalui fase-fase yang berbeda,
di mana setiap fase harus diselesaikan sebelum fase
berikutnya dimulai.
• Metode ini sangat cocok untuk proyek dengan persyaratan
yang terdefinisi dengan baik dan stabil.
• Sifat Sekuensial: Model ini mengalir dalam satu arah, dengan
setiap fase dibangun berdasarkan hasil fase sebelumnya.
• Gambaran Umum Fase: Fase utama meliputi Persyaratan,
Desain, Implementasi, Pengujian, Penerapan, dan
Pemeliharaan.
W A T E R F A L L ( F A S E )
Requirements
• Gathering and Documenting: Memahami kebutuhan klien, tujuan bisnis,
dan persyaratan fungsional.
• Requirement Specification: Mendokumentasikan persyaratan secara rinci
untuk dijadikan referensi bagi desain dan pengembangan.
Design
• Architecture: Mendefinisikan struktur dan komponen sistem secara
keseluruhan.
• System Design: Menerjemahkan persyaratan ke dalam desain teknis yang
terperinci.
• Interface Design: Merancang bagaimana berbagai komponen akan
W A T E R F A L L ( F A S E )
Implementation
• Coding: Menulis kode yang sebenarnya berdasarkan spesifikasi desain.
• Unit Testing: Memverifikasi bahwa setiap komponen bekerja seperti
yang diharapkan.
Testing
• Thorough Testing: Pengujian yang ketat untuk mengidentifikasi bug,
kesalahan, dan ketidakkonsistenan.
• Integration Testing: Menguji interaksi antara komponen yang
berbeda.
W A T E R F A L L ( F A S E )
Deployment
• Release: Membuat perangkat lunak tersedia untuk pengguna akhir
atau pelanggan.
• Installation: Memastikan perangkat lunak diinstal dan dikonfigurasi
dengan benar.
Maintanance
• Updates and Fixes: Mengatasi masalah yang muncul setelah
penerapan.
• Enhancements: Memasukkan fitur dan peningkatan baru berdasarkan
umpan balik pengguna.
W A T E R F A L L ( K E L E B I H A N &
K E K U R A N G A N )
• Struktur yang Jelas: Fase-fase yang terdefinisi baik memudahkan manajemen
proyek.
• Prediktabilitas: Menyediakan jadwal dan tonggak yang jelas.
• Dokumentasi: Dokumentasi yang mendalam pada setiap tahap membantu menjaga
kejelasan.
Kelebihan:
• Rigidity: Sulit menyesuaikan perubahan setelah fase diselesaikan.
• Keterlibatan Pelanggan Terbatas: Sedikit ruang bagi umpan balik pelanggan
selama tahap awal.
• Scope Creep: Kebiasaan persyaratan untuk membesar dari waktu ke waktu.
Kekurangan:
W A T E R F A L L ( C O N T O H )
Contoh Sukses: Proyek konstruksi sering mengikuti pendekatan yang
mirip dengan Waterfall, di mana setiap fase (pondasi, kerangka,
utilitas, penyelesaian) diselesaikan sebelum fase berikutnya.
Contoh Kegagalan: Proyek Virtual Case File FBI mengalami masalah
akibat perubahan persyaratan, yang pada akhirnya ditinggalkan.
W A T E R F A L L
Proyek yang Tepat: Ideal untuk proyek dengan persyaratan yang
dipahami dengan baik dan perubahan terbatas yang diharapkan.
Perencanaan Detail: Tentukan persyaratan dan desain secara rinci
untuk meminimalkan masalah nanti.
Mengelola Ruang Lingkup: Terapkan prosedur pengelolaan
perubahan untuk mencegah scope creep.
R A P I D A P P L I C A T I O N D E V E L O P M E N T
( R A D )
• Metodologi pengembangan perangkat lunak yang fokus pada penyelesaian prototipe fungsional untuk
diberikan kepada pengguna secara cepat dan mengumpulkan umpan balik, untuk penyempurnaan berulang.
• Tujuannya adalah untuk mempercepat proses pengembangan sambil melibatkan pengguna sepanjang
siklus.
R A D ( F A S E )
• Requirements Planning:
• Definisi Lingkup dan Tujuan: Menjelaskan apa yang perangkat lunak harus capai
dengan jelas.
• Menetapkan Prioritas: Mengidentifikasi fitur-fitur yang paling penting untuk rilis
awal.
• User Design:
• Membuat Prototipe: Mengembangkan representasi visual antarmuka pengguna
dan fungsionalitasnya.
• Melibatkan Pengguna: Secara berkala berbagi prototipe dengan pengguna untuk
masukan dan umpan balik.
R A D ( F A S E )
• Construction:
• Pengembangan Cepat: Membangun perangkat lunak sebenarnya berdasarkan
prototipe yang disetujui.
• Pertumbuhan Bertahap: Mengembangkan perangkat lunak dalam segmen-
segmen kecil yang mudah dikelola.
• Cutover:
• Transisi ke Produksi: Memindahkan perangkat lunak dari lingkungan
pengembangan ke lingkungan operasional yang aktif.
• Pelatihan dan Dukungan: Memberikan pelatihan kepada pengguna dan
dukungan berkelanjutan untuk perangkat lunak yang diimplementasikan.
R A D ( K E L E B I H A N & K E K U R A N G A N )
Kelebihan
• Pengembangan Lebih Cepat: Prototyping mempercepat proses pembuatan perangkat
lunak.
• Keterlibatan Pelanggan: Umpan balik pengguna yang sering memastikan kesesuaian
dengan kebutuhan pengguna.
• Kemampuan Beradaptasi: Perubahan dapat dengan mudah dimasukkan berdasarkan
umpan balik pengguna.
Kekurangan:
• Kekhawatiran terhadap Kualitas: Pengembangan cepat dapat menyebabkan kurangnya
perhatian terhadap jaminan kualitas.
• Lingkup Terbatas untuk Proyek Besar: RAD bekerja lebih baik untuk proyek-proyek yang
lebih kecil; proyek besar mungkin sulit dikelola.
R A D ( P R O T O T Y P E )
• Jenis-jenis Prototipe:
• Throwaway Prototypes: Dibangun dengan cepat untuk umpan balik awal, tidak
termasuk dalam produk akhir.
• Evolutionary Prototypes: Berkembang melalui iterasi menjadi produk akhir.
• Incremental Prototypes: Fungsionalitas ditambahkan secara bertahap hingga
sistem lengkap terbangun.
• Umpan Balik Pengguna dan Penyempurnaan:
• Prototyping membantu pengguna memvisualisasikan dan memahami perangkat
lunak lebih awal dalam proses.
• Umpan balik pengguna membimbing penyempurnaan, mengarah pada produk akhir
yang lebih berpusat pada pengguna.
R A D ( C O N T O H )
Industri Keuangan: RAD digunakan untuk mengembangkan platform
perdagangan dan alat analisis keuangan. Sebagai contoh, E*TRADE menggunakan
RAD untuk membuat platform perdagangan daring mereka, memungkinkan
penyesuaian cepat berdasarkan permintaan pasar.
E-commerce: Perusahaan seperti Amazon menerapkan prinsip RAD untuk
meningkatkan platform e-commerce mereka. Mereka sering merilis fitur dan
pembaruan baru untuk merespons perilaku pelanggan yang berubah dan tren
pasar.
Industri Kesehatan: RAD digunakan untuk membuat sistem manajemen pasien
yang dapat beradaptasi cepat dengan regulasi baru dan kebutuhan pasien yang
berkembang.
I T E R AT I V E
• Pengembangan perangkat lunak dilakukan melalui serangkaian
iterasi atau siklus.
• Setiap iterasi melibatkan pembangunan dan penyempurnaan
perangkat lunak secara bertahap, memungkinkan perbaikan
terus-menerus berdasarkan umpan balik dan perubahan
persyaratan.
I T E R A T I V E ( F A S E )
Pengumpulan Persyaratan untuk
Setiap Iterasi: Pada awal setiap iterasi,
tim mengumpulkan dan
menyempurnakan persyaratan untuk
fungsionalitas khusus yang akan
dikembangkan selama iterasi tersebut.
Ini memungkinkan pengembangan yang
difokuskan.
Desain, Pengembangan, Pengujian,
dan Penyampaian dalam Iterasi:
Dalam setiap iterasi, perangkat lunak
melewati tahap desain, pengembangan,
pengujian, dan penyampaian. Hasilnya
adalah increment perangkat lunak yang
dapat dievaluasi oleh pemangku
kepentingan.
I T E R AT I V E ( T
A N TA N G A N )
Menyeimbangkan Deliverables Jangka Pendek
dengan Visi Jangka Panjang: Salah satu
tantangan pengembangan iterative adalah
menemukan keseimbangan antara penyampaian
increment jangka pendek dan mempertahankan
visi jangka panjang yang koheren untuk proyek.
Hal ini dapat diatasi dengan memiliki rencana dan
arsitektur yang jelas yang mengarahkan setiap
iterasi.
Mengelola Perubahan Persyaratan dengan
Efektif: Ketika persyaratan berubah, penting untuk
mengelola perubahan dengan efektif tanpa
mengganggu proses pengembangan. Komunikasi
teratur dengan stakeholder dan sikap yang
fleksibel merupakan kunci untuk beradaptasi
dengan kebutuhan yang berubah.
I T E R A T I V E ( C O N T O H )
Google Chrome Browser: Google Chrome adalah
contoh proyek yang berhasil menggunakan
pengembangan iterative. Browser ini dirilis dalam
tahap-tahap, dengan setiap iterasi
memperkenalkan fitur dan perbaikan baru. Ini
memungkinkan Google untuk mengumpulkan
umpan balik pengguna, mengatasi masalah, dan
terus meningkatkan kinerja dan pengalaman
pengguna browser.
Pengembangan Game Berbasis Agile: Dalam
industri pengembangan game, pendekatan
pengembangan iterative sering digunakan. Studio
game merilis pembaruan dan ekspansi dari waktu
ke waktu, dengan memasukkan elemen permainan
baru dan merespons umpan balik pemain. Sebagai
contoh, game populer "Minecraft" telah terus-
menerus beriterasi dan ditingkatkan sejak perilisan
awalnya.
A G I L E
• Pengembangan perangkat lunak yang iteratif dan
fleksibel yang menekankan kolaborasi,
adaptabilitas, dan keterlibatan pelanggan.
• Agile menguraikan prinsip-prinsip inti, termasuk
mengutamakan individu dan interaksi daripada
proses dan alat, perangkat lunak yang berfungsi
daripada dokumentasi lengkap, kolaborasi
pelanggan daripada negosiasi kontrak, dan
merespons perubahan daripada mengikuti rencana.
A G I L E ( M E T O D O L O G I )
• Scrum:
• Roles: Product Owner, Scrum Master, Development Team.
• Artifacts: Product Backlog, Sprint Backlog, Increment.
• Ceremonies: Daily Standup, Sprint Planning, Sprint Review, Sprint Retrospective.
• Kanban:
• Visualizing and Managing Work: Menggunakan papan visual untuk melacak tahap pekerjaan.
• Continuous Flow: Item kerja berpindah melalui tahapan berdasarkan kapasitas dan permintaan.
• Extreme Programming (XP):
• Technical Practices: Pair programming, pengembangan berbasis tes (TDD), integrasi
berkelanjutan.
• Customer Involvement: Frequent interactions with customers for requirements and feedback.
A G I L E ( I T E R AT I V E D E V E L O P M E N T )
• Metodologi Agile mengadopsi iterative development, di mana perangkat lunak
dibangun secara bertahap dalam siklus pendek.
• Sprint in Scrum: Siklus pengembangan singkat (biasanya 1-4 minggu) di mana
satu set fitur spesifik dikembangkan.
• Continuous Improvement and Feedback Loops: Secara berkala mengevaluasi
dan menyesuaikan proses berdasarkan umpan balik dan pelajaran yang dipetik.
A G I L E ( K E L E B I H A N D A N
K E K U R A N G A N )
• Kelebihan:
• Fleksibilitas: Pendekatan Agile memungkinkan perubahan dan adaptasi sepanjang proses
pengembangan.
• Keterlibatan Pelanggan: Pelanggan memberikan umpan balik terus-menerus, memastikan
produk sesuai dengan kebutuhan mereka.
• Pengiriman Nilai Lebih Cepat: Rilis yang sering memberikan nilai kepada pengguna lebih awal
dalam pengembangan.
• Kekurangan:
• Kompleksitas untuk Proyek Besar: Mengelola Agile dalam proyek besar dan kompleks dapat
menjadi tantangan.
• Tim Berpengalaman Diperlukan: Metodologi Agile membutuhkan tim yang berpengalaman dan
termotivasi.
A G I L E ( C O N T O H )
• Implementasi Agile di Spotify:
• Spotify menggunakan prinsip-prinsip Agile untuk mengelola pengembangan platform
mereka. Spotify mengorganisir tim menjadi "Squads," masing-masing bertanggung
jawab atas area tertentu. Squads berkolaborasi menggunakan praktik Agile seperti
Scrum dan menjaga otonomi yang sejalan dengan tujuan perusahaan secara
keseluruhan.
• Agile dalam Pengembangan Perangkat Lunak Kesehatan:
• Metodologi Agile telah berhasil diterapkan dalam pengembangan perangkat lunak
kesehatan. Sebagai contoh, Cerner Corporation menggunakan Agile untuk
mengembangkan sistem catatan kesehatan elektronik (EHR), memungkinkannya
beradaptasi dengan standar medis dan kebutuhan pengguna yang terus berubah.
I N C R E M E N TA L
• Pengembangan perangkat lunak yang berfokus
pada membangun produk perangkat lunak
secara bertahap dengan memecahnya menjadi
bagian-bagian yang dapat dikelola.
• Pendekatan ini memungkinkan untuk
pengiriman fitur-fitur yang lebih cepat dan
iteratif.
I N C R E M E N TA L ( F A S E )
Pemilihan Modul: Identifikasi
Area Fungsional untuk Setiap
Inkremen.
Tujuan : Menentukan bagian-bagian
fungsional dari perangkat lunak yang akan
dikembangkan dalam setiap inkremen.
Desain dan Implementasi:
Mengembangkan modul-modul
secara bertahap.
Tujuan : Merancang dan
mengimplementasikan modul-modul
berdasarkan area fungsional yang
ditetapkan.
Pengujian dan Integrasi:
Memverifikasi modul-modul dan
mengintegrasikannya.
Tujuan : Menguji setiap modul secara
terpisah dan kemudian mengintegrasikannya
menjadi sistem keseluruhan.
I N C R E M E N T A L ( K E L E B I H A N
D A N K E K U R A N G A N )
• Kelebihan:
• Pengiriman Lebih Cepat: Pendekatan inkremental
memungkinkan pengiriman fitur-fitur lebih cepat.
• Fungsionalitas Awal: Setiap inkremen dapat menghadirkan
fungsionalitas yang dapat diuji dan digunakan oleh
pengguna.
• Dampak Perubahan yang Lebih Rendah: Perubahan dapat
diintegrasikan lebih mudah karena modularitas.
I N C R E M E N T A L ( K E L E B I H A N
D A N K E K U R A N G A N )
• Kekurangan:
• Tantangan Integrasi Berkelanjutan: Pada tahap akhir
pengembangan, perlu dilakukan integrasi menyeluruh yang
mungkin menimbulkan tantangan.
• Potensi Penundaan: Terkadang, inkremen tertentu mungkin
mengalami penundaan, yang dapat mempengaruhi jadwal
keseluruhan.
I N C R E M E N TA L V S
I T E R AT I V E
• Pendekatan incremental berfokus pada memecah
pengembangan menjadi bagian-bagian yang dapat diuji dan
digunakan, sementara pendekatan iteratif melibatkan
pengulangan siklus pengembangan dalam fase yang sama.
I N C R E M E N TA L ( C O N T O H )
Membangun Situs Web: Pendekatan incremental digunakan dalam pengembangan situs
web, di mana fitur-fitur baru dapat ditambahkan seiring waktu. Misalnya, situs e-
commerce dapat mengintegrasikan pembayaran online dalam inkremen pertama, lalu
menambahkan fitur keranjang belanja dalam inkremen berikutnya.
Pengembangan Permainan Video: Dalam pengembangan permainan video, fitur-fitur
permainan baru dapat diinkorporasi seiring waktu. Misalnya, permainan tembak-
menembak dapat menambahkan senjata baru atau level tambahan dalam setiap
inkremen.
S P I R A L
• Kombinasi dari pengembangan agile dan model
waterfall. Model ini menekankan pada penilaian
dan mitigasi risiko. Model ini menggabungkan
pengembangan iterative dengan strategi
manajemen risiko untuk menghasilkan produk
perangkat lunak berkualitas tinggi sambil
mengatasi risiko potensial.
S P I R A L ( F A S E )
Perencanaan: Mendefinisikan tujuan
proyek, persyaratan, dan kendala.
Analisis Risiko: Mengidentifikasi risiko
potensial, menilai dampaknya, dan
mengembangkan strategi untuk
mengelolanya.
Rekayasa: Mengembangkan,
memverifikasi, dan memvalidasi
produk perangkat lunak.
Evaluasi: Meninjau hasil dari tahap-
tahap sebelumnya dan menentukan
apakah proyek harus melanjutkan ke
iterasi berikutnya.
S P I R A L ( K E L E B I H A N
& K E K U R A N G A N )
• Kelebihan:
• Mengintegrasikan Penilaian Risiko:
Model ini menggabungkan manajemen
risiko dari tahap awal, mengurangi
dampak masalah potensial.
• Menyesuaikan Perubahan: Sifat
berulang memungkinkan adaptasi dan
perubahan seiring perkembangan
proyek.
• Pengembangan Berulang: Setiap iterasi
spiral menghasilkan versi produk yang
berfungsi, memfasilitasi perbaikan
berkelanjutan.
S P I R A L ( K E L E B I H A N
& K E K U R A N G A N )
• Kekurangan:
• Kompleksitas: Sifat berulang dan
berfokus pada risiko dapat
menyebabkan kompleksitas dalam
mengelola proses.
• Menggunakan Sumber Daya dengan
Intensif: Setiap iterasi spiral melibatkan
beberapa tahap, yang memerlukan
sumber daya dan koordinasi yang hati-
hati.
• Potensial Waktu Pelaksanaan yang
Lama: Proyek kompleks mungkin
memperpanjang jadwal karena iterasi
berulang.
S P I R A L ( C O N T O H ) • Misi Mars Rover NASA adalah
contoh penerapan Model Spiral.
Dengan setiap iterasi, NASA
mengidentifikasi risiko teknis
potensial seperti navigasi,
komunikasi, dan tantangan
perangkat keras. Mereka
kemudian mengembangkan dan
menguji solusi secara berulang,
memungkinkan mereka
mengelola risiko dan
ketidakpastian secara
sistematis.di Mars.

Pert-1 METODOLOGI PENGEMBANGAN PERANGKAT LUNAK.pptx

  • 1.
    M E TO D O L O G I P E N G E M B A N G A N P E R A N G K AT L U N A K D E S A I N P R O D U K
  • 2.
    I N TR O D U C T I O N • Siklus hidup perangkat lunak adalah sebuah usaha untuk mengidentifikasi aktifitas yang terjadi selama pengembangan sebuah perangkat lunak. Aktifitas ini kemudian diurutkan sesuai dengan waktu pelaksanaannya pada proyek pengembangan manapun dan diaplikasikan teknik yang tepat pada setiap aktifitasnya. • Pemilihan metodologi yang tepat • Metodologi yang dipilih membentuk bagaimana proyek direncanakan, dieksekusi, dan disampaikan. Tidak cocoknya metodologi dengan karakteristik proyek dapat menyebabkan ketidaksempurnaan, penundaan, dan hasil yang kurang optimal.
  • 3.
    I N TR O D U C T I O N • Pengaruh metodologi yang digunakan • Keberhasilan: Metodologi yang tepat meningkatkan kemungkinan kesuksesan proyek. Penerapan metodologi yang benar menghasilkan produk berkualitas tinggi, kesesuaian yang lebih baik dengan kebutuhan pengguna, dan kepuasan pemangku kepentingan yang lebih baik. • Waktu Pengerjaan: Metodologi secara langsung memengaruhi jadwal proyek. Model tradisional seperti Waterfall memiliki siklus pengembangan yang lebih panjang, sementara metodologi Agile mendorong siklus pengembangan yang lebih pendek dan iteratif yang memungkinkan rilis lebih cepat. • Kolaborasi: Metodologi menentukan bagaimana tim berkolaborasi dan berkomunikasi. Metodologi Agile menekankan kolaborasi yang erat antara pengembang, pemangku kepentingan, dan pengguna, sementara model-model yang lebih tradisional mungkin memiliki interaksi yang lebih sedikit.
  • 4.
    J E NI S - J E N I S S O F T W A R E D E V E L O P M E N T L I F E C Y C L E • Waterfall : Pendekatan linier dan berurutan di mana setiap fase harus diselesaikan sebelum fase berikutnya dimulai. • Agile : Pendekatan berulang dan bertahap yang berfokus pada kolaborasi dan fleksibilitas. Metodologi ini memprioritaskan perencanaan adaptif dan melibatkan umpan balik rutin dari para pemangku kepentingan. • Iterative : Mirip dengan pendekatan Agile, model ini melibatkan pemecahan proses pengembangan perangkat lunak ke dalam siklus yang lebih kecil (iterasi), di mana setiap iterasi menghasilkan versi perangkat lunak yang berfungsi. Setiap iterasi dibangun berdasarkan iterasi sebelumnya, menyempurnakan produk secara bertahap.
  • 5.
    J E NI S - J E N I S S O F T W A R E D E V E L O P M E N T L I F E C Y C L E • Spiral : Kombinasi dari pengembangan agile dan model waterfall. Model ini menekankan pada penilaian dan mitigasi risiko. • V-Model (Validation and Verification) : Variasi dari model Waterfall yang menekankan hubungan antara fase pengembangan dan fase pengujian yang sesuai. Setiap fase pengembangan memiliki fase pengujian yang sesuai, membentuk bentuk "V". • RAD (Rapid Application Development) : Model yang memprioritaskan pembuatan prototipe yang cepat dan umpan balik yang cepat. Model ini melibatkan stakeholders di seluruh proses pengembangan untuk memastikan produk akhir sesuai dengan kebutuhan.
  • 6.
    J E NI S - J E N I S S O F T W A R E D E V E L O P M E N T L I F E C Y C L E • Incremental : Model ini membagi proses pengembangan perangkat lunak menjadi bagian- bagian yang lebih kecil dan mudah dikelola yang disebut increment. Setiap increment dikembangkan dan dikirimkan secara terpisah, dengan setiap increment berikutnya dibangun di atas increment sebelumnya. • DevOps : DevOps berfokus pada kolaborasi antara tim pengembangan dan tim operasi TI untuk mengotomatisasi dan merampingkan proses pengiriman perangkat lunak. Siklus ini menekankan integrasi berkelanjutan, pengiriman berkelanjutan, dan penerapan berkelanjutan. • Lean Development : Terinspirasi dari prinsip-prinsip lean manufacturing, pendekatan ini bertujuan untuk memaksimalkan nilai sekaligus meminimalkan pemborosan. Pendekatan ini berfokus pada memberikan hanya apa yang diperlukan dan menghilangkan proses yang tidak bernilai tambah.
  • 7.
    J E NI S - J E N I S S O F T W A R E D E V E L O P M E N T L I F E C Y C L E • Feature-Driven Development (FDD) : Model yang mengatur pengembangan perangkat lunak di sekitar fitur yang akan bangunan. Model ini melibatkan penelusuran domain, desain, dan implementasi fitur satu per satu. • Crystal : Rangkaian metodologi yang dirancang agar sesuai dengan karakteristik proyek yang berbeda. Metode ini menekankan pada komunikasi, kerja sama tim, dan beradaptasi dengan kebutuhan proyek. • Rational Unified Process (RUP) : Model berulang yang memberikan panduan untuk merancang, mengimplementasikan, dan mendokumentasikan sistem perangkat lunak. Model ini mudah beradaptasi dan menekankan pada pengembangan yang berpusat pada arsitektur.
  • 8.
    J E NI S - J E N I S S O F T W A R E D E V E L O P M E N T L I F E C Y C L E • Big-bang : Pendekatan informal yang sederhana di mana pengembangan dimulai tanpa proses yang jelas, sering digunakan untuk proyek kecil atau perangkat lunak eksperimental. • Evolutionary Prototyping : Melibatkan pembuatan prototipe perangkat lunak yang berfungsi dan menyempurnakannya melalui iterasi berdasarkan umpan balik pengguna. • Continuous Integration/Continuous Delivery (CI/CD) : CI/CD adalah serangkaian praktik yang mengotomatiskan pembuatan, pengujian, dan penerapan perangkat lunak. Hal ini sering kali dikombinasikan dengan metodologi pengembangan lainnya.
  • 9.
    J E NI S - J E N I S S O F T W A R E D E V E L O P M E N T L I F E C Y C L E • Big-bang : Pendekatan informal yang sederhana di mana pengembangan dimulai tanpa proses yang jelas, sering digunakan untuk proyek kecil atau perangkat lunak eksperimental. • Evolutionary Prototyping : Melibatkan pembuatan prototipe perangkat lunak yang berfungsi dan menyempurnakannya melalui iterasi berdasarkan umpan balik pengguna. • Continuous Integration/Continuous Delivery (CI/CD) : CI/CD adalah serangkaian praktik yang mengotomatiskan pembuatan, pengujian, dan penerapan perangkat lunak. Hal ini sering kali dikombinasikan dengan metodologi pengembangan lainnya.
  • 10.
    W A TE R F A L L • Metode pengembangan perangkat lunak tradisional yang dicirikan oleh pendekatan berurutan. • Metode pengembangan linier melalui fase-fase yang berbeda, di mana setiap fase harus diselesaikan sebelum fase berikutnya dimulai. • Metode ini sangat cocok untuk proyek dengan persyaratan yang terdefinisi dengan baik dan stabil. • Sifat Sekuensial: Model ini mengalir dalam satu arah, dengan setiap fase dibangun berdasarkan hasil fase sebelumnya. • Gambaran Umum Fase: Fase utama meliputi Persyaratan, Desain, Implementasi, Pengujian, Penerapan, dan Pemeliharaan.
  • 11.
    W A TE R F A L L ( F A S E ) Requirements • Gathering and Documenting: Memahami kebutuhan klien, tujuan bisnis, dan persyaratan fungsional. • Requirement Specification: Mendokumentasikan persyaratan secara rinci untuk dijadikan referensi bagi desain dan pengembangan. Design • Architecture: Mendefinisikan struktur dan komponen sistem secara keseluruhan. • System Design: Menerjemahkan persyaratan ke dalam desain teknis yang terperinci. • Interface Design: Merancang bagaimana berbagai komponen akan
  • 12.
    W A TE R F A L L ( F A S E ) Implementation • Coding: Menulis kode yang sebenarnya berdasarkan spesifikasi desain. • Unit Testing: Memverifikasi bahwa setiap komponen bekerja seperti yang diharapkan. Testing • Thorough Testing: Pengujian yang ketat untuk mengidentifikasi bug, kesalahan, dan ketidakkonsistenan. • Integration Testing: Menguji interaksi antara komponen yang berbeda.
  • 13.
    W A TE R F A L L ( F A S E ) Deployment • Release: Membuat perangkat lunak tersedia untuk pengguna akhir atau pelanggan. • Installation: Memastikan perangkat lunak diinstal dan dikonfigurasi dengan benar. Maintanance • Updates and Fixes: Mengatasi masalah yang muncul setelah penerapan. • Enhancements: Memasukkan fitur dan peningkatan baru berdasarkan umpan balik pengguna.
  • 14.
    W A TE R F A L L ( K E L E B I H A N & K E K U R A N G A N ) • Struktur yang Jelas: Fase-fase yang terdefinisi baik memudahkan manajemen proyek. • Prediktabilitas: Menyediakan jadwal dan tonggak yang jelas. • Dokumentasi: Dokumentasi yang mendalam pada setiap tahap membantu menjaga kejelasan. Kelebihan: • Rigidity: Sulit menyesuaikan perubahan setelah fase diselesaikan. • Keterlibatan Pelanggan Terbatas: Sedikit ruang bagi umpan balik pelanggan selama tahap awal. • Scope Creep: Kebiasaan persyaratan untuk membesar dari waktu ke waktu. Kekurangan:
  • 15.
    W A TE R F A L L ( C O N T O H ) Contoh Sukses: Proyek konstruksi sering mengikuti pendekatan yang mirip dengan Waterfall, di mana setiap fase (pondasi, kerangka, utilitas, penyelesaian) diselesaikan sebelum fase berikutnya. Contoh Kegagalan: Proyek Virtual Case File FBI mengalami masalah akibat perubahan persyaratan, yang pada akhirnya ditinggalkan.
  • 16.
    W A TE R F A L L Proyek yang Tepat: Ideal untuk proyek dengan persyaratan yang dipahami dengan baik dan perubahan terbatas yang diharapkan. Perencanaan Detail: Tentukan persyaratan dan desain secara rinci untuk meminimalkan masalah nanti. Mengelola Ruang Lingkup: Terapkan prosedur pengelolaan perubahan untuk mencegah scope creep.
  • 17.
    R A PI D A P P L I C A T I O N D E V E L O P M E N T ( R A D ) • Metodologi pengembangan perangkat lunak yang fokus pada penyelesaian prototipe fungsional untuk diberikan kepada pengguna secara cepat dan mengumpulkan umpan balik, untuk penyempurnaan berulang. • Tujuannya adalah untuk mempercepat proses pengembangan sambil melibatkan pengguna sepanjang siklus.
  • 18.
    R A D( F A S E ) • Requirements Planning: • Definisi Lingkup dan Tujuan: Menjelaskan apa yang perangkat lunak harus capai dengan jelas. • Menetapkan Prioritas: Mengidentifikasi fitur-fitur yang paling penting untuk rilis awal. • User Design: • Membuat Prototipe: Mengembangkan representasi visual antarmuka pengguna dan fungsionalitasnya. • Melibatkan Pengguna: Secara berkala berbagi prototipe dengan pengguna untuk masukan dan umpan balik.
  • 19.
    R A D( F A S E ) • Construction: • Pengembangan Cepat: Membangun perangkat lunak sebenarnya berdasarkan prototipe yang disetujui. • Pertumbuhan Bertahap: Mengembangkan perangkat lunak dalam segmen- segmen kecil yang mudah dikelola. • Cutover: • Transisi ke Produksi: Memindahkan perangkat lunak dari lingkungan pengembangan ke lingkungan operasional yang aktif. • Pelatihan dan Dukungan: Memberikan pelatihan kepada pengguna dan dukungan berkelanjutan untuk perangkat lunak yang diimplementasikan.
  • 20.
    R A D( K E L E B I H A N & K E K U R A N G A N ) Kelebihan • Pengembangan Lebih Cepat: Prototyping mempercepat proses pembuatan perangkat lunak. • Keterlibatan Pelanggan: Umpan balik pengguna yang sering memastikan kesesuaian dengan kebutuhan pengguna. • Kemampuan Beradaptasi: Perubahan dapat dengan mudah dimasukkan berdasarkan umpan balik pengguna. Kekurangan: • Kekhawatiran terhadap Kualitas: Pengembangan cepat dapat menyebabkan kurangnya perhatian terhadap jaminan kualitas. • Lingkup Terbatas untuk Proyek Besar: RAD bekerja lebih baik untuk proyek-proyek yang lebih kecil; proyek besar mungkin sulit dikelola.
  • 21.
    R A D( P R O T O T Y P E ) • Jenis-jenis Prototipe: • Throwaway Prototypes: Dibangun dengan cepat untuk umpan balik awal, tidak termasuk dalam produk akhir. • Evolutionary Prototypes: Berkembang melalui iterasi menjadi produk akhir. • Incremental Prototypes: Fungsionalitas ditambahkan secara bertahap hingga sistem lengkap terbangun. • Umpan Balik Pengguna dan Penyempurnaan: • Prototyping membantu pengguna memvisualisasikan dan memahami perangkat lunak lebih awal dalam proses. • Umpan balik pengguna membimbing penyempurnaan, mengarah pada produk akhir yang lebih berpusat pada pengguna.
  • 22.
    R A D( C O N T O H ) Industri Keuangan: RAD digunakan untuk mengembangkan platform perdagangan dan alat analisis keuangan. Sebagai contoh, E*TRADE menggunakan RAD untuk membuat platform perdagangan daring mereka, memungkinkan penyesuaian cepat berdasarkan permintaan pasar. E-commerce: Perusahaan seperti Amazon menerapkan prinsip RAD untuk meningkatkan platform e-commerce mereka. Mereka sering merilis fitur dan pembaruan baru untuk merespons perilaku pelanggan yang berubah dan tren pasar. Industri Kesehatan: RAD digunakan untuk membuat sistem manajemen pasien yang dapat beradaptasi cepat dengan regulasi baru dan kebutuhan pasien yang berkembang.
  • 23.
    I T ER AT I V E • Pengembangan perangkat lunak dilakukan melalui serangkaian iterasi atau siklus. • Setiap iterasi melibatkan pembangunan dan penyempurnaan perangkat lunak secara bertahap, memungkinkan perbaikan terus-menerus berdasarkan umpan balik dan perubahan persyaratan.
  • 24.
    I T ER A T I V E ( F A S E ) Pengumpulan Persyaratan untuk Setiap Iterasi: Pada awal setiap iterasi, tim mengumpulkan dan menyempurnakan persyaratan untuk fungsionalitas khusus yang akan dikembangkan selama iterasi tersebut. Ini memungkinkan pengembangan yang difokuskan. Desain, Pengembangan, Pengujian, dan Penyampaian dalam Iterasi: Dalam setiap iterasi, perangkat lunak melewati tahap desain, pengembangan, pengujian, dan penyampaian. Hasilnya adalah increment perangkat lunak yang dapat dievaluasi oleh pemangku kepentingan.
  • 25.
    I T ER AT I V E ( T A N TA N G A N ) Menyeimbangkan Deliverables Jangka Pendek dengan Visi Jangka Panjang: Salah satu tantangan pengembangan iterative adalah menemukan keseimbangan antara penyampaian increment jangka pendek dan mempertahankan visi jangka panjang yang koheren untuk proyek. Hal ini dapat diatasi dengan memiliki rencana dan arsitektur yang jelas yang mengarahkan setiap iterasi. Mengelola Perubahan Persyaratan dengan Efektif: Ketika persyaratan berubah, penting untuk mengelola perubahan dengan efektif tanpa mengganggu proses pengembangan. Komunikasi teratur dengan stakeholder dan sikap yang fleksibel merupakan kunci untuk beradaptasi dengan kebutuhan yang berubah.
  • 26.
    I T ER A T I V E ( C O N T O H ) Google Chrome Browser: Google Chrome adalah contoh proyek yang berhasil menggunakan pengembangan iterative. Browser ini dirilis dalam tahap-tahap, dengan setiap iterasi memperkenalkan fitur dan perbaikan baru. Ini memungkinkan Google untuk mengumpulkan umpan balik pengguna, mengatasi masalah, dan terus meningkatkan kinerja dan pengalaman pengguna browser. Pengembangan Game Berbasis Agile: Dalam industri pengembangan game, pendekatan pengembangan iterative sering digunakan. Studio game merilis pembaruan dan ekspansi dari waktu ke waktu, dengan memasukkan elemen permainan baru dan merespons umpan balik pemain. Sebagai contoh, game populer "Minecraft" telah terus- menerus beriterasi dan ditingkatkan sejak perilisan awalnya.
  • 27.
    A G IL E • Pengembangan perangkat lunak yang iteratif dan fleksibel yang menekankan kolaborasi, adaptabilitas, dan keterlibatan pelanggan. • Agile menguraikan prinsip-prinsip inti, termasuk mengutamakan individu dan interaksi daripada proses dan alat, perangkat lunak yang berfungsi daripada dokumentasi lengkap, kolaborasi pelanggan daripada negosiasi kontrak, dan merespons perubahan daripada mengikuti rencana.
  • 28.
    A G IL E ( M E T O D O L O G I ) • Scrum: • Roles: Product Owner, Scrum Master, Development Team. • Artifacts: Product Backlog, Sprint Backlog, Increment. • Ceremonies: Daily Standup, Sprint Planning, Sprint Review, Sprint Retrospective. • Kanban: • Visualizing and Managing Work: Menggunakan papan visual untuk melacak tahap pekerjaan. • Continuous Flow: Item kerja berpindah melalui tahapan berdasarkan kapasitas dan permintaan. • Extreme Programming (XP): • Technical Practices: Pair programming, pengembangan berbasis tes (TDD), integrasi berkelanjutan. • Customer Involvement: Frequent interactions with customers for requirements and feedback.
  • 29.
    A G IL E ( I T E R AT I V E D E V E L O P M E N T ) • Metodologi Agile mengadopsi iterative development, di mana perangkat lunak dibangun secara bertahap dalam siklus pendek. • Sprint in Scrum: Siklus pengembangan singkat (biasanya 1-4 minggu) di mana satu set fitur spesifik dikembangkan. • Continuous Improvement and Feedback Loops: Secara berkala mengevaluasi dan menyesuaikan proses berdasarkan umpan balik dan pelajaran yang dipetik.
  • 30.
    A G IL E ( K E L E B I H A N D A N K E K U R A N G A N ) • Kelebihan: • Fleksibilitas: Pendekatan Agile memungkinkan perubahan dan adaptasi sepanjang proses pengembangan. • Keterlibatan Pelanggan: Pelanggan memberikan umpan balik terus-menerus, memastikan produk sesuai dengan kebutuhan mereka. • Pengiriman Nilai Lebih Cepat: Rilis yang sering memberikan nilai kepada pengguna lebih awal dalam pengembangan. • Kekurangan: • Kompleksitas untuk Proyek Besar: Mengelola Agile dalam proyek besar dan kompleks dapat menjadi tantangan. • Tim Berpengalaman Diperlukan: Metodologi Agile membutuhkan tim yang berpengalaman dan termotivasi.
  • 31.
    A G IL E ( C O N T O H ) • Implementasi Agile di Spotify: • Spotify menggunakan prinsip-prinsip Agile untuk mengelola pengembangan platform mereka. Spotify mengorganisir tim menjadi "Squads," masing-masing bertanggung jawab atas area tertentu. Squads berkolaborasi menggunakan praktik Agile seperti Scrum dan menjaga otonomi yang sejalan dengan tujuan perusahaan secara keseluruhan. • Agile dalam Pengembangan Perangkat Lunak Kesehatan: • Metodologi Agile telah berhasil diterapkan dalam pengembangan perangkat lunak kesehatan. Sebagai contoh, Cerner Corporation menggunakan Agile untuk mengembangkan sistem catatan kesehatan elektronik (EHR), memungkinkannya beradaptasi dengan standar medis dan kebutuhan pengguna yang terus berubah.
  • 32.
    I N CR E M E N TA L • Pengembangan perangkat lunak yang berfokus pada membangun produk perangkat lunak secara bertahap dengan memecahnya menjadi bagian-bagian yang dapat dikelola. • Pendekatan ini memungkinkan untuk pengiriman fitur-fitur yang lebih cepat dan iteratif.
  • 33.
    I N CR E M E N TA L ( F A S E ) Pemilihan Modul: Identifikasi Area Fungsional untuk Setiap Inkremen. Tujuan : Menentukan bagian-bagian fungsional dari perangkat lunak yang akan dikembangkan dalam setiap inkremen. Desain dan Implementasi: Mengembangkan modul-modul secara bertahap. Tujuan : Merancang dan mengimplementasikan modul-modul berdasarkan area fungsional yang ditetapkan. Pengujian dan Integrasi: Memverifikasi modul-modul dan mengintegrasikannya. Tujuan : Menguji setiap modul secara terpisah dan kemudian mengintegrasikannya menjadi sistem keseluruhan.
  • 34.
    I N CR E M E N T A L ( K E L E B I H A N D A N K E K U R A N G A N ) • Kelebihan: • Pengiriman Lebih Cepat: Pendekatan inkremental memungkinkan pengiriman fitur-fitur lebih cepat. • Fungsionalitas Awal: Setiap inkremen dapat menghadirkan fungsionalitas yang dapat diuji dan digunakan oleh pengguna. • Dampak Perubahan yang Lebih Rendah: Perubahan dapat diintegrasikan lebih mudah karena modularitas.
  • 35.
    I N CR E M E N T A L ( K E L E B I H A N D A N K E K U R A N G A N ) • Kekurangan: • Tantangan Integrasi Berkelanjutan: Pada tahap akhir pengembangan, perlu dilakukan integrasi menyeluruh yang mungkin menimbulkan tantangan. • Potensi Penundaan: Terkadang, inkremen tertentu mungkin mengalami penundaan, yang dapat mempengaruhi jadwal keseluruhan.
  • 36.
    I N CR E M E N TA L V S I T E R AT I V E • Pendekatan incremental berfokus pada memecah pengembangan menjadi bagian-bagian yang dapat diuji dan digunakan, sementara pendekatan iteratif melibatkan pengulangan siklus pengembangan dalam fase yang sama.
  • 37.
    I N CR E M E N TA L ( C O N T O H ) Membangun Situs Web: Pendekatan incremental digunakan dalam pengembangan situs web, di mana fitur-fitur baru dapat ditambahkan seiring waktu. Misalnya, situs e- commerce dapat mengintegrasikan pembayaran online dalam inkremen pertama, lalu menambahkan fitur keranjang belanja dalam inkremen berikutnya. Pengembangan Permainan Video: Dalam pengembangan permainan video, fitur-fitur permainan baru dapat diinkorporasi seiring waktu. Misalnya, permainan tembak- menembak dapat menambahkan senjata baru atau level tambahan dalam setiap inkremen.
  • 38.
    S P IR A L • Kombinasi dari pengembangan agile dan model waterfall. Model ini menekankan pada penilaian dan mitigasi risiko. Model ini menggabungkan pengembangan iterative dengan strategi manajemen risiko untuk menghasilkan produk perangkat lunak berkualitas tinggi sambil mengatasi risiko potensial.
  • 39.
    S P IR A L ( F A S E ) Perencanaan: Mendefinisikan tujuan proyek, persyaratan, dan kendala. Analisis Risiko: Mengidentifikasi risiko potensial, menilai dampaknya, dan mengembangkan strategi untuk mengelolanya. Rekayasa: Mengembangkan, memverifikasi, dan memvalidasi produk perangkat lunak. Evaluasi: Meninjau hasil dari tahap- tahap sebelumnya dan menentukan apakah proyek harus melanjutkan ke iterasi berikutnya.
  • 40.
    S P IR A L ( K E L E B I H A N & K E K U R A N G A N ) • Kelebihan: • Mengintegrasikan Penilaian Risiko: Model ini menggabungkan manajemen risiko dari tahap awal, mengurangi dampak masalah potensial. • Menyesuaikan Perubahan: Sifat berulang memungkinkan adaptasi dan perubahan seiring perkembangan proyek. • Pengembangan Berulang: Setiap iterasi spiral menghasilkan versi produk yang berfungsi, memfasilitasi perbaikan berkelanjutan.
  • 41.
    S P IR A L ( K E L E B I H A N & K E K U R A N G A N ) • Kekurangan: • Kompleksitas: Sifat berulang dan berfokus pada risiko dapat menyebabkan kompleksitas dalam mengelola proses. • Menggunakan Sumber Daya dengan Intensif: Setiap iterasi spiral melibatkan beberapa tahap, yang memerlukan sumber daya dan koordinasi yang hati- hati. • Potensial Waktu Pelaksanaan yang Lama: Proyek kompleks mungkin memperpanjang jadwal karena iterasi berulang.
  • 42.
    S P IR A L ( C O N T O H ) • Misi Mars Rover NASA adalah contoh penerapan Model Spiral. Dengan setiap iterasi, NASA mengidentifikasi risiko teknis potensial seperti navigasi, komunikasi, dan tantangan perangkat keras. Mereka kemudian mengembangkan dan menguji solusi secara berulang, memungkinkan mereka mengelola risiko dan ketidakpastian secara sistematis.di Mars.