Mengapa saya perlu SCRUM vs. proses yang kurang formal dan lebih ringan untuk tim saya?

25

Saya ingin memulai pertanyaan saya dengan mengatakan bahwa saya mengerti bahwa SCRUM atau turunannya mungkin cara yang baik untuk mengelola pengembangan perangkat lunak. Tampaknya semua perusahaan besar dan manajer saya menggunakannya atau telah menggunakannya, dan saya tidak bisa berdebat dengan semua pengalaman itu. Namun saya berjuang untuk memahami "mengapa" dan semua bacaan dan bahkan pelatihan SCRUM resmi saya di tempat kerja tidak melakukan pekerjaan untuk saya. Itu semua hanya retorika. Jadi saya datang ke sini mencari jawaban.

Sampai sekarang, saya telah mengembangkan dalam tim beranggotakan 4-5 orang dengan sangat efektif, sepenuhnya mengatur diri sendiri dan tanpa memerlukan pelatihan, metodologi, atau perangkat lunak khusus. Hanya diskusi dalam kubus, pertemuan ad hoc, dan ulasan kode satu-satu. Saya sekarang dalam posisi di tempat kerja di mana kami diberitahu bahwa SCRUM adalah cara untuk pergi, dan segala sesuatu yang menyertainya. Ketika mereka menggambarkan SCRUM kepada saya, saya membaca hal-hal seperti ini:

  • Individu dan interaksi atas proses dan alat
  • Bekerja dengan perangkat lunak melalui dokumentasi yang komprehensif
  • Kolaborasi pelanggan atas negosiasi kontrak
  • Menanggapi perubahan setelah mengikuti rencana

Itu bagus, tetapi semua itu sepertinya masuk akal bagi saya. Mengapa ini perlu dikodifikasi? Kemudian saya diberitahu bahwa metodologi membantu kita merespons perubahan. Apa yang spesifikaspek-aspek SCRUM memungkinkan saya untuk menjadi begitu fleksibel sehingga saya sebelumnya tidak mencapai dengan pertemuan ad hoc saya, diskusi kubus, dan pertemuan perencanaan pengembang? Mereka menjelaskan perlunya memiliki pengiriman kerja setiap dua minggu, atau lari cepat. Dalam proyek khusus saya, tidak ada "klien", perangkat lunak tidak akan selesai selama satu tahun atau lebih, dan sementara itu saya mungkin hanya akan melakukan demo ke manajemen atas setiap bulan atau kurang. Jadi mengapa kebutuhan eksplisit untuk pengiriman setiap minggu? Mereka menekankan pentingnya pertemuan perencanaan sprint di mana seluruh tim menjabarkan cerita dan tugas untuk sprint berikutnya. Ini tidak berbeda dengan pertemuan perencanaan dadakan yang pernah saya alami di masa lalu. Mengapa itu harus terjadi setiap Senin, dan mengapa seluruh tim harus dilibatkan? Saya memahami konsep setiap anggota "memiliki" produk, tetapi faktanya, hanya beberapa individu yang benar-benar dapat berkontribusi untuk memecah setiap cerita menjadi tugas, sementara sisanya hanya menonton iseng.

Sekali lagi, saya mengerti bahwa sebagian besar orang berada di belakang proses ini, dan karena itu harus bekerja, dan saya harus bergabung. Saya hanya ingin mengerti mengapa. Apakah masalah saya bahwa saya sudah mempraktekkan hal-hal ini dan tidak suka mengkodifikasi dengan tidak perlu? Atau mungkin saya belum melihat kelebihan dari teknik ini karena dilakukan dengan tidak tepat? Segala informasi atau saran pribadi yang nyata mengenai hal ini, sebagai lawan dari omongan yang biasa saya terima, akan sangat dihargai.


