Apakah ada studi tentang Efisiensi / Efektivitas Agile vs Waterfall [ditutup]

22

Dalam pertemuan beberapa hari yang lalu, dibuat klaim bahwa gesit hanya 60% lebih efisien dalam waktu pengembangan jika dibandingkan dengan air terjun. Saya tidak ingin memvalidasi atau membantah klaim ini. Saya menarik untuk mencari tahu apakah ada studi yang membandingkan 2 metodologi.

Apakah ada studi di luar sana yang membandingkan keduanya?

SoylentGray
sumber
4
Agile bukan berarti memberikan perangkat lunak yang lebih baik. Perangkat lunak berkualitas dapat dikirimkan terlepas dari metodologi. Agile biasanya memberikan perangkat lunak penambah nilai berkualitas tinggi dalam waktu yang lebih singkat, seraya menanggapi perubahan kebutuhan pelanggan.
Thomas Owens
6
Mintalah sumber klaim.
Martin York
Nah jika orang asli memiliki sumber maka itu mungkin termasuk tautan ke studi lain.
Martin York
4
@Chad Mengapa itu bukan tempatmu? Siapa yang mengatakan ini? Jika itu adalah vendor luar, peluang yang bagus untuk memahami kemampuan manajemen proyek mereka sebelum Anda bekerja dengan mereka.
Thomas Owens
1
@ Chad: Mengutip Douglas Adams .... I refuse to prove that Agile is more efficient,Tuhan,for proof denies faith, and without faith Agile is nothing.
mattnz

Jawaban:

12

Buku "Making Software: What Really Work dan Why we Believe It" memiliki beberapa bab tentang metode Agile termasuk XP, Scrum, Pengembangan Perangkat Lunak Dinamis, dan Lean, dengan dukungan ilmiah yang baik. Ini berkualitas tinggi, seperti yang Anda harapkan dari O'Reilly. Salah satu editor adalah Greg Wilson yang sangat baik , seorang penulis ilmu komputer, editor dan presenter yang tepercaya.

Buku itu sendiri merangkum beberapa penelitian, termasuk banyak penelitian yang gesit. Satu bagian merangkum penelitian termasuk "Apakah Dua Kepala Lebih Baik Dari Satu? Tentang Efektivitas Pemrograman Pasangan" oleh Dybå, T .; Arisholm, E .; Sjøberg, DIK; Hannay, JE; Shull, F .; dan " Studi Empiris pengembangan perangkat lunak gesit: Tinjauan sistematis " oleh Tore Dybå dan Torgeir Dingsøyr.

Pengertian umumnya adalah bahwa sebagian besar praktik gesit bermanfaat, tetapi efek pemrograman pasangan dan TDD dan penyewa gesit lainnya tidak sekuat yang diharapkan. Bahkan ada catatan kaki yang mengganggu bahwa TDD mungkin agak membuat ketagihan *.

Buku ini adalah cara yang bagus untuk mendapatkan akses ke banyak penelitian yang telah dilakukan, semuanya dalam satu kesatuan yang kohesif. Ada beberapa blog dan situs lain di web yang mengulas buku itu.


* Ini belum tentu pendapat saya!

Kyle Hodgson
sumber
1
Apakah ada peluang untuk menambahkan beberapa kutipan dan referensi? Mungkin membantu mengetahui apakah itu layak untuk salah satu slot rak buku safari saya. * 8 ')
Mark Booth
1
Versi Nook juga :) Terima kasih akan memeriksanya malam ini.
SoylentGray
Ditambahkan. Beri tahu saya jika ini yang ada dalam pikiran Anda. Jika seseorang ingin mengedit posting ini dan menyalin teks buku, itu akan disambut juga.
Kyle Hodgson
Terima kasih Kyle, tapi saya pikir ringkasan akan lebih baik daripada apa yang tampak seperti ambil layar. Agak sulit untuk mendapatkan apa yang mereka bicarakan tanpa lebih banyak konteks, misalnya, apa yang mereka maksud dengan usaha ? Apakah kita berbicara tentang jam pengembang per proyek?
Mark Booth
1
Buku itu menjawab pertanyaan seperti yang seharusnya saya tanyakan meskipun saya pikir itu akan terlalu luas. Terima kasih atas tautannya.
SoylentGray
10

