Saya seorang pengembang perangkat lunak junior dan saya telah bekerja untuk sebuah perusahaan kurang dari setahun.
Sementara saya selalu berpikir menjadi pengembang perangkat lunak berarti mengembangkan perangkat lunak dan CODE sesuatu, tugas saya lebih pada jenis pekerjaan administrasi, seperti mengatur Jenkins, Replikasi SQL, dll.
Apakah jenis pekerjaan ini termasuk dalam peran Pengembang, atau pengembang hanya mengembangkan perangkat lunak? Haruskah saya berbicara dengan manajer saya tentang ini? Apakah ini cara yang umum bagi perusahaan untuk mengevaluasi keterampilan "mengembangkan"?
Jawaban:
Bagi saya sepertinya mereka merekrut seorang junior karena mereka tidak mampu membayar seorang senior, daripada karena mereka benar-benar menginginkan junior (seseorang yang dapat mereka investasikan dan dibimbing hingga mereka menjadi senior). Saya telah mengelola sebuah tim yang keputusannya dipaksakan kepada mereka oleh manajer yang tidak tahu lebih baik.
Dia berakhir dengan segala macam pekerjaan yang tidak menguntungkan seperti membuat video pelatihan untuk pengguna dan semacamnya dan saya masih merasa bersalah tentang hal itu sekarang, tetapi saya berada di bawah tekanan untuk menyampaikan dan harapannya adalah menambahkan kepala ke ruang pengembangan hanya akan mempercepat segalanya .
Sangat disayangkan, karena menempatkan Anda dan bos Anda dalam posisi yang sulit.
Dia mungkin tidak memiliki pekerjaan yang bisa dia percayai kepada junior, dan senior mana pun yang dia mungkin tidak dapat mengalihkan perhatiannya dari hari-hari mereka. Jalan keluar yang mudah adalah dengan memberikan banyak tugas-tugas non-pengembangan kepada junior, yang ia juga tidak benar-benar ingin menyia-nyiakan waktu pengembang senior.
Tetapi beberapa masalah muncul dari ini.
Pertama, jenis pekerjaan yang dia berikan kepada Anda benar-benar membutuhkan pengembang senior. Khususnya, server build harus dibuat oleh seseorang yang sedang membangun perangkat lunak dan tahu di mana titik-sakitnya.
Kedua, junior tidak menjadi lebih bermanfaat. Setelah lima tahun ini, Anda masih akan melakukan tugas yang sama, karena Anda masih tidak bisa dipercaya dengan pekerjaan pengembangan yang sebenarnya.
Ketiga, junior pada akhirnya akan (seperti yang Anda miliki) menyadari bahwa mereka tidak membantu karier mereka sendiri. Asumsi bahwa yunior berkualitas rendah, daripada rendah pada (dan mencari) pengalaman adalah kesalahan yang mengerikan, tetapi sangat umum, dalam industri ini.
Jadi, ya, duduklah bersama bos Anda. Tetapi pahami kesulitan yang dihadapi. Lihat apakah Anda dapat mencapai suatu pengaturan yang memecahkan masalah semua orang. Anda akan membutuhkan seorang mentor senior dan beberapa tugas Anda saat ini perlu diteruskan ke senior. Ini akan memperlambat proyek tetapi, dalam jangka panjang, itu akan membuahkan hasil. Itulah poin yang Anda butuhkan untuk menghubungi bos Anda, dan mungkin bos mereka. Juga, lihat apakah Anda dapat menemukan sesuatu yang dapat Anda tawarkan sebagai imbalan untuk mengurangi biaya.
Jika Anda tidak bisa maka Anda mungkin ingin mencari di tempat lain.
sumber
Saya menemukan istilah "Pengembang Perangkat Lunak" untuk menjadi identik dengan "Programmer". Jadi pengembang perangkat lunak adalah orang yang tanggung jawab utamanya adalah menulis kode. Dalam pekerjaan pertama saya, judul saya adalah "Pengembang", dan tanggung jawab utama saya adalah merancang dan membuat kode perangkat lunak. Tapi saya pikir tidak ada definisi pasti dari istilah itu. Ini digunakan secara berbeda oleh orang yang berbeda, sehingga artinya menjadi kabur.
Tetapi agar tim pengembangan dapat bekerja secara efisien, Anda harus mengatur hal-hal ini, server CI, replikasi SQL, Penempatan ke server uji, pemantauan server uji, pengarsipan bangunan, dll. (Mungkin tidak semuanya berlaku dalam situasi apa pun) .
Tugas-tugas ini akan memakan banyak waktu dalam fase awal proyek, tetapi akan memakan waktu lebih sedikit setelah Anda menjalankan setup yang bagus.
Sayangnya, pengembang lebih suka kode daripada mengelola membangun server. Oleh karena itu sering, tugas-tugas membosankan ini jatuh ke tangan pengembang junior, karena pengembang senior memiliki tugas yang lebih penting.
Saya belum pernah mengalami perusahaan yang menggunakan tugas-tugas ini sebagai sarana untuk mengevaluasi keterampilan.
Jika Anda tidak puas dengan tanggung jawab Anda saat ini, saya sarankan mengambil masalah dengan manajer lini Anda.
sumber
Tergantung. Tampaknya perusahaan yang berbeda mendefinisikan ini secara berbeda dan untuk beberapa itu adalah istilah umum untuk berbagai fungsi teknis. Bagi sebagian orang itu hanyalah sebuah gelar. Mengajukan pertanyaan yang sama sebelumnya, saya mendapat jawaban yang mirip dengan "Hanya pengembang yang memiliki kemampuan untuk melakukan ini di organisasi kami", saya akan mengatakan mungkin, tetapi itu tidak selalu membuatnya berkembang).
Jawaban teoritisnya adalah bahwa seorang pengembang (membandingkan dengan coder / programmer) adalah orang yang "memecahkan masalah" bahkan jika mereka tidak harus melakukan "pengkodean sesuatu".
Anda ingin kode lebih banyak, jadi mungkin meminta manajer Anda untuk lebih banyak tugas pengkodean atau untuk melakukan beberapa hal yang Anda lakukan dengan pengkodean? Anda menyebutkan hal-hal operasional, jadi mungkin beberapa dari mereka dapat dilakukan oleh kerangka kerja DevOps (periksa koki dan boneka ), yang akan membuat fungsi lebih efisien dan dekat dengan pengembangan.
sumber
Hal ini tidak biasa untuk Pengembang diharapkan untuk memiliki beberapa keterampilan administrasi sistem. Sebagai pengembang senior, saya memperkirakan sekitar 5% dari waktu saya dihabiskan untuk tugas-tugas seperti itu.
Namun, jika Anda tidak melakukan apa pun coding, maka Anda mungkin harus berbicara dengan manajer Anda tentang mendapatkan tugas coding. Bagaimanapun, Anda ingin membangun pengalaman pengkodean. Anda juga lebih berharga sebagai programmer daripada sebagai administrator sistem.
sumber
Kode tidak terlalu berguna jika tidak dibangun ke dalam aplikasi dengan benar, atau mengakses data yang benar, sehingga kegiatan yang Anda daftarkan tampak sangat sejalan dengan apa yang dilakukan pengembang. Saya harus menambahkan bahwa pengembang perangkat lunak juga sangat terlibat dalam dokumentasi dan pengujian. Ini adalah kegiatan yang diperlukan dalam pembuatan perangkat lunak.
Sangat bagus jika perusahaan Anda memiliki spesialis yang dapat melakukan hal ini untuk Anda, tetapi jika tidak, pengembang perangkat lunak bertanggung jawab atas semuanya hingga (dan mungkin termasuk) menyebarkan aplikasi ke dalam produksi dan mendukungnya di sana.
sumber
Sangat umum bagi pengembang di perusahaan kecil hingga menengah untuk melakukan beberapa tugas administrator server / DBA / konfigurasi umum.
Namun, jika tugas-tugas ini mulai menjadi bagian terbesar dari tanggung jawab Anda, itu mungkin sesuatu yang perlu dikhawatirkan tergantung pada tujuan karir Anda. Meskipun Anda mungkin dapat berkembang dalam perusahaan tertentu sebagai teknolog umum, ketika Anda harus pindah ke perusahaan baru, hal itu dapat menyebabkan banyak masalah dalam transisi Anda. Jika Anda tidak melakukan pengembangan tradisional, Anda harus memastikan untuk menjelaskannya pada resume Anda. Jika Anda ingin mendapatkan pekerjaan dalam pengembangan langsung setelah bertugas di pekerjaan seperti yang Anda jelaskan, Anda mungkin harus menerima sesuatu yang Anda "overqualified" karena berdasarkan tahun di industri.
Di sisi lain, mungkin ada perusahaan yang mencari pengembang dengan beragam keterampilan. Tetapi dengan tren penulisan kode saat ini dalam wawancara, Anda juga harus memiliki keterampilan pengkodean terbaik, bahkan jika pekerjaan tersebut membutuhkan sedikit kode begitu Anda masuk.
Jika Anda tidak ingin terjebak dalam posisi Anda saat ini, saya pasti akan mencoba untuk memperbaiki situasi ini segera.
sumber