Setelah lebih dari dua tahun bekerja di struktur departemen pengembangan yang sangat sunyi, "lone-wolf", kami mengadopsi Agile SCRUM. Bagus. Saya suka Agile; sebagai pengembang, ini membuat Anda tetap fokus, sibuk, dan produktif tanpa memiliki banyak pemangku kepentingan yang mendorong proyek demi proyek, dengan harapan mereka semua akan dilakukan kemarin.
Namun, ada satu aspek pindah ke SCRUM versus "model" kami saat ini, yang saya pikir orang di luar Pembangunan tidak akan suka sedikit pun. Itulah kemampuan mereka saat ini untuk meminta kami melakukan perubahan kecil "selagi Anda menunggu". Sebagian besar dari pengembangan kami hanya untuk konsumsi internal, dan kami sebagian besar berada di gedung yang sama. Jadi, sudah lazim selama bertahun-tahun bagi seorang pimpinan departemen atau manajer di tempat lain untuk datang ke "pemilik basis kode" aplikasi tertentu dan meminta barang-barang kecil (kadang-kadang tidak begitu kecil, tapi kami cukup baik untuk tidak mengambil tiga- proyek minggu berdasarkan "drive-bys" ini). Bahkan bos kami terkadang menyampaikan hal-hal yang disampaikan kepadanya dengan cara ini. Sangat sering, jika kita bekerja dalam basis kode yang dimaksud pada saat itu, kita cukup memunculkan file sumbernya,
Dengan metodologi Agile SCRUM dasar, perubahan ini akan dicatat sebagai cacat (kami tidak memenuhi persyaratan yang ditentukan dalam cerita yang sebelumnya dikonsumsi) atau cerita kecil baru (kami memenuhi semua persyaratan yang disebutkan, tetapi persyaratan itu tidak lengkap, kabur atau tidak benar , atau mereka berubah setelah pengiriman setelah pengguna melihat fitur baru). Either way, sebagian besar akan menjadi salah satu-pointer di sebagian besar, jika tidak nol, dan prioritas relatif rendah (sistem ini dapat digunakan dalam kondisi saat ini, tapi akan jadi lebih dingin jika ...), membuat mereka tidak mungkin dibawa berlari ketika bekerja backlog top-down.
Kemungkinan ini dinaikkan pada pertemuan dev sebagai sumber oposisi aktif untuk proses Agile kami oleh departemen lain, yang akan melihatnya sebagai kurang "gesit" daripada kemampuan kami saat ini untuk membuat tweak kecil berdasarkan permintaan. Ini adalah masalah IMO yang valid; para pemangku kepentingan di balik PO tidak selalu sepakat tentang hal-hal apa yang paling penting, karena mereka semua tidak memiliki sudut pandang yang sama, namun biasanya hanya para manajer yang membuat keputusan akhir, dan oleh karena itu bias mereka adalah yang ditampilkan di jaminan produk.
Sebuah solusi kemudian diusulkan, yang sementara ini disebut "toples permen" (istilah lain yang dibuang adalah "perahu saus"). Perbaikan kecil yang diminta oleh "orang-orang kecil" di berbagai departemen, yang tidak cacat dalam cerita yang ada, yang diperkirakan dengan konsensus atau aklamasi dalam tim untuk mengambil kurang dari setengah hari pengembang, dan itu akan membuat dampak langsung, signifikan, dan positif pada pengalaman pengguna menurut pendapat pengguna akhir, dimasukkan dalam daftar secara paralel dengan jaminan simpanan utama. Mereka akan diidentifikasi sebagai "cerita", tetapi akan disimpan terpisah dari simpanan utama cerita "besar" yang menjadi prioritas. Jika, sewaktu-waktu selama kemajuan normal sprint, kami bekerja di area sistem di mana salah satu tweak ini dapat dibuat, membuat tweak sepele, kita bisa membawa tweak ke sprint dan kode di samping cerita yang lebih besar. Melakukan initidak boleh membahayakan penyelesaian cerita yang lebih besar atau pekerjaan berkomitmen lainnya. PO juga akan memiliki akses ke daftar ini, dan jika mereka mengerjakan cerita pengguna yang akan datang menyentuh fitur dasar yang melibatkan tweak, mereka dapat melipatnya ke dalam cerita sebagai persyaratan dan kemudian kami akan memenuhi persyaratan seperti yang akan kami lakukan lain. Ini, diperkirakan, akan membuat tweak lebih mungkin untuk dikerjakan lebih cepat daripada nanti.
Ini memicu reaksi di antara kita dengan pelatihan ScrumMaster "uh-uh". Ada satu jaminan simpanan. Dua backlog memperkenalkan pertanyaan tentang item # 1 mana yang benar - benar paling penting, item mana yang menentukan kecepatan nyata , dan dari mana dari dua backlog cerita mana yang sebenarnya berada (demarkasi ukuran / kompleksitas akan memiliki beberapa kasus yang jatuh secara relatif sewenang-wenang ke satu sisi atau yang lain). "Biarkan prosesnya bekerja", kami berkata; jika perubahan benar-benar signifikan bagi pengguna akhir, mereka akan membuat suara yang cukup untuk membuat kepala departemen membuat keputusan waktu / uang di papan, dan itu akan menabrak kesadaran tim dev menuju bagian atas tumpukan.
Saya pikir saya akan mengajukan pertanyaan: Menurut pendapat Anda, apakah daftar paralel cerita "ukuran gigitan" memiliki nilai dalam mendapatkan perubahan kecil, bermanfaat tetapi pada akhirnya prioritas rendah dibuat lebih cepat, atau apakah secara keseluruhan itu keputusan yang lebih baik untuk melipatnya ke dalam tumpukan utama dan membiarkan proses dasar mengatur inklusi mereka dalam sprint?
Jawaban:
Saya akan berbicara tentang beberapa poin yang, semoga, akan membantu Anda menemukan jalan Anda:
Semoga berhasil :)
sumber
Kerangka kerja pemrograman seperti Agile dan SCRUM dirancang untuk menerapkan disiplin dan struktur pada pengembangan. Namun, disiplin dan struktur tampaknya menjadi antonim kesenangan dan kreativitas. Biasanya, Anda perlu bekerja lebih keras untuk membangun dan mempertahankan disiplin. Sangat sulit untuk menemukan keseimbangan antara konsep-konsep yang berlawanan ini. Karena itu, kerangka kerja cenderung menghindari topik.
Pada proyek terakhir saya, kami mengamati bahwa pengembang membutuhkan sedikit waktu setiap hari untuk menyegarkan atau menjernihkan pikiran mereka, dll. Mereka diberi waktu yang dianggarkan (0,5 jam / hari atau 2,5 jam / minggu) di mana mereka dapat melakukan apa saja, dalam alasan (dengan kemungkinan diterapkan pada sesuatu di tempat kerja). Untuk menjaga agar disiplin, mereka diminta untuk mendokumentasikan kegiatan mereka sehingga mereka dapat memperoleh pujian atas pencapaian apa pun, dll. Memiliki anggaran khusus untuk "toples permen" yang sesuai dengan jadwal kami dan mencegah hal-hal menjadi tidak terkendali.
Btw, kami menyebut kami "proyek coolness" dan akhirnya menjadi sumber banyak ide bagus dan perbaikan di perusahaan itu.
sumber
Anda harus menyimpan cerita-cerita kecil di tumpukan utama.
Saya menghadapi masalah serupa dengan apa yang Anda gambarkan, meskipun saya tidak menggunakan scrum. Saya melihat Anda menghadapi tantangan prioritas dan efisiensi .
Kedengarannya seperti di bawah "cara lama" Anda, siapa pun secara implisit diberdayakan untuk menjadikan tugas mereka sebagai "prioritas utama" saat ini jika mereka mengunjungi kantor pengembang. Ini memiliki beberapa manfaat. Pemohon merasa seperti mereka ditanggapi, dan pemohon dan pengembang mendapatkan "kemenangan cepat".
The downside adalah bahwa sering memasukkan tugas-tugas ini cenderung memperlambat atau menggagalkan tugas-tugas prioritas utama yang disepakati dengan pemilik produk. (Catatan tambahan, seringkali semua orang meremehkan jumlah waktu yang dibutuhkan untuk perbaikan "cepat" ini.)
Pengalaman saya adalah bahwa mencoba memeras dalam tugas dengan prioritas rendah merusak manfaat prioritas. Sebagai pengembang, prioritisasi memvalidasi bagi saya bahwa saya sedang mengerjakan apa yang diinginkan oleh pemilik produk. Pemilik produk harus memutuskan apakah dia ingin mengambil pekerjaan ekstra dan risiko (betapapun kecilnya) dari permintaan "senang".
Seringkali ketika saya meminta pemangku kepentingan untuk memprioritaskan, saya ditanya "Bisakah Anda memerasnya?". Keinginan tersirat adalah bagi saya untuk menyelesaikan tugas baru secara ajaib tanpa memengaruhi prioritas tertinggi saat ini.
Yang sering terjadi pada saya adalah bahwa para pemangku kepentingan meminta LargeImportantProject dan SmallLessImportantTask. Dilema adalah, harus SmallLessImportantTask menunggu LargeImportantProject untuk menyelesaikan (atau memiliki hambatan)? Ada pengorbanan, dan pengalaman saya adalah bahwa pemilik produk harus memutuskan. (Jika pemilik produk tidak memutuskan, tim pengembang harus menebak.)
Salah satu tujuan scrum (dan manajemen proyek secara umum) adalah untuk menghindari hambatan untuk tugas-tugas prioritas tertinggi. Saat Anda menjadi lebih efisien, semakin sedikit ruang untuk bekerja ekstra.
Efisiensi dapat menakutkan, tetapi saya telah melihat manfaatnya melebihi biaya dalam dua cara penting.
sumber
Menurutku; masalah Anda adalah cara tugas diprioritaskan dalam jaminan simpanan. Misalnya, "prioritas" dapat mempertimbangkan kepentingan dan seberapa cepat itu dapat diselesaikan. Sesuatu yang tidak begitu penting tetapi dapat diselesaikan dalam 10 menit dapat memiliki prioritas lebih tinggi daripada sesuatu yang lebih penting yang akan membutuhkan beberapa minggu untuk diimplementasikan.
sumber
Saya telah bekerja dengan gesit untuk sementara waktu sekarang. Yang bisa saya katakan adalah ini - ada situasi di mana bersikeras pada metodologi dan semua yang dimasukkannya, benar-benar salah. Anda harus AGILE, dan mengutak-atik metodologi untuk situasi tertentu adalah, IMO, suatu keharusan.
Seperti Avi di atas dikatakan - "SCRUM" adalah tentang menjadi gesit. Akal sehat diperlukan. Jika perubahannya adalah perubahan beberapa menit, saya tidak berpikir Anda perlu jaminan simpanan untuk itu.
Jika perubahan itu membutuhkan waktu, itu berarti tidak semua yang "tidak berbahaya" dan harus didokumentasikan dengan baik.
sumber
Berdasarkan pertanyaan awal Anda dan klarifikasi berikutnya, inilah yang saya rasakan bahwa poin rasa sakit Anda adalah
Scrum, jika awalnya dipatuhi dengan benar harus memperbaiki banyak masalah ini, dan yang lebih penting, membawa masalah lain ke permukaan yang harus diselesaikan.
- Persyaratan yang terus berubah
Memiliki satu jaminan yang semuanya dimasukkan dan diprioritaskan dengan benar harus berarti bahwa tim tidak harus menanggung beban perubahan persyaratan saat berada di tengah pengembangan. Jika lingkungannya sangat dinamis, sprint kecil 1 atau 2 minggu harus memastikan perubahan prioritas masih dapat difasilitasi dalam periode waktu yang relatif singkat.
- Ketidakmampuan bagi pengembang untuk fokus pada area lain dari aplikasi, yaitu. kami pahlawan di satu bagian aplikasi tetapi tidak ingin menyentuh yang lain.
Tim scrum bekerja sama dengan baik dan saling mendukung, dengan dorongan khusus untuk berbagi pengetahuan dalam tim dan mencari tantangan untuk bekerja pada bagian lain dari aplikasi akan berusaha untuk memastikan pengetahuan aplikasi dibagikan. Beberapa praktik seperti pemrograman pasangan dapat membantu orang mengatasi rasa takut mereka bekerja pada kode yang tidak mereka kenal sementara juga belajar dan berbagi pengetahuan itu. Ini mungkin memerlukan beberapa sprint sebelum pengetahuan aplikasi didistribusikan antara tim dan orang-orang merasa nyaman bekerja di area aplikasi apa pun. Juga, memungkinkan orang untuk melakukan tugas-tugas dewan, yaitu membuat pilihan mereka sendiri tentang apa yang ingin mereka kerjakan, dapat mendorong hal ini.
- Berbagai pendekatan arsitektur, solusi, kerangka kerja yang diadopsi
Scrum memfasilitasi komunikasi yang lebih baik, memfasilitasi kerja tim dan pengambilan keputusan yang lebih baik serta memberikan visibilitas yang lebih besar ke dalam apa yang sedang terjadi. Ini adalah gilirannya harus memfasilitasi keputusan organisasi di sekitar penggunaan kerangka kerja, solusi arsitektur, dll dan penggunaan mekanisme Scrum of Scrums dapat membantu dalam menanamkan bahwa di seluruh organisasi.
- Persyaratan Proses Pengumpulan
Sekali lagi, jika Anda mematuhi aturan dengan ketat, jika persyaratan tidak ditentukan dan siap untuk tim untuk dapat memahami dan memperkirakan apa yang diperlukan untuk memenuhi persyaratan, itu tidak boleh dibawa ke dalam sprint. Ambil persyaratan lain yang merupakan prioritas tinggi dan telah didefinisikan dengan baik ... karena dengan begitu Anda tahu Anda akan dapat mewujudkannya! Meskipun mungkin tidak segera memperbaiki proses pengumpulan persyaratan, itu akan memaksa perubahan yang diperlukan untuk memperbaiki proses itu.
Untuk menjawab pertanyaan pertama Anda, tidak, seharusnya tidak ada dua tumpukan yang terpisah. Pada waktu tertentu, demi kepentingan semua orang, pengembang dan organisasi mengerjakan item prioritas tertinggi terlebih dahulu. Prioritas terutama harus didasarkan pada nilai bisnis, dan sangat mungkin banyak perubahan kecil dan permintaan menambah nilai bisnis. Biarkan pemilik produk memutuskan itu.
Saya telah menjadi Scrum Master selama lebih dari 7 tahun dan membantu memperkenalkan Scrum ke banyak tim dan perusahaan. Dalam pendapat saya yang rendah hati dan dari pengamatan saya, saya merasa bahwa jika Scrum diperkenalkan ke organisasi Anda untuk pertama kalinya, ikuti dengan buku. Jangan menyimpang. Scrum membutuhkan disiplin untuk dapat tetap berpegang pada praktik dan proses. Terlalu mudah untuk membuat pengecualian agar sesuai dengan keadaan tertentu, dan jika dilakukan terlalu dini, akan menyebabkan erosi manfaat dan nilai-nilai yang dibawanya. Lakukan dasar-dasarnya, lakukan dengan sangat baik. Menjadi seorang ahli dalam melakukan dasar-dasar dan memahami mengapa mereka ada di sana, dan kemudian mengubah prosesnya agar lebih sesuai dan untuk mendorong perbaikan berkelanjutan dalam organisasi Anda.
Ada kasus yang sangat valid untuk mengatakan ini "Agile", jadi kita harus bersedia mengubah proses, tetapi ada perbedaan yang signifikan antara tim yang mengatur diri sendiri, mengatur diri sendiri memahami proses dan mendiskusikan perubahan yang dapat dilakukan untuk proses, sebagai lawan dari tim yang baru mulai berjalan di jalur Agile atau Scrum. Ini seperti mencoba berlari sebelum Anda tahu ...
sumber