Bagaimana cara membuat Scrum bekerja untuk tim dengan peran yang ditentukan?

13

Beberapa informasi latar belakang

Saya bagian dari tim pengembang perangkat lunak internal. Terdiri dari

  • 5 pengembang (dengan pengalaman mulai dari 2 hingga 5 tahun, saya salah satunya)
  • 3 staf implementasi (mereka melakukan penyebaran dan pelatihan perangkat lunak)
  • dan 1 manajer proyek.

Kami mengembangkan banyak proyek kecil hingga menengah, dan jadwal mereka biasanya tumpang tindih. Pembangunan berjalan seperti ini:

  1. "Klien" memberi kami satu set persyaratan awal
  2. Kami mengembangkan sistem sesuai spesifikasi tersebut
  3. Sajikan sistem tersebut ke "klien"
  4. "Klien" memberi kami persyaratan tambahan berdasarkan presentasi tersebut
  5. Ulangi 2-4 sampai "klien" kehabisan persyaratan baru atau tanggal target penyebaran sudah dekat
  6. Mengatur dan menggunakan sistem

Ini, bersama dengan fakta bahwa itu adalah "klien" yang menangani tenggat waktu sebagian besar waktu (yang merupakan bendera merah, dari apa yang saya lihat di sini di Programmer dan PM.SE) dan kami tidak mengikuti arahan metodologi pengembangan yang pasti. untuk pengkodean koboi, hampir tidak dapat dipelihara kode, dan bug yang melewati produksi, antara lain. Itu sebabnya kami memilih untuk mengadopsi metodologi berbasis Agile seperti Scrum.

Mengapa scrum?

Itu adalah inisiatif manajer kami, dan semua orang tampaknya menyetujuinya, mengingat situasi kami saat ini.

Masalah dengan Scrum

Beberapa elemen Scrum memiliki konflik dengan pengaturan kami saat ini yang tidak dapat kami atasi dengan mudah, terutama sifat "jack-of-all-trade" dari pengembang Agile. Tim penempatan tidak tahu cara memprogram, dan pengembang memiliki keterampilan komunikasi dan pelatihan di bawah rata-rata. Dan lineup ini tidak akan benar-benar berubah dalam waktu dekat.

Pertanyaan

Apakah itu mempengaruhi efektivitas Scrum sebagai metodologi? Apakah perubahan lain perlu dilakukan untuk mengkompensasi? Atau akan lebih baik untuk meninggalkan pemikiran sama sekali dan berpikir tentang metodologi yang berbeda?

Revenant
sumber
17
"Kenapa Scrum?" paragraf cukup penting, dan pada dasarnya kosong sekarang. Tampaknya manajer Anda tidak menyukai apa yang Anda lakukan saat ini, dan karenanya secara acak memutuskan Scrum karena Scrum.
RemcoGerlich
4
ada peran / tempat yang pasti untuk spesialis dalam lingkungan (scrum atau sebaliknya) yang gesit. Jangan keliru dengan fakta bahwa orang-orang diharapkan untuk terlibat dalam hal-hal yang bukan keahlian mereka untuk "melarang" spesialis. Selain itu, dapatkah Anda menjelaskan mengapa Anda memilih scrum dan bukan kanban? Bagi saya seperti, mengingat pengulangan persyaratan yang konstan, lebih cocok daripada yang memiliki sprint yang telah ditentukan yang paling cocok dengan persyaratan tetap ...
Elias Van Ootegem
12
5 pengembang tetapi bukan tester tunggal?
Apfelsaft
8
@Revenant Anda membingungkan jack semua perdagangan (individu) dengan lintas-fungsional (tim).
guillaume31
6
Kepopuleran. Selalu cara terbaik untuk memilih apa pun.
Robert Harvey

Jawaban:

17

Sebenarnya, cara kerja Anda saat ini tidak jauh dari Scrum seperti yang mungkin Anda pikirkan.

Di Scrum, Anda juga mendapatkan serangkaian persyaratan awal, mengimplementasikannya, dan mendemonstrasikan hasilnya, dan berdasarkan demonstrasi, persyaratan baru dapat diberikan kepada Anda atau pemangku kepentingan dapat memutuskan bahwa produk tersebut cukup baik sehingga tidak diperlukan pengembangan lebih lanjut.
Dalam situasi Anda, "klien" yang Anda bicarakan dapat diberi peran sebagai Pemilik Produk di Scrum (mereka tampaknya sudah mengisi peran itu dengan menetapkan prioritas dalam suatu proyek dan memutuskan kapan siap untuk diluncurkan).
Satu perubahan besar bisa menjadi panjang iterasi. Di Scrum, iterasi harus berlangsung antara 1 dan 4 minggu.

