Bagaimana cara menghentikan / menghindari Over Time di Tim Scrum?

14

Sebenarnya, saya membantu toko perangkat lunak kecil dalam Implementasi Scrum mereka. Baru-baru ini Scrum Master melaporkan kepada saya bahwa ia memiliki masalah karena Tim bekerja lembur untuk mencapai Ruang Lingkup (Backlog yang Dilakukan). Jadi mereka memiliki Velocity Unreal .

Pertanyaan formal saya adalah:

  1. Selain berbicara tentang Rapat Retrospektif; Menurut Anda apakah itu ide yang baik untuk menerapkan beberapa blok keras untuk menghindari Over Time?
  2. Jika demikian, teknik / alat apa yang Anda sarankan?

    • Sistem Kontrol Revisi (SVN, GIT, HG, dll ...), blok per jam (8 hingga 5)
    • Blok stasiun kerja menurut jam (8 hingga 5) atau jam kumulatif (hingga 8 jam / hari)?
    • Lainnya ...
  3. Atau, mungkin, jangan halangi hal-hal seperti ini; tetapi menerapkan beberapa "Sistem Penalti" untuk Extra Hours Unjustified ?


Pertama: Terima kasih atas tanggapan cepat Anda.

@ Baqueta (dan lainnya dengan pertanyaan serupa): Tidak, mereka tidak dibayar untuk Extra Hours. Saran pertama saya kepada mereka adalah untuk meninjau perkiraan mereka karena mungkin mereka meremehkan. Ini adalah saran favorit saya:

Jika mereka memiliki minat untuk bekerja lembur, hapuslah. Pengembangan bukanlah sesuatu yang dapat Anda lakukan selama 60 jam seminggu dan tetap produktif, dan ada banyak penelitian di luar sana yang membuktikan hal ini. Jika upah lembur adalah masalahnya, singkirkan dan tingkatkan gaji pokok mereka sehingga mereka mendapatkan apa yang layak.

Juga, saya pikir bahwa masalah utama (untuk tim ini), adalah kombinasi dari yang berikut:

  1. Pengembang diberi tahu apa yang harus mereka capai dalam sprint / tidak diajak berkonsultasi tentang apa yang bisa dicapai / diabaikan ketika mereka mengatakan terlalu banyak pekerjaan.
  2. Para pengembang secara konsisten meremehkan berapa banyak tugas yang akan diambil / berapa banyak unit kerja yang terlibat dalam setiap tugas.

Ringkasan: Saya akan berbicara dengan Tim untuk meninjau perkiraan mereka, dan dengan PO karena saya merasa mereka tidak diajak berkonsultasi tentang ruang lingkup, seperti yang Anda sebutkan.

Lorenzo Solano
sumber
4
Pernahkah Anda melihat film Cool Hand Luke ? youtube.com/watch?v=SOWkPk2ETXc Sepertinya Anda ingin tim Anda menghabiskan malam di dalam kotak karena mereka bekerja di luar kotak. Rasanya aneh bagi saya.
jfrankcarr
Mengapa mereka bekerja lembur? Apakah ada tenggat waktu yang membayangi bahwa mereka tidak memiliki kendali atas?
Daenyth
1
Sudahkah Anda mempertimbangkan untuk mengurangi ruang lingkup?
Spoike
2
Hukuman bukanlah kebijakan yang baik untuk pengembang perangkat lunak. Lebih baik untuk merangsang dan mendorong pengembangan tim dan berbagi masalah sebagai tim. Implementasi Srum adalah semua tentang jiwa tim. apa yang dilakukan tuan Scrimmu? Apakah dia ikut campur dalam situasi ini?
Yusubov

Jawaban:

26

Terus terang, "blok keras" yang Anda sebutkan di # 2 adalah ide terburuk yang pernah saya dengar dalam waktu yang lama. Apa yang terjadi jika bug prioritas utama ditemukan pada pukul 16:45 dan orang yang memiliki kemampuan untuk mengganti blok Anda sakit? Adapun # 3 - Anda menyarankan menghukum orang karena melakukan pekerjaan mereka .

Jika tim secara konsisten bekerja lembur untuk menyelesaikan sprint, maka mereka memiliki minat untuk bekerja lembur - misalnya upah lembur atau mendapatkan lembur kembali sebagai hari libur - atau mereka berkomitmen untuk melakukan terlalu banyak pekerjaan dalam sprint.

