Tampaknya seiring dengan bertambahnya pengalaman dengan seperangkat alat khusus yang harus Anda kerjakan, insentif untuk mencoba hal-hal baru melemah.
Ketika saya masih baru di pekerjaan pemrograman ini, mencoba hal-hal baru, meneliti online, membuat saya lebih produktif, karena saya sering menemukan cara (atau perpustakaan) yang membuat tugas lebih mudah daripada kerangka kode yang sudah ada. Jadi menggunakan sesuatu yang baru - bagi saya dan juga dalam konteks basis kode yang diberikan - membuat saya lebih produktif.
Sekarang saya melihat, bahwa ada lebih dan lebih banyak contoh di mana, untuk masalah yang diberikan, saya tahu bahwa ada mungkin adalah solusi yang lebih baik "di luar sana", dan menemukan itu akan - mungkin - memperbaiki kode. Namun, mengingat pengetahuan saya sekarang tentang basis kode, jauh lebih mudah untuk menggunakan alat suboptimal yang kami miliki, dan mendapatkan solusi (termasuk tes) yang berjalan daripada menemukan sesuatu yang baru dan "lebih baik" dan "meningkatkan" basis kode.
Jadi ada ketegangan ini: "lakukan dengan benar" vs. " selesaikan pekerjaan dengan baik ".
Apakah ini sesuatu yang terjadi pada banyak pengembang? Apakah ini masalah khusus yang diketahui? (Apakah ini benar-benar masalah?) Apakah ini benar-benar ada hubungannya dengan peningkatan tingkat pengalaman?
Oh, dan perhatikan: Saya masih menyukai pekerjaan saya dan ingin menyimpannya. Hanya saja sepertinya - selalu menarik! - Bagian penelitian semakin kecil karena saya mempelajari basis kode dan set masalah yang kita hadapi dengan aplikasi kita.
sumber
Jawaban:
Seringkali berisiko mencoba hal-hal baru. Kita terkadang mendapat masalah karena kita cenderung melakukan dua hal:
Terlalu tinggi memperkirakan betapa berharganya hal keren / baru / keren ini. Kami melihat beberapa contoh keren, beberapa kode dilemparkan online. Sangat keren menurut kami. Sangat keren! Dalam XI dapat melakukan tugas Y sepuluh kali lebih cepat. Ini jelas lebih unggul. Kami belum melihat semua "tidak dikenal tidak dikenal". Kami belum tersandung oleh masalah yang dihilangkan oleh tenaga penjualan hal baru. Kami tidak memiliki keahlian yang cukup dalam hal baru untuk melihat ranjau darat menunggu di jalan.
Meremehkan seberapa berguna alat / kerangka / perangkat lunak / hal-hal yang ada. Kami sering tidak ada di sana ketika sistem saat ini awalnya dibangun. Kami tidak menghargai pengorbanan halus yang dibuat. Sangat mudah untuk bermain quarterback Senin-pagi pada sistem yang ada, tetapi bekerja . Mungkin ada banyak keanehan karena pengorbanan yang sangat spesifik antara mempertahankannya, bekerja, dan berkinerja baik. Ya tentu ini aneh. Mungkin yang paling penting, tim adalah pakar tentang keanehan saat ini dan tahu cara mengatasi keanehan itu. Mereka tahu ranjau darat dan perangkap serta perangkap yang harus dihindari. Sebenarnya itu justru karena kita melihat semua kutil dengan cara saat ini melakukan hal-hal yang kita bahkan tertarik bermain dengan hal-hal baru.
Tetapi gagal untuk mencoba hal-hal baru dan bertindak terlalu konservatif mungkin bahkan lebih berbahaya. Tentu kita perlu melangkah dengan hati-hati, tetapi jika kita tidak tahu bagaimana membangun perangkap tikus terbaik, pesaing kita sedikit lebih bersedia untuk mencoba sesuatu yang baru akan datang dan menendang pantat! Bertindak konservatif dan gagal berevolusi dapat mengakibatkan malapetaka yang tak terhindarkan terutama di pasar yang kompetitif.
Jadi ya kita perlu menyeimbangkan pemeliharaan dan pengiriman barang saat ini dengan beberapa tingkat eksperimen bermain / edukatif dengan cara-cara baru untuk memecahkan masalah dengan mengingat bahwa banyak dari cara-cara baru itu jalan buntu sementara yang lain mungkin memberikan hasil. IMO Ini adalah alasan bagus banyak perusahaan memiliki 20% waktu untuk bermain dengan hal-hal baru. Mereka tahu banyak kali mereka tidak berhasil, tetapi banyak dari ide-ide yang keluar dari 20% waktu menjadi gangbuster. Tanpa waktu untuk bermain dan bereksperimen, Anda dapat dengan mudah mandek sebagai perusahaan dan benar-benar mengacaukan diri Anda.
sumber
Itu terjadi setiap saat . Saya sudah mengatakan ini di posting lain, tetapi lebih sering daripada tidak, Anda tidak dalam bisnis mengembangkan kode elegan, Anda dalam bisnis pengiriman produk. Dengan demikian, Anda akan kesulitan menemukan manajer mana pun yang bersedia mengalokasikan
n
jam bagi Anda untuk memperbaiki sesuatu yang tidak rusak dan benar-benar (pada akhirnya) tidak terlalu meningkatkan pengalaman pengguna akhir. Anda akan sama sulitnya menemukan seorang manajer yang bersedia mengalokasikann
waktu untuk meneliti (tanpa tujuan akhir yang jelas) selain dari "mungkin ada sesuatu di luar sana yang lebih baik" daripada apa yang sedang dilakukan.Karena itu, jika ada hambatan dalam aplikasi Anda yang Anda temukan menggunakan alat profiling dan semacamnya dan Anda dapat dengan jelas mengukur peningkatan pengalaman pengguna yang diharapkan yang akan mereka perbaiki, maka Anda seharusnya (cukup mudah) mendapatkan waktu untuk melakukan R&D bekerja untuk mengoptimalkannya menggunakan teknik yang dapat Anda temukan dari berbagai sumber.
sumber
Saya pikir beberapa di antaranya bermuara pada pengalaman dan pengetahuan yang lebih mendalam tentang bagaimana berhasil memecahkan beberapa masalah.
Ketika Anda baru, semua masalah juga baru dan Anda perlu meneliti bagaimana melakukannya. Tetapi karena Anda telah memecahkan jenis masalah yang sama berulang kali, kebutuhan untuk penelitian turun karena Anda tahu solusi yang berhasil untuk masalah itu.
Maka Anda hanya cenderung untuk meneliti masalah baru atau yang mana yang lama dicoba dan benar tidak lagi berfungsi (telah usang) atau menyebabkan masalah kinerja atau kegagalan. Ketika Anda mulai memahami sistem yang kompleks secara lebih mendalam, Anda tahu Anda tidak punya waktu secara realistis untuk menggunakan teknik-teknik baru setiap kali mereka datang dan Anda telah menemukan melalui pengalaman bahwa sering kali teknik baru tidak hidup hingga itu hype dan menciptakan lebih banyak masalah daripada yang dipecahkan. Jadi, Anda cenderung tidak menggunakan alat dan teknologi baru saat Anda sebenarnya tidak membutuhkannya untuk menyelesaikan masalah.
Tetapi kurang cenderung tidak berarti Anda berhenti belajar atau tidak pernah menggunakan teknik baru, hanya saja Anda lebih bijaksana tentang kapan mereka tepat.
sumber
Berikut beberapa detailnya:
sumber
Ya, saya pernah mengalami hal itu. Biasanya Anda harus melakukan analisis risiko pada berapa banyak waktu yang dibutuhkan untuk mempelajari teknik baru, dan dapatkah Anda memulihkan dan menggunakan teknik yang lebih tua seandainya teknik baru gagal memenuhi harapan. Saya lebih suka mempelajari teknik-teknik baru ketika saya bisa tetapi ketika tekanan menyala dan saya tidak mampu menghabiskan waktu untuk mencoba hal-hal baru yang mungkin gagal, saya tetap menggunakan metode yang sudah terbukti benar.
Secara umum, saya menemukan waktu terbaik untuk mempelajari teknik-teknik baru adalah pada awal proyek baru. Biasanya tidak ada terlalu banyak tekanan dan jika Anda menemukan sesuatu yang baru yang berfungsi dengan baik, Anda dapat dengan mudah mengintegrasikannya dengan sisa proyek, maju. Waktu terburuk untuk mencoba dan mempelajari hal-hal baru adalah beberapa minggu terakhir sebelum penyebaran besar.
sumber
Ya, hal-hal baru mengganggu produktivitas
Ya tentu saja. Bahkan untuk skenario kasus terbaik, hal-hal baru memerlukan waktu tambahan karena mereka tidak terbiasa. Sering kali dapat menghabiskan banyak waktu.
Tidak, teknik baru dapat meningkatkan produktivitas
Setiap teknik baru yang memungkinkan Anda mengekspresikan solusi dengan lebih mudah akan meningkatkan produktivitas Anda. Ini bisa sesederhana memindahkan dari
if-elseif
kondisi besar ke meja pengiriman.sumber
Ya itu dapat merusak produktivitas. Mantan saya diminta untuk melakukan pekerjaan pemrosesan data yang membosankan sekali, jadi dia memutuskan bahwa akan lebih baik untuk menulis program panjang untuk menangani data dan kemudian menjalankannya - yang akan memperbaiki masalah dalam hitungan detik.
Butuh waktu seminggu baginya untuk menulisnya, tapi masalahnya selesai dalam hitungan detik setelah itu.
Saya pikir hal yang sama berlaku untuk pertanyaan Anda: ya, Anda dapat meningkatkan produktivitas Anda dengan mempelajari hal-hal baru, tetapi Anda masih akan lebih baik menerapkan pengetahuan yang ada pada tugas itu dan secara keseluruhan menyelesaikannya lebih cepat. Siapa yang peduli menemukan dan mempelajari perpustakaan baru, jika Anda dapat menulis sendiri dalam waktu yang lebih singkat.
Jangan lupa juga, sering menyelesaikannya dengan tooling yang ada adalah solusi yang lebih baik daripada memasukkan barang baru. Setiap kali Anda menambahkan yang baru, Anda menambah permukaan perawatan yang diperlukan, yang pada gilirannya memperlambat semua orang (dan dapat membuat kode Anda cukup berantakan - saya memikirkan lapisan teknologi 'baru' yang diwariskan dari waktu ke waktu tetapi masih dalam kode kami membuat hal-hal mengerikan. Melihat ke belakang, akan lebih baik untuk hanya menggunakan cara C lama daripada menambahkan semua COM itu dan semua VB itu dan semua itu. NET dan sekarang menyekop HTML juga)
sumber