Apakah Agile memaksa pengembang untuk menghabiskan lebih banyak waktu untuk bekerja?


25

Melihat praktik Agile yang umum, bagi saya tampaknya mereka (sengaja atau tidak?) Memaksa pengembang untuk menghabiskan lebih banyak waktu untuk bekerja daripada membaca blog / artikel, mengobrol, rehat kopi, dan sekadar menunda-nunda.

Khususnya:

1) Pair programming - forcer kerja terbesar, hanya karena merepotkan untuk melakukan semua penundaan itu ketika Anda berdua duduk bersama.

2) Cerpen - ketika Anda memiliki banyak pekerjaan yang harus dilakukan dalam misalnya sebulan, cukup umum untuk mengendur dalam tiga minggu pertama dan beralih ke mode OMG DEADLINE untuk yang terakhir.

Dan dengan potongan-potongan kecil (yang harus dilakukan dalam satu hari atau kurang) itu justru sebaliknya - Anda merasa bahwa waktu sangat ketat, tidak ada ruang untuk bermanuver, dan Anda akan segera bertanggung jawab untuk tugas itu, jadi Anda mulai bekerja segera.

3) Komunikasi dan kohesi tim - ketika Anda berkinerja buruk dalam lingkungan yang lambat, menjauhkan dan sunyi, mungkin terasa ok, tetapi ketika pada akhir hari di pertemuan Scrum, semua orang menyombongkan apa yang telah mereka capai dan Anda tidak memiliki sesuatu untuk dikatakan bahwa Anda mungkin benar-benar merasa malu.

4) Pengujian dan umpan balik - sekali lagi, ini mencegah Anda menjaga tugas "99% siap" (saat itu sebenarnya sekitar 20%) sampai tenggat waktu tiba-tiba terjadi.

Apakah Anda merasa bahwa di bawah Agile Anda bekerja lebih dari metodologi "konvensional"? Apakah tekanan ini dikompensasi oleh lingkungan yang lebih nyaman dan oleh perasaan benar-benar menyelesaikan sesuatu dengan cepat?



3
Saya pikir lincah membuat pemrogram lebih efisien dengan membuatnya lebih bahagia. Karena itu mengatasi penundaan karena dua programmer saling melihat, dan perasaan berbagi ide kode jauh lebih bermanfaat daripada membaca blog, atau menjawab pertanyaan di SE.com
tactoth

1
Jadi sepertinya pemrograman Agile adalah EPIC WIN, apakah saya benar?
Adam Arold

2
Pernah dengar "Efek Tenggat Waktu"? Efisiensi hampir dua kali lipat dari tenggat waktu - lincah membuat iterasi 2 minggu untuk menyeimbangkan kebosanan (waktu idle) dengan kecemasan membuat Anda tetap berada di puncak produktivitas!
PhD

Agile hanya membuat Anda melakukan pekerjaan Anda dengan kepemilikan! Jika itu milik ANDA, Anda akan menghabiskan waktu LEBIH dari sekadar kopi, berselancar, blog. Dan karena itu milik ANDA, Anda AKAN memiliki alasan positif untuk mengakui dan menyelesaikannya - demikian juga yang lain. Karena itu, lebih baik peluang "tim" mencapai tujuan! :)
PhD

Jawaban:


38

Gagasan utama di balik metode gesit adalah membantu Anda menjadi produktif - dalam arti positif. Tidak ada yang peduli jika Anda menghabiskan satu jam berselancar setiap hari jika Anda memenuhi tenggat waktu. Semua orang menjadi marah jika Anda berselancar setengah jam setiap hari tetapi kehilangan tenggat waktu Anda. Solusinya: mempermudah Anda untuk memenuhi tenggat waktu

Seperti yang Anda perhatikan, pemrograman pasangan memastikan Anda tetap fokus (di antara semua keunggulan lainnya seperti meningkatkan keterampilan / penyebaran pengetahuan, kode yang lebih baik, lebih sedikit bug, desain seragam, dll.).

Saya menemukan bahwa disiplin selalu merupakan perjuangan bagi saya. Jika saya berpasangan dengan seseorang, kemungkinan salah satu dari kami ingin beberapa pekerjaan dilakukan hari ini dan menarik yang lainnya. Jadi "pekerjaan selama sebulan" sering berubah menjadi "bekerja bersama selama satu minggu", terkejut bagaimana pekerjaan yang sangat besar itu diselesaikan pada akhirnya, menghabiskan satu hari atau lebih pemulihan (refactoring, memperbaiki TODO dalam kode, menambahkan beberapa tes, berselancar dengan hati nurani yang bersih) dan kemudian meraih pekerjaan bulan depan.

