Keseimbangan antara "alat yang tepat untuk pekerjaan itu" dan keakraban [tertutup]


19

Jadi ketika memilih bahasa apa yang akan digunakan untuk suatu proyek, di dunia yang ideal bahasa dipilih karena itu adalah alat yang tepat untuk pekerjaan itu. Namun, saya sering lebih suka menggunakan bahasa yang saya fasih daripada yang saya harus belajar atau bahwa saya hanya berbicara. Tentu saja kefasihan bahasa juga memerlukan pengetahuan tentang perpustakaan yang berlaku dalam bahasa. Hanya karena saya benar-benar menyukai bahasa serba guna seperti Java tidak berarti saya harus selalu menggunakannya, tetapi pada saat yang sama itu tidak berarti saya harus mengeluarkan sesuatu seperti Perl setiap kali ada beberapa pemrosesan teks yang harus dilakukan. Bagaimana cara menemukan keseimbangan di sini?

Jawaban:


12

Wow itu adalah pertanyaan yang SANGAT sulit ketika dibawa keluar dari dunia teori dan ke dunia produksi.

Dalam teori

Sederhana. Selalu gunakan alat terbaik untuk pekerjaan itu, dan pelajari apa yang Anda butuhkan.

Dalam praktek

Tidak hanya ada pertanyaan tentang kefasihan Anda, ada sejumlah pertanyaan bisnis lain yang perlu ditanyakan sebelum Anda dapat menjawab ini:

  • Biaya pembelian "perkakas yang benar"
  • Biaya untuk mendukung ini - orang perlu dilatih
  • Kurva biaya pembelajaran
  • Biaya integrasi dengan produk lain (sekarang dan di masa depan)
  • ... dll

Di luar teori ada konsekuensi serius untuk pilihan teknologi Anda.

Sekarang saya tidak mengatakan jangan memilih alat yang benar - pastikan alat yang tepat akan dapat mencapai implikasi biaya.

Jika ini adalah proyek pribadi - selalu gunakan alat "benar" - jadi ketika Anda dihadapkan dengan keputusan ini dalam konteks bisnis Anda dapat membuat panggilan informasi yang lebih baik.


2
Itu tidak 'sederhana' dalam teori. Hanya apa yang terbaik benar-benar berarti ? Apa kriterianya?
whatsisname

+1: Ketika semua faktor telah digabungkan, alat yang tepat mungkin tidak berakhir menjadi alat terbaik - hanya sedikit orang yang mendapatkannya, memilih alat terbaik, dan menderita akibatnya.
Steven Evers

1
@whatsisname terbaik adalah subyektif dan tergantung pada lingkungan, anggaran, jangka waktu Anda ... - tetapi dalam semangat proyek rumahan itu akan menjadi kasus mencoba teknologi yang dirancang untuk memecahkan masalah itu. Misalnya Erlang untuk didistribusikan, Perl untuk manipulasi teks - maka Anda dapat membuat penilaian sendiri.
Stephen Bailey

Satu hal yang saya semakin yakin adalah bahwa Java sebagian besar bukan alat yang tepat untuk pekerjaan itu. Ada begitu banyak alternatif yang lebih baik. Jangan salah sangka. Itu adalah bahasa yang bagus di tahun '00 dan banyak orang terbiasa tetapi bagi saya itu bukan alat TERBAIK (tapi masih alat dalam beberapa kasus saya gunakan, hanya bukan yang terbaik) untuk pekerjaan saya lagi. Bukan untuk bermain-main, tidak untuk data besar bukan untuk web.
Aduh

9

Saya pikir keakraban tidak diberikan kredit yang cukup. Keakraban Anda sangat memengaruhi alat yang tepat. Anda harus menggunakan alat ini untuk menyelesaikan proyek Anda. Selain itu, menggunakan sesuatu yang Anda nikmati dapat tanpa diragukan melebihi kekurangan dalam kebugarannya karena Anda akan lebih bersemangat untuk menyelesaikan pekerjaan dan Anda akan mendapatkan hasil yang lebih baik.

http://headrush.typepad.com/creating_passionate_users/2006/08/when_the_best_t.html


3

Ini tidak benar-benar dapat diselesaikan kecuali sebagai pertanyaan bisnis. Namun, banyak pertanyaan bisnis dibuat hanya dengan melihat angka jangka pendek, yang merupakan kesalahan dengan hal-hal seperti ini.

