Bagaimana Scrum diadaptasi ke pengaturan Relawan?

18

Saya baru-baru ini bergabung dengan ruang peretas muda yang masih dalam proses pengaturannya sendiri. Kami beruntung karena ruang memiliki beberapa proyek internal yang perlu dikerjakan dan tidak ada kekurangan relawan untuk mengerjakannya.

Ada beberapa diskusi tentang bagaimana mengatur proyek-proyek ini. Pengalaman profesional saya yang terbaru adalah dengan Scrum, jadi saya mempertimbangkan untuk mengajukan pendekatan Scrum untuk proyek perangkat lunak kami, tetapi saya tidak yakin itu akan cocok.

Meskipun saya telah melihat Scrum bekerja dengan baik untuk tim penuh waktu kecil, sifat organisasi ini berbeda:

  • Para anggotanya adalah sukarelawan . Beberapa siswa penuh waktu. Lainnya bekerja penuh waktu. Kita tidak dapat mengharapkan tingkat kontribusi konstan dari siapa pun karena kehidupan nyata mereka diprioritaskan.
  • Sementara hampir semua orang memiliki pengalaman bertahun-tahun menulis perangkat lunak, tidak banyak anggota yang melakukannya secara profesional atau dalam tim.
  • Tidak ada Pemilik Produk . Persyaratan untuk proyek-proyek ini ditentukan oleh komite. Anggota komite ini juga akan mengerjakan implementasinya. Ini berarti kita tidak akan memiliki Pemilik Produk tunggal, khusus, dan berdedikasi.
  • Kami tidak memiliki tenggat waktu (lunak atau keras). Proyek-proyek akan selesai ketika mereka selesai.

Ini adalah perbedaan yang cukup signifikan, tetapi saya tidak yakin mereka akan menjadi penghambat penerapan Scrum. Saya pikir beberapa penyesuaian kecil dapat mengatasi rintangan ini:

  • Jika kita mengubah Sprint menjadi memiliki ukuran titik-cerita yang tetap, tetapi durasi yang cair (waktu), kita masih bisa mendapatkan manfaat dari rilis berulang tanpa memberikan tekanan pengiriman yang tidak realistis pada sukarelawan dev.
  • Kita bisa membuang grafik burndown dan perhitungan kecepatan . Jika saya mengerti dengan benar, ini adalah alat dan metrik yang berfungsi sebagai jembatan antara tim pengembang dan Manajemen. Mereka melayani untuk melaporkan kemajuan dalam bentuk yang bermakna bagi pengembang dan pemangku kepentingan. Mengingat kami tidak memiliki siapa pun untuk melapor (tidak ada Manajer Proyek, tidak ada Pemilik Produk, dan tidak ada pemangku kepentingan dari luar) saya percaya kami dapat membatalkan ini sama sekali.

Hal-hal yang saya pikir dapat kita manfaatkan dari yang tidak akan memerlukan penyesuaian:

  • The Persyaratan Mengumpulkan pertemuan (s). Di mana semua orang duduk di sekitar meja dan membahas Kisah Pengguna, membuat sketsa pengolok UI, dan membangun Product Backlog.
  • Retrospektif Sprint . Ini akan menjadi cara yang menarik bagi kita untuk berkumpul pada proses pengembangan yang bekerja untuk kita sebagai tim sukarelawan.

Hal yang saya tidak yakin tentang:

  • Bagaimana Seharusnya Stand-up harian diperlakukan? Saya bertanya-tanya apakah mereka akan memiliki banyak nilai di lingkungan kita. Pemahaman saya tentang ritual stand-up adalah bahwa itu membantu komunikasi dengan menyebarkan informasi secara alami ke seluruh tim. Mempertimbangkan fakta bahwa Sprint kita kemungkinan akan memberikan kompleksitas yang jauh lebih sedikit daripada Sprint rata-rata, mungkin ada sedikit kebutuhan untuk mengikuti perkembangan / perkembangan semua anggota tim lainnya.
  • Haruskah saya mendorong untuk hal-hal XP seperti Integrasi Berkelanjutan, Ulasan Kode, dan TDD? Saya khawatir ini akan banyak meminta. Saya akan lebih tergoda untuk membawa konsep-konsep ini ke dalam proyek-proyek masa depan begitu orang lebih akrab dengan Scrum dan bekerja sebagai sebuah tim.