Jika mereka memiliki minat untuk bekerja lembur, hapuslah . Pengembangan bukanlah sesuatu yang dapat Anda lakukan selama 60 jam seminggu dan tetap produktif, dan ada banyak penelitian di luar sana yang membuktikan hal ini. Jika upah lembur adalah masalahnya, singkirkan dan tingkatkan gaji pokok mereka sehingga mereka mendapatkan apa yang layak.

Jika ada terlalu banyak pekerjaan dalam sprint, ini biasanya karena satu dari tiga alasan:

  1. Pengembang diberi tahu apa yang harus mereka capai dalam sprint / tidak diajak berkonsultasi tentang apa yang bisa dicapai / diabaikan ketika mereka mengatakan terlalu banyak pekerjaan.
  2. Para pengembang secara konsisten meremehkan berapa banyak tugas yang akan diambil / berapa banyak unit kerja yang terlibat dalam setiap tugas.
  3. Pengembang terus ditarik ke tugas yang bukan bagian dari scrum.

Jika ini # 1, Anda salah melakukannya . Tidak ada dua cara tentang itu!

Jika itu # 2, penyebab yang biasa adalah kurang pengalaman - baik dengan melakukan perkiraan waktu, atau dengan sistem yang sedang dikembangkan. Cara yang baik untuk ini adalah berhenti melakukan estimasi waktu dan mulai memperkirakan 'unit kerja'. Gunakan beberapa unit abstrak, pastikan saja itu bukan jam waktu nyata (pada akhirnya Anda masih mewakili interval waktu, tetapi abstraksi itu penting!). Anda kemudian dapat mulai menghitung berapa banyak unit pekerjaan yang benar-benar dilakukan dalam seminggu, kemudian mengatur sprint menggunakan data itu.

Jika ini # 3, Anda harus mulai memfaktorkan tugas-tugas lain itu entah bagaimana. Jika konsisten, harus mudah diperhitungkan (lihat # 2 di atas). Jika sering tetapi tidak dapat diprediksi itu jauh lebih sulit untuk dihadapi. Anda akan ingin melihat mengapa itu terjadi (misalnya bug serius dalam kode 'langsung' => apakah pengujian Anda cukup teliti?) Tetapi jika itu tidak dapat diperbaiki maka akhirnya scrum mungkin bukan pendekatan yang tepat untuk Anda. Tim saya baru-baru ini beralih ke Kanban karena alasan ini ...

Sunting: Mengklarifikasi kritik saya terhadap ide-ide yang disajikan dalam pertanyaan.

vaughandroid
sumber
1
Saya akan menambahkan # 4, para pengembang memiliki tenggat waktu yang sulit (musim pajak, konferensi tahunan, pemerintah baru, dll.) Yang harus dipenuhi, apa pun yang terjadi. Ini dapat membutuhkan upaya luar biasa jangka pendek tetapi seharusnya tidak menjadi norma dalam organisasi.
jfrankcarr
13

Pertama-tama, sepertinya mereka terlalu banyak bekerja dalam sprint jika mereka harus bekerja lembur untuk menyelesaikannya. Apakah semua jam dicatat? Jika demikian maka Anda dapat menghitung berapa banyak pekerjaan aktual adalah sebuah titik cerita dan menggunakan nomor itu untuk menghitung pekerjaan untuk sprint berikutnya.

Penting juga untuk memastikan tim memahami bahwa mereka hanya merugikan diri sendiri dengan terlalu banyak bekerja. Bahkan manifesto tangkas berbicara tentang langkah berkelanjutan: "Proses gesit mempromosikan pembangunan berkelanjutan. Para sponsor, pengembang, dan pengguna harus dapat mempertahankan kecepatan konstan tanpa batas." Bekerja lembur sepanjang waktu tidak berkelanjutan.

Secara keseluruhan, saya sarankan komunikasi daripada kekerasan dan hukuman. Saya membayangkan itu hanya akan menyebabkan demoralisasi tim.

simoraman
sumber
4

Para dev yang bekerja lembur kemungkinan merespons sejumlah insentif, baik yang aktual maupun yang dirasakan. Yaitu untuk menghapus insentif jika itu aktual, atau untuk mengkomunikasikan bahwa insentif yang dirasakan tidak operasional.

