NIM : 1703003
Kelas : D3TI3A
INTERATIVE MODEL
1. Prototype
2. Spiral
3. Unified Process
4. CleanRoom
1. Model Spiral
Aktivitas didalam Model Spiral
a) Komunikasi Pemakai (Customer Communication)
b) Membangun komunikasi yang baik dengan pengguna sistem.
c) Perencanaan (Planning)
d) Penentuan tujuan, alternatif dan batasan.
e) Analisis resiko (Risk Analysis)
f) Analisis alternatif dan identifikasi / pemecahan resiko
g) Rekayasa (Engineering)
h) Pembangunan contoh-contoh aplikasi, misalnya prototype.
i) Pembangunan & Realisasi (Construction & Release)
Merupakan model proses perangkat j) Pembangunan sistem, test, install dan support.
lunak yang memadukan wujud k) Evaluasi Pemakai (Customer Evaluation)
perulangan dari model prototyping l) Penilaian terhadap hasil dari fase rekayasa dan fase pembangunan
dengan aspek pengendalian dan & realisasi oleh pengguna.
sistematika dari waterfall model, dengan
penambahan elemen baru yaitu analisis Bentuk spiral memberikan gambaran bahwa semakin besar
resiko. iterasinya, maka menunjukkan makin lengkap versi dari
perangkat lunak yang dibuat.
Kelemahan Model Spiral` Keuntungan Model Spiral
Sulit untuk meyakinkan pemakai (saat situasi Pada model spiral, resiko sangat dipertimbangkan. Resiko
kontrak) bahwa penggunaan pendekatan ini akan adalah sesuatu yang mungkin mengakibatkan
dikendalikanMemerlukan tenaga ahli untuk kesalahan.Model spiral merupakan pendekatan yang
memperkirakan resiko, dan harus realistik untuk pengembangan perangkat lunak / sistem
mengandalkannya supaya suksesBelum terbukti berskala besar.Pengguna dan pembangun bisa memahami
apakah metode ini cukup efisien karena usianya dengan baik perangkat lunak yang dibangun karena setiap
relatif baru. kemajuan yang dicapai selama proses dapat dinikmati
dengan baik.
2. Model prototype
Tahapan prototype
• Pengumpulan kebutuhan
• Membangun prototyping
• Evaluasi protoptyping
• Mengkodekan system
• Menguji system
• Evaluasi Sistem
• Menggunakan sistem
Kelebihan Model Prototype Kekurangan Model Prototype
1. Pelanggan berpartisipasi aktif dalam pengembangan 1. Proses analisis dan perancangan terlalu
sistem, sehingga hasil produk pengembangan akan singkat.
semakin mudah disesuaikan dengan keinginan dan 2. Biasanya kurang fleksibel dalam
kebutuhan pelanggan. mengahadapi perubahan.
2. Penentuan kebutuhan lebih mudah diwujudkan. 3. Walaupun pemakai melihat berbagai
3. Mempersingkat waktu pengembangan produk perbaikan dari setiap versi prototype, tetapi
perangkat lunak. pemakai mungkin tidak menyadari bahwa
4. Adanya komunikasi yang baik antara pengembang versi tersebut dibuat tanpa memperhatikan
dan pelanggan. kualitas dan pemeliharaan jangka panjang.
5. Pengembang dapat bekerja lebih baik dalam 4. Pengembang kadang-kadang membuat
menentukan kebutuhan pelanggan. kompromi implementasi dengan
6. Lebih menghemat waktu dalam pengembangan menggunakan sistem operasi yang tidak
sistem. relevan dan algoritma yang tidak efisien.
7. Penerapan menjadi lebih mudah karena pelanggan
mengetahui apa yang diharapkannya.
3. Unified Process
Mengapa Unified Process
1. Perancangan berbasis obyek
2. Menerapkan Unified Modelling Language (UML)
3. Dapat diterapkan ke pendekatan Agile (XP, Scrum)
4. Analisis kebutuhan secara incremental
Unived process adalah Metode proses
pengembangan sistem yang bersifat
use-case-driven atau menggunakan use
case sebagai alur untuk membangun
sebuah sistem informasi.
Kelebihan Kekurangan
1. Menyediakan akses yang mudah terhadap 1. Metodologi ini hanya dapat digunakan pada
pengetahuan dasar bagi anggota tim pengembangan perangkat lunak yang berorientasi
2. Menyediakan petunjuk bagaimana menggunakan objek dengan berfokus pada UML (Unified Modeling
UML secara efektif. Language)
3. Mendukung proses pengulangan dalam 2. Membutuhkan waktu yang cukup lama
pengembangan software
4. Memungkinkan adanya penambahan-
penambahan pada proses.
5. Memungkinkan untuk secara sistematis
mengontrol perubahan- perubahan yang terjadi
pada software selama proses pengembangannya.
Model Proses Cleanroom
Secara umum pendekatan dengan menggunakan
metodologi Cleanroom ini tidak begitu banyak yang
menggunakannya padahal saat awal penggunaannya
terhadap rekayasa perangkat lunak menunjukan hasil yang
memuaskan. Henderson [HEN95] mengemukakan tiga
alasan yang mungkin:
Cleanroom software engineering adalah salah satu
1. Kepercayaan bahwa metodologi cleanroom terlalu
pendekatan yang bertujuan untuk memenuhi
teoritis, terlalu matematis, dan terlalu radikal
kebutuhanakan software yang bebas dari kesalahan
2. Tidak membutuhkan unit pengetesan oleh
sejak proses pengembangan. Pendekatan Cleanroom
pengembang tetapi menggantinya dengan verifikasi
sendiri memilikisudut pandang yang berbeda dengan
kebenaran dan quality control statistikal—konsep yang
siklus klasik. Filosofinya adalah menghilangkan
sungguh asing bagi pengembangan software saat ini.
proses debugging yang memerlukan biaya cukup
3. Industri pengembangan software belum siap untuk
besar dengan meningkatan kebenaran penulisan kode
mengaplikasikan teknik ini.
sejak awal dan memverifikasinya kebenarannya
sebelum pengetesan dilakukan.
Model Proses Cleanroom Keunikan Cleanroom
Proses Cleanroom itu sendiri menggunakan teknologi- Perbedaan perekayasaan software cleanroom dengan
teknologi yang berbasis teori, seperti spesifikasi struktur perekayasaan software konvensional dan berorientasi
kotak dari fungsi pengguna arsitektur objek system, objek:
perancangan teoritis fungsi dengan verifikasi pembenaran, 1. Penggunaan secara eksplisit quality control statistikal
dan ujian pemakaian statistik untuk sertifikasi kualitas. 2. Pemverifikasian spesifikasi desain menggunakan bukti
kebenaran berbasis matematik
Manajemen Cleanroom berdasar kepada pembanguna 3. Sangat bergantung pada testing statistikal untuk
incremental dan sertifikasi dari sebuah garis menemukan error yang mungkin berakibat fatal
increment(peningkatan) fungsi pengguna yang bertumpuk 4. Meminimalkan peran unit testing dan debugging (dan
sedikit demi sedikit ke dalam produk akhir. Operasi- secara dramatis mengurangi aktivitas testing oleh
operasi Cleanroom dapat dikeluarkan dengan mudah oleh pengembang software)
tim pengembang independen dan tim sertifikasi dengan tim
dari tim-tim untuk proyek besar. Setelah setiap increment
tersertifikasi, kemudian semua increment tersebut
digabungkan. Urutan kerja cleanroom untuk setiap
increment diilustrasikan dalam gambar 1. Semua
requirement sistem dikembangkan dengan metode
perekayasaan sistem (system engineering methods). Ketika
fungsionalitas telah diberikan, pipeline increment
cleanroom dimulai.
PREDICTIVE MODEL
1. Waterfall
2. Waterfall With Feedback
3. Sashimi
4. Incremental Waterfall
5. V - Model
WATERFALL
Keuntungan: Kerugian:
Terstruktur Linear, tidak ada umpan balik (feedback)
Tiap tahap memiliki metode untuk menghasilkan Sumber daya dan penjadwalan harus di perkirakan pada
suatu dokumen yang bisa diserahkan ke pemakai awal proyek
Dokumen yang dihasilkan tiap tahap bisa di Tahap terisolasi, kurang terjalin transisi ke tahap
spesifikasikan secara jelas dan mendetail berikutnya. Akibat paling besar terasa pada tahap
requirement
Pemakai tidak bisa melihat produk perangkat lunak
sampai akhir proyek
Penekanan terbesar pada dokumen
WATERFALL WITH FEEDBACK
Dalam proyek pengembangan perangkat lunak praktis, model air terjun klasik
sulit digunakan. Jadi, model air terjun berulang dapat dianggap sebagai
memasukkan perubahan yang diperlukan untuk model air terjun klasik untuk
membuatnya dapat digunakan dalam proyek pengembangan perangkat lunak
praktis. Ini hampir sama dengan model air terjun klasik kecuali beberapa
perubahan dilakukan untuk meningkatkan efisiensi pengembangan perangkat
lunak.
Model air terjun iteratif memberikan jalur umpan balik dari setiap fase ke fase
sebelumnya, yang merupakan perbedaan utama dari model air terjun klasik.
Ketika kesalahan terdeteksi pada beberapa fase kemudian, jalur umpan balik
ini memungkinkan mengoreksi kesalahan yang dilakukan oleh programmer
selama beberapa fase. Jalur umpan balik memungkinkan fase untuk dikerjakan
ulang di mana kesalahan dilakukan dan perubahan ini tercermin dalam fase
selanjutnya. Tetapi, tidak ada jalur umpan balik ke tahap - studi kelayakan,
karena sekali proyek telah diambil, tidak mudah menyerah.
Adalah baik untuk mendeteksi kesalahan pada fase yang sama di mana mereka
berkomitmen. Ini mengurangi upaya dan waktu yang diperlukan untuk
memperbaiki kesalahan.
Fase Penahanan Kesalahan: Prinsip mendeteksi kesalahan sedekat mungkin
dengan poin komitmen mereka dikenal sebagai Fase penahanan kesalahan.
Keuntungan Model Air Terjun Iteratif
1. Jalur Umpan Balik: Dalam model air terjun klasik, tidak ada jalur umpan balik, sehingga tidak ada mekanisme untuk koreksi
kesalahan. Tetapi dalam jalur umpan balik model air terjun iteratif dari satu fase ke fase sebelumnya memungkinkan mengoreksi
kesalahan yang dilakukan dan perubahan ini tercermin dalam fase selanjutnya.
2. Sederhana: Model air terjun berulang sangat sederhana untuk dipahami dan digunakan. Itu sebabnya ini adalah salah satu model
pengembangan perangkat lunak yang paling banyak digunakan.
Kerugian dari Model Air Terjun Iteratif
1. Sulit untuk memasukkan permintaan perubahan: Kelemahan utama dari model air terjun iteratif adalah
bahwa semua persyaratan harus dinyatakan dengan jelas sebelum memulai tahap pengembangan.
Pelanggan dapat mengubah persyaratan setelah beberapa waktu tetapi model air terjun iteratif tidak
meninggalkan ruang lingkup untuk memasukkan permintaan perubahan yang dibuat setelah fase
pengembangan dimulai.
2. Pengiriman tambahan tidak didukung: Dalam model air terjun iteratif, perangkat lunak lengkap
dikembangkan dan diuji sepenuhnya sebelum dikirim ke pelanggan. Tidak ada ruang untuk pengiriman
perantara. Jadi, pelanggan harus menunggu lama untuk mendapatkan perangkat lunak.
3. Tumpang tindih fase tidak didukung: Model air terjun berulang mengasumsikan bahwa satu fase dapat
dimulai setelah selesainya fase sebelumnya, Tetapi dalam proyek nyata, fase mungkin tumpang tindih
untuk mengurangi upaya dan waktu yang dibutuhkan untuk menyelesaikan proyek.
4. Penanganan risiko tidak didukung: Proyek mungkin menderita berbagai jenis risiko. Namun, model air
terjun berulang tidak memiliki mekanisme untuk penanganan risiko.
5. Interaksi pelanggan terbatas: Interaksi pelanggan terjadi pada awal proyek pada saat pengumpulan
persyaratan dan pada penyelesaian proyek pada saat pengiriman perangkat lunak. Interaksi yang lebih
sedikit dengan pelanggan ini dapat menyebabkan banyak masalah karena perangkat lunak yang
dikembangkan akhirnya mungkin berbeda dari persyaratan aktual pelanggan.
SASHIMI
Model Sashimi. Jadi, dalam Model Sashimi idenya adalah bahwa kami
mengizinkan tumpang tindih berbagai fase siklus pengembangan perangkat
lunak. Misalnya, saat Anda mengerjakan persyaratan, alih-alih menunggu fase
persyaratan selesai, Anda akan mulai dengan desain saat persyaratan sedang
dibuat. Dan pada dasarnya, kami hanya akan mengatakan bahwa persyaratan
tidak dilakukan, bagaimana saya bisa mulai dengan desain? Nah, ketika Anda
melakukan persyaratan, Anda semacam membangun persyaratan untuk
bagian aplikasi dan sudah menjalankan persyaratan itu. Para arsitek atau
perancang mereka sebenarnya dapat mulai bekerja pada persyaratan yang
sudah dibuat. Jadi itulah bagaimana Anda bisa tumpang tindih fase yang
berbeda Model Sashimi. Demikian juga, sementara jika bagian dari aplikasi
adalah desain, Anda dapat memulai fase implementasi dan sebagainya. Jadi
ide utama di balik fase ini adalah bahwa fase berikutnya tidak harus
menunggu fase sebelumnya untuk memulai, kan? Anda tidak harus menunggu
fase sebelumnya selesai untuk memulai fase yang ada. Nah, jika Anda ingin
mempersingkat skala waktu Anda, maka Anda berpotensi menggunakan
model ini. Atau jika Anda memiliki semua sumber daya yang tersedia, dan
Anda ingin mereka segera memulai proyek, maka Anda juga dapat
menggunakan model ini untuk tumpang tindih dengan ini.
INCREMENTAL WATERFALL
Tahap Verfiikasi mengacu kepada usaha penyesuaian spesifikasi software dengan kebutuhan klien/konsumen,
tahapan ini meliputi serangkaian kegiatan sebagai berikut:
1. Business Case: Merupakan tahapan awal yang menggambarkan kebutuhan/harapan konsumen terhadap
sistem yang akan dikembangkan, termasuk manfaat sistem terhadap konsumen dan perkiraan biaya yang
harus disediakan.
2. Requirement: pada fase ini klien mendapatkan gambaran atau diminta memberikan gambaran kebutuhan
yang diharapkan dapat dipenuhi oleh software, baik kebutuhan fungsional maupun non fungsional.
3. Analisis Informasi: Setelah diperoleh spesifikasi sistem dari fase requirement, selanjutnya aktivitas
difokuskan bagaimana cara kerja software untuk memenuhi kebutuhan tersebut, termasuk metode,
hardware dan software apa saja yang diperlukan untuk mencapai kebutuhan yang sudah didefinisikan.
4. Perancangan Sistem: pada tahapan ini akan dibuat rancangan software secara lebih terinci sesuai
spesifikasi yang sudah disepakati.
5. Unit Design: merancang setiap elemen/unit software termasuk rancangan modul/program, antarmuka,
database dan lain-lain.
6. Development: merealisasikan hasil rancangan menjadi satu aplikasi/program tertentu.
Tahapan Validasi merupakan serangkaian tahapan yang mengacu kepada kesesuaian software dengan spesifikasi
yang sudah ditetapkan. Tahapan ini dicapai melalui serangkaian pengujian/testing sebagai berikut:
1. Unit test: menguji setiap komponen/unit program apakah sesuai dengan rancangan unit yang sudah ditetapkan.
Secara teoritis seharusnya pengujian dilakukan oleh orang tertentu yang bertugas sebagai software tester, tetapi
dalam kenyataannya seringkali unit testing dilakukan oleh programmer sendiri.
2. Interface test: setelah semua komponen diuji secara terpisah, tahapan selanjutnya dilakukan interface test untuk
melihat sejauh mana setiap komponen dapat berinteraksi satu sama lain sesuai dengan fungsi yang diharapkan.
3. System test: setelah semua interface berjalan dengan baik, selanutnya dilakukan system test untuk melihat
sejauh mana sistem/software dapat memenuhi kebutuhan secara keseluruhan. System testing bersifat
menyeluruh dan tidak dapat dilakukan berdasarkan fungsionalitas sistem yang diuji secara terpisah. Aktivitas
pada system testing termasuk melakukan pengujian hal-hal berikut:
Performance – apakah kinerja sistem sesuai dengan target yang sudah didefinisikan sebelumnya.
Volume – apakah software/sistem dapat menampung volume informasi yang cukup besar.
Stress – apakah software/sistem dapat menampung sejumlah informasi pada waktu-waktu
tertentu.
Documentation – apakah semua dokumentasi penting sudah disiapkan.
Robustness – apakah software/sistem cenderung stabil pada berbagai kondisi diluar
dugaan/ekstrim.
3. Acceptance test merupakan aktivitas untuk menguji sejauh mana sistem/software dapat membantu
memecahkan business case, dalam artian apakah sistem/software tersebut sudah sesuai dengan harapan
konsumen/klien dan sejauh mana manfaat sistem/software ini bagi klien. Test ini sering kali disebut
sebagai User Acceptance Test (UAT).
4. Release testing: test ini dilakukan untuk menguji sejauh mana sistem/software dapat mendukung aktivitas
organisasi dan berjalan dengan harmonis sesuai dengan kegiatan rutin organisasi. Beberapa pertanyaan
coba dijawab pada fase ini misalnya apakah software tersebut mempengaruhi sistem lain? Apakah
software tersebut kompatibel dengan sistem lain? Bagaimana kinerja sistem sebenarnya di dalam
organisasi?
Kelebihan V model
Kekuranagn V model
1. V model sangat fleksibel. V model ini bisa
1. V model hanya bisa digunakan sekali dalam suatu proyek
digunakan untuk project tailoring serta
hal tersebut disebabkan kerena V model merupakan model
penambahan pengurangan method dan tool
yang project oriented.
secara dinamik.
2. V model bersifat terlalu fleksibel sehingga mengakibatkan
2. V model dikembangkan dan di maintain oleh
beberapa aktivitas-aktivitas yang digambarkan dalam V
publik. User dari V model berpartisipasi dalam
model menjadi terlalu abstrak. Hal tersebut mengakibatkan
change board yang memproses semua change
tidak bisa diketahui dengan jelas apa yang termasuk dalam
request terhadap V model.
activity tersebut dan apa yang tidak.
1. Cocok untuk proyek yang memerlukan waktu 3. RAD tidak cocok digunakan untuk sistem yang mempunyai resiko
yang singkat teknik yang tinggi.
2. Lebih efektif dan pendekatan waterfall/sequential 4. Jika sistem tidak dibangun dengan benar maka RAD akan bermasalah.
linear dalam menghasilakn sistem yang 5. Jika ada peubahan di tengah-tengah pengerjaan maka harus membuat
memenuhi kebutuhan langsung dari pelanggan. kontrak baru antara pengembang dan customer.
Agile Agile adalah sebuah metode software development yang mencakup
website, web application, dan mobile application yang berfokus untuk
menghasilkan software berkualitas tinggi secara konsisten dengan mengurangi
biaya proyek dan meningkatkan nilai jual suatu bisnis. Secara definisi, Agile
dapat diartikan sebagai sebuah pendekatan pada project management dengan
menggunakan teknik iterasi dan bertahap secara dinamis (atau dikenal
dengan Sprint) dalam proses pembuatan suatu produk.
4. Jika pada saat pembangunan system terjadi 3. Tidak cocok dalam skala tim yang besar (>20
kegagalan kerugian dari segi materi relatif kecil. orang).
Extreme Programming (XP)
Pair Programming
Semua perangkat lunak yang dibangun dengan pendekatan XP dibangun oleh dua orang programmer. Keduanya duduk berdampingan di
satu komputer yang sama. Seorang programmer akan membuat code dan programmer yang lainnya akan mengoreksinya. Praktik seperti
ini mungkin kelihatan tidak efisien. Namun dari segi hasil dari pair programming, desain akan lebih baik, pengujian lebih baik, dan code
yang dihasilkan pun akan lebih baik.
Test-Driven Development
XP begitu terobsesi dengan umpan balik, dan dalam pengembangan perangkat lunak, umpan balik yang baik mensyaratkan pengujian
yang baik pula. Test-Driven Development bergantung pada pengulangan siklus development yang sangat pendek. Pertama tim XP akan
menuliskan automated test case yang mendefinisikan perbaikan yang diinginkan atau fungsi baru. Kemudian dari test case tersebut
dihasilkan jumlah minimal code yang harus dituliskan untuk lulus tes tersebut. Setelah itu melakukan refactoring code baru agar
memenuhi standar baru.
Continuous Integration
Beberapa kali dalam sehari, tim XP akan menggabungkan seluruh salinan pekerjaan tim menjadi satu dalam jaringan utama.
Sehingga tim XP harus menjaga tim agar terintegrasi setiap saat.
Design Improvement
XP berfokus pada memberikan nilai bisnis dalam setiap perulangan. Agar dapat mencapai tujuan tersebut selama proyek berlangsung,
perangkat lunak harus dirancang dengan baik. XP menggunakan proses perbaikan desain secara terus menerus dengan Refactoring.
Proses refactoring berfokus pada penghapusan duplikasi dari code yang telah dibuat. Disamping itu, proses refactoring didukung
dengan pengujian yang komprehensif utnuk memastikan bahwa desain yang dibuat berkembang dan tiidak ada yang rusak.
1. Meningkatkan kepuasan kepada klien 1. Cerita-cerita yang menunjukkan requirements dari pelanggan
kemungkinan besar tidak lengkap sehingga Developer harus selalu
2. Pembangunan system dibuat lebih cepat siap dengan perubahan karena perubahan akan selalu diterima.
3. Menjalin komunikasi yang baik dengan client.
2. Tidak bisa membuat kode yang detail di awal
4. Meningkatkan komunikasi dan sifat saling (prinsip simplicity dan juga anjuran untuk melakukan apa yang
menghargai antar developer. diperlukan hari itu juga).
3. XP tidak memiliki dokumentasi formal yang dibuat selama
pengembangan. Satu-satunya dokumentasi adalah dokumentasi
awal yang dilakukan oleh user.
Dynamic System Development Method (DSDM)
Kekurangan
Kelebihan
1. Menyajikan kerangka kerja (framework) untuk 1. Setiap iterasi bergantung pada prototype sebelumya.
membangun dan memelihara sistem dalam waktu yang 2. Menentukan scope dari suatu prototype proyek tidak pernah
terbatas melalui penggunaan prototyping yang selesai.
incremental dalam lingkungan yang terkondisikan. 3. Dokumentasi sering kali tidak lengkap fokus pada
2. Membangun software dengan cepat. pembuatan prototype.
3. DSDM dapat dikombinasikan dengan XP menghasilkan 4. Isu-isu mengenai system backup and recovery, system
kombinasi model proses yang mengikuti DSDM dan performance dan system security kurang/tidak diperhatikan
praktek yang sejalan dengan XP. dan sering terlupakan.
Scrum adalah sebuah metode iteratif yang termasuk dalam metode
Agile tentang bagaimana cara Anda mengelola dan menjalankan
sebuah proyek. Ini bisa digunakan untuk mengelola segala jenis proyek
mulai dari pembuatan software, website, hardware, marketing, event
planning, dan sebagainya. Scrum membantu Anda untuk mengorganisir
sebuah tim dan Anda harus memiliki komunikasi yang kuat antar member
tim tersebut. Scrum mengatakan bahwa setiap “sprint” dimulai dengan
meeting singkat untuk perencanaan dan diakhiri dengan review. Ini adalah
ide fundamental dari Scrum untuk sebuah project management.
Scrum
Kelebihan SCRUM
1. SCRUM dapat membantu perusahaan Anda dalam menghemat waktu 6. Dengan adanya short sprint dan constant feedback, SCRUM dapat
dan biaya (dalam hal ini uang). Biaya overhead dari proses dan dengan mudah mengatasi setiap perubahan yang terjadi.
manajemen sangat minim sehingga dapat mengarahkan kita kepada 7. Dengan adanya daily scrum meeting, memungkinan SCRUM untuk
hasil yang lebih cepat dan lebih murah. mengukur produktvitas individu, hal ini mengarah pada
2. Dengan menggunakan metode SCRUM, Anda dapat
peningkatan produktivitas dari setiap anggota tim.
mentranformasikan bisnis yang sulit untuk diukur menjadi mudah
untuk dikembangkan. 8. Dengan SCRUM, setiap ada masalah yang timbul dapat di
3. Pada metode SCRUM, pergerakan pengembangan cutting edge dapat identifikasi dengan baik pada pertemuan harian dan oleh karena itu
dengan cepat dikodekan dan diuji menggunakan metode ini. setiap masalah dapat di selesaikan dengan cepat.
Bagaikan kesalahan yang mudah untuk diperbaiki. 9. Dengan menggunakan metode SCRUM, Anda dapat dengan mudah
4. Dengan menggunakan SCRUM, Anda dapat mengontrol dan untuk mengirim produk berkualitas sesuai dengan waktunya.
memonitoring aktivitas peningkatan dan penurunan beban pekerjaan 10. SCRUM dapat bekerja dengan berbagai teknologi dan bahasa
yang bisa terjadi kapan saja.
pemrograman. Namun secara khusus berguna untuk pengembangan
5. Seperti metodologi agile pada umumnya, SCRUM merupakan
metode iterative yang membutuhkan feedback secara berkelanjutan proyek dengan teknologi web 2.0 ataupun media proyek baru
dari user atau pengguna. lainnya.
Kekurangan SCRUM
1. SCRUM bisa menjadi salah satu penyebab utama terjadinya scope creep, kecuali ada tanggal akhir
tertentu. Stakeholder proyek atau manajemen akan terus menuntut fungsi dan fitur baru untuk
disampaikan.
2. Setiap tugas harus didefinisikan dengan baik, karena hal ini dapat mempengaruhi perkiraan biaya dan
waktu pengerjaan proyek. Jika tidak didefinisikan dengan baik maka semua hal tersebut tidak akan
akurat. Dalam kasus seperti ini, biasanya tugas dapat tersebar di beberapa sprint.
3. Jika anggota tim Anda tidak berkomitmen dengan baik, maka proyek Anda tidak akan selesai atau
bahkan bisa gagal.
4. Metode SCRUM ini hanya membutuhkan anggota tim yang sudah berpengalaman, jika tim Anda
berisi orang-orang yang masih pemula maka proyek tidak dapat selesai sesuai dengan waktunya.
5. SCRUM dapat bekerja dengan baik jika seorang Scrum Master dapat mempercayai tim yang mereka
kelola. Jika Scrum Master terlalu mengontrol secara ketat, hal ini dapat menyebabkan tim menjadi
tertekan dan stress, sehingga mengakibatkan demoralisasi dan kegagalan dari proyek tersebut.
6. Jika sering terjadi pergantian anggota tim saat pengembangan proyek berlangsung, hal ini dapat
menyebabkan efek yang kurang baik bagi perkembangan proyek tersebut, proyek akan semakin lama
selesai dari waktunya.
Kanban
Kanban adalah framework yang sangat baik bila digunakan
untuk proses kontinyu atau rilis produk harian. Ia juga baik
untuk diterapkan dalam proyek-proyek pemeliharaan
(maintenance). Kanban memiliki ciri-ciri alur kerja yang
tervisualisasi (visualized workflow), tugas yang dipecah
menjadi item-item diskrit, progres kerja yang dibatasi, dan
pengaturan tugas-tugas dari backlog.
Kanban suatu metode untuk menvisualisasikan proses perkerjaan yang dilakukan saat kita sedang
mengembangkan suatu Software. Team member dapat Menarik/Pull tugas yang harus diselsaikan dan
bukan mendorong atau didorong oleh suatu tugas. Dengan menggunakan metode ini, kita dapat menjaga
keseimbangan antara perkerjaan team member yang satu, dengan team member yang lainya. Metode ini
juga dapat melacak Bottleneck dalam pengembangan aplikasi. Untuk mengetahu lebih lanjut
tentang Kanban pertama kita harus mengerti tentang proses Agile development berkerja.
Kelebihan : Kekurangan :
Dengan metode FDD, tim pengembang diberikan informasi yang cukup dan alat bantu untuk menyelesaikan
proyek. Pemimpin proyek dan manajer diberikan informasi berdasarkan waktu mengenai tim dan proyek yang
sedang berjalan untuk menghindari risiko yang terjadi. Pelaporan menjadi lebih mudah, tidak membebani,
periodik, dan akurat.
Pengguna juga dapat secara langsung melihat bagian mereka sebagai hasil progress proyek dan
memberikan feedback dalam tahap pengembangan yang bertujuan untuk menciptakan sistem sesuai keinginan
klien.
Kelebihan Kekurangan
• Tangible results rather than process pride.
Proses dalam metode FDD mengutamakan sesuatu yang dapat Membutuhkan jumlah pekerja yang banyak (10-250 orang)
diukur ketimbang proses-proses perancangan yang rumit dan yang dibagi ke dalam beberapa divisi. Semakin banyak
menghabiskan waktu, sumber daya, dan biaya. Pada saat merancang pekerja, biaya yang dikeluarkan semakin tinggi.
proyek, penjadwalan langsung diarahkan ke dalam bentuk fitur.
Lebih menekankan pengembang dengan keterampilan tinggi
dan sulit untuk mencari pengembang dengan kriteria
• A system for building system is necessary.
Sistem yang dibangun harus rapi dan kuat agar para pengembang tersebut.
dapat bekerja dan menghasilkan sebuah sistem yang diharapkan Dalam FDD terdapat class owner yang menangani setiap
oleh klien. fitur. Masalahnya adalah ketika fitur A memiliki dependensi
terhadap fitur B dan fitur B mengalami perubahan, fitur A
• Simple is better. harus menunggu kepastian dari fitur B yang menyebabkan
Perancangan dibuat sesederhana mungkin, tetapi dapat memenuhi
mundurnya jadwal proyek.
semua persyaratan yang diberikan oleh klien sehingga mereka
mendapatkan gambaran sistem dengan mudah. Pada intinya, FDD bersifat individual, maka dapat terjadi
saling tunggu antar fitur yang terkait. FDD membatasi
• Process steps should be obviously valuable to each team member. penambahan fitur kurang dari 10% dari total waktu, biaya,
Setiap langkah atau proses selama pengembangan sistem harus dan kualitas. Perubahan fitur hanya dilakukan pada sebuah
dapat dinilai dan terukur bagi para pengembang sistem. Selain itu, proses dan keterlibatan klien hanya pada beberapa tahapan.
desain kode juga menjadi lebih mudah dan efektif pada saat
pemeriksaan. Jumlah jam kerja FDD tidak terikat sehingga dapat
menyebabkan para pengembang tidak bekerja
• Good processes move to the background. secara optimal di pertengahan, tetapi pada akhir jadwal
Semua proses lebih baik dikerjakan di belakang sehingga mereka akan bekerja lebih ekstra.
pengerjaan dengan metode FDD terlihat lebih sederhana.
Agile Unified Process (AUP
Agile Unified Process (AUP) adalah versi sederhana dari Rational Unified
Process (RUP) yang dikembangkan oleh Scott Ambler. AUP menjelaskan
pendekatan yang sederhana, mudah dipahami untuk mengembangkan
perangkat lunak aplikasi bisnis menggunakan teknik dan konsep agile namun
masih tetap berlaku untuk RUP. Pendekatan ini menerapkan teknik agile,
termasuk Test-driven Development (TDD), Agile Model Driven Development
(AMDD), agile change management, dan refactoring database untuk
meningkatkan produktivitas[1]. Agile Unified Process (AUP) mengadopsi
filosofi “serial in the large” dan “iterative in the small” [1]untuk membangun
sistem berbasis komputer.
Dengan mengadopsi tahapan kegiatan klasik Unified Process — permulaan (inception), elaborasi (elaboration),
konstruksi (construction), dan transisi (transition) — AUP menyediakan lapisan serial (mis., Urutan linier kegiatan
rekayasa perangkat lunak) yang memungkinkan tim memvisualisasikan alur proses keseluruhan untuk proyek perangkat
lunak. Namun, dalam setiap kegiatan, tim melakukan iterasi untuk mencapai agility dan untuk memberikan software
increment yang bermakna kepada pengguna akhir secepat mungkin.
Kelebihan
Kekurangan