sumber
Saya tidak yakin saya mengerti apa yang Anda maksud dengan "lebih ringan". Apakah itu seperti ... tidak ada sama sekali? Tidak ada proses? Atau seperti beberapa spesifikasi, tugas JIRA, dan kontribusi pengembang individual? Jadi tolong jelaskan apa yang Anda maksud dengan itu.
Schultz9999
kamu tidak membutuhkannya. Saya yakin scrum berfungsi sebagai model untuk tim yang lebih besar di mana ada lebih banyak variabel daripada yang dapat Anda pikirkan, atau dalam situasi di mana manajer bukanlah pemimpin alami yang baik dan membutuhkan beberapa jenis video / templat pelatihan untuk diikuti. sepertinya Anda tidak termasuk dalam salah satu dari kategori ini, jadi belasungkawa. tim lain yang baik menggigit debu birokrasi.
leeny
4
Yang lebih ringan maksud saya kurang kaku. Saya berharap pengembang merencanakan tugas, mengkaji kode, mengevaluasi apa yang tidak berhasil, membagikan apa yang mereka lakukan secara semi-reguler. Namun saya tidak merasa bahwa hal-hal ini harus sangat ketat, mis. Rencanakan setiap Senin, berdiri setiap hari saat ini, retrospektif setiap hari Jumat lainnya, lari jarak jauh, dll. Saya merasa saya sudah melakukan banyak hal SCRUM meliputi, tetapi tanpa arah, terminologi, atau agenda yang eksplisit.
Pernahkah Anda melihat teknik dan prinsip Kanban atau Lean? Sepertinya Anda sudah memiliki proses Agile yang cukup. Lean dapat membantu Anda meningkatkan tanpa membatasi cairan Anda, proses kerja. Kanban juga menggunakan "irama" daripada lari cepat, yang berarti bahwa setiap pertemuan dapat dilakukan dengan ritme sendiri, daripada harus bekerja dengan semua pertemuan lainnya dalam siklus 2 minggu.
Lunivore
2
Anda berbicara tentang Scrum tetapi mengutip Agile Manifesto. Scrum adalah tentang mendefinisikan artefak, peran, rapat, sprint, pengukuran, dll. Anda pasti bisa gesit tanpa menerapkan Scrum dan sebagian besar Anda bisa melakukan Scrum dan tidak gesit.
Guy Sirton

Jawaban:

13

Saya pikir ada dua aspek untuk menjawab pertanyaan Anda, tetapi izinkan saya mulai dengan memberi selamat kepada Anda karena telah bekerja dengan orang-orang yang tampaknya cukup pintar dan kompeten untuk dapat bekerja cukup banyak tanpa proses yang sangat jelas dan tetap memberikan produk. Sayangnya ini bukan kasus di semua tim perangkat lunak, jadi mungkin salah satu masalah Anda dengan Scrum mungkin Anda dan rekan kerja Anda sebenarnya tidak memerlukan proses yang dibuang ke Anda untuk membuat Anda lebih efektif. Anda mungkin sudah efektif.

Tim lain tidak dan perlu proses yang lebih ketat dan beberapa pedoman untuk menyelesaikannya. Ini tidak berarti bahwa tim-tim ini lebih bodoh atau kurang mampu, itu hanya berarti bahwa mereka mungkin memiliki masalah mengatur diri sendiri atau bekerja dengan disiplin sebagai sebuah tim. Ini juga bisa menjadi pengalaman belajar yang sederhana ketika datang dari tempat di mana orang bekerja kebanyakan sendirian untuk bekerja bersama sebagai sebuah tim. Scrum dapat membantu mencapainya, karena ia menawarkan beberapa panduan yang cukup mudah dipahami dan diikuti, namun cukup efektif untuk memberi tekanan pada tim untuk mulai menyatukannya.

Karena Scrum tidak mengatakan apa-apa tentang cara pengembangan perangkat lunak harus dilakukan, ia juga meninggalkan tim dengan kebebasan untuk memutuskan sendiri (mis. Anda masih dapat melakukan sprint menggunakan metode air terjun yang agak konservatif selama Anda dilakukan di akhir sprint).

Jadi tim adalah satu masalah. Masalah lainnya adalah manajemen dan kepercayaan manajemen. Di sini, Scrum mungkin baik karena transparan dan memungkinkan semua pemangku kepentingan untuk melihat kemajuan yang dibuat tim dalam siklus yang ditentukan. Jadi ini bukan "kami membuat kemajuan, sayangnya kami tidak dapat menunjukkan apa pun kepada Anda sekarang, tapi percayalah, kami akan selesai tepat waktu". Ini mungkin benar, tetapi dapat meyakinkan bagi manajer mana pun untuk benar-benar memiliki demo reguler di mana mereka dapat melihat bahwa kemajuan memang terjadi.

Scrum bukan peluru perak. Ini mungkin tidak berfungsi untuk beberapa tim karena berbagai alasan, mungkin untuk beberapa tim pengaturan diri tidak berhasil. Mungkin bagi Anda itu adalah cara lain dan sepertinya proses dilimpahkan pada tim yang sudah produktif dan terorganisir.