Meskipun saya tidak suka judulnya, saya percaya bahwa Agility dan Disiplin Penyeimbang: Panduan bagi yang Bingung mungkin mengandung beberapa informasi yang relevan bagi Anda. Buku ini oleh dua proses rekayasa perangkat lunak dan pakar manajemen proyek perangkat lunak - Barry Boehm dan Richard Turner. Buku ini membahas berbagai aspek metodologi yang lincah dan digerakkan rencana, membandingkan dan membedakannya, dan juga membahas memadukannya untuk mencapai situasi "terbaik dari kedua dunia".

Lampiran E dari Agility dan Disiplin Balancing berisi banyak informasi empiris mengenai biaya dan manfaat dari berbagai metode tangkas dan rencana-didorong. Namun, tampaknya tidak ada data mengenai efektivitas waktu. Tetapi ketika melihat sekilas data, tampaknya (seperti yang saya duga) bahwa ini bukan pilihan salah satu atau beberapa - beberapa proyek mengalami penurunan upaya, jadwal lebih cepat, dan cacat yang lebih rendah ketika menerapkan metode gesit. Namun, proyek lain yang digunakan. Bagian ini membahas sejumlah proyek berbeda dalam industri yang berbeda, jenis proses yang mereka gunakan, dan apa yang mereka alami selama proyek berlangsung.

Ada banyak studi kasus yang dikutip dalam Lampiran E yang menghasilkan data ini. Ada terlalu banyak bagi saya untuk memulai penamaan secara acak, karena banyak yang berfokus pada industri tertentu atau bahkan di dalam organisasi tertentu. Jika Anda akan melihat kasus-kasus, saya sarankan mencari yang serupa dengan tim, proyek, organisasi, dan industri Anda untuk menarik kesimpulan yang cukup masuk akal.

Dalam Rapid Development: Taming Wild Software Schedule , Steve McConnell mengidentifikasi sejumlah faktor yang perlu dipertimbangkan ketika memilih metodologi siklus hidup: tingkat pemahaman tentang persyaratan, tingkat pemahaman arsitektur, keandalan yang diinginkan, manajemen risiko, kendala jadwal, jumlah proses overhead, "koreksi kursus" proyek-tengah, kemampuan untuk memberikan visibilitas kepada pelanggan, kemampuan untuk memberikan visibilitas kepada manajemen, dan kecanggihan tim pengembangan dan manajemen. Ada yang lain, juga, seperti budaya organisasi, jadi mungkin tidak ada daftar lengkap di mana saja.

Bahkan mengingat proyek yang sama persis, ada juga faktor tim. Jika Anda mengambil tim yang secara konsisten mengirimkan perangkat lunak menggunakan metodologi spiral yang digerakkan rencana dan melemparkannya ke Scrum, mereka akan mengalami penurunan produktivitas, peningkatan meronta-ronta, dan harus mengatasi model proses baru sebelum mereka dapat datang sekitar untuk menjadi sukses. Meskipun metodologi lain mungkin lebih cocok, selalu ada kebutuhan bisnis untuk benar-benar memberikan perangkat lunak. Itulah sebabnya upaya peningkatan proses sering kali merupakan upaya jangka panjang dan bukan semalam - perubahan besar mengejutkan bagi sebuah tim dan (bahkan jika metodologinya mungkin lebih cocok di atas kertas) dapat menyebabkan penurunan produktivitas.

Ada jauh lebih dari sekadar efisiensi atau efektivitas proses, dan Anda tidak bisa hanya melihat potret dari tim yang sama yang bekerja di lingkungan yang digerakkan oleh rencana dan lingkungan yang gesit. Anda perlu mempertimbangkan konteks industri dan organisasi, atribut proyek, tim, pelanggan, dan sebagainya saat membuat keputusan.


Berdasarkan apa yang saya baca, saya harus tidak setuju dengan penilaian rekan kerja Anda. Saya yakin Anda dapat menemukan beberapa studi kasus di suatu tempat di mana proyek gesit 60% kurang efisien sehubungan dengan beberapa metrik kinerja daripada proyek yang digerakkan oleh rencana serupa. Namun, ada juga penelitian yang menunjukkan bahwa lincah menghasilkan upaya 80% lebih sedikit, waktu 50% lebih sedikit, dan kepuasan pelanggan yang tinggi dengan produk.