Pendekatan umum saya:

  1. Jika itu hal kecil atau jangka pendek, selalu tulis di alat yang sudah dikenal.
  2. Jika ini adalah hal yang besar dan berjangka panjang, lihat pertukaran biaya-manfaat dari mempelajari alat baru.
  3. Jika Anda tidak yakin, perlakukan itu sebagai hal jangka pendek sampai Anda memiliki bukti bahwa itu adalah hal jangka panjang. Lalu pergi dan lihat kembali keputusan itu.

Tiga hal yang perlu diingat saat Anda memikirkan biaya dan manfaat: Pertama, orang yang terburu-buru cenderung mengubah masa depan. Dua, biaya pemeliharaan adalah bagian terbesar dari biaya untuk sistem yang berhasil. Tiga, pengembang yang baik suka mempelajari hal-hal, dan membuat pengembang Anda senang adalah investasi jangka panjang yang bagus.


1

Pertanyaan bagus! Seperti yang dikatakan whatsisname dalam jawabannya, "keakraban tidak cukup dihargai." Alat yang berbeda, kerangka kerja yang berbeda, bahasa yang berbeda bisa jauh lebih baik daripada apa yang biasa Anda gunakan, dan Anda masih akan jauh lebih tidak produktif dengan alat itu saat pertama kali belajar.

Saya telah bekerja selama beberapa tahun sebagai pengembang ASP.NET di agensi digital di mana kami memiliki campuran proyek besar, proyek kecil, proyek ketat, proyek yang dilengkapi dengan baik, dll. Apa yang kami coba lakukan, untuk memperluas keterampilan kami, adalah mencari "target empuk", proyek yang lebih kecil yang tidak memiliki tenggat waktu yang ketat dan sulit, dan menggunakannya sebagai kesempatan untuk menggunakan teknologi baru yang mungkin lebih unggul. .NET 2.0, 3.5, 4.0, ASP.NET MVC, Linq to SQL, Framework Entity - semuanya, saya telah menggunakan untuk pertama kalinya dalam proyek semacam itu.

Jika Anda dapat mengambil peluang seperti itu, maka semoga, Anda akan siap dengan serangkaian opsi yang lebih besar untuk memilih alat yang tepat tanpa mengalami kekurangan keakraban. Sama seperti dalam contoh Julio: mereka menemukan target di mana mereka dapat menambahkan Ruby ke daftar lagu mereka, dan sekarang ke depan mereka dapat memilih antara Jawa dan Ruby.

Tetapi jika tenggat waktu singkat dan padat dan proyek itu penting, saya sarankan Anda tetap menggunakan alat yang sudah dikenal. Sesuatu yang berbeda mungkin lebih cocok, tetapi dalam proyek-proyek seperti itu, ini semua tentang risiko .


1

Ini tergantung pada beberapa hal:

1. Seberapa baik Anda belajar bahasa atau alat baru.

Jika Anda belajar cepat, hambatan untuk mempelajari bahasa atau alat baru lebih rendah. Ini memberi Anda kesempatan untuk menambahkan alat lain ke kotak alat.

2. Bagaimana bahasa / alat independen Anda membuat lingkungan kerja Anda.

Jika alur kerja Anda sangat bergantung pada alat, maka hambatan untuk mempelajari berbagai bahasa lebih tinggi. Jika Anda terhubung dengan IDE tertentu, beralih bahasa melibatkan lebih dari sekadar mempelajari bahasa, karena mengedit teks pasti akan membuat Anda frustrasi.

Seseorang yang menggunakan vim atau emacs tidak memiliki masalah ini. Yang harus mereka lakukan adalah mempelajari bahasa baru.

3. Realitas bisnis

Mempelajari alat / bahasa baru membutuhkan waktu. Waktu itu memiliki biaya. Tetapi biaya itu memiliki potensi untuk menjadi investasi yang membayar lebih dari biaya awal. Juga, solusi canggung biasanya akan memakan waktu lebih lama untuk diterapkan dan lebih sulit untuk dipelihara. Jika itu sesuatu yang lebih besar dari proyek kecil, dan alat-alat di kotak alat saya yang ada sepertinya tidak sesuai dengan masalahnya, saya akan meneliti alat mana yang sesuai dengan masalahnya. Saya juga berinvestasi dalam lingkungan yang sesuai dengan pendekatan generalis, belajar menggunakan vim sebagai editor pilihan saya.