Adapun komposisi tim dan fall-of-all-trade fallacy: Scrum tidak mengharuskan semua orang menjadi jack-of-all-trade. Scrum hanya mensyaratkan bahwa tim secara keseluruhan memiliki semua kompetensi yang diperlukan untuk mendapatkan produk dari daftar persyaratan menjadi sesuatu yang telah / dapat digunakan.
Dalam situasi Anda, saya dapat dengan mudah melihat tim per proyek yang terdiri dari satu atau lebih pengembang (kebanyakan melakukan pekerjaan implementasi dan pengujian) dan anggota "staf implementasi" yang sebagian besar berfokus pada pembuatan manual dan materi pelatihan untuk fitur-fitur yang para pengembang sekarang menerapkan.

Setelah klien / Pemilik Produk memberi lampu hijau untuk penempatan, pekerjaan untuk tim scrum sebagian besar akan selesai, sehingga pengembang dapat pergi ke proyek lain (dan hanya tersedia jika diminta untuk memperbaiki masalah setelah penempatan) dan implementasi staf dapat beralih untuk melakukan pelatihan dan mendukung peluncuran.

Fakta bahwa ada tenggat waktu bukanlah masalah nyata, asalkan ada cukup fleksibilitas dalam fungsi apa yang dibutuhkan dalam rilis itu.

Bart van Ingen Schenau
sumber
2
Satu perubahan yang akan diperkenalkan oleh Scrum dan metodologi Agile lainnya adalah bahwa produk / semua fitur harus "dikerjakan" - dalam keadaan dapat dikirim - di akhir setiap iterasi.
stannius
5

Anda meminta alternatif jadi saya akan mengatakan Pemrograman eXtreme (XP). Secara khusus saya pikir pemrograman pasangan mungkin membantu Anda di sini.

Dengan memasangkan orang-orang dengan keterampilan yang berbeda bersama, tidak masalah pada keterampilan apa: membuat kopi, menguji, melatih dll. Anda dapat menyebarkan keterampilan di sekitar tim.

Tapi sejujurnya itu tidak terdengar seperti SCRUM yang jauh untuk Anda. Bagian dari SCRUM adalah fleksibel dan menemukan yang terbaik untuk tim Anda. Bagian dari XP adalah menghormati tim Anda dan beradaptasi. Mungkin dalam 100 tahun ke depan kita mungkin memiliki profesi yang lebih berkembang dengan aturan keras dan cepat (walaupun saya ragu) tetapi untuk sekarang, melakukan apa yang sesuai untuk Anda adalah semua yang kami miliki. Yang penting adalah memiliki loop umpan balik. Jika sesuatu tidak berfungsi, maka tim perlu mendiskusikan hal itu dan mencoba hal-hal baru sampai mereka menemukan sesuatu yang berhasil.

Encaitar
sumber
3
+1 untuk XP. Pertanyaan menyatakan bahwa alasan utama untuk mengadopsi Scrum adalah bahwa "kami tidak mengikuti metodologi pengembangan yang pasti mengarah ke pengkodean koboi, kode yang hampir tidak dapat dipertahankan, dan bug yang melewati produksi" - Scrum akan melakukan sedikit atau tidak sama sekali untuk ini, karena itu tidak menentukan praktik teknis apa pun, dan hanya praktik teknis yang akan memperbaiki masalah tersebut. Ada banyak kerangka kerja tangkas lainnya yang dilakukan, dengan XP menjadi kandidat terbaik karena ini adalah yang terdekat dari yang terkenal dengan Scrum dalam struktur.
Jules
3

Bagaimana cara membuat Scrum bekerja untuk tim dengan peran yang ditentukan?

Lakukan saja. Menurut panduan scrum, setiap orang adalah pengembang tetapi di planet bumi ini, orang yang berbeda akan membawa hal-hal yang berbeda ke meja. Saya hampir mati ketika saya menyarankan bahwa beberapa orang benar-benar penguji sementara yang lain menulis perangkat lunak.

Beberapa hal yang mungkin ingin Anda atasi:

Sprint

Sepertinya Anda memiliki fase pengembangan awal diikuti oleh serangkaian sprint yang seolah-olah. Pertimbangkan untuk memecah ini. Tidak hanya klien akan melihat sesuatu lebih awal, Anda akan mendapatkan perasaan yang lebih baik untuk tonggak pengembangan saat mereka terjadi.

Memperbaiki tenggat waktu

Ini muncul berkali-kali dan memang merupakan duri yang gigih di sisi devs tempat saya bekerja saat ini. Scrum menetapkan perkiraan untuk sprint - tidak lebih. Ya, Anda mungkin mencapai target setelah serangkaian sprint tetapi setelah klien melihat versi awal, ruang lingkup cenderung merayap secara signifikan. Ini bukan masalah itu sendiri, tetapi klien harus disadarkan bahwa pekerjaan lebih lanjut akan dilakukan dalam sprint kemudian dan melebihi dan di atas persyaratan yang diketahui.