Ketika ragu saya akan menyarankan Anda mencobanya dan lihat saja. Jika tidak berhasil dan sebagian besar tim tidak suka bekerja seperti itu, jangan lakukan itu. Namun, periksa selama beberapa bulan (saya katakan beberapa bulan, karena beberapa sprint pertama akan terasa canggung dan Anda perlu waktu untuk menyesuaikan detailnya) dan kemudian mengevaluasi kembali.

Anne Schuessler
sumber
Terima kasih untuk balasan Anda. Saya pasti akan mencobanya karena saya harus, jadi mudah-mudahan saya akan melihat proses membaik dari waktu ke waktu. Anda membuat dua poin bagus. Meskipun saya mungkin sangat percaya diri pada kemampuan saya sendiri dan tim saya untuk menyelesaikan sesuatu, hal yang sama tidak dapat dikatakan untuk setiap tim di perusahaan, sehingga manajemen dapat dimengerti ingin proses untuk mendorong perilaku itu. Selain itu, sementara saya tahu manajer saya mempercayai pekerjaan kami dan kata-kata kami, perlu ada visibilitas ke pihak lain yang berkepentingan, seperti mereka yang berinteraksi dengan pelanggan atau manajemen tingkat atas.
11

Mungkin kontroversial, tetapi Scrum paling baik untuk mengurangi ketakutan manajemen Agile, atau untuk digunakan dengan tim yang sudah berkinerja buruk. Jika tim Anda berjalan dengan baik, mencapai tujuan, menghasilkan uang, dan bahagia, Scrum tidak akan membelikan Anda apa pun karena semua itu akan mengganggu keseimbangan kegiatan yang Anda lakukan (dan membuat tim Anda sukses). Scrum bukan peluru perak. Dalam pengalaman saya dengan itu, itu hanya membantu tim yang memiliki estimasi dan komunikasi yang buruk untuk memulai. Tim yang bekerja dengan perkiraan realistis dalam lingkungan komunikasi yang efektif hanya terhalang oleh proses overhead Scrum.

Percaya atau tidak, tim perangkat lunak yang baik memang ada sebelum Scrum datang. Scrum membantu yang buruk menjadi lebih baik.

segera
sumber
"Percaya atau tidak, tim perangkat lunak yang baik memang ada sebelum Scrum datang. Scrum membantu yang buruk menjadi lebih baik." Di sisi lain, saya akan membantah bahwa, dari perspektif manajemen, mereka sangat jarang sehingga pengamatan Anda diperdebatkan.
Ben
+1 (+100, jika saya bisa): Pengalaman yang sama di sini.
Giorgio
7

Sebagian besar jawaban di sini sudah menyebutkan alasannya, meskipun sedikit tidak langsung. Jawaban Anne sangat mencerahkan ketika dia menyentuh transparansi. Yaitu, memungkinkan manajer untuk melihat apa yang terjadi. Dan jawaban Schultz menyentuh hal ini juga ketika dia berbicara tentang orang-orang yang tidak dapat menyembunyikan fakta bahwa mereka malas.

Jadi saya ingin mengatakan apa yang orang lain katakan tetapi dalam bahasa yang lebih langsung: tujuan utama SCRUM bukan untuk mengelola pengembangan perangkat lunak, tujuan utama SCRUM adalah untuk mengukur pengembangan perangkat lunak.

Sistem lain telah mencoba sebelumnya dan orang-orang telah mengusulkan metrik yang tak terhitung jumlahnya untuk mencoba dan mengukur pengembangan perangkat lunak tetapi gagal. SCRUM membalikkan masalah dan mengalihkan beban pengukuran dari manajer ke pengembang itu sendiri. Logikanya sederhana: siapa yang lebih baik memperkirakan berapa lama untuk melakukan sesuatu daripada mereka yang melakukan pekerjaan itu sendiri?

Sekarang, masalah dengan ini adalah bahwa programmer terkenal terlalu optimis. Tanyakan kepada seorang programmer berapa lama untuk melakukan sesuatu dan dia biasanya akan meremehkan betapa sulitnya tugas itu sebenarnya. SCRUM menyediakan alat untuk mengontrol ini:

  • pertemuan harian untuk mengukur kemajuan dan mendapatkan gambaran besar tentang proyek
  • perkiraan dilakukan dalam "poin" alih-alih jam / hari ke waktu tayang abstrak
  • burn-down charts dan tortise / hare chart untuk memvisualisasikan kecepatan poin
  • cerita dan tugas di papan tulis untuk mendapatkan tampilan keseluruhan dari beban kerja
  • sprint dan iterasi untuk bertindak sebagai tenggat waktu sehingga kita dapat mengukur kemajuan
  • peran khusus untuk master scrum, pemilik dan anggota tim untuk menghindari godaan untuk menipu