Hal lain - berapa jarak terpendek antara dua titik? Jika orang lain telah menulis sesuatu yang hampir melakukan apa yang ingin saya lakukan, biasanya paling cepat untuk memodifikasi itu sesuai dengan kebutuhan saya.


0

Jika ada bahasa baru yang membuat Anda penasaran, dan Anda (dan bisnis) mampu membelinya, mengapa tidak memberikan diri Anda beberapa minggu hingga sebulan untuk menjelajahinya?

Ini adalah bagaimana saya belajar ruby. Mitra pembuat kode saya memiliki pengalaman 7 tahun dengan Java. Saya memiliki 11 tahun pengalaman di Jawa. Tak satu pun dari kami yang tahu apa-apa tentang ruby, hanya bahwa kami ingin mencobanya.

Saya meyakinkan dia dan seluruh perusahaan untuk mencoba ruby ​​selama sebulan (ini akan menjadi proyek 6-8 bulan). Kasus terburuk, kita akan mulai lagi menggunakan Java.

Untungnya setelah seminggu kami ketagihan, jadi ternyata baik-baik saja. Mungkin Anda bisa mencoba yang serupa? Lihat apakah Anda dapat membuat sesuatu dari awal dalam beberapa bahasa lain, tetapi jelaskan kepada bisnis mengapa Anda melakukannya, dan setidaknya yang paling penting, rencana B apa seandainya percobaan gagal.


0

Jelas tidak ada jawaban tunggal untuk pertanyaan ini yang akan berlaku untuk semua situasi. Tapi ini adalah aspek yang saya pikir belum disebutkan. Jika Anda seorang pengembang, Anda juga harus mempertimbangkan daya jual Anda sendiri. Jika bahasa X dipilih untuk proyek Anda, bagaimana yang akan terlihat pada resume Anda? Mungkin merupakan ide yang baik untuk memilih bahasa yang tidak Anda kenal sehingga Anda memiliki alasan untuk mempelajarinya, memperluas cakrawala intelektual Anda, dan membuat keahlian Anda lebih menarik bagi calon pemberi kerja.


0

Saya akan mengatakan bahwa keakraban dengan bahasa juga merupakan aspek "menjadi alat yang tepat untuk pekerjaan". Saya tidak bisa membayangkan situasi di mana Prolog akan menjadi alat yang tepat untuk pekerjaan itu bagi saya mengingat ketidaktahuan saya sepenuhnya bahasa.


0

Versi saya sendiri adalah untuk "menggunakan alat yang tepat tersedia untuk saya" untuk pekerjaan itu. Menjadi "tersedia" berarti saya dapat menggunakannya, tidak hanya saya dapat membeli / mendapatkan kompiler dan / atau runtime.

Dalam hampir semua skenario kehidupan nyata, mengingat masalah Anda memiliki waktu yang sangat terbatas untuk menyelesaikannya. Saya tidak percaya Anda benar-benar dapat mempelajari bahasa baru dalam waktu yang sangat singkat . Belajar bahasa berarti benar-benar membaca buku, membaca kode orang lain, memahami cara kerjanya dan filosofi di baliknya. Seseorang bisa membaca tutorial dari web (yang sangat bagus sebagai titik awal), dan mendapatkan peretasan. Tapi itu akan menyebabkan kode yang buruk dan Anda mungkin akan lebih baik menulis kode yang lebih baik dalam bahasa yang Anda tahu dalam waktu yang jauh lebih singkat.

Terlepas dari pepatah "alat yang tepat untuk pekerjaan", kebanyakan bahasa populer sebenarnya adalah tujuan umum. Mereka mungkin memiliki kekuatan di bidang tertentu, dan tidak sebagus yang lain di bidang lain, tetapi mereka bisa menyelesaikan sebagian besar pekerjaan. Tidak mengetahui bahasa secara praktis berarti alat itu tidak tersedia untuk Anda.

Saya tidak mengatakan hanya belajar satu (atau bahkan dua atau tiga) bahasa dan menggunakannya untuk semua proyek dan tidak belajar apa pun. Penting untuk mempelajari bahasa lain, untuk memperoleh lebih banyak alat untuk ditambahkan ke kotak alat Anda. Tetapi dihadapkan dengan masalah, lebih baik tetap menggunakan alat yang Anda tahu daripada menambah kekhawatiran Anda dengan menggunakan teknologi asing. Tetapi teruslah belajar bahasa lain sehingga pilihan kali berikutnya lebih mudah.

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.