Apakah lincah tentang pengembangan atau manajemen?

9

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?

Ashkan Kh. Nazary
sumber

Jawaban:

19

Adalah kesalahan umum untuk berpikir bahwa Scrum sama dengan Agile.

Being Agile mengikuti empat prinsip dari Agile Manifesto . Scrum adalah proses manajemen proyek yang konsisten dengan prinsip-prinsip itu tetapi tidak dengan sendirinya menjadi Agile. XP (TDD, pair programming) adalah proses pengembangan, juga konsisten dengan prinsip-prinsip tersebut, dan konsisten dengan Scrum, tetapi tidak sedang Agile. Integrasi berkelanjutan, Pengiriman Berkelanjutan, DevOps, semua konsisten dengan prinsip Agile.

Ikuti prinsip-prinsip, pertama dan terutama. Semua frasa buzz ini hanya metodologi yang orang temukan berhasil membantu mereka untuk mengikuti prinsip-prinsip. Tetapi bagian utama dari "Menjadi Agile" adalah dapat menyesuaikan proses Anda sesuka hati di mana mereka tidak mengikuti prinsip-prinsip Agile.

pdr
sumber
3
agilemanifesto.org/principles.html menguraikan manifesto.
1
@ ashy_32bit: Bukan pertanyaan yang bisa dijawab siapa pun tanpa mengetahui tim dan proyeknya. Tidak setiap tim atau proyek akan mendapat manfaat dari Agility. Namun, saya telah bekerja pada tim yang melakukan Scrum dan CI dan tidak ada yang lain (dari kotak trik Agile) dan itu bekerja lebih baik dalam hal itu daripada melakukan kedua hal ini. Tapi kami berusaha meningkatkan Agility kami dari waktu ke waktu.
pdr
1
+1 Terima kasih pdr, membuat saya frustrasi tanpa akhir bahwa semua orang mengatakan gesit dan berarti scrum, yang akhirnya mengaburkan kebaikan dari prinsip-prinsip tangkas yang sebenarnya karena semua orang berpikir gesit berarti standup dan sprint harian dan tidak pernah belajar tentang manifesto.
Jimmy Hoffa
1
@ ashy_32bit Saya akan mengatakan master scrum akan membantu tim menjadi lebih ketat dan afektif dalam mengikuti proses yang baik, tetapi pelatih XP veteran akan membantu tim menjadi lebih ketat dan afektif dalam menulis kode yang baik. Berdasarkan uraian tim Anda, saya menduga mereka dapat menggunakan bantuan menulis kode yang lebih baik jika mereka belum pernah menulis tes sebelumnya. Mereka mungkin tidak menulis kode yang sangat longgar atau memperhatikan prinsip-prinsip desain dll dalam kasus itu. Memang, tim hipotetis Anda juga jelas buruk dalam prosesnya.
Jimmy Hoffa
1
Apakah saya satu-satunya yang tidak berpikir "gesit" harus memiliki huruf kapital? Saya tidak hanya menjadi ahli tata bahasa - ini penting. Memahami ketangkasan sebagai kualitas: jika tim Anda gesit, fleksibel, mudah beradaptasi, metodis. Saya selalu menemukan kebingungan dimulai ketika mereka berbicara tentang "Agile" seolah-olah itu adalah nama dari pola atau proses standar yang harus mereka patuhi.
Tim
6

Apakah Scrum agnostik terhadap apakah pengembang melakukan praktik tangkas?

Scrum adalah seperangkat pedoman yang mendorong tim untuk gesit.

Bisakah Anda menerapkan Scrum dalam tim yang tidak memanfaatkan tes otomatis? tidak melakukan refactoring atau tidak mematuhi praktik pemrograman tangkas?

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.

Tim
sumber
Pendek dan manis!
Kris Van Bael
5

Alistair Cockburn (salah satu pencetus gerakan Agile) mengatakan ini tentang Crystal Clear (satu sisi metodologi Agile-nya):

