Pada sebuah perdebatan tentang apa Scrum adalah tentang, saya menemukan bahwa mungkin saya benar-benar salah memahami hal lincah. Tampak bagi saya bahwa Scrum (yang tentu saja dianggap sebagai proses Agile) adalah semua tentang mengelola fitur dan sprint dan peran dan hal-hal yang tidak ada hubungannya dengan TDD, pemrograman pasangan, CI, refactoring dan teknik dan praktik sentris pengembang lainnya yang saya kira ( sampai sekarang) adalah jantung lincah. Sekarang saya menghadapi kesulitan!
1) Apakah Scrum agnostik terhadap apakah pengembang melakukan praktik tangkas?
2) Bisakah Anda menerapkan Scrum dalam tim yang tidak memanfaatkan tes otomatis? tidak melakukan refactoring atau tidak mematuhi praktik pemrograman tangkas?
Scrum adalah seperangkat pedoman yang mendorong tim untuk gesit.
Sangat sulit, karena pada akhir setiap sprint Anda harus memiliki produk yang berfungsi. Jika Anda harus melakukan tes regresi manual lengkap untuk membuktikan bahwa itu berhasil, ini kemungkinan tidak dapat diraih.
sumber
Alistair Cockburn (salah satu pencetus gerakan Agile) mengatakan ini tentang Crystal Clear (satu sisi metodologi Agile-nya):
Itu adalah definisi lincah, diakui untuk staf pengembangan berpengalaman yang tahu apa yang mereka lakukan dan dapat dipercaya untuk melanjutkan dan melakukannya. Jadi apakah itu berarti Anda harus menggunakan CI dan TDD dan Pair Programming dan semua hal modis lainnya? Sederhananya ... Tidak.
Agile bukan tentang mengikuti serangkaian proses, ini tentang menjadi efektif. Apa artinya itu bagi Anda tergantung pada tim Anda dan cara kerjanya, apa yang menurut Anda berguna bagi Anda. Jika TDD tidak membantu Anda menghasilkan kode yang berfungsi, maka berhentilah mendengarkan lampu yang lebih rendah yang meneriakkannya di web dan jangan menggunakannya! Jika Pair Programming benar-benar membantu tim Anda untuk fokus dan menyelesaikan sesuatu, maka abaikan siapa saja yang mengatakan itu buang-buang waktu dan atur tim Anda seperti balapan 3-kaki di hari olahraga sekolah.
Saya lincah bertahun-tahun yang lalu, banyak yang kami bahkan tidak menyadari bahwa kami lincah - kami mengirimkan iterasi produk setiap bulan, dan bersepeda memperbaiki bug dan menambahkan fitur baru secara teratur. Kami benar-benar nol tes unit karena hal-hal seperti itu belum ditemukan, dan buku refactoring belum ditulis. Jadi ya, Anda benar-benar dapat melakukan lincah tanpa apa pun yang disebut praktik lincah.
Alistair juga mengatakan ini tentang Kent Beck:
Akhirnya, tidak peduli apakah Anda sedang melakukan XP atau tidak ... kata-kata bijak yang seharusnya mengingatkan Anda untuk tidak jatuh ke dalam perangkap ini .
sumber
Scrum adalah rasa tangkas yang mengikuti pola tertentu untuk memenuhi tujuan metodologi pengembangan tangkas. Anda tidak bisa mengikuti Scrum dan tidak gesit, tetapi Anda bisa gesit dan tidak mengikuti Scrum.
Scrum tidak ada hubungannya dengan penggunaan tes otomatis, gesit cenderung mendukung mereka tetapi tidak berarti diperlukan. Refactoring harus menjadi tujuan tangkas dan Scrum, tetapi sering diabaikan. tidak memiliki niat untuk refactor tidak benar-benar gesit.
sumber
Agile adalah seperangkat praktik pengembangan perangkat lunak untuk memenuhi fleksibilitas dan fase cepat mengubah persyaratan pasar - atau disebut pengiriman dipercepat . Jadi, dalam gambaran besar, ini adalah tentang pendekatan yang fleksibel untuk memenuhi persyaratan kompleks yang berubah dari klien dengan membagi pekerjaan dalam jumlah kecil dan memberikan fungsionalitas dalam iterasi cepat 2-4 minggu.
Namun untuk memenuhi fleksibilitas ini, tim pengembangan perlu mempraktikkan praktik pemrograman Agile .
Deskripsi dari Wiki terkait pengembangan perangkat lunak Agile :
sumber
Infact, Anda dapat menggunakan scrum dalam proyek yang tidak ada hubungannya dengan pengembangan perangkat lunak apa pun. Ini adalah metode manajemen proyek / manajemen tim.
sumber
1) TIDAK !!!! Scrum Agile, artinya praktik dev agile (TDD, pemrograman pasangan, CI, refactoring, dll.) Sangat penting untuk semua aspek proyek Scrum. Akan jauh lebih sulit untuk mengetahui laju lari tim Anda, memperkirakan pekerjaan, mengatur ukuran sprint yang sesuai, dll. Jika Anda tidak menggunakan praktik ini.
2) Ya, Anda dapat menerapkan Scrum di tim yang tidak mematuhi praktik lincah, tapi saya merasa itu benar-benar membatasi potensi tim. Sebagian besar mengapa Scrum / Agile begitu sukses adalah kinerja dan kualitas yang Anda dapatkan dari praktik Agile dev yang merupakan inti untuk menghadirkan fitur lengkap dari depan ke belakang setiap sprint.
Jika orang lain dalam grup Anda mencoba meyakinkan Anda bahwa praktik Agile dev adalah buang-buang waktu, saya pikir Anda harus meluangkan waktu untuk menekankan mengapa praktik ini selalu ditekankan dengan Scrum dan juga Agile secara keseluruhan. Mereka benar-benar membuat perbedaan.
sumber