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?
Jawaban:
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!
sumber
Saya setuju.
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)
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.
sumber
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.
sumber
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.
sumber
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.
sumber
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.
sumber
Agile memaksa programmer untuk melakukan pekerjaan yang lebih bermanfaat, karena berbagai teknik pengembangan lincah menyibukkan pekerjaan yang sibuk dan pekerjaan yang tidak diperlukan.
sumber
Saya tidak setuju. Saya bekerja dengan sekelompok perokok dan mereka semua berhasil beristirahat bersama untuk waktu yang lama karena "semua orang melakukannya."
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.
Jika Anda mau melakukan brengsek selama tiga minggu, Anda akan memikirkan beberapa omong kosong untuk dikatakan.
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.
sumber
Agile tidak memaksa pengembang untuk bekerja lebih banyak , tetapi bekerja lebih efisien
sumber
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.
sumber
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.
sumber
"Senjata tidak membunuh orang. Orang membunuh orang!" Itu sama dengan Agile. Agile tidak membuat orang bekerja lebih banyak, manajer membuat orang bekerja lebih banyak.
sumber