Pertanyaan saya:

Bisakah Scrum diadaptasi ke lingkungan berbasis sukarelawan?
Dan, apakah pendekatan saya yang direncanakan sejauh ini berjalan ke arah yang benar?

MetaFight
sumber
Saya tidak ingat Scrum mengatakan sesuatu tentang perlunya memiliki tenggat waktu bisnis (selain dari sprint itu sendiri). Sebenarnya itu bekerja jauh lebih baik jika Anda tidak melakukannya memiliki tenggat waktu, dari sudut pandang "fokus pada produk, bukan proyek". Tenggat waktu yang diberlakukan eksternal memecah scrum dengan memaksa tim untuk "memperkirakan" apa yang mereka pikir perlu mereka lakukan dalam sprint, daripada apa yang sebenarnya bisa mereka lakukan. Itu tidak menghentikan sebagian besar perusahaan untuk memaksakannya, tetapi mereka tidak intrinsik bagi Scrum sama sekali.
Aaronaught

Jawaban:

21

Lihatlah ke Kanban. Ini lebih tepat daripada SCRUM untuk kendala Anda.

Sunting: SCRUM adalah (sangat kasar) jaminan simpanan dengan sprint dan upacara untuk memastikan bahwa volume pekerjaan 'sedang berlangsung' tetap terkendali dan memiliki sesuatu yang solid di akhir setiap sprint. Jika Anda meninggalkan upacara dan irama sprint, Anda berakhir dengan Kanban: jaminan simpanan dan penekanan kuat pada pembatasan pekerjaan 'sedang berlangsung' secara langsung dan dengan memastikan semua yang ditandai 'selesai' dilakukan alih-alih dengan memaksakan stabilitas di akhir setiap sprint.

Anda masih mendapatkan manfaat tangkas: rilis kapan saja, fleksibilitas, beberapa ukuran prediktabilitas - meskipun SCRUM dapat membuat Anda sedikit lebih jauh pada aspek itu - dan tanpa upacara atau aspek SCRUM yang tidak cocok dengan longgar, tim didistribusikan tanpa komitmen . Tangkapan? Membolos upacara memerlukan lebih banyak disiplin, sehingga Anda BENAR-BENAR perlu memperhatikan tes, kualitas kode, pekerjaan saat ini sedang berlangsung, dan memastikan bagian atas tumpukan (barang siap diambil oleh orang-orang) cukup dielaborasi.

Anda dapat memiliki jaminan simpanan berdasarkan suara, meskipun dalam pengaturan sukarela beberapa orang hanya mengerjakan apa pun yang mereka inginkan.

(Dan ya, semua ide TDD, CI, ulasan, dan pemrograman rekan adalah ide bagus).

ptyx
sumber
1
TDD sangat penting. Anda harus menetapkan standar untuk cakupan tes dan menolak kode baru yang tidak disertai dengan tes.
kevin cline
1
Bahkan dalam organisasi sukarela untuk proyek internal? Saya khawatir ini pada akhirnya akan terasa terlalu seperti pekerjaan dan tidak cukup untuk menjadi bagian dari proyek komunitas yang menyenangkan.
MetaFight
3
Terutama di organisasi sukarelawan. Anda perlu mempertahankan beberapa tingkat kualitas (kode, desain, dan fitur). Alternatif Anda adalah penjaga (tim inti tepercaya yang bertanggung jawab atas penerimaan dan peninjauan komit) atau pasukan penguji (sukarelawan? Semoga sukses). TDD bukan obat mujarab tetapi mudah untuk memverifikasi secara individu, menegakkan di tingkat repo / CI (cakupan) dan membantu menyaring desain yang sangat buruk atau kode yang sama sekali tidak berfungsi.
ptyx
@MetaFight Jika Anda ingin menumpuk dan mendistribusikan pekerjaan lebih menyenangkan, Anda dapat mencoba KanbanFlow.com untuk kanban. Mereka menggunakan teknik pomodoro dan memberikan poin kepada mereka yang menyelesaikan satu pomodoro (?). Ini adalah salah satu teknik gamification situs yang membuat segalanya lebih menyenangkan.
John Isaiah Carmona
5

