Dalam proses pengembangan software, ada beberapa metodologi yang bisa digunakan. dua diantaranya yang cukup popoler dan banyak digunakan adalah waterfall dan agile. Dua metode ini yang paling sering kami gunakan dalam proses pengerjaan project di Inotive Technology.
Bagaimana konsep kerja metode-metode tersebut? Berikut penjelasannya:
Waterfall
Waterfall merupakan suatu metode manajemen proyek yang sudah relatif lama. Waterfall menekankan pada sebuah desain proses yang berurutan yang dalam prosesnya terlihat seperti aliran air terjun dari proses perancangan konsep, analisis proyek, inisialisasi proyek, desain, pembuatan sistem, testing, implementasi dan perawatan.
Beberapa ciri dari metode ini:
- Proyek dibagi-bagi dalam beberapa fase yang saling berurutan.
- Penekanan pada perencanaan, jadwal, deadline dan implementasi keseluruhan sistem.
- Kontrol yang ketat dalam siklus hidup proyek dengan menggunakan bantuan dokumentasi tertulis.
Kelebihan metode ini:
- Relatif mudah dimengerti dan mudah digunakan.
- Requirement dari sistem bersifat stabil.
- Baik dalam manajemen kontrol.
- Bekerja dengan baik ketika kualitas lebih diutamakan dibandingkan dengan biaya dan jadwal/deadline.
Kekurangan dari metode ini:
- Semua kebutuhan sistem harus diketahui di awal
- Integrasi sekaligus di akhir sistem.
- Testing hanya dilakukan pada setiap akhir fase, bahkan tidak jarang testing hanya dilakukan di akhir-akhir proyek.
- Membutuhkan waktu yang cukup lama meski kadang proyeknya tidak terlalu besar.
- Perubahan requirement dapat merubah keseluruhan proses yang telah dilaksanakan.
Agile
Agile software development atau sering hanya disebut “agile” adalah kumpulan dari metode-metode pengembangan perangkat lunak yang berbasis pada Iterative dan Incremental Model. Agile memungkinkan mengembangkan perangkat lunak yang memiliki reequirement yang mudah berubah dengan cepat.
Beberapa ciri dari metode ini:
- Suatu proyek lebih cepat rilis.
- Perubahan requirement dapat sering dilakukan.
- Interaksi antara client dengan developer dalam menentukan langkah proyek berikutnya
- Proyek dibangun antar tim.
- Tim mengorganisasikan dirinya sendiri.
- Tim bekerja dalam kecepatan yang bisa dipertahankan.
- Tim dapat mereview tingkat keberhasilan dan kegagalan mereka.
- Desain dan implementasi disusun sesederhana mungkin.
Kelebihan metode ini:
- Proses Iterative dan Incremental.
- Requirement dapat berubah sewaktu-waktu.
- Pelacakan requirement dengan melihat Backlog produk.
- Keterlibatan user secara aktif.
- Rilis yang lebih cepat dan berkala, fungsi dirilis setiap akhir iterasi.
- Testing dilakukan setiap saat.
Kekurangan dari metode ini:
- Interaksi dengan client yang kadang terlalu berlebihan.
- Agile sulit diimplementasikan dalam proyek yang berskala besar.
- Waktu perencanaan proyek yang singkat.
- Membutuhkan manajemen tim yang terlatih.
Perbedaan Agile dan Waterfall Testing
1.Waktu dan durasi pelaksanaannya
Perbedaan pertama adalah dari waktu dan durasi pelaksanaannya. Karena waterfall testing merupakan bagian dari software development life cycle (SLDC) paling awal, model ini bersifat linear. Pelaksanaannya ‘terjadwalkan’ dan berjalan lurus dari satu tahap ke yang lainnya. Di sisi lain, agile testing bersifat berkelanjutan (tidak selalu linear) dan dijalankan pada saat proses software development.
2. Pendekatan kedua testing
Waterfall testing menggunakan pendekatan sekuensial. Hal ini kurang lebih sama dengan linear, tetapi dalam konteks ketersambungan antara satu dengan yang lain. Dalam proses waterfall testing, terdapat sebuah logis di mana satu hal akan mengakibatkan hal lain, dan prosesnya akan berlanjut terus seperti itu.
3. Fleksibilitas
Perbedaan utama lainnya antara agile dan waterfall testing adalah dari segi fleksibilitas. Agile testing dikenal dengan fleksibilitasnya, sedangkan waterfall lebih terstruktur. Hal ini bisa dilihat dari perubahan dalam proses pengembangannya. Agile testing memungkinkan adanya perubahan pada project development requirement, sedangkan requirement pada waterfall tidak bisa diubah ketika proses pengembangan sudah dimulai.
4. Pelaksanaan pengujian
Agile testing dijalankan bersamaan dengan proses software development. Di sisi lain, waterfall hanya bisa dijalankan setelah fase build atau pembangunan sudah selesai dijalankan.
Mana yang lebih baik?
Mana yang lebih baik diantara kedua metode tersebut? Ada banyak hal yang menjadi faktor penentu. Namun yang perlu kita ketahui adalah setiap metode baik waterfall atau agile bertujuan untuk memfasilitasi dan mengelola proses kerja tim untuk menyelesaikan suatu proyek.
Untuk mengetahui mana metode yang lebih baik dibandingkan metode lainnya perlu kita analisa dulu metode tersebut terkait beberapa aspek berikut:
Tahap Analisis
Pada metode waterfall, tahap analisis dilakukan setelah inisialisasi proyek. Pada tahap ini semua kebutuhan sistem dikumpulkan dari client atau pemilik proyek. Sistem analis akan menganalisa proyek sebelum dilanjutkan ke fase berikutnya dan hasilnya berupa kebutuhan sistem yang biasanya bersifat statis.
Pada metode Agile, tahap analisis akan dilakukan di awal-awal project. Pada Agile namun masih ada kemungkinan bahwa hasil dari tahap analisis ini mengalami perubahan tergantung dari kebutuhan sistem. Karena susah untuk dapat mengumpulkan semua kebutuhan sistem pada awal proyek maka tidak jarang analisis juga dilakukan pada setiap iterasi, namun analisis yang dilakukan disini lebih spesifik ke fungsi tertentu saja.
Waktu
Waktu yang dimaksud adalah lama pelaksanaan proyek. Metode waterfall memakan waktu yang relatif lebih banyak dibandingkan dengan metode agile namun tetapi kualitas yang dihasilkan sebanding dengan waktu pengerjaannya.
Sedangkan pada metode agile dengan prinsipnya “rilis berkala” kadang membuat suatu proyek terkesan terburu-buru dan kualitas secara keseluruhan kurang terlalu diperhatikan.
Biaya
Waktu pengerjaan suatu proyek akan berpengaruh terhadap biaya yang harus dikeluarkan untuk sebuah proyek. Semakin lama waktu pengerjaan suatu proyek maka biaya yang dibutuhkan juga akan semakin besar. Tak jarang suatu proyek dihentikan karena kekurangan biaya. Atau bisa juga biaya yang diberikan oleh client tidak sebanding dengan tingkat kesulitan proyek.
Jadi, mana yang lebih baik?
Semua metode yang ada jika digunakan pada proyek yang tepat pasti akan menghasilkan sebuah produk yang berkualitas. Sebaliknya jika digunakan pada proyek yang salah dan karena kesalahan analisa proyek, maka akan menghabiskan waktu dan biaya yang lebih dari yang sudah direncanakan. Jadi, mana yang lebih baik? Tergantung dari proyek yang ditangani dan juga bagaimana seorang proyek manager menerapkan metodenya dengan baik.