Apakah ada alternatif utama untuk Waterfall dan Agile? [Tutup]

35

Saya ingin tahu apakah ada yang tahu tentang metodologi yang berbeda secara signifikan (bukan rekombinasi) dan saya akan sangat menghargai siapa pun yang mengedepankan pengalaman dengan alternatif.

Morgan Herlocker
sumber

Jawaban:

47

Wikipedia mencantumkan ini sebagai metodologi / proses pengembangan :

  • Agile - berdasarkan pada pengembangan berulang dan bertahap, di mana persyaratan dan solusi berkembang melalui kolaborasi antara tim lintas fungsi yang mengatur diri sendiri.

  • Cleanroom - fokus dari proses Cleanroom adalah pencegahan cacat, bukan penghapusan cacat.

  • Iteratif - proses pengembangan perangkat lunak siklik yang dikembangkan sebagai tanggapan terhadap kelemahan model air terjun. Dimulai dengan perencanaan awal dan berakhir dengan penyebaran dengan interaksi siklik di antaranya.
    diagram iteratif

  • RAD - menggunakan perencanaan minimal yang mendukung pembuatan prototipe cepat. "Perencanaan" perangkat lunak yang dikembangkan menggunakan RAD dihubungkan dengan penulisan perangkat lunak itu sendiri.

  • RUP - Rational Unified Process (RUP) adalah kerangka proses pengembangan perangkat lunak iteratif yang dapat disesuaikan, dimaksudkan untuk dirancang dengan memilih elemen-elemen proses yang sesuai.

  • Spiral - menggabungkan elemen desain dan prototyping-in-stage, dalam upaya untuk menggabungkan keunggulan konsep top-down dan bottom-up. Model pengembangan ini menggabungkan fitur-fitur model prototyping dan model air terjun.
    diagram model spiral

  • Waterfall - berurutan melalui fase Konsepsi, Inisiasi, Analisis, Desain, Konstruksi, Pengujian dan Pemeliharaan.
    diagram air terjun

  • Lean - terjemahan Lean manufacturing dan prinsip-prinsip dan praktik TI Lean ke domain pengembangan perangkat lunak; segala sesuatu yang tidak menambah nilai bagi pelanggan dianggap sebagai pemborosan.

  • V-Model - Alih-alih bergerak turun secara linear, langkah-langkah proses ditekuk ke atas setelah fase pengkodean, untuk membentuk bentuk V khas. V-Model menunjukkan hubungan antara setiap fase siklus hidup pengembangan dan fase pengujian yang terkait.
    diagram model-v

  • TDD - bergantung pada pengulangan siklus pengembangan yang sangat singkat: pertama pengembang menulis sebuah test case gagal otomatis yang mendefinisikan peningkatan yang diinginkan atau fungsi baru, kemudian menghasilkan kode untuk lulus tes itu dan akhirnya refactor kode baru ke standar yang dapat diterima.

Peter Boughton
sumber
Terima kasih atas jawaban yang jelas dan ringkas. Saya sekolah yang sangat tua, saya belum pernah mendengar banyak istilah yang dilemparkan ke P.SE.
Michael Riley - AKA Gunny
7
Daftar hebat, kecuali untuk TDD. Itu bukan siklus hidup tetapi praktik pengembangan.
Michael
18

Pengodean Koboi

Murni, terstruktur, tidak dikelola, pengembangan bentuk bebas. Ini dapat berguna untuk proyek-proyek hobi kecil yang tidak memiliki tenggat waktu atau bahkan tujuan yang jelas, tetapi kemungkinan tidak akan bekerja dalam pengaturan korporat.

Bruce Alderman
sumber
2
yay! bang-bang!
mlvljr
3
"sepertinya tidak akan bekerja dalam pengaturan perusahaan". Kata Anda! ;)
Bobby Tables
+1 Aaa, keren! Saya melakukannya kadang-kadang, tetapi saya tidak tahu bagaimana memberi nama "proses" ini :)
Zzz
yeeee-haw padnah!
ybakos
Dalam pengaturan perusahaan dewasa formal benar. Namun, dalam bisnis kecil mungkin ada sedikit, "Hanya menyelesaikan-" mentalitas.
JB King
4