Untuk mengatasi perbedaan yang Anda perhatikan terlebih dahulu:

  • Bahwa anggota Anda adalah sukarelawan, bukan berarti Anda tidak bisa meminta komitmen kepada mereka. Terutama dengan durasi yang relatif singkat dari berlari di Scrum, harus memungkinkan bagi setiap anggota untuk mengetahui berapa banyak waktu yang dapat mereka lakukan untuk proyek selama beberapa minggu ke depan. Memiliki anggota tim yang tersedia untuk jumlah waktu yang berbeda setiap sprint akan membuat perencanaan sedikit lebih sulit, karena lebih sulit untuk menentukan berapa banyak titik penyimpanan yang realistis, tetapi itu tidak membuat Scrum tidak layak.
  • Pemilik produk bertanggung jawab untuk mengkonsolidasikan dan mengkomunikasikan visi (dan persyaratan) yang dimiliki para pemangku kepentingan untuk produk kepada tim pengembangan. Bagian konsolidasi mungkin sudah dicakup oleh komite 'pengarah'. Untuk bagian komunikasi, mereka hanya dapat mendelegasikan salah satu anggota mereka sebagai juru bicara utama mereka. Yang kemudian akan untuk semua tujuan praktis menjadi pemilik produk.
  • Tidak memiliki tenggat waktu eksternal sebenarnya bukan masalah bagi Scrum. Itu hanya lebih pada kebanggaan tim dalam produk untuk menyelesaikannya. Scrum sendiri memiliki batas waktu alami untuk setiap sprint.

Mengenai adaptasi yang Anda usulkan, terutama ketika bekerja dengan sukarelawan, saya akan sangat menyarankan untuk mempertahankan panjang sprint tetap. Dengan begitu, para relawan tahu pasti untuk periode mana mereka memberikan komitmen mereka.

Saya juga tidak akan segera membuang grafik burndown. Mereka juga dapat berguna bagi tim itu sendiri untuk melihat bagaimana mereka melakukan komitmen mereka. Saya akan menyerahkannya kepada tim untuk memutuskan untuk menyimpan atau menyingkirkan mereka. Hal yang sama berlaku untuk perhitungan kecepatan. terutama dengan variasi besar dalam manhours yang tersedia setiap sprint, mereka dapat terbukti sangat berguna (terutama jika Anda menghitung jumlah poin yang diselesaikan per manhour) dalam memperkirakan sprint mendatang.

Mengenai standup harian, mereka akan tetap berguna dalam pengaturan Anda, jika hanya untuk memberitahukan apa yang dilakukan semua orang atau memiliki masalah dengan (dan itu tidak tergantung pada kompleksitas). Tetapi mungkin lebih sulit untuk mewujudkan standup harian, jadi Anda mungkin perlu berkompromi di sana.

Praktik XP yang Anda sebutkan dapat diperkenalkan atau tidak terlepas dari penggunaan Scrum dan juga dapat diusulkan selama retrospektif.

Bart van Ingen Schenau
sumber
5

Itu mengejutkan saya bahwa tidak ada yang menunjukkannya, tetapi proyek Anda tampaknya seperti kebanyakan proyek open-source. Jika Anda memeriksa beberapa proyek sumber terbuka yang lebih populer, Anda mungkin menemukan beberapa inspirasi. Dan saya pikir Anda harus melupakan SCRUM dan berpikir tentang ini dari perspektif lincah umum.

Agile adalah segalanya tentang komunikasi dan kolaborasi. Ada alasan mengapa ada 2 poin dari 4 dalam Agile Manifesto membicarakannya.

Individu dan interaksi atas proses dan alat

Kolaborasi pelanggan atas negosiasi kontrak

Dan cara Anda menggambarkan proyek Anda, akan sulit untuk memiliki komunikasi tatap muka dengan semua orang yang mengerjakan proyek, sesuatu yang didorong oleh Agile dan SCRUM. Jadi hal pertama yang akan saya fokuskan adalah membangun saluran komunikasi untuk seluruh tim (baik sukarelawan dan komite produk). Hal-hal seperti wiki, forum, konferensi video dan jaminan simpanan, tugas dan sistem pelacakan bug adalah cara yang bagus untuk memastikan semua orang tahu apa yang terjadi dan apa yang perlu dilakukan.