Hasil bersih: Saya jauh lebih santai (lebih karena daripada terus-menerus diawasi), kohesi tim jauh lebih baik, pekerjaan dilakukan lebih cepat, orang tidak berkeliaran di beberapa masalah kecil selama berjam-jam atau bahkan berhari-hari (karena orang lain dapat lihat masalahnya lebih cepat).

Ketika Anda mengatakan "Anda mungkin benar-benar merasa malu", bukankah itu hal yang baik? Itu berarti Anda merasa bahwa Anda melakukan kesalahan dan Anda harus melakukannya. Anda tidak dibayar untuk menyelesaikan sesuatu. Tidak menyelesaikan apa pun membuat Anda merasa tidak berdaya, tidak bahagia, tidak berharga, sengsara. Alih-alih merasa malu, mundurlah dan pikirkan, "Mengapa saya tidak melakukan apa-apa hari ini?" Apakah Anda memerlukan bantuan? Apakah ada sesuatu yang tidak Anda mengerti? Apakah tugas saat ini terlalu sulit? Kamu tidak suka itu Mungkin Anda bisa mengganti tugas dengan orang lain. Mungkin orang lain bisa membantu Anda melewatinya. Agile berarti: Bertanggung jawab alih-alih dikelola secara mikro seperti boneka di atas tali. Anda butuh alat? Pergi ke bos Anda dan minta. Belajar berdebat. Belajar berdiri dan berteriak ketika Anda harus.

Sedangkan untuk tes, ada sweet spot ketika kode Anda tiba-tiba runtuh dari "bagus" menjadi "sempurna". Itulah saat ketika Anda memperhatikan bahwa Anda perlu mengimplementasikan fitur X dan Anda pikir itu akan menjadi mimpi buruk dan tiba-tiba menyadari bahwa kode itu hampir tiba. Hanya refactoring kecil di sana-sini. Kelas baru dan selesai. Empat minggu kerja tiba-tiba menjadi satu hari. Kemenangan! Kemenangan!


20

Saya setuju.

Memasangkan pemrograman

Merupakan cara kerja yang sangat intens dan lengkap, dan saya tidak pernah menerapkannya kecuali saya memiliki beberapa pengembang yang perlu dilatih oleh orang lain (misalnya pendatang baru)

Cerita pendek

Komunikasi tim dan kohesi

Pengujian dan umpan balik

Ya Agile dan khususnya Scrum adalah pendorong produktivitas yang sangat besar. Ketika diterapkan dengan benar, turn over bisa mencapai 20% (1 pengembang pada 5 meninggalkan perusahaan).

Alasannya sederhana: Scrum tidak memberikan lebih banyak produktivitas, it provides the whole company with much more visibility on what's going on(termasuk dalam manajemen tentunya).

  • Itu membuat mustahil bagi pengembang untuk hanya melakukan minimum. Bare minium sekarang rata-rata tim!

  • Itu membuat mustahil bagi manajemen untuk tidak berkolaborasi dengan baik.

Inilah sebabnya saya katakan (dalam jawaban saya yang lain dalam pertanyaan serupa), bahwa Agile BUKAN untuk setiap organisasi (dan untuk semua orang).

Misalnya, sektor publik benar-benar tidak cocok untuk Agile.

Agile digunakan sebagai alat penekan? Tentu saja, saya sudah sering melihatnya. Itu hanya membuat segalanya jauh lebih buruk.


7
Re: melelahkan. Kami melakukan pemrograman berpasangan di kantor saya. Ini 8 jam hal yang sangat intens .... dan kemudian Anda bisa pulang. 40 jam kerja-minggu di jantung Lembah Silikon. (Membantu mencegah kelelahan).

2
+1 untuk "Agile BUKAN untuk setiap organisasi".
Ryan Hayes

Jawaban bagus. Apakah Anda juga memiliki sumber untuk ini "(1 pengembang di 5 meninggalkan perusahaan)". Akan menarik untuk membaca keseluruhan cerita.
Jan_V

@ Jan_V: Ken Schwaber sendiri (tahun 2008). Sayangnya, itu tidak direkam.

+1: Jawaban yang sangat bagus. Agile memungkinkan untuk mengikuti pengembangan lebih akurat tetapi tidak selalu meningkatkan produktivitas. Banyak programmer tidak perlu memotivasi pemrograman pasangan: masalah yang menarik bisa cukup untuk membuat mereka berjalan selama 10 jam berturut-turut. Dalam situasi tertentu, SCRUM dapat menurunkan produktivitas hingga 50% atau lebih. Tetapi semua cerita ini selalu dijelaskan dengan: "Anda tidak melakukannya dengan cara yang benar."
Giorgio