Model Spiral

Model spiral adalah proses pengembangan perangkat lunak yang menggabungkan elemen-elemen desain dan pembuatan prototipe-dalam-tahap, dalam upaya untuk menggabungkan keunggulan konsep top-down dan bottom-up. Juga dikenal sebagai model siklus hidup spiral (atau pengembangan spiral), itu adalah metode pengembangan sistem (SDM) yang digunakan dalam teknologi informasi (TI). Model pengembangan ini menggabungkan fitur-fitur model prototyping dan model air terjun. Model spiral dimaksudkan untuk proyek besar, mahal dan rumit.

- Wikipedia teks alternatif

Ryan Hayes
sumber
1

Rencana

Duduklah bersama klien (atau pengguna akhir) dan rancang serangkaian kasus penggunaan.

Desain

Letakkan sistem di atas kertas / papan tulis di atas beberapa bir dan pizza. Terkekeh saat sesuatu terlihat lingga.

Memastikan

Konfirmasikan desain dengan klien (atau pengguna akhir) dan persyaratan beku.

Kode

Cukup jelas.

Josh K.
sumber
"Persyaratan beku" adalah yang terbesar yang lebih mudah dikatakan daripada dilakukan.
Justin Schier
1

Argumen Waterfall ini telah ada untuk sementara dan digunakan oleh para pemimpin pemikiran tangkas sejak awal. Mereka juga menemukan "kenyataan" air terjun sebagai "peringatan merah."

Ketika Anda mulai bekerja pada proyek pengembangan perangkat lunak, Anda akan segera menemukan bahwa metodologi pengembangan yang digunakan akan memiliki peran besar dalam kecepatan dan kualitas kode yang dikembangkan. Karena metodologi Agile digunakan secara luas, penting bagi Anda untuk memahami keunggulan dan kelemahan tangkas sehingga Anda dapat menentukan apakah itu paling cocok untuk hasil proyek Anda.

Pengembangan perangkat lunak gesit adalah kerangka kerja konseptual untuk melakukan proyek rekayasa perangkat lunak. Metode paling gesit berusaha untuk meminimalkan risiko dengan mengembangkan perangkat lunak dalam timebox pendek, yang disebut iterasi, yang biasanya berlangsung satu hingga empat minggu. Setiap iterasi seperti proyek perangkat lunak miniaturnya sendiri, dan mencakup semua tugas yang diperlukan untuk merilis mini-kenaikan fungsi baru: perencanaan, analisis persyaratan, desain, pengkodean, pengujian, dan dokumentasi.

Ini adalah proses yang baik bagi perusahaan karena melibatkan pelanggan dalam proses pengembangan dan membuatnya bertanggung jawab atas pengiriman produk. Di sisi lain pelanggan senang karena mereka sendiri berpartisipasi dalam pengembangan produk.

Kerugian untuk Agile:

  • Agile terlalu programmer-centric sehingga tidak jelas bagaimana menyeimbangkan pekerjaan di suatu organisasi.
  • Jika Anda Tidak Tahu Ke Mana Anda Pergi, Agile Tidak Akan Membawa Anda ke Sana!
  • Pembuatan kerangka kerja tanpa kebutuhan yang jelas.
  • Penggunaan fitur bahasa yang berlebihan (tidak tepat).
  • Tidak ada mentalitas ujian pertama.

Nah untuk metodologi yang menarik yang mungkin berfungsi sebagai alternatif untuk AGILE mungkin paling baik dilihat di bawah 3 tautan ini:

Kanban sebagai Alternatif Implement Agile

Pengembangan perangkat lunak Kanban

Pengembangan perangkat lunak lean di cloud

Tony
sumber
3
Jika Anda Tidak Tahu Ke Mana Anda Pergi, Air Terjun Tidak Akan Membawa Anda ke Sana!
Eric Wilson