dll.

Anda mungkin memperhatikan bahwa semua di atas terutama melakukan dua hal:

  1. Mereka mengukur pekerjaan. Baik pekerjaan yang harus dilakukan atau pekerjaan yang sedang dilakukan atau pekerjaan yang diselesaikan.
  2. Mereka berusaha sangat keras untuk menghindari masalah programmer yang terlalu optimis untuk mendapatkan perkiraan yang lebih baik dan lebih realistis.

Semakin lama Anda mengimplementasikan SCRUM, semakin akurat perkiraan Anda. Bahkan, saya pribadi percaya menjalankan sprint + backlog + grafik burn-down saja sudah cukup untuk menyembuhkan sebagian besar programmer membuat perkiraan buruk tentang berapa lama waktu yang dibutuhkan untuk melakukan sesuatu.

Slebetman
sumber
Terima kasih! Sekarang saya akan mempertimbangkan pengukuran sebagai bagian yang menonjol dalam mengevaluasi SCRUM. Saya kira memang benar bahwa walaupun saya dapat mempercayai tim saya untuk membuat jadwal sendiri dan berkembang secara efektif, mungkin sulit melihat gambaran kemajuan yang lebih besar tanpa cerita pengguna yang eksplisit dan penerimaan pelanggan secara teratur. Saya kira satu masalah yang saya miliki adalah bahwa meskipun senang melihat kemajuan visual yang eksplisit, itu tidak selalu diterjemahkan menjadi bagaimana "selesai", saya pribadi merasakan proyek tersebut. Saya sering muncul dengan bidang perbaikan saya sendiri yang saya rasa perlu perhatian saat mengembangkan, dan SCRUM membatasi kreativitas ini.
2
Saya pribadi menjalankan SCRUM yang dimodifikasi di mana kami secara berkala (setiap empat atau lima sprint) menjalankan sprint refactor. Perbedaan antara sprint reguler dan sprint refactor adalah bahwa selama sprint pengembang refactor mengirimkan semua cerita. Pada dasarnya mengabaikan prioritas pemilik produk. Bos saya menerima ini sebagai kejahatan yang diperlukan untuk menghindari pembusukan kode. Juga, kadang-kadang cerita memicu refactor ketika lebih dari satu programmer merasa kode yang perlu disentuh adalah "yucky". Ketika itu terjadi, saya mengizinkan pengembang untuk mengirimkan cerita mereka sendiri.
Slebetman
(terus-menerus) .. Pengembang yang mengirimkan cerita tentu saja, secara tegas, tidak direkomendasikan. Tetapi SCRUM tidak berfungsi dengan baik jika kualitas kode menurun. Jika kode Anda berantakan sehingga perlu beberapa minggu untuk mengimplementasikan cerita maka Anda tidak lagi "gesit". Coba sarankan dua perubahan di atas untuk manajemen. Juga, jangan lupa bahwa SCRUM hanyalah alat - alat yang membutuhkan banyak latihan untuk digunakan dengan benar tetapi pada akhirnya hanya alat.
Slebetman
Catatan tambahan: Awalnya saya menjual ide sprint refactor kepada manajemen dengan membuat sprint refactor hanya satu minggu daripada sprint penuh. Saat ini ini adalah sprint penuh tetapi itu terutama karena produk ini pada dasarnya sepenuhnya dikembangkan dan sekarang dalam mode peningkatan pemeliharaan / tambahan.
Slebetman
+1 untuk komentar slebetman tentang memiliki sprint refactor. Ini kedengarannya cara yang efektif untuk menghilangkan hutang teknis. Jika Anda melakukan ini secara teratur dan tidak ketika segala sesuatunya sudah tidak terkendali dan pemilik serta manajer produk tidak keberatan dengan itu, saya dapat membayangkan bahwa ini membantu memperbaiki masalah dengan kualitas kode yang telah terjadi selama sprint terakhir.
Anne Schuessler
2

