Saya bekerja untuk perusahaan yang mendukung beberapa bahasa: COBOL, VB6, C # dan Java.
Saya menggunakan bahasa-bahasa itu untuk pekerjaan utama saya, tetapi saya sering menemukan diri saya untuk mengkode beberapa program kecil (misalnya skrip) dengan Python karena saya menemukan itu menjadi alat terbaik untuk jenis tugas itu.
Sebagai contoh: Seorang analis memberi saya file CSV yang kompleks untuk mengisi beberapa tabel DB, jadi saya akan menggunakan Python untuk menguraikannya dan membuat skrip DB.
Apa masalahnya?
Masalah utama yang saya lihat adalah bahwa beberapa bagian dari skrip cepat & kotor ini perlahan-lahan menjadi penting dan:
- Perusahaan saya tidak mendukung Python
- Mereka tidak dikontrol versi (saya mendukungnya dengan cara lain)
- Rekan kerja saya tidak tahu Python
Para analis bahkan sudah mulai mereferensikan mereka dalam email ("luncurkan skrip yang mengekspor ..."), sehingga mereka dibutuhkan lebih sering daripada yang saya pikirkan.
Saya harus menambahkan bahwa skrip ini hanya utilitas yang bukan bagian dari proyek utama; mereka hanya membantu menyelesaikan tugas-tugas sepele dalam waktu yang lebih singkat. Untuk tugas kecil saya sendiri, mereka banyak membantu.
Singkatnya, jika saya adalah pemenang lotre yang mengalami kecelakaan , rekan kerja saya perlu menjaga proyek tetap hidup tanpa skrip tersebut; mereka akan menghabiskan lebih banyak waktu dalam memperbaiki kesalahan CSV dengan tangan misalnya.
Apakah ini skenario umum? Apakah saya melakukan sesuatu yang salah? Apa yang harus saya lakukan?
sumber
Jawaban:
Anda perlu membuat situasi menjadi formal karena seharusnya tidak sampai pada titik ini. Namun, hal-hal ini terjadi sehingga Anda perlu menjelaskan kepada bos Anda bahwa Anda membuat skrip ini untuk penggunaan pribadi, tetapi mereka "lolos" ke sirkulasi yang lebih luas. Akui (jika perlu) bahwa Anda salah karena tidak membawa ini menjadi perhatiannya lebih awal.
Paling tidak skrip harus ditempatkan di bawah kendali sumber "berjaga-jaga" - maka setidaknya jika Anda tidak tersedia (untuk alasan apa pun) rekan kerja Anda akan memiliki akses ke skrip.
Maka Anda perlu meyakinkan bos Anda bahwa Python adalah cara untuk melakukannya atau menerima bahwa Anda harus menulis ulang mereka dalam bahasa yang didukung. Jika biaya untuk mendokumentasikan skrip dan mendidik rekan kerja Anda di Python lebih rendah daripada biaya menulis ulang, Anda bahkan mungkin memenangkan argumen.
sumber
Saya tidak bisa memberi Anda jawaban lengkap tentang apa yang harus Anda lakukan. Saya hanya dapat memberikan satu saran yang dapat Anda gunakan untuk memulai dengan:
Periksa skrip ke dalam repositori yang dapat diakses oleh semua (wajib) pengembang. Tetapi pastikan untuk mencatat fakta bahwa Anda pertama kali menulis skrip ini untuk tujuan Anda sendiri , yaitu untuk melakukan tugas yang telah diberikan kepada Anda. Kemudian tambahkan bahwa Anda hanya memeriksa skrip ini untuk memungkinkan orang lain memanfaatkannya.
Setelah itu, Anda hanya perlu melihat bagaimana orang lain meresponsnya.
sumber
Saya mengalami masalah serupa di tempat saya bekerja. Saya mendengar "Apa itu PHP?" beberapa tahun lalu. Mereka tidak mengerti atau tidak peduli mempelajari apa pun di luar tumpukan MS. Jika python adalah alat yang tepat untuk pekerjaan itu, saya hanya akan memberitahu atasan saya tentang hal itu dan siap untuk banyak perbandingan dan menjelaskan mengapa python adalah pilihan yang tepat. Ini akan membuat frustasi, tetapi saya pikir sebagian besar akan setuju python adalah pilihan yang baik untuk manipulasi teks.
sumber
Hal pertama yang perlu Anda lakukan adalah berbicara dengan tim dan atasan Anda. Saat ini, Anda memiliki faktor truk yang sangat besar (jika Anda tertabrak truk, tidak ada orang lain yang dengan mudah dapat mempertahankan skrip Anda). Sepertinya memiliki skrip untuk melakukan tugas-tugas ini penting, tetapi juga penting bahwa siapa pun yang perlu dapat mengedit dan memelihara skrip ini. Anda perlu menjelaskan bagaimana menggunakan Python menambah nilai - bagaimana menghemat waktu, tenaga, sumber daya, uang, dan sebagainya.
Kedua, masukkan ke dalam kontrol versi proyek. Sekarang. Tidak ada yang Anda hasilkan untuk suatu proyek yang seharusnya berada di luar kendali versi proyek itu, selamanya.
Bersiaplah untuk serangan balik - orang biasanya tidak suka perubahan. Menjalankan sendiri, menggunakan teknologi yang tidak didukung dan tidak dikenal (untuk tim / organisasi) adalah ide yang buruk, tanpa berkonsultasi dengan setidaknya pengembang lain dan menentukan cara terbaik (untuk proyek, bukan hanya Anda) untuk mengotomatisasi tugas-tugas ini untuk semua orang menggunakan.
Saya pikir ini mungkin kasus yang bagus
Kedengarannya seperti Anda menyelesaikan pekerjaan, tetapi Anda harus berurusan dengan dampaknya sekarang.
sumber
Aturan praktis saya adalah:
Apa pun yang berpotensi memengaruhi pekerjaan orang lain harus didiskusikan dengan rekan dan atasan Anda SECEPATNYA.
Tetapi, jika itu untuk Anda dan Anda sendiri, selama itu tidak merusak infrastruktur atau keamanan perusahaan Anda, Anda bebas untuk melakukan apa yang Anda inginkan untuk menyelesaikan pekerjaan.
sumber
Anda memiliki dua opsi:
Tergantung pada organisasi # 1 mungkin menantang (setelah semua membatasi daftar teknologi standar menghindari ledakan pelatihan dan persyaratan keterampilan dukungan kombinatorial).
Opsi kedua akan membantu keahlian Anda, dan Anda mungkin dapat menemukan pihak ketiga (dan kemungkinan open source dengan lisensi ramah komersial) untuk melakukan beberapa kerja keras. Misalnya pencarian untuk "LINQ to CSV" harus mendapatkan beberapa klik bermanfaat.
BTW, alat pengembang VB6 (IDE, compiler) tidak didukung (bahkan tidak ada perbaikan keamanan) sehingga kemungkinan standar tetap perlu diperbarui. (VB6 runtime didukung sebagai bagian dari — dan termasuk dalam pemasangan — versi Windows saat ini). Ini mungkin dapat digunakan sebagai penolong untuk mendekati # 1: set alat standar perlu untuk mencapai target bergerak karena ketergantungan pemasok.
sumber
Jika Anda diberi tugas, dan satu-satunya cara Anda dapat menyelesaikannya tepat waktu, Anda tidak punya pilihan. Saya pikir adalah bijaksana untuk membiarkan mereka yang bertanggung jawab tahu apa yang Anda lakukan. Anda tidak boleh keluar dari kontrol sumber yang diperlukan (kecuali itu benar-benar tidak berfungsi sama sekali?) Pengujian dan dokumentasi.
Terkadang perusahaan mungkin harus membiarkan pengembang tunggal mulai mencari ke area pengembangan baru. Sayangnya, kode ini dapat membuat produksi menjadi lebih cepat daripada yang dapat dilakukan orang lain.
sumber
Yah, saya harus akui bahwa bekerja dengan 20 bahasa berbeda bau, BANYAK.
Anda memiliki skrip Bash yang memanggil skrip Python yang memanggil skrip Perl yang memanggil Java binary yang memanggil C dll ...
Kemudian sesuatu mengenai kipas di seluruh saluran pipa, dan Anda pergi - APA ITU DAT KODEZ? Terutama di Perl ... Dan debugging sederhana, katakanlah, masalah encoding, berubah menjadi kekacauan mimpi buruk. Anda tidak dapat men-debug 5 dari 7 bahasa secara efektif, dan itu berubah menjadi sangat menyakitkan.
Atau Anda harus menambahkan perubahan sederhana, tetapi Anda membuat 10 kesalahan karena Perl memiliki gotchas, Java memiliki gotchas, dll.
Dan rantai 7+ bahasa itu mulai selangkah demi selangkah.
Tapak hati-hati, ini naga ...
sumber
Jika itu adalah alat yang Anda gunakan untuk diri sendiri, Anda bebas melakukan apa pun yang membuat Anda lebih produktif.
Sebenarnya, Anda harus didorong untuk membuat dan menggunakan alat-alat tersebut, yang pada akhirnya akan menjadi perpanjangan tangan Anda.
Akhirnya, mereka akan menyadari pentingnya memiliki alat-alat seperti itu, tidak peduli bahasa apa yang mereka gunakan , dan akan mulai diterapkan di lingkungan kerja mereka.
sumber
Ketika Anda disuruh menulis kode melakukan sth., Bahasa biasanya ditentukan atau tersirat (aturan di perusahaan).
Tetapi ketika Anda harus melakukan beberapa tugas, seperti mengimpor data ke DB, Anda bebas memilih alat yang menurut Anda paling sesuai, karena Anda harus melakukan sesuatu yang benar dan cepat, dan hasilnya penting, bukan alat.
Jadi, saya akan menggunakan aturan itu:
1) Jika Anda diminta untuk melakukan beberapa tugas, seperti impor data, saya akan menggunakan alat / bahasa / dll. itu akan menjadi yang paling nyaman bagi saya dan akan menjadi yang tercepat untuk tugas itu.
2) Jika Anda disuruh menulis alat melakukan beberapa tugas, seperti mengimpor beberapa data, saya akan membahas bahasa / alat apa yang digunakan dengan manajer (dengan pengecualian ketika saya menggunakan bahasa yang tersirat standar, misalnya ketika perusahaan menggunakan [hampir ] hanya Java).
3) Jika tugas itu tampaknya hanya sekali, tetapi menjadi berulang, Anda harus berbicara dengan manajer untuk mengubahnya dari 1) menjadi 2) dan menulis ulang dari bahasa pilihan Anda ke bahasa yang didukung perusahaan.
sumber
Saya kira Anda tidak dalam posisi untuk memutuskan (atau Anda tidak akan mengajukan pertanyaan). Apa pendapat bos Anda tentang masalah ini? Anda harus berbicara dengannya dan mencoba meyakinkannya bahwa Python adalah cara untuk pergi ...
Tentu saja, masalahnya adalah tentang apa yang akan terjadi ketika Anda pergi. Tidak dapat mempertahankan kode mungkin merupakan alasan yang cukup baik untuk berhenti menggunakan Python. Atau Anda dapat mulai mendidik kolega Anda ke bahasa ini ...
sumber