Thomas Owens
sumber
6

Saya tidak memiliki studi tetapi saya ingin mengomunikasikan pengalaman saya.

Keefektifan metodologi yang disebutkan di atas sangat tergantung pada analis.

Ketika Anda memiliki pemilik produk yang hebat, maka SCRUM misalnya tentu saja lebih cepat daripada pendekatan air terjun dengan spec yang buruk.

Agile dengan pemilik produk yang buruk tentu lebih lambat dari air terjun dengan spesifikasi yang bagus.

Namun, lebih sering daripada tidak, kita tidak tahu persyaratan yang tepat sejak awal dan metodologi tangkas memiliki siklus umpan balik yang lebih cepat. Ini berarti, bahwa dalam lincah medan yang tidak pasti adalah metode yang lebih baik untuk memberikan produk berkualitas tinggi dengan biaya yang wajar. Ada banyak keuntungan lain, misalnya, proyek gesit lebih mudah dibatalkan ketika tidak berhasil dan dengan demikian dapat mengurangi kerugian seminimal mungkin.

Orang bisa mengatakan bahwa metodologi lincah mengurangi risiko, sementara air terjun, meskipun kadang-kadang lebih cepat, bisa menjadi pertaruhan moneter.

Elang
sumber
4

gesit hanya 60% efisien dalam waktu pengembangan

Benar.

Tapi, itu pengukuran yang lemah.

Metode tangkas biasanya memberikan nilai nyata lebih cepat.

Air terjun hanya menempel pada jadwal terlepas dari apa yang disampaikan dan sering tidak memberikan nilai apa pun sampai rentang waktu yang sangat besar telah berlalu.

Lebih lanjut.

Anda dapat mengukur "waktu pengembangan" terpisah dari "waktu pengembangan dan pengujian".

Agile biasanya termasuk pengujian. Jadi sepertinya lebih lambat.

Pengembangan air terjun dapat dipisahkan dari pengujian. Jadi kode "siap untuk diuji" lebih cepat. Tapi tidak "selesai" sampai nanti.

Begitu. Mereka sepenuhnya benar. Untuk apa yang mereka ukur.

S.Lott
sumber
8
Saya tidak tahu apakah itu selalu benar - itu tergantung pada bagaimana (pada tingkat apa) Anda mengukur efisiensi. Jika saya terjun melalui proyek yang membutuhkan waktu 2 tahun, saya hanya menghabiskan dua tahun untuk mengembangkan semuanya. Tetapi jika saya menggunakan pendekatan iteratif / inkremental, saya mungkin belajar bahwa hanya 40% dari kebutuhan saya perlu diimplementasikan dan proyek berhasil disimpulkan setelah menerapkan 40% dari jaminan produk dalam 15 bulan. Itu 9 bulan waktu pengembangan pada proyek yang berbeda. Bagi saya, itu peningkatan efisiensi - saya tidak hanya memenuhi semua kebutuhan bisnis satu pelanggan, tetapi saya sudah mendukung yang kedua.
Thomas Owens
3
Kasus lain "Anda mendapatkan apa yang Anda ukur". Ukur hal yang salah dan itu tidak membantu.
Martin York
3
Dalam pengalaman saya metode gesit pasti lebih lambat ketika Anda memiliki spesifikasi yang sangat bagus. Tetapi ketika spec Anda menyebalkan (yang sering terjadi), maka metodologi tangkas menyelamatkan proyek. Agile / SCRUM sucks ketika pemilik produk Anda sucks. Jadi hampir sama. Jika Anda memiliki seseorang yang dapat membayangkan produk yang sangat bagus, kedua pendekatan tersebut mungkin sama cepatnya. Ini kurang tergantung pada metodologi daripada pada analis.
Falcon
3
Menegaskan kembali pernyataan asli tidak benar-benar menjawab pertanyaan. Apakah Anda punya bukti, selain anekdotal, bahwa pernyataan itu benar?
Mark Booth
1
Anda mendapatkan apa yang Anda ukur, itulah risiko yang Anda ambil.
Scott