Hal kedua yang saya perhatikan adalah tidak hanya menyisir bagian-bagian teknologi yang gesit. Banyak yang percaya (termasuk saya sendiri) bahwa merekalah yang membuat pekerjaan gesit, bukan sisi proses. Peninjauan kode adalah pekerjaan penting dan sebagian besar sumber terbuka dengan meminta seseorang yang mengetahui proyek tersebut meninjau komitmen / dorongan untuk memastikan kualitas yang cukup tinggi dipertahankan. TDD praktis diberikan untuk setiap proyek gesit. Ini memastikan setiap perubahan pada kode tidak merusak fungsi sebelumnya yang bahkan lebih penting dalam kasus Anda ketika sukarelawan tidak dapat diganggu untuk memperbaiki kesalahan dan kesalahan orang lain. Ini juga membuat peninjauan kode lebih mudah karena peninjau dapat melihat dalam pengujian fungsionalitas apa yang ditambahkan dan dengan menjalankannya ia memastikan fungsionalitas benar-benar berfungsi sebagaimana dimaksud. Integrasi berkelanjutan sama dengan TDD.

Hal terakhir adalah saya percaya Anda harus memiliki setidaknya beberapa orang yang mengerjakan proyek penuh waktu. Orang-orang itu harus memiliki peran spesifik:

  • Pemilik produk : Meskipun bagus jika Anda memiliki seluruh komite yang didedikasikan untuk ini, harus ada satu orang yang bertanggung jawab untuk menafsirkan kata-kata komite ini menjadi spesifikasi atau cerita pengguna dan memastikan mereka diterapkan dengan benar.
  • Koordinator & Scrum Master : Orang ini harus bertanggung jawab untuk seluruh proses dan memastikan bahwa semua orang tahu tentang hal-hal penting yang terjadi dalam proyek. Selain itu, ia mengelola wiki dan alat pelacak tugas & bug. Jika seseorang memiliki pertanyaan tentang proyek, ini adalah orang pertama yang harus mereka tanyakan.
  • Pengembang & arsitek utama : Orang yang paling tahu kode. Dia melakukan review kode dan memastikan kualitas kode cukup baik untuk pengembangan tangkas.
Euforia
sumber
1

Anda tidak dapat menyesuaikannya dengan cara yang Anda gambarkan dan masih menyebutnya SCRUM. tetapi menurut saya, Anda dapat menggunakan Scrum seperti berikut untuk pengaturan yang telah Anda jelaskan.

  1. Telah memperbaiki iterasi. Sehingga Anda bisa mengukur kemajuan Anda. Ini bukan hanya untuk manajemen tetapi juga untuk tim untuk "tahu" bagaimana kinerja mereka.
  2. Minta sukarelawan untuk berbagi kapasitas pada awal iterasi. Semua tim membutuhkan apa yang sedang dilakukan oleh anggota, jika tidak anggota tertentu dapat meninggalkan tim untuk pekerjaan yang lebih profesional.
  3. Tidak memiliki tenggat waktu tidak masalah. Scrum tidak memaksa bahwa apa pun yang Anda lakukan pada akhir setiap iterasi harus berpotensi dikirim. Ini akan memungkinkan Anda memutuskan apa yang harus dilakukan selanjutnya berdasarkan apa yang telah Anda lakukan sampai saat itu (yang berfungsi).
  4. Tidak memiliki pemilik produk dapat bekerja juga .. Anda dapat memiliki semacam sistem pemungutan suara untuk menumpuk tumpukan peringkat dan menerima / menolak pekerjaan yang dilakukan.
  5. Pengumpulan kebutuhan bukan bagian dari Scrum. Anda tetap bisa melakukannya. Tetapi jangan masukkan itu sebagai bagian dari ruang lingkup iterasi. Memiliki kapasitas terpisah untuk itu. Jadi untuk iterasi, rencanakan hanya yang berfungsi yang persyaratannya jelas misalnya tim tahu kriteria penerimaan.
  6. Retrospektif itu baik. Jadi mulailah Scrum seperti itu tetapi kemudian menggunakan retrospektif melihat apa yang berfungsi dan apa yang tidak misalnya Anda mungkin perlu mengubah ukuran iterasi, Anda mungkin perlu menyingkirkan beberapa sukarelawan yang menyeret orang lain ..
  7. Status harian harus. Itu memberi kesempatan kepada tim untuk saling menyelaraskan satu sama lain, yaitu mereka akan menyelaraskan upaya mereka sehingga tidak ada tugas yang tidak perlu terhambat karena tidak tersedianya hasil kerja anggota lain.
  8. XP bagus. Memiliki definisi ketat berdasarkan XP misalnya tidak ada kode masuk kecuali ditinjau. Lakukan lebih sedikit untuk berbuat lebih banyak ..