Secara pribadi saya pikir tujuan SCRUM adalah untuk memuaskan organisasi yang lebih tua di mana manajemen tingkat atas tidak dapat atau tidak akan berada di belakang proses yang lebih ramping. Saya telah bekerja sebagai arsitek (Ayam) selama sekitar satu tahun di departemen yang sangat memanfaatkan SCRUM. Latar belakang saya sebelumnya adalah startup Silicon Valley yang sebagian besar menggunakan proses yang berfokus pada fitur yang jauh lebih ramping, ad hoc dan sangat iteratif (kadang-kadang dorongan mingguan atau bahkan harian). Saya menemukan SCRUM, setidaknya cara kami menerapkannya untuk menjadi berlebihan dalam hal proses (dan dalam beberapa hal lebih berat daripada air terjun (setidaknya dari perspektif pengembang). Agar adil, saya akan mengatakan bahwa salah satu aspek dari proses kami yang menyimpang adalah bahwa pemilik produk kami sebenarnya lebih mirip dengan analis persyaratan dalam organisasi TI. Akibatnya mereka cenderung menumpulkan informasi yang berasal dari bisnis dan lebih buruk meninggalkan bisnis tidak bertanggung jawab kepada tim pengembangan (yang membutuhkan infus cerita pengguna yang berurutan secara teratur). Meskipun demikian, dalam startup masa depan saya, saya tidak akan menggunakan SCRUM. Saya mungkin hanya menggunakannya dalam situasi di mana manajemen membutuhkan biaya tambahan.


sumber
"Secara pribadi saya pikir tujuan SCRUM adalah untuk memuaskan organisasi yang lebih tua di mana manajemen tingkat atas tidak dapat atau tidak akan berada di belakang proses yang lebih ramping". Anda mungkin berpikir demikian, tetapi pengalaman telah menunjukkan kepada saya bahwa Scrum adalah serangkaian praktik yang membantu memberikan perangkat lunak tepat waktu dan ke kualitas yang lebih tinggi, sambil tetap mempertahankan ketangkasan (kemampuan untuk merespons kebutuhan yang berubah-ubah). Apakah praktik ini membantu organisasi yang lebih tua atau perusahaan dengan hal-hal manajemen atas yang mencintai air terjun tidak.
Ben
1

Saya tidak akan berbicara dari sudut pandang seorang purist. Saya merasa Anda dapat menjalankannya dengan cara yang mirip dengan yang dikatakan Scrum. Namun intinya adalah kemampuan Anda untuk menjalankan pertunjukan. Apa yang akan terjadi jika Anda berlibur selama sebulan?

Saya melihat scrum sebagai mekanisme untuk merampingkan semua yang telah Anda lakukan dan meletakkan beberapa aspek yang telah ditentukan. Sehingga dalam ketidakhadiran Anda, orang lain juga dapat mereplikasi dan mereplikasi itu ke proyek lain juga. Namun scrum bukan peluru perak. Saya telah melihat banyak orang yang baru mulai menggunakan Scrum (karena sedang dalam mode) dan dipukuli dengan buruk karena mereka tidak memahami esensi dari itu.

PS: Scrum tidak mengamanatkan bahwa sprint Anda harus dua minggu. Ini bisa menjadi bulan (untuk kasus Anda).

Pradeep
sumber
Poin Anda tentang ketidakhadiran adalah poin yang bagus. Terlepas dari seberapa kuat saya merasakan tim saya, perlu untuk menjadi sama efektif apakah ada dua anggota tim di kantor atau enam. Jika hanya beberapa orang kunci yang menjadwalkan ulasan kode, memeriksa kemajuan, dll., Maka grup tersebut mungkin terlalu bergantung pada individu-individu tersebut untuk menjaga semuanya berjalan lancar. SCRUM seharusnya bisa membantu semua orang mengadopsi pola pikir yang benar.
1

Silakan lihat komentar saya untuk pertanyaan terlebih dahulu.

SCRUM adalah paradigma pengembangan perangkat lunak yang gesit. Dengan demikian, ia gesit sendiri. Itu tidak menganggap Anda harus mengikuti model klasiknya. Dan saya ragu apakah ada yang benar-benar melakukannya. Saya dulu bekerja di beberapa organisasi dan setiap tim menyesuaikannya dengan kebutuhan mereka. Bukan hal yang aneh jika tidak ada pelanggan / konsumen dalam hal merilis beberapa produk / perpustakaan / API publik. Saya tidak pernah memilikinya. Dalam kasus saya, GM kami bertindak sebagai satu, yang IMO seperti tidak memilikinya.

Memiliki sprint 2 minggu itu sulit. Sangat tangguh. 3 minggu lebih baik tetapi benar-benar berpengalaman dan akrab dengan tim proses. Kami punya 4 minggu atau sebulan. Itu memberi kami cukup waktu untuk "menyelesaikan" sehingga untuk berbicara di awal dan lebih percaya pada akhirnya karena lebih banyak selama pengujian. Saya suka itu dan saya bertahan setidaknya 3 minggu.

Tim lain yang saya ajak berkolaborasi, tidak memiliki apa pun selain jaminan simpanan. Mereka akan berkumpul, melaporkan status dan apa selanjutnya dan hanya itu. Setelah semuanya selesai, mereka akan datang dengan simpanan lain. Mereka tahu itu bukan SCRUM tetapi itu bekerja untuk mereka dan itulah yang penting.

Apakah ini lebih ringan? Pasti begitu. Tapi ini bukan SCRUM. Apa yang saya sukai dari SCRUM adalah mempromosikan disiplin. Orang-orang merasakan tekanan untuk mengirimkan sesuatu setiap hari. Semua orang tahu apa yang dilakukan orang lain dan dia gagal, semua orang akan tahu itu. Bahkan jika seseorang mencoba untuk menutupi itu (baca kebohongan), itu menjadi jelas lebih cepat daripada dengan proses lainnya. Jadi ketika Anda menyimpang dan menyederhanakan seperti dengan tim itu, Anda harus yakin melakukannya dengan orang yang tepat. Kalau tidak, itu mungkin akan hancur dengan sangat cepat menjadi pertemuan status yang tidak berarti di mana semua orang hanya akan tinggal dan berpikir, "Apa yang saya lakukan di sini?

Itu dua sen ku. Saya melakukan SCRUM sendiri seperti pengembangan: merencanakan pekerjaan, membagi tugas, memperkirakannya, mengamati perkembangannya. Ini sangat membantu saya untuk menjadi yang terbaik. Saya menerapkan beberapa hal dari SCRUM ke proyek-proyek yang saya outsourcing dan itu berhasil bagi saya.

Hanya ... tetap gesit ;-)