Setiap batas keras yang disarankan memiliki beberapa solusi atau masalah lainnya. Blok kontrol sumber hanya akan menyebabkan pengembang memegang komit mereka sampai jendela terbuka lagi. Blok workstation harus pergi segera setelah ada masalah dukungan atau salah satu devs yang diperlukan untuk menggeser jamnya untuk beberapa alasan. Sistem hukuman hanya akan menyebabkan bersembunyi atau mengubur jam lembur.

Saya pikir masalahnya lebih mendasar - tim memiliki beberapa insentif (atau percaya mereka memiliki insentif) untuk bekerja lembur.

Inilah yang perlu dibenahi. Apakah penilaian kinerja mereka terkait dengan angka kecepatan mereka? Apakah manajemen bekerja lembur? Apakah promosi dan penghargaan diberikan kepada mereka yang bekerja berjam-jam? Apakah mereka kontraktor yang dibayar lembur?

JohnMcG
sumber
3

Cukup beri tahu tim untuk tidak bekerja lembur. Titik.

Ini dapat menyebabkan mereka tidak dapat menyelesaikan pekerjaan. Itu bukan masalah, itu titik data. Mereka kemudian dapat menggunakan titik data itu dalam merencanakan sprint berikutnya. Sekali lagi, jangan biarkan mereka bekerja lembur. Apakah mereka selesai atau tidak, mereka memiliki titik data lain. Busa, bilas, ulangi.

Tidak ada jumlah trik atau batasan yang diperlukan. Hanya saja, jangan bekerja lembur. Pelajari berapa banyak pekerjaan yang dapat Anda capai, dan sesuaikan perencanaan sprint Anda.

Bryan Oakley
sumber
2
Memberitahu tim "jangan bekerja lembur. Periode" adalah batas! Dan selain itu, bagaimana jika ada persyaratan untuk membuat hasil setiap sprint? Atau jika pekerjaan seorang pria berada di belakang adalah menghalangi anggota tim lainnya? (Harus dihindari saya tahu tetapi kadang-kadang itu terjadi.)
vaughandroid
1
Jika ada persyaratan untuk menyampaikan, persyaratan itu harus dapat dicapai dalam jam kerja normal. Tim tidak boleh berkomitmen pada sesuatu yang tidak dapat mereka berikan dengan kecepatan berkelanjutan (* kecuali untuk tim yang matang dalam situasi luar biasa) Dan sementara aturan "tidak ada lembur" mungkin batas, itu batas yang baik. Tim scrum saat ini tidak berfungsi; diperlukan batas untuk mengembalikannya ke jalurnya. Begitu mereka memiliki kecepatan yang mapan, berulang, dan berkelanjutan, mereka dapat mengangkat batasan.
Bryan Oakley
Persis. Jika Anda menggunakan alat seperti JIRA dan memperkirakan jam tugas, Anda dapat melihat jumlah jam kerja yang dapat dicapai oleh tim Anda secara realistis.
Rudolf Olah
1

Mungkin ada masalah bukan seberapa "banyak" mereka bekerja tetapi kapan. Ini bisa menjadi masalah ketika ada hari kerja yang dijadwalkan, tetapi sebagian besar jam normal terdiri dari pertemuan dan gangguan sosial dan pribadi lainnya. Apakah mereka bekerja selama periode lembur karena mereka merasa lebih produktif.

Kurangi jumlah pekerjaan dalam sprint dan mulailah bekerja pada waktu fleksibel. Biarkan mereka masuk nanti. Orang yang bertanggung jawab hanya perlu memberitahu orang untuk pulang; ya, benar. Ada beberapa budaya perusahaan yang menciptakan lingkungan di mana pergi lebih awal dapat menimbulkan kerutan.

JeffO
sumber
1

Saya berjuang dengan ini ketika saya pertama kali beralih ke scrum. Wajar jika ingin melakukan upaya ekstra di dekat tenggat waktu, tetapi scrum memiliki tenggat waktu setiap dua minggu sehingga penyesuaian. Selain saran yang dibuat orang lain untuk mengurangi poin cerita yang dilakukan setiap iterasi, saya juga menyarankan memastikan cerita-cerita tersebut dirinci cukup, sehingga setiap pengembang dapat menyelesaikan setidaknya dua atau tiga dalam iterasi.

