it-swarm-id.com

Apakah ada alternatif utama untuk Waterfall dan Agile?

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.

35
Morgan Herlocker

Wikipedia mencantumkan ini sebagai metodologi/proses pengembangan :

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

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

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

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

  • RUP - Proses Bersatu Rasional (RUP) adalah pengembangan perangkat lunak berulang yang dapat disesuaikan kerangka kerja proses, dimaksudkan untuk dirancang dengan memilih elemen-elemen proses yang sesuai.

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

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

  • Lean - terjemahan dari Lean manufacturing dan prinsip-prinsip dan praktik IT 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 yang khas. V-Model menunjukkan hubungan antara setiap fase siklus hidup pengembangan dan fase pengujian yang terkait.
    v-model diagram

  • TDD - bergantung pada pengulangan siklus pengembangan yang sangat singkat: pertama pengembang menulis kasus pengujian otomatis gagal 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.

49
Peter Boughton

Cowboy Coding

Pengembangan tanpa bentuk, tanpa pengelolaan, bentuk murni. 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.

20
Bruce Alderman

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), ini 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 ditujukan untuk proyek-proyek besar, mahal dan rumit.

- Wikipedia alt text

4
Ryan Hayes

Rencana

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

Rancangan

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

Konfirmasi

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

Kode

Cukup jelas.

1
Josh K

Argumen Waterfall ini telah ada untuk sementara dan digunakan oleh para pemimpin pemikiran tangkas sejak awal. Mereka juga menemukan "realitas" 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 begitu banyak digunakan, 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-penambahan 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 menemukan diri mereka berpartisipasi dalam pengembangan produk.

Permintaan 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 Implementasi Agile Alternatif

Pengembangan perangkat lunak Kanban

Pengembangan perangkat lunak lean di cloud

1
Tony