8

Apakah Anda merasa bahwa di bawah Agile Anda bekerja lebih dari metodologi "konvensional"? Apakah tekanan ini dikompensasi oleh lingkungan yang lebih nyaman dan oleh perasaan benar-benar menyelesaikan sesuatu dengan cepat?

Itu membuat saya bekerja lebih banyak, tetapi di atas segalanya, itu membuat saya bekerja pada hal yang benar. Setiap saat saya tahu apa yang harus saya lakukan .

Ini semacam tekanan positif. Itu sangat berbeda dari beberapa eksternal "Anda sudah ketinggalan jadwal, bekerja lebih banyak, lembur kode!" -jenis tekanan.


7

Sebenarnya, saya jauh lebih produktif ketika saya menggunakan metode konvensional. Dengan metode konvensional, saya membuat misalnya analisis kebutuhan terperinci, studi kelayakan, spesifikasi fungsional, spesifikasi teknis dan banyak protokol rapat, semua hanya dalam beberapa bulan! Saya bahkan mungkin membuat beberapa baris kode setelah analisis dampak selesai!

Agile, semua yang saya buat adalah beberapa hasil.


4

Di perusahaan kami,

Pairming Programming - Ketika sesuatu yang sangat kompleks dan memang membutuhkan analisis luas, bahkan kami akan menyatukan dua orang yang sangat baik dan menyelesaikan tugas dalam waktu CEPAT. Di sini kompleksitas tugas menentukan kebutuhan pemrograman pasangan.

Cerita Pendek - Kemudian mengendur selama 3 minggu (sekitar 5-6 jam per hari) dan bergegas pada saat terakhir (sekitar 12 hingga 14 jam per hari) sebagai pengembang. Saya tidak suka memiliki osilasi dalam beban pekerjaan saya. Bekerja sekitar 8 jam per hari dan jaga jadwal Anda stabil dan ini selalu terlihat KEREN.

Komunikasi tim dan kohesi - Dalam rapat scrum kami tidak hanya berbagi status tugas tetapi juga hambatan. Di sini ketika seseorang benar-benar membutuhkan bantuan anggota lain akan benar-benar datang dengan ide-ide mereka untuk membantunya. Tapi tentu saja Anda membutuhkan Tim yang sangat baik untuk ini dan kami :)

Pengujian dan umpan balik - Tentunya sebagai pengembang saya tidak ingin diri saya dibebani dengan Bug pada akhirnya, saat berikutnya setelah Anda menemukan bug adalah untuk memperbaikinya dan lagi, ini akan memungkinkan saya untuk memiliki perkiraan yang baik tentang apa yang seharusnya / dapat dilakukan selanjutnya dan jadwalkan ulang tenggat waktu (jika perlu) sesuai kebutuhan.

Jadi, sebagai pengembang saya sangat senang dengan jenis tugas yang saya ambil dan sangat yakin saya bisa mengatakan bahwa saya tidak pernah merasakan tekanan NYATA dari tenggat waktu.


4

Apakah Anda merasa bahwa di bawah Agile Anda bekerja lebih dari metodologi "konvensional"?

  • Jika Anda maksudnya saya merasa lebih produktif di bawah Agile, saya akan mengatakan itu tergantung .
     
    Saya biasanya memikirkannya dalam hal Ferrari (seperti konvensional) vs Landrover (sebagai Scrum). Saat berkendara di jalan raya, Ferrari mengalahkan Landrover.
     
    Ini adalah off-road ketika seseorang membutuhkan jip bukan mobil sport - maksud saya jika persyaratan Anda tidak teratur dan / atau jika pengalaman kerja tim dan manajemen tidak begitu baik, Anda harus memilih Scrum - hanya karena mencoba go konvensional akan mendapatkan Anda terjebak - seperti Ferrari akan macet di luar jalan.

Adapun "bekerja lebih banyak" , baik saya pikir seseorang mengharapkan hal-hal seperti itu mungkin meremehkan IQ programmer dan kemampuan mereka untuk beradaptasi dengan berbagai bentuk demensia manajemen .

Sejauh ini, saya berpartisipasi dalam dua tim Scrum membuat proyek yang sangat berbeda di perusahaan yang berbeda. Di kedua tim saya tidak melihat perubahan dalam kebiasaan saya dibandingkan dengan misalnya air terjun / iteratif.

