Dalam pengalaman saya, sepertinya model Waterfall telah terbukti terlalu tidak fleksibel dan tidak responsif terhadap perubahan persyaratan untuk dianggap sebagai metode yang layak di dunia modern pengembangan perangkat lunak. Pertumbuhan dan rekam jejak yang terbukti lebih gesit, metode berulang tampaknya menunjukkan bahwa tidak ada alasan mengapa seseorang harus mengikuti proses blok kaku yang mengasumsikan sedikit atau tidak ada perubahan dari awal proyek ke pengiriman produk.
Apakah metodologi pengembangan air terjun masih layak untuk memberikan sistem perangkat lunak, sehubungan dengan waktu, biaya, dan kualitas?
development-methodologies
waterfall
CFL_Jeff
sumber
sumber
Jawaban:
Model air terjun yang Anda maksud tidak pernah dimaksudkan sebagai model proses yang digunakan pada proyek nyata. Alih-alih, itu adalah stroberi. Ini mengidentifikasi fase kunci dan kegiatan yang ada dalam proyek perangkat lunak dan aliran paling mendasar di antara mereka. Penyederhanaan yang berlebihan tentang cara mengembangkan perangkat lunak adalah cacat, dan bahkan disajikan demikian.
Dari artikel Wikipedia:
Makalah yang dibahas berjudul Mengelola Pengembangan Sistem Perangkat Lunak Besar . Di dalamnya, Royce menghadirkan model itu di halaman kedua. Namun, teks tepat di bawah representasi bergambar melanjutkan dengan membaca:
Dia mengikuti ini dengan diskusi tentang masalah dengan pengujian setelah "penyelesaian" dari fase pengembangan, dan bagaimana kegagalan di sini dapat menyebabkan redesain utama dan perubahan kode, dan bagaimana ini dapat menyebabkan overruns besar dalam biaya dan jadwal. Di seluruh makalah, ia menyaring model asli menjadi model yang memang layak untuk sebuah proyek. Pada akhirnya, ia berakhir dengan model yang memperkenalkan prototipe, interaksi pelanggan, dan penyempurnaan artefak - ide yang akhirnya akan menjadi penting bagi gerakan gesit yang dimulai pada akhir 1990-an dan awal 2000-an.
Untuk menjawab pertanyaan Anda: Air Terjun yang Anda tanyakan bukanlah, dan tidak pernah, metode yang layak untuk mengirimkan proyek perangkat lunak dengan kualitas yang masuk akal dalam waktu dan anggaran. Namun, ada metodologi lain yang digerakkan oleh rencana yang bertolak belakang dengan kelincahan yang dapat dan bekerja pada proyek.
sumber
other plan-driven methodologies that lie opposite of agile that can and do work on project
?Orang tidak menggunakan model air terjun buku teks dan mungkin tidak pernah melakukannya.
Ini adalah konstruksi teoretis ideal yang bertujuan agar Anda memikirkan langkah-langkah dalam pengembangan sistem. Poin utamanya adalah Anda ingin perubahan besar terjadi sedini mungkin, karena Anda tidak akan pernah punya waktu atau uang untuk membuat perubahan besar begitu ada banyak kode yang dibuat.
Terlepas dari kenyataan bahwa itu lebih merupakan cara berpikir daripada proses, masih sangat banyak cara - mungkin sebagian besar organisasi pergi tentang membangun perangkat lunak (atau rumah, atau kapal selam, atau apa pun ...).
Di dunia nyata, Anda tidak memiliki cut-off yang benar-benar ketat antara fase, dan Anda kadang-kadang kembali ke fase sebelumnya untuk sub-proyek kecil. Apa yang metodologi katakan kepada Anda bukanlah bahwa "hal-hal ini tidak diperbolehkan". Apa yang dikatakannya adalah "hal-hal ini menghabiskan uang dan / atau waktu" - jadi cobalah untuk menghindarinya di masa depan.
Semuanya baik dan bagus untuk Agile Snobs (TM) untuk melihat ke bawah ke arah pengembang "kuno" dan metodologi air terjun mereka yang aneh dan tidak bisa dijalankan, tetapi faktanya adalah bahwa Agile juga bukan obat mujarab. Beberapa proyek tidak dapat dibangun menggunakan Agile dan banyak tim yang berpikir bahwa mereka Agile sebenarnya hanya ceroboh dan tidak terorganisir.
Metodologi bukan itu intinya. Intinya adalah untuk berpikir tentang apa yang Anda lakukan dan mengapa Anda melakukannya dengan cara itu - dan untuk mendapatkan nilai maksimal kepada pelanggan dalam waktu singkat yang masuk akal.
sumber
Proses air terjun mitos yang paling sering dibandingkan dengan gesit tidak pernah ada dan karena itu tidak dapat dianggap mati. Proses air terjun nyata masih hidup dan sehat, dan unggul dalam memberikan tepat waktu dengan perangkat lunak anggaran yang memenuhi harapan pengguna.
sumber
Mungkin cara yang lebih baik untuk menanyakan apa yang Anda maksudkan adalah, "kapan kurang iteratif dan lebih formal lebih baik?"
Ada situasi di mana hal ini terjadi:
Ketika persyaratan tidak akan berubah.
Ketika memenuhi persyaratan baru kurang penting daripada memukul 100% dari yang asli.
Ketika semua komponen teknologi sudah matang dan dipahami dengan baik.
Dalam arti tertentu Anda dapat mengambil kebalikan dari apa yang mungkin mendorong Anda untuk menjadi gesit.
Sangat sedikit teknik yang berlaku di mana-mana. Sangat sedikit yang tidak digunakan.
sumber
Ya itu sangat hidup, meskipun hari ini " model V " yang lebih umum digunakan.
Dalam kedua kasus tersebut, masalah yang dimiliki Agile adalah bahwa solusinya hampir tidak pernah berakhir, pelanggan dapat terus meminta perubahan dan pengembangan akan terus menyelesaikannya secara iteratif. Untuk proyek yang didasarkan pada biaya waktu dan bahan, ini bekerja dengan sangat baik. Untuk proyek yang memiliki biaya tetap, tidak.
Untuk proyek-proyek dengan biaya tetap ini, pelanggan hampir selalu mengharapkan tonggak yang telah ditentukan untuk menunjukkan kemajuan, namun, ini lebih merupakan variasi tertulis formal daripada kode kerja. Untuk pelanggan seperti ini, spesifikasi tertulis menjadi proyek, di mana pengembangan perangkat lunak adalah pertimbangan sekunder (karena mereka menganggap, jika Anda memiliki proyek yang terdefinisi dengan baik, perangkat lunak harus mudah dikembangkan). Perusahaan-perusahaan ini juga merupakan perusahaan yang banyak menggunakan sumber daya pengembangan murah dan outsourcing.
Jadi, jika Anda memiliki pot uang atau waktu yang tetap, jangan berharap persyaratan untuk berubah atau tidak diizinkan untuk mengubah persyaratan apa pun, dan diharapkan untuk menyediakan serangkaian dokumentasi tertulis yang kuat, maka model air terjun adalah satu-satunya yang masuk akal.
Agile dapat diperkenalkan di tengah-tengah proyek ini untuk melakukan pengembangan, tetapi Anda masih memiliki fase ramp-up di mana spesifikasi dibuat dari persyaratan, dan fase ramp down di mana perangkat lunak diinstal dan diuji di tempat. Agile tidak menanggapi dengan baik kasus-kasus ini.
sumber
Untuk siapa? Sebagian besar manajer yang pernah saya tangani masih menggunakan Proses Pengembangan Perangkat Lunak Waterfall untuk penjadwalan, dan tingkat atas sepertinya menyukainya karena mudah penjadwalan.
Secara praktis, sangat sedikit pengembang yang saya tahu percaya ini berfungsi atau bahkan valid.
sumber