Crystal Clear dapat dijelaskan kepada pendengar Level 3 dengan kata-kata berikut:

“Tempatkan 4-6 orang di ruangan dengan workstation dan papan tulis dan akses ke pengguna. Mintalah mereka memberikan perangkat lunak yang sudah berjalan dan diuji kepada pengguna setiap satu atau dua bulan, dan jika tidak biarkan mereka sendiri. "

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:

Ditanya tentang XP dan lima tingkat "Model Kemampuan Maturitas" Institut Rekayasa Perangkat Lunak, ia menjawab dengan tiga tingkat kematangan XP:

  1. Lakukan semuanya seperti yang tertulis.

  2. Setelah melakukannya, bereksperimenlah dengan variasi aturan.

  3. Akhirnya, tidak peduli apakah Anda melakukan XP atau tidak.

Akhirnya, tidak peduli apakah Anda sedang melakukan XP atau tidak ... kata-kata bijak yang seharusnya mengingatkan Anda untuk tidak jatuh ke dalam perangkap ini .

gbjbaanb
sumber
HAHA jebakan di bagian bawah itu lucu dan benar. Terima kasih untuk tawa Juga +1 Saya sangat setuju. Sayangnya seluruh teknik yang ditentukan di sini sepenuhnya bergantung pada memiliki pengembang yang baik (atau yang setidaknya ingin menjadi yang baik). Banyak insinyur tidak tertarik untuk menjadi baik ketika menjadi buruk lebih mudah. Sebenarnya itu berlaku untuk mungkin banyak orang, bukan hanya insinyur.
Jimmy Hoffa
0

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.

Ryathal
sumber
0

Apakah lincah tentang pengembangan atau manajemen?

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 :

Pengembangan perangkat lunak tangkas adalah sekelompok metode pengembangan perangkat lunak berdasarkan pada pengembangan iteratif dan tambahan, di mana persyaratan dan solusi berkembang melalui kolaborasi antara tim yang mengatur sendiri, lintas fungsi. Ini mempromosikan perencanaan adaptif, pengembangan evolusi dan pengiriman, pendekatan berulang waktu, dan mendorong respon yang cepat dan fleksibel untuk perubahan. Ini adalah kerangka kerja konseptual yang mempromosikan interaksi yang diramalkan di seluruh siklus pengembangan.

masukkan deskripsi gambar di sini

Yusubov
sumber
0

Infact, Anda dapat menggunakan scrum dalam proyek yang tidak ada hubungannya dengan pengembangan perangkat lunak apa pun. Ini adalah metode manajemen proyek / manajemen tim.

Rense
sumber
-2

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.

str8killinit
sumber
1
Tolong jangan gunakan istilah seperti "Scrum / Agile", ini sangat jauh dari istilah yang dapat dipertukarkan, saya pikir Anda tahu ini, tetapi Anda masih mengabadikan gagasan itu ketika Anda menggunakannya dengan cara itu.
Jimmy Hoffa
Scrum gesit. Dengan huruf kecil 'a'. Agile adalah kata sifat, bukan nama benda. Terlepas dari itu, saya pikir jawaban ini masuk akal.
Tim
2
@Tim gesit kata itu adalah kata sifat, tetapi dalam hal ini Agile mengacu pada judul "Pengembangan Perangkat Lunak Agile" sebagaimana didefinisikan di agilemanifesto.org dan dengan demikian itu bukan kata sifat, tetapi kata benda. Ini adalah keluhan saya tentang orang yang menyebut scrum sebagai gesit, orang berpikir "Scrum gesit" dan kemudian tidak pernah belajar tentang manifesto tangkas yang merupakan asal seluruh istilah "tangkas" buzzwordry ini dimulai, dan definisi sebenarnya dari "Agile" . Mengacu pada hal-hal sebagai gesit oleh kata sifat hanya ambigu, manifesto tidak ambigu, itu berprinsip dan spesifik.
Jimmy Hoffa