Saya akan bangga mengklaim bahwa ini adalah karena saya sangat istimewa dan tak terkalahkan tetapi terus terang, saya telah melihat kebiasaan semua orang di tim menjadi tak terkalahkan juga.


'Mengenai "bekerja lebih banyak", well, saya pikir seseorang mengharapkan hal-hal seperti itu cenderung meremehkan IQ programmer dan kemampuan mereka untuk beradaptasi dengan berbagai bentuk demensia manajemen.': Yah, mungkin ada tim yang benar-benar perlu dipantau secara ketat untuk tetap fokus pada tugas mereka. IMO ini terutama berlaku untuk pengembang yang tidak berpengalaman dan perencana buruk. Tentu saja, untuk programmer yang lebih berpengalaman, praktik-praktik ini terlihat seperti demensia manajemen , yaitu mereka bisa mendapatkan sangat sedikit atau tidak ada manfaat darinya.
Giorgio

@Iorgio ya saya maksudkan sesuatu seperti itu ketika menyatakan bahwa "jika tim bekerja ... tidak sebagus itu" mungkin merupakan alasan yang baik untuk memilih gesit. Saya hanya ingin mencatat bahwa meskipun begitu, mengharapkan gesit untuk memaksa mereka "bekerja lebih" adalah semacam utopia ... atau lebih tepatnya agak terlalu mudah untuk bekerja dengan baik. Saya telah melihat itu digunakan dengan sukses untuk mengajar pengembang yang tidak berpengalaman dan perencana buruk untuk bekerja dan merencanakan yang lebih baik / lebih
Agak

2
Selain itu, bagi para programmer yang berpengalaman, semua ritual SCRUM mungkin akan menghalangi pemikiran. Untuk melanjutkan metafora Anda: jika Anda mengendarai Ferrari di jalan lurus, harus berhenti setiap 2 km atau lebih untuk memeriksa apakah Anda pergi ke arah yang benar hanya akan membuat Anda lebih lambat. Tapi, ya, itu akan membantu manajer (buruk) untuk memiliki perasaan kontrol.
Giorgio

@Iorgio setuju. Sejauh yang saya tahu, Anda mendapatkan metafora saya dengan sangat tepat :)
agung

2

Agile memaksa programmer untuk melakukan pekerjaan yang lebih bermanfaat, karena berbagai teknik pengembangan lincah menyibukkan pekerjaan yang sibuk dan pekerjaan yang tidak diperlukan.


2
Kutipan diperlukan. Itu klaim yang berani; Saya telah melihat banyak pekerjaan yang sibuk di lingkungan "lincah".

2

itu tidak nyaman untuk melakukan semua penundaan itu ketika ada kalian berdua duduk bersama.

Saya tidak setuju. Saya bekerja dengan sekelompok perokok dan mereka semua berhasil beristirahat bersama untuk waktu yang lama karena "semua orang melakukannya."

umum mengendur dalam tiga minggu pertama

Ini adalah tanda manajemen yang buruk terlepas dari metodologi. Bahkan jika sebagian besar jatuh tempo dalam sebulan, saya akan berharap untuk melihat sesuatu pada akhir minggu pertama.

Anda tidak punya apa-apa untuk dikatakan bahwa Anda mungkin merasa malu.

Jika Anda mau melakukan brengsek selama tiga minggu, Anda akan memikirkan beberapa omong kosong untuk dikatakan.

4) Pengujian dan umpan balik - sekali lagi, ini mencegah Anda menjaga tugas "99% siap" (saat itu sebenarnya sekitar 20%) sampai tenggat waktu tiba-tiba terjadi.

Proyek air terjun dapat memiliki pengujian dan pembuatan harian.

Secara pribadi, saya tidak suka menulis kode dan tidak melakukan apa pun selama sebulan. Saya lebih suka loop umpan balik pendek pada kode saya apakah itu review kode atau pengguna sign-off. Memiliki orang lain menyetujui pekerjaan saya bermanfaat. Seperti kucing yang menjatuhkan tikus di depan pintu Anda hanya untuk memberi tahu Anda bahwa dia melakukan pekerjaannya.


1

Agile tidak memaksa pengembang untuk bekerja lebih banyak , tetapi bekerja lebih efisien


1
dan lebih produktif, yang secara semantik lebih penting.

Apakah itu?
Casey

0

Ungkapan pertanyaan 'memaksa pengembang untuk bekerja lebih banyak' muncul sedikit negatif, tapi tentu itu positif jika kita benar-benar menyelesaikan lebih banyak dan menunda-nunda?

Yang mengatakan, itu poin bagus. Saya merasa agak letih dengan lincah tahun ini, tetapi ini adalah manfaat besar yang tidak tertulis yang belum saya akui.

Saya setuju bahwa gesit dapat menyebabkan pengembang menjadi lebih produktif. Poin Anda tentang visibilitas, akuntabilitas, dan kecenderungan untuk menunda-nunda lebih sedikit semuanya sangat benar.

Tetapi lincah dapat dan seharusnya juga menyebabkan pengembang bekerja lebih keras untuk alasan positif - wortel vs tongkat. Selesai dengan baik, lincah akan memberikan pengembang lebih banyak interaksi dengan pengguna, lebih sedikit birokrasi, lebih banyak kontrol atas pekerjaan mereka, yang semuanya dapat mengarah pada mendapatkan lebih banyak dari tim Anda.


1
Anda benar, Agile bukan tentang bekerja lebih keras, melainkan bekerja lebih efisien pada hal-hal yang paling berharga . Dalam pengalaman saya selama bertahun-tahun, ini menyebabkan pengembang benar-benar bekerja lebih keras karena mereka memiliki tenggat waktu dan hasil yang lebih realistis; menjadi jauh lebih produktif dalam jumlah waktu yang sama, ini mengarah pada * efisiensi *

Tidak lincah bukan tentang membuat pekerjaan lebih efisien (dan tidak, mempertimbangkan semua rapat, ulasan lari, dan sebagainya) tetapi lebih dapat diprediksi : Anda tidak menetapkan tenggat waktu dan kemudian bekerja secara efisien untuk mencapainya, tetapi Anda memantau proses sehingga tenggat waktu yang Anda tetapkan menjadi lebih masuk akal. Jadi ini bukan tentang produktivitas tetapi tentang prediktabilitas .
Giorgio

0

lebih banyak bekerja masih tidak semantik benar atau relevan dengan Agile, tujuannya adalah untuk menjadi lebih produktif . Ini secara khusus berfokus pada bekerja lebih sedikit pada hal yang salah, dan lebih pada bekerja secara normal pada hal yang benar ; itu tidak berarti bekerja lebih banyak , hanya lebih produktif .

Efek sampingnya, apakah itu mengekspos pemalas dan mereka yang tidak efisien atau tidak kompeten dengan sangat cepat. Yang terdengar lebih seperti apa yang Anda maksudkan.

Metodologi tidak relevan pada apakah pengembang tidak berfungsi atau tidak . Prosesnya adalah, bahkan dalam air terjun, tinjauan manajemen dan ulasan kode dapat mengekspos hal-hal ini juga, hanya tidak setransparan kebanyakan metodologi Agile.


-2

"Senjata tidak membunuh orang. Orang membunuh orang!" Itu sama dengan Agile. Agile tidak membuat orang bekerja lebih banyak, manajer membuat orang bekerja lebih banyak.


2
Manajer tidak membuat orang bekerja lebih banyak. Visibilitas yang jelas dan umpan balik yang cepat membuat orang ingin bekerja lebih banyak, sehingga mereka melakukannya.
Sean McMillan

Ya, tetapi sampai titik apa? Dalam satu sprint Anda mengambil 10 cerita, sprint berikutnya: 15, sprint berikutnya: 20, sprint berikutnya: 25. Berapa lama sebelum tim mencapai batas kemampuan manusianya dan manajer yang tidak terlalu gesit memutuskan untuk mengambilnya lebih tinggi. Mungkin Anda belum menghadapi situasi seperti itu. Dalam proyek yang benar-benar gesit, Anda menemukan kecepatan tim Anda saat sprint berlangsung. Anda mungkin paling bisa bekerja dengan margin 10%. Tidak ada lagi.
DPD

2
Pada proyek lincah yang berhasil saya lakukan, kami menggunakan "cuaca kemarin" untuk menjadwalkan iterasi kami. Namun banyak poin kami menyelesaikan iterasi terakhir adalah berapa banyak kami menjadwalkan iterasi ini. Manajer dapat membujuk / berteriak semua yang dia inginkan, tetapi tim memutuskan apa yang mereka sukai dan itulah yang dijadwalkan. (Tentu saja, kami mengadakan buy-in tingkat direktur, yang berarti bahwa jika manajer berusaha memaksa tim, ia akan mendapat masalah.)
Sean McMillan

@Sean McMillan - Mungkin seorang manajer tidak sebanyak pembuat perbedaan ketika seorang direktur benar-benar membeli menjadi lincah, tapi itu jarang terjadi.
JeffO
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.