Schultz9999
sumber
1

Saya sarankan Anda mengabaikan scrum. Dalam beberapa tahun, sebuah mode baru akan muncul, dan Anda akan menjadi tidak terlalu sinis dan masih bisa merangkulnya dengan sepenuh hati. Bahkan Anda bisa dengan cepat menjadi ahli. Maka Anda dapat menghasilkan banyak uang dengan menulis buku di atasnya dan berbicara di konferensi.

Karena banyak hal bersifat siklus, kemungkinan besar mode baru ini akan menjadi proses yang berat mirip dengan RUP. Apa yang akan terjadi Anda lihat adalah bahwa semua orang akan mengikuti proses gesit ringan, dan ini akan disalahkan atas kegagalan proyek mereka. Jadi tentu saja solusi logisnya adalah perencanaan dan desain yang lebih maju diperlukan!

Serius, saya pikir Anda tidak perlu Scrum. Tidak ada dalam scrum yang lebih baik daripada proses gesit lain yang bersaing. Juga ada banyak nama bodoh untuk hal-hal.

Antonio2011a
sumber
1

Itu bagus, tetapi semua itu sepertinya masuk akal bagi saya. Mengapa ini perlu dikodifikasi?

Scrum biasanya dibandingkan dengan metodologi yang lebih tua dan lebih berat. Metodologi mencoba membuat air terjun umpan balik bekerja dengan menegakkan lebih banyak dokumen, lebih banyak sign-off, dan lebih banyak perencanaan di muka. Manifesto Agile (yang Anda kutip) adalah pembalikan dari ide-ide itu.

Lalu saya diberitahu bahwa metodologi membantu kita merespons perubahan. Apa aspek spesifik dari SCRUM yang memungkinkan saya untuk menjadi sangat fleksibel sehingga saya sebelumnya tidak mencapai dengan pertemuan ad hoc saya, diskusi kubus, dan pertemuan perencanaan pengembang?

Sepertinya Anda sudah memiliki struktur yang gesit. Jika Anda sudah merespons untuk berubah dengan baik, maka Anda jelas tidak membutuhkan bantuan. Beberapa proses menjadi sangat tersembunyi dengan prosedur yang memperbaiki bug memerlukan tahap analisis penuh dan desain fungsional, dan tidak dapat masuk ke proyek sampai tahun depan, paling cepat.

Mereka menjelaskan perlunya memiliki pengiriman kerja setiap dua minggu, atau lari cepat. Dalam proyek khusus saya, tidak ada "klien", perangkat lunak tidak akan selesai selama satu tahun atau lebih, dan sementara itu saya mungkin hanya akan melakukan demo ke manajemen atas setiap bulan atau kurang. Jadi mengapa kebutuhan eksplisit untuk pengiriman setiap minggu?

Scrum Asli mengatur sprint selama sebulan. Ada tren buruk menuju machile Agile dalam memperpendek sprint. ("Ya, well sprint kami hanya satu hari ...") Pelanggan / Klien adalah siapa pun yang memiliki wewenang untuk mengatakan bahwa proyek itu baik untuk dijalankan, atau membutuhkan lebih banyak pekerjaan. Jika Anda melakukan demo ke manajemen tingkat atas setiap bulan, mereka mungkin adalah pelanggan Anda, dan Anda mungkin sudah sangat dekat dengan Scrum.

Berdasarkan deskripsi Anda tentang apa yang dilakukan tim Anda, Scrum mungkin tidak jauh berbeda. Anda mungkin mendapatkan beberapa nilai dari standardisasi, karena akan lebih mudah untuk menjelaskan kepada orang luar apa yang terjadi jika Anda menggunakan istilah Scrum. Juga, Scrum dapat digunakan sebagai tameng; misalnya, Scrum menentukan bahwa keputusan teknis harus dibuat oleh tim - menunjukkan prinsip ini bisa menjadi cara yang baik untuk mendapatkan nilai teknis yang sulit dijual (Pair programming, misalnya.)

Scrum pada dasarnya adalah antarmuka yang dapat diterapkan tim Anda. Jika ya, maka Anda memiliki ide bagus tentang cara berkomunikasi dengan orang-orang di luar tim, dan mereka memiliki ide bagus tentang cara berkomunikasi dengan Anda. Hanya Anda yang dapat mengetahui apakah tim Anda membutuhkan ini.

Sean McMillan
sumber
0

Kami tidak menggunakan Scrum di tempat kerja. Kami menggunakan metodologi yang didirikan di Agile dan Lean yang serupa dalam banyak hal. Saya telah menggunakan proses ini dalam tim dengan ukuran bervariasi antara 3-5 orang termasuk pemimpin. Meskipun ada perbedaan, saya pikir Anda mungkin dapat membantu Anda mengetahui apakah Scrum berguna untuk situasi Anda.

Menjadikan Metodologi yang Tepat

Kami membuat proses kami eksplisit karena kami meninjau proses kami dengan setiap bungkus / ulasan sprint. Bagian dari penutup / tinjauan adalah untuk mengidentifikasi praktik-praktik yang tidak berhasil bagi kami. Kami juga membahas praktik-praktik yang kami pikir akan berhasil untuk kami dan jika ada cukup kesepakatan kami akan mencobanya. Kami tidak akan dapat melakukan ini tanpa mengodifikasi metodologi kami.

Keluar

Ini adalah pekerja keras untuk proses kami. Ini menjamin apa yang kami tulis adalah apa yang dibutuhkan. Ketika kami mendapatkan fitur tertentu, kami mendatangi pelanggan kami. Pelanggan adalah siapa pun yang akan menggunakan tulisan Anda. Dalam beberapa kasus, Anda harus mem-proxy pelanggan dengan seseorang yang mewakili pelanggan (seperti manajemen produk). Ini adalah langkah-langkah kami, dan sampai langkah terakhir selesai fitur belum selesai.

  • Dapatkan fitur dari papan, pelacak, dll.
  • Bicaralah dengan pelanggan dan pahami apa yang mereka cari sebelum menulis apa pun.
  • Terapkan fitur tersebut.
  • Tunjukkan pada pelanggan fitur yang berfungsi dalam bentuk finalnya. Berikan tanda pelanggan pada fitur yang lengkap.

Irisan Vertikal

Kami melakukan semua pengembangan kami dalam irisan vertikal. Ini mendukung kemampuan untuk keluar dengan fitur yang lengkap serta alasan lainnya.

  • Amortisasi masalah integrasi dengan memasukkannya ke dalam setiap fitur. Membantu menghilangkan waktu krisis di akhir proyek.
  • Memungkinkan kita untuk memotong fitur dengan mudah karena kita menghilangkan banyak dependensi silang.
  • Mengizinkan kami menghentikan pengembangan jika kami perlu mengubah arah.
  • Kami dapat melakukan rilis berulang , menyediakan fungsi awal bagi pelanggan.

Penerimaan TDD

Kami memanfaatkan kerangka kerja unit test untuk penerimaan tdd. Ini memberi kita banyak manfaat.

  • Restrukturisasi besar tidak memerlukan banyak waktu pengerjaan ulang pengujian.
  • Kami menjamin fungsionalitas pelanggan.
  • Kami membahas integrasi kode.
  • Mendukung praktik pengembangan Iris Vertikal.

Build Selalu Dapat Dihidupkan Kembali

Setelah setiap dorongan kode harus dapat dirilis. Bahkan jika fitur tidak lengkap, tidak ada yang harus dilanggar. Semua tes harus dijalankan, dan semua fungsi sebelumnya harus ada. Ini benar-benar perpanjangan dari pengembangan slice vertikal kami. Karena itu ia berbagi banyak manfaat yang sama.

  • Memungkinkan kita untuk memotong fitur dengan mudah karena kita menghilangkan banyak dependensi silang.
  • Mengizinkan kami menghentikan pengembangan jika kami perlu mengubah arah.
  • Kami dapat melakukan rilis berulang , menyediakan fungsi awal bagi pelanggan.

Integrasi berkelanjutan

Setiap push menghasilkan build melalui server CI build kami. Server build memeriksa kode, menjalankan seluruh test suite, menandai kode, dan mengemasnya untuk digunakan. Perkuat kebijakan kami bahwa build selalu dapat dirilis.

Estimasi Poin untuk Kartu

Setiap bug, fitur, dan tugas menjadi "kartu". Kartu adalah unit kerja logis terkecil yang memiliki manfaat bagi pelanggan. Kami menunjukkan ini sesuai dengan skala kami. Apa pun yang melebihi nilai poin maksimum kami atau dirinci lebih lanjut. Kami telah menemukan semakin besar nilai poin, semakin banyak penyimpangan dalam waktu penyelesaian, sehingga memecah kartu besar lebih jauh. Jika kartu memiliki ambiguitas yang cukup, kartu itu dibulatkan ke nilai poin berikutnya dalam skala. Setiap kartu harus ditandatangani sebelum dapat dianggap lengkap. Estimasi yang tepat mendukung kemampuan kita menghitung Velocity.

Kecepatan

Kami memiliki sprint selama seminggu. Setiap hari Jumat kami melakukan perencanaan kerja dan memprioritaskan pekerjaan untuk minggu depan. Berdasarkan kecepatan kami, kami memiliki ide bagus tentang berapa banyak "pekerjaan" yang dapat kami capai dalam seminggu. Kecepatan kami adalah rata-rata dan median dari total poin yang diselesaikan dalam seminggu. Peningkatan deviasi standar dianalisis untuk estimasi buruk (yang selalu berusaha menjadi lebih baik), atau peningkatan interupsi (yang saya bicarakan dengan manajer). Kecepatan juga dapat digunakan untuk memperkirakan tanggal penyelesaian yang akurat untuk suatu proyek, tetapi hanya jika itu adalah satu-satunya proyek yang sedang dikerjakan.

Peningkatan dan Desain Tambahan

Kami juga memiliki kebijakan untuk meninggalkan kode setidaknya dalam keadaan sedikit lebih baik daripada bagaimana Anda menemukannya. Refactor / mendesain ulang kode di awal kartu. Tujuannya adalah untuk memperhitungkan pertumbuhan organik yang dapat lazim dengan perkembangan tambahan. Kami juga melakukan refactor pada akhir per normal.

Sebagian besar ini adalah aturan yang kita ikuti dan mengapa kita mengikutinya.

dietbuddha
sumber
0

Bagi saya sepertinya Anda berada di tim yang sangat berpengalaman dan berfungsi tinggi. Selamat, Scrum / Agile pada dasarnya meresmikan apa yang telah diintimidasi tim Anda selama ini.

Saya pikir apa yang mungkin untuk keuntungan (seluruh) perusahaan Anda adalah mengadopsi Scrum sebagai "landasan bersama", bukan antara anggota tim pengembangan Anda, tetapi antara tim pengembangan Anda dan departemen bisnis pada umumnya .

Sementara Scrum Sprint adalah kotak waktu, tim dapat memilih antara rekomendasi mulai dari dua minggu hingga 1 bulan. Semakin rendah dan akan ada terlalu banyak Ulasan dan Retrospektif, dan ada lagi yang dapat menghambat kemampuan bisnis untuk mengubah arah dalam setahun. Sepertinya Anda sudah menemukan sweet spot 1 bulan Anda, jadi dorong untuk itu.

Ada banyak peluang bagi Anda untuk menyesuaikan parameter Scrum dan saya yakin Anda dapat menjelaskan kepada bisnis Anda bahwa Anda masih melakukan Scrum dengan cara yang benar. Salah satu kelebihannya adalah jika Anda memenuhi bisnis di tengah jalan, keterlibatan mereka dapat menghasilkan dukungan positif.

jonathangersam
sumber