Robbie Dee
sumber
Hanya untuk menunjukkan apa yang tampak seperti kesalahan karakteristik yang mengerikan dari Scrum: tidak semua orang adalah pengembang - Anda dapat dan akan memiliki anggota khusus, tetapi mereka adalah bagian dari TIM pengembangan dan bertanggung jawab atas hasil dari sprint tim tersebut. Dalam pengaturan Scrum kami, para penguji biasanya berada di belakang beberapa sprint dalam hal apa yang mereka kerjakan versus devs karena mereka tidak dapat menguji apa yang tidak dilakukan, tetapi mereka membuat rencana pengujian dan kemungkinan data uji yang mereka perlukan. Sementara mereka berurusan dengan fitur-fitur utama, kita masuk ke mode memperbaiki bug yang lebih tua dan mempersiapkan patch saat mereka mengejar cutoff rilis.
Duffy
3
Pada kenyataannya, Anda "dihukum mati" karena menyarankan agar penguji diperlakukan sebagai ayam, bukan babi (setidaknya itulah mengapa saya menurunkan jawaban itu) ...
David Arno
@Duffy, saya setuju - tidak ada judul selain pengembang tetapi dalam kenyataannya, perannya sering diatur sangat tradisional.
Robbie Dee
@ David Arno Di toko kami mereka. Faktanya, kami memiliki set-up yang identik dengan apa yang diuraikan Duffy. Penguji kami bekerja satu atau dua sprint di belakang. Intinya adalah anggota staf yang Anda anggap sebagai tim pengembangan. Seperti yang saya jelaskan di posting saya , saya sama sekali tidak menerima bahwa DBA dan build manager dapat dikotak waktu dengan cara yang sama seperti vanilla devs - YMMV.
Robbie Dee
Kami mengelola kotak waktu dengan cukup baik, dibutuhkan pemikiran dan proses yang sedikit berbeda untuk perkiraan penguji karena mereka lebih sulit digerakkan oleh proses daripada yang digerakkan oleh estimasi, tetapi biasanya berakhir dengan perkiraan waktu yang jauh lebih andal (setelah mereka dapat membuat baseline mereka selama first pass testing) daripada dev karena sifat pekerjaan mereka versus kita. Saya Pengembang DBA / DB tim dan sangat cocok dalam sprint, jadi saya tidak yakin bagaimana mereka tidak cocok dengan alur kerja untuk orang lain.
Duffy
3

Situasi Anda mungkin lebih cocok untuk Kanban, karena Anda bisa mulai dengan yang Anda miliki dan beralih dari sana. Ini berarti Anda tidak akan memiliki pengenalan big bang yang mengganggu proyek Anda saat ini - mulailah dengan memvisualisasikan tugas di papan tulis dan mengadopsi beberapa praktik seperti retrospektif dan rapat harian.

Anda harus sedikit lebih berhati-hati daripada dengan Scrum karena itu tidak terlalu preskriptif: sehingga ia cenderung untuk kembali ke apa pun yang terjadi sebelumnya alih-alih menanamkan pola pikir tangkas yang tepat.

ndyer
sumber
0

Scrum tidak bekerja dengan baik dengan proyek terpisah yang tumpang tindih, karena Anda tidak memiliki sekelompok orang yang bekerja pada proyek untuk sprint lengkap. Karenanya konsep seperti verbositas dll mungkin hanya akan membuat Anda tertekan.

Tetapi pertama-tama mengambil cerita yang memberikan biaya / manfaat terbaik kepada klien, dan mengimplementasikannya termasuk pengujian otomatis penuh, ke kualitas yang cukup baik untuk digunakan, sebelum mengerjakan cerita selanjutnya adalah konsep yang berguna. Demikian juga mengharuskan semua kode yang ditulis untuk sebuah cerita untuk ditinjau oleh pengembang lain sebelum cerita itu dianggap "selesai".

Saya berasumsi staf implementasi Anda harus menulis dokumen pelatihan dan referensi, mereka dapat ditulis (draft pertama) untuk setiap cerita sebelum kode ditulis, sehingga menjadi tes penerimaan.

Saya berharap Anda akan menemukan bahwa pada awal setiap proyek di mana masukan dari staf implementasi akan sangat membantu bagi para pengembang, mereka 100% berkomitmen untuk penyebaran proyek sebelumnya. Oleh karena itu pertimbangkan jika staf implementasi dapat mengerjakan penulisan cerita dan dokumentasi pengguna untuk proyek selanjutnya, sementara pengembang menulis kode untuk proyek saat ini.

“Pengembangan yang didorong oleh perilaku” dengan staf implementasi yang menulis contoh yang digunakan dalam pengujian dapat bekerja.

Jadi ada sedikit Scrum yang akan membantu Anda, tetapi cobalah untuk bersandar dari Scrum daripada menggunakan Scrum.

Ian
sumber
"Karenanya konsep seperti verbositas ..." - maksud Anda kecepatan?
Robbie Dee
Jika ini pada aplikasi perusahaan besar dengan beberapa departemen menginginkan hal yang berbeda pada waktu yang berbeda, apakah Scrum juga tidak cocok untuk itu?
JeffO
@jeffO, dapat bekerja dengan scrum, asalkan SATU orang memiliki kekuatan untuk memutuskan antar departemen.
Ian
@Ian - itu alasan yang bagus untuk hanya memiliki satu pemilik proyek dan proyek dapat diiris dan dipotong besar atau kecil sesuai keinginan seseorang.
JeffO