Asim Ghaffar
sumber
1

Saya mungkin menyarankan pendekatan yang berbeda. Karena Anda berurusan dengan sukarelawan, Anda memiliki beberapa hal untuk dipertimbangkan. Tim Anda mungkin akan memiliki pergantian yang tinggi, hidup akan menghalangi dan orang-orang akan terganggu. Dari yang tersisa beberapa akan berkontribusi secara konsisten tetapi tidak terlalu banyak, maka terakhir Anda akan memiliki kelompok hardcore yang benar-benar menenggelamkan gigi ke dalam proyek. Saya membuat banyak asumsi tentang tenaga kerja Anda di sini dan jika Anda merasa penilaian saya tidak mencerminkan orang-orang yang bekerja sama dengan Anda, jangan abaikan sisanya.

Sekarang Anda membutuhkan strategi yang akan memungkinkan orang yang tidak melakukan banyak pekerjaan untuk dapat bekerja secara mandiri, mereka hanya punya banyak waktu untuk mendedikasikan ini dan Anda tidak ingin membuat mereka menghabiskan sebagian besar dari itu dalam komunikasi. Orang-orang yang lebih terlibat harus bertanggung jawab untuk integrasi dan mengeluarkan ide-ide yang lebih kompleks.

Ini membuat saya berpikir tentang proses pengembangan yang lebih terfokus pada kerangka dan prototipe kawat.

Anda dapat memiliki kumpulan item pekerjaan yang tersedia dan mendorong orang untuk menulis bingkai kawat untuk itu. Anda dapat menggunakan ini sebagai Pelacak Peluru (istilah yang dipinjam dari programmer Pragmatis) untuk mengasah gagasan dan memberikan inspirasi bagi orang untuk membangun. Dari sana Anda dapat menularkan ide-ide sukses menjadi prototipe, sekali lagi ini adalah proyek yang sangat kecil yang dirancang untuk membantu orang mempelajari lebih lanjut tentang proyek tersebut. Setelah itu, Anda sekarang memiliki bagian kecil dari ide-ide solid yang telah dibangun oleh banyak orang yang dapat Anda serahkan kepada beberapa tim yang sedikit lebih aktif dan mereka dapat bekerja untuk mengintegrasikan ide-ide itu ke dalam sistem Anda.

Nimnam1
sumber
0

Saya pikir Kanban akan lebih cocok untuk situasi ini.

Scrum memiliki beberapa hal yang tidak sesuai. Pengukuran waktu atau ruang lingkup tidak perlu dan setiap orang yang berkembang memiliki visi produk yang sama dari rapat. Akuntabilitas dan mengikuti rencana singkat dengan konsistensi adalah tujuan bisnis.

Kanban menawarkan banyak keuntungan yang sama seperti Scrum tanpa kekurangannya. Ini dapat memberi Anda prototyping cepat. Prototipe dapat dijalankan sebelum pertemuan. Ini juga memberikan TDD untuk kode yang dapat diubah dan tes regresi. Pemrograman pasangan dapat memudahkan pendatang baru dan tidak tetap masuk ke basis kode dengan mentransfer pengetahuan.

Kanban juga memiliki keunggulan unik. Jika visi tentang apa yang dilakukan pengguna dikembangkan secara paralel, Kanban bekerja dengan baik. Bukti itu adalah kesuksesan untuk program bisnis kecil. Juga, untuk hari-hari dengan beberapa sukarelawan seperti tiga orang, Kanban akan tetap bekerja dengan baik. Scrum, meski ringan pasti akan terlalu banyak pita kuning.

Akash Patel
sumber