Itu tidak hanya memastikan setiap pengembang merasa seperti mereka telah mencapai sesuatu setiap iterasi, itu juga memberi Anda sedikit kelonggaran dalam lingkup Anda. Ketika burndown Anda menunjukkan Anda tidak akan bisa menyelesaikan cerita, Anda bisa menariknya keluar dan mengalokasikan orang ke cerita yang bisa diselesaikan. Ketika orang melihat bahwa ruang lingkup dapat disesuaikan, mereka akan cenderung menekankan batas waktu yang tidak realistis. Jika Anda memulai iterasi dengan setiap cerita yang sedang berlangsung, Anda tidak memiliki ruang untuk penyesuaian.

Diagram alir kumulatif yang ideal akan terlihat seperti ini jika semua orang menyelesaikan dua cerita per iterasi:

aliran kumulatif yang baik

Tidak pernah terlihat seperti itu karena pada kenyataannya sangat sulit untuk mengatur waktu semua cerita untuk berakhir pada hari terakhir sambil membuat semua orang sibuk, tetapi itu adalah aturan praktis yang baik. Jika Anda terlalu berkomitmen, area merah akan lebih besar dan Anda dapat menghapus cerita. Jika Anda kekurangan komitmen, area biru akan lebih besar dan Anda dapat menambahkan cerita. Jika cerita Anda terlalu besar, area hijau akan lebih besar dan Anda harus membagi cerita.

Karl Bielefeldt
sumber
1

Untuk menghindari lembur, Anda harus memotong ruang lingkup proyek.

Bagan berikut menunjukkan di mana ketidakpastian terletak pada suatu proyek:

Kerucut ketidakpastian

Jika Anda perhatikan, pada fase definisi dan persyaratan produk, Anda memiliki variasi yang sangat besar dalam estimasi upaya. Anda tidak dapat memastikan apakah akan membutuhkan waktu sebulan atau sehari untuk mengimplementasikan fitur ini.

Saya bertaruh bahwa tidak ada tugas yang dilakukan karena mereka terlalu besar dan tidak ditentukan dan ada terlalu banyak.

Jika tim Anda dapat menangani 10 tiket dalam 5 hari, dan mereka ditugaskan 20 tiket, kurangi nomor itu, tendang ke pemilik produk / manajer proyek / manajer / klien dan minta mereka memprioritaskan.

Pada titik ini, itulah satu-satunya cara untuk menyelamatkan tim dari kerja lembur. Anda tidak dapat mengirim semuanya, tetapi apa pun yang Anda hasilkan akan cenderung memiliki bug.

Saya juga akan menyarankan mencari pekerjaan baru dan membantu rekan tim Anda untuk melakukan hal yang sama dan memperbaiki resume dan portofolio profesional mereka. Sebuah perusahaan yang mengharapkan lembur adalah perusahaan yang tidak boleh ada yang bekerja dan perangkat lunak yang dihasilkan akan sangat kacau.

Rudolf Olah
sumber
0

Saya sangat menyarankan "blok keras". Kontrol tersebut dapat dianggap sebagai manajemen mikro dan mungkin gagal untuk mengatasi masalah mendasar.

Saya sarankan Anda mencari tahu mengapa programmer bekerja lembur. Jawabannya mungkin mengejutkan Anda. Sepertinya Anda adalah "orang luar" (bukan karyawan perusahaan), dan programmer mungkin mau berterus terang kepada Anda jika Anda bertemu dengan mereka secara pribadi (satu-satu).

Apakah alasan untuk bekerja lembur benar-benar merupakan beban kerja, atau apakah alasannya lebih berkaitan dengan budaya atau harapan?

Alasan beban kerja bisa jadi

  • Tumpukan komitmen terlalu besar
  • Programmer atau pemilik produk adalah "pelapis emas" (membuat fitur lebih kompleks dari yang dibutuhkan)

Harapan bisa jadi

  • Semacam penghargaan finansial atau penghargaan untuk bekerja lembur
  • Takut akan kegagalan. Para programmer takut bahwa mereka akan terlihat buruk atau dihukum jika mereka tidak memenuhi tenggat waktu
  • Programmer meremehkan efek jangka panjang berbahaya dari kerja lembur.
Aaron Kurtzhals
sumber