Model Waterfall (APPL PERTEMUAN -4)
Sejarah Model Waterfall
Penggunaan metode waterfall pertama kali diperkenalkan oleh Herbert D. Benington di Symposium on Advanced Programming Method for Digital Computers pada tanggal 29 Juni 1956. Presentasi tersebut menjelaskan tentang pengembangan perangkat lunak untuk SAGE (Semi Automatic Ground Environment).
Pada tahun 1983, dipresentasikan kembali oleh Benington dan menjelaskan tentang fase – fase dalam proses pengembangannya. Dan pada tahun 1985, Departemen Pertahanan Amerika Serikat juga menggunakan metode ini dengan beberapa tahapan yang digunakan, terdiri dari 6 fase, yaitu: Preliminary design, Detailed design, Coding and unit testing, Integration, dan Testing.
Tahapan Model Waterfall
Setelah mengetahui apa itu metode waterfall, selanjutnya masuk pada pembahasan mengenai tahapan metode waterfall.
1. Requirement
Tahapan metode waterfall yang pertama adalah mempersiapkan dan menganalisa kebutuhan dari software yang akan dikerjakan. Informasi dan insight yang diperoleh dapat berupa dari hasil wawancara, survei, studi literatur, observasi, hingga diskusi.
Biasanya di dalam sebuah perusahaan, tim analis akan menggali informasi sebanyak – banyaknya dari klien atau user yang menginginkan produk beserta dengan kebutuhan sistemnya. Selain itu, juga dapat mengetahui setiap batasan dari perangkat lunak yang akan dibuat.
2. Design
Tahap yang selanjutnya adalah pembuatan desain aplikasi sebelum masuk pada proses coding. Tujuan dari tahap ini, supaya mempunyai gambaran jelas mengenai tampilan dan antarmuka software yang kemudian akan dieksekusi oleh tim programmer.
Untuk proses ini, akan berfokus pada pembangunan struktur data, arsitektur software, perancangan interface, hingga perancangan fungsi internal dan eksternal dari setiap algoritma prosedural. Tim yang mengerjakan tahap ini, biasanya lebih banyak menggunakan UI/UX Designer, atau orang yang memiliki kemampuan dalam bidang desain grafis atau Web Designer.
3. ImplementationTahapan metode waterfall yang berikutnya adalah implementasi kode program dengan menggunakan berbagai tools dan bahasa pemrograman sesuai dengan kebutuhan tim dan perusahaan. Jadi, pada tahap implementasi ini lebih berfokus pada hal teknis, dimana hasil dari desain perangkat lunak akan diterjemahkan ke dalam bahasa pemrograman melalui tim programmer atau developer.
Di dalam tahap pengembangan, biasanya dibagi lagi menjadi 3 tim yang memiliki tugas yang berbeda. Pertama ada front end (untuk client side), backend (untuk server side), dan full stack (gabungan antara front end dan backend). Selain itu, pada tahap ini juga dilakukan pemeriksaan lebih dalam terkait dengan modul yang sudah dibuat, apakah berjalan dengan semestinya atau tidak.
4. Integration & Testing
Tahap yang keempat, masuk dalam proses integrasi dan pengujian sistem. Pada tahap ini, akan dilakukan penggabungan modul yang sudah dibuat pada tahap sebelumnya. Setelah proses integrasi sistem telah selesai, berikutnya masuk pada pengujian modul.
Yang bertujuan untuk mengetahui apakah perangkat lunak sudah sesuai dengan desain, dan fungsionalitas dari aplikasi apakah berjalan dengan baik atau tidak. Jadi, dengan adanya tahap pengujian, maka dapat mencegah terjadinya kesalahan, bug, atau error pada program sebelum masuk pada tahap produksi. Orang yang bertanggung jawab untuk melakukan testing adalah QA (Quality Assurance) dan QC (Quality Control).
5. Operation & Maintenance
Tahapan metode waterfall yang terakhir adalah pengoperasian dan perbaikan dari aplikasi. Setelah dilakukan pengujian sistem, maka akan masuk pada tahap produk dan pemakaian perangkat lunak oleh pengguna (user). Untuk proses pemeliharaan, memungkinkan pengembang untuk melakukan perbaikan terhadap kesalahan yang ditemukan pada aplikasi setelah digunakan oleh user.
Jadi, pada intinya model waterfall ini dalam proses pemakaiannya mengikuti prinsip dari air terjun. Dimana setiap pekerjaan akan dilakukan secara berurutan mulai dari atas hingga ke bawah. Hal tersebut yang merupakan karakteristik dari SDLC ini.
Kelebihan metode Waterfall
1. Rangkaian Kerja Jelas
2. Berkomitmen Pada Tujuan Akhir
Pada tahap awal klien dan tim analis bertemu untuk mendefinisikan detail kebutuhan dari software yang akan dibuat. Jika tahapan ini selesai, maka klien dan seluruh tim yang terlibat akan mengetahui gambaran atau tujuan akhir dari sistem yang dibuat.
Semua akan berkomitmen pada hasil akhir software. Tidak boleh ada perubahan ditengah proses baik itu oleh pihak developer ataupun klien. Semuanya harus sejalan dengan tujuan yang telah disepakati diawal.
3. Dokumentasi yang Baik
Dokumentasi ini juga berguna ketika misal ada 1 atau beberapa anggota tim mundur dari proyek. Dengan dokumentasi yang baik maka anggota tim baru nantinya dapat lebih mudah beradaptasi dengan sistem dan prosedur yang ada.
Selain itu, setiap divisi tim juga akan lebih mudah menyelesaikan pekerjaan. Misalnya programmer yang bisa bekerja dengan arahan dokumen yang telah dibuat tim analis dan desain.
4. Hemat Waktu dan Biaya
Hal yang biasanya menjadi penyebab molornya waktu penyerahan software adalah kebutuhan klien yang berubah-ubah dan banyaknya campur tangan klien ketika proses pengerjaan.
Dalam metode waterfall, klien tidak bisa leluasa mencampuri proses pembuatan software, terlebih ketika sudah memasuki tahap programming.
Klien harus mendefinisikan secara jelas kebutuhan diawal dan harus berkomitmen dengan hal tersebut. Dengan seperti itu pihak developer dapat membuat estimasi waktu dan juga biaya pengerjaan.
5. Cocok untuk Pembuatan Software Berskala Besar
Metode Waterfall dinilai cocok untuk pengerjaan software yang melibatkan banyak sumber daya manusia dan memiliki prosedur yang kompleks.
Tapi ada juga ahli yang berpendapat bahwa metodologi waterfall lebih baik digunakan pada proyek skala kecil dengan pengerjaan waktu yang singkat.
Kekurangan metode Waterfall
1. Membutuhkan Tim dan Manajemen yang Solid
Masing-masing divisi tim bertanggung jawab untuk melakukan setiap tugasnya dengan baik. Jika satu tim gagal mengerjakan pekerjaan, maka itu akan berdampak pada keseluruhan projek.
Misalnya ketika tim analis kurang detail dalam mendeskripsikan produk, maka itu menjadi malapetaka untuk para desainer dan programmer.
Tugas pertama pimpinan proyek adalah membentuk tim yang memiliki skill mumpuni dalam bidangnya masing-masing dan melakukan pengawasan pada setiap tahapan-tahapannya. Dalam metode waterfall kesalahan kecil bisa menjadi masalah besar.
2. Kurang Flexible Bagi Klien
Semua tim harus bekerja sesuai arahan dan tujuan yang ditetapkan diawal. Metode ini tidak mengakomodir perubahan-perubahan spesifikasi yang terjadi ketika proses telah berjalan.
Dalam sebuah proyek terkadang klien ingin ikut mengeluarkan pendapat, merevisi ataupun mengklarifikasi pendapatnya. Dalam metode ini hal itu tidak dapat dilakukan kecuali di tahapan awal perancangan aplikasi.
3. Waktu Pembuatan Software Lebih Lama
Metode waterfall tidak memungkinkan seluruh tim bekerja secara bersamaan. Tim desain tidak bisa bekerja sebelum tim analis selesai melakukan tugasnya. Begitupun para programmer yang harus menunggu tim analis & desain merampungkan tugasnya.
Dengan seperti ini, pekerjaan akan menjadi lambat dan pembuatan software akan memakan waktu lebih lama dibandingkan metodologi pengembangan perangkat lunak lainnya.
4. Tidak Bisa Melihat Gambaran Sistem
Sistem baru akan terlihat ketika seluruh rangkaian telah dijalankan. Klien bisa melihat aplikasi dalam bentuk real pada akhir tahapan.
5. Kenaikan Biaya dan Tanggal Rilis
Masalah yang terjadi dalam model waterfall adalah jika dalam tahap pengetesan terdapat konflik atau bug yang rumit. Ini bisa memakan waktu lama dan menyebabkan proyek menjadi molor
Belum lagi jika klien tidak puas dengan hasil kerjaan dan meminta revisi ulang sistem. Maka dari itu sedari awal diperlukan tim yang berkualitas dan berpengalaman serta manajemen tim yang baik agar setiap tugas terawasi dan bisa diprediksi setiap celah kesalahannya.
Komentar
Posting Komentar