Bagaimana seorang programmer Ninja didefinisikan? Jika itu hanya pengembang berpengalaman, maka apakah benar-benar tidak ada cara yang lebih baik untuk menggambarkan itu? Ninja terdengar seperti taktik pemasaran kekanak-kanakan yang dirancang untuk menarik pengembang dengan delusi kemegahan. Atau apakah saya melewatkan sesuatu? Secara khusus saya ingin tahu kualitas apa yang diinginkan seorang Ninja dalam programmer yang membuat perbandingan itu valid (selain faktor kesejukan)?
Saya memang menemukan artikel ini yang membuat perbandingan yang baik antara karakteristik Ninja dan pengembangan Agile. Namun, saya ingin mendengar dari orang-orang yang menggunakan kata Ninja untuk tujuan perekrutan dan apa motivasi mereka di baliknya.
Pembaruan: Ada beberapa poin bagus yang diajukan di kedua sisi argumen. Saya sudah mencoba meringkas ini di posting blog saya . Saya memilih jawaban JB sebagai jawaban yang diterima karena meringkas semua alasan yang sah untuk membuat perbandingan.
sumber
Jawaban:
Menurut saya ada beberapa persamaan antara Ninja dan programmer yang baik:
Tersembunyi senjata / gaya tidak ortodoks - Jika Anda pernah melihat kartun GI Joe dari tahun 1980-an Anda mungkin ingat karakter Storm Shadow . Dia memiliki pedang dan beberapa bintang lempar tetapi dengan urutan pukulan dan tendangan yang tepat berhasil membongkar sebuah tank dalam sebuah episode. Dengan cara yang sama, pemrogram dapat dipanggil untuk melakukan beberapa pekerjaan yang mengharuskan mereka untuk mengeluarkan senjata yang mungkin tidak Anda pikirkan. Ini adalah kerabat titik "Peretas" yang telah disebutkan di beberapa tempat.
Kehormatan / rasa hormat - Tentu saja saya telah melihat ini lebih banyak dalam penggambaran ninja Barat seperti GI Joe atau Teenage Mutant Ninja Turtles, tetapi tampaknya ada sikap menghormati musuh seseorang, mungkin diambil dari "Seni Perang". Pemrogram yang baik dapat menghargai bahwa mungkin ada yang lebih baik di luar sana. Kerendahan hati juga dalam arti tertentu.
Penguasaan tersirat - Mungkin ada asumsi bahwa semua ninja adalah penguasa dan karenanya benar-benar mengasah keterampilan mereka untuk tahu bagaimana bertarung dengan baik. Pemrogram yang baik mungkin juga sama-sama menguasai beberapa keterampilan yang cukup bermanfaat dalam menyelesaikan pekerjaan.
Itu adalah beberapa di luar yang dangkal, "Oh kedengarannya keren," implikasi karena harus ada daging untuk menempel. Walaupun saya setuju bahwa Samurai mungkin adalah gelar yang lebih tepat, setelah beberapa saat keluar dalam bentuk yang salah, seseorang harus merekonsiliasi hal-hal di sini karena TMNT tidak benar-benar apa yang kebanyakan orang anggap sebagai tentara bayaran terselubung, itulah yang ninja. secara teknis. Namun, bagi kita yang tumbuh dengan penggambaran kartun Ninjas dalam cahaya positif ini, inilah yang mungkin melekat pada kita dan juga ada unsur nostalgia di sini.
sumber
Ini seperti yang Anda katakan - upaya untuk menyiratkan kesejukan dan kesopanan (sering di antara mereka yang tidak) dengan membuat perbandingan yang sangat lemah.
Secara pribadi saya benci frasa (bersama dengan "Rockstar Programmer" yang membuat kami ingin memukul orang hingga mati - Anda dapat menjadi programmer rockstar ketika Anda memiliki kebiasaan narkoba masalah alkohol dan telah menghancurkan setidaknya satu mobil dan satu kamar hotel) ).
Anda seorang programmer, jika Anda memiliki masalah dengan menjadi seorang programmer karena Anda ingin melakukan sesuatu yang Anda pikir lebih keren maka hadapi mereka (atau berhenti untuk melakukan sesuatu yang Anda pikir lebih keren). Jika Anda tidak menyukai cara orang lain melihat programmer maka pahami bahwa masalah mereka bukan milik Anda.
Anda tentu tidak akan mengubah pikiran mereka dengan frasa yang akan membuat rata-rata berusia 12 tahun berpikir Anda berusaha agak keras untuk menjadi mengesankan.
/ kata-kata kasar
Sunting: Agar jelas, kata-kata kasar tidak ditujukan pada penanya ...
sumber
Satu konsep yang sama-sama dimiliki oleh para ahli seni bela diri dan programmer yang baik adalah upaya ekonomi. Ahli seni bela diri menghindari gerakan yang sia-sia; pemrogram yang baik menghindari kode yang tidak perlu.
Konsep tembus pandang diterjemahkan menjadi transparansi dalam penulisan perpustakaan. Pustaka yang baik memiliki antarmuka yang intuitif, dan Anda dapat menyambungkannya dan tidak khawatir.
EDIT: Saya lupa hal yang paling penting: ninja dan programmer yang baik sangat terampil sebagai hasil dari pelatihan dan latihan.
sumber
Dalam pemahaman saya, tidak setiap programmer yang baik atau sangat baik adalah Ninja. Ninja adalah jenis khusus. Seorang programmer Ninja adalah orang yang muncul pada waktu yang tidak biasa (misalnya jam 3 pagi), melakukan hal-hal berbahaya yang orang normal enggan (seperti menggunakan hex-editor untuk memperbaiki bug yang sangat kritis dalam satu dekade, program yang diduga tidak dapat diatasi secara langsung pada server produksi) dan hilang tidak terlihat.
Jelas, meskipun seorang Ninja membutuhkan keterampilan teknis yang sangat baik untuk melakukan aksi seperti itu secara teratur dan bertahan, banyak programmer yang baik tidak cocok dengan deskripsi itu. Dengan metode yang tepat, tidak perlu bagi Ninja. Di sisi lain, jika hal yang mustahil terjadi, adalah hal yang baik untuk memilikinya.
sumber
Selain faktor "Kedinginan" dan "Elite", ninja sering tersembunyi dan diketahui melakukan hal-hal seperti menyelinap keamanan masa lalu untuk masuk ke tempat-tempat yang seharusnya tidak mereka temukan. Karena sifat ini dibagikan oleh Peretas, saya pikir seseorang berpikir bahwa "Ninja" akan menjadi judul yang bagus untuk mereka. Bagi orang yang bukan IT, Peretas dan Pemrogram adalah hal yang sama, dan mereka pikir kata "ninja" sangat keren, jadi agak macet.
Jadi logikanya adalah:
Ninja = Orang Siluman Yang Dapat Menyelinap Ke Masa Lalu Ke Tempat-Tempat Yang Tidak Seharusnya
Orang Siluman Yang Dapat Menyelinap Keamanan Lalu Ke Tempat Mereka Seharusnya Tidak = Peretas
Hacker = Programmer
Karenanya, Ninja = Programmer
sumber
Saya akan menentang sentimen populer di sini. Saya pikir ada banyak romantisasi yang terjadi dan peregangan berlebihan untuk membuat koneksi antara ninja dan insinyur. Saya akan tetap sederhana saat ninja masuk, melakukan pekerjaan, dan keluar biasanya tanpa terdeteksi . Satu-satunya lompatan yang akan saya buat adalah bahwa dalam subkultur Anda dapat mendengar lelucon tentang Chuck Norris versus ninja dan jelas setiap programmer ingin menjadi Chuck Norris atau Jack Bauer, tetapi hanya ada satu Chuck Norris dan Jack Bauer sehingga kita masing-masing dapat menjadi ( anonim) ninja.
Kedua, ninja adalah istilah yang sering digunakan dalam WoW dan dapat memiliki konotasi negatif. Selain itu, ninja tradisional tidak terhormat dibandingkan dengan samurai. Jadi dengan semua kualitas mengagumkan dari seorang samurai, Anda akan berpikir kita akan melihat "programmer samurai" lebih sering jika itu adalah kualitas luar yang dirasakan yang dipuji. Inilah sebabnya saya berlangganan gagasan bahwa penggunaan ninja lebih untuk menekankan keterampilan misterius, jubah dan belati, yang licik. Untuk memutarnya lebih positif, ini adalah keterampilan persediaan dalam perdagangan mata-mata; penyamun, intelijen, dan agen rahasia inklusif.
sumber