Apakah pekerjaan pemeliharaan khusus menghambat karier seorang programmer? [Tutup]

52

Sebagian besar pekerjaan saya selama tiga tahun terakhir sebagian besar berada di sekitar pemeliharaan sistem warisan yang perlu diperbaiki atau diperbaiki sesekali sebelum dijual kembali.

Saya memahami peran penting yang harus dimainkan oleh programmer pemeliharaan di perusahaan dengan sejumlah besar proyek dan pengembang terbatas.

Tetapi ketika saya menilai kemajuan karier saya saat ini dan melihat rekan-rekan saya; kontraktor dan pengembang perusahaan sama; Saya merasa seolah-olah saya tertinggal jauh di belakang karena saya telah mendapatkan banyak hal dalam hal area yang saya sentuh tetapi tidak terlalu dalam. Saya sudah mulai mengatasinya dengan memulai sebuah blog, mengerjakan proyek git-hub kecil saya sendiri dan menjadwal ulang hidup saya untuk punya waktu untuk melakukan pengkodean pribadi setelah bekerja secara teratur.

Saya merasa bahwa saya harus mewawancarai perusahaan lain untuk menghindari pekerjaan pemeliharaan. Saya harus menyatakan diri saya cukup junior dalam tingkat keterampilan karena saya tidak akan memiliki kedalaman tingkat pengetahuan yang diperlukan dari seseorang dengan pengalaman tiga tahun yang berfokus pada bidang tertentu. jalur dalam pengembangan fitur akan. Jadi setengah dari pengalaman kerja saya saat ini akan sia-sia dalam jangka panjang.

Tapi ini mengarahkan saya ke pertanyaan utama saya, permintaan maaf jika ini terasa terlalu terpusat pada dilema pribadi saya ,:

Apakah peran program pemeliharaan khusus akhirnya merugikan karier awal? Apakah programmer lain benar untuk menghindari peran seperti ini? Apakah melakukan pekerjaan ini mengunci Anda untuk melakukan tugas-tugas serupa kecuali Anda siap untuk memulai sebagai junior?

Gyurme
sumber
Saya akan berpikir teknologi yang Anda gunakan di awal karir Anda (jauh) lebih penting daripada apakah Anda melakukan pekerjaan pemeliharaan atau pengembangan baru. Jika Anda melakukan pengembangan baru dalam bahasa internal atau bahasa lama dengan sedikit permintaan, mungkin akan jauh lebih buruk daripada tidak melakukan pengembangan baru dalam bahasa permintaan yang lebih tinggi.
stoj
6
Itu tentu membangun karakter.
quant_dev

Jawaban:

70

Apakah peran program pemeliharaan khusus akhirnya merugikan karier awal? Apakah programmer lain benar untuk menghindari peran seperti ini? Apakah melakukan pekerjaan ini mengunci Anda untuk melakukan tugas-tugas serupa kecuali Anda siap untuk memulai sebagai junior?

Pertama, Anda harus tahu bahwa Anda dianggap junior untuk sementara waktu. Anda mungkin mendapatkan promosi sewenang-wenang karena Anda baik dan ini adalah satu-satunya cara untuk memberi Anda gaji yang layak, tetapi Anda masih akan dianggap sebagai junior saat Anda menuju ke pekerjaan berikutnya.

Kedua, jika saya mempekerjakan seseorang dengan pengalaman 2-4 tahun, saya tidak terlalu peduli apakah pekerjaan mereka murni pemeliharaan. Jika Anda telah menghabiskan 10 tahun dalam pemeliharaan dan saya menyewa untuk proyek greenfields, saya mungkin memiliki pertanyaan tetapi, selama beberapa tahun pertama, saya jujur ​​berharap.

Di sisi lain, jika saya mempekerjakan seseorang yang TIDAK PERNAH bekerja dalam pemeliharaan, saya akan lebih curiga. Saya memiliki banyak kandidat untuk pekerjaan yang telah menghabiskan 4 tahun pertama mereka melompati dari satu pekerjaan "baik" ke pekerjaan lain dan setiap orang tidak belajar apa-apa tentang apa yang membuat kode dapat dipertahankan. Dan, jangan salah, jika saya menyewa proyek greenfields yang ingin saya pertahankan, saya tidak peduli apakah ANDA akan mempertahankan kode tersebut, saya peduli Anda tahu bagaimana membiarkannya dipertahankan untuk pengembang masa depan.

Programer lain yang Anda sebutkan ini, yang menghindari pekerjaan seperti ini, umumnya menghindarinya karena mereka kurang menyenangkan, bukan karena menghambat karier mereka.

Akhirnya, Anda harus tahu bahwa persentase yang sangat besar (saya kira kira-kira 80%) pekerjaan pengembangan perangkat lunak lebih dari 50% pemeliharaan.

Jadi, untuk memotong semua itu dan menjawab pertanyaan Anda: Tidak, saya tidak berpikir itu akan menghambat karir Anda. Kecuali jika Anda tinggal di sana terlalu lama. Aturan umum adalah "begitu Anda mulai merasa seperti Anda mendapatkan tahun pengalaman yang sama setiap tahun, saatnya untuk pergi." Jika Anda merasa, setiap tahun, seperti Anda adalah pengembang yang lebih baik daripada tahun lalu, Anda baik-baik saja (dan itu berarti bagi saya, 20 tahun karier saya, sama seperti Anda).

pdr
sumber
25
+1 Melakukan pemeliharaan membuat seseorang berkembang lebih baik.
8
+1 Melakukan pemeliharaan sendiri atau proyek orang lain memaksa Anda untuk menghargai dan belajar dari konsekuensi keputusan yang dibuat sebelumnya dalam proyek.
Ophidian
Walaupun memiliki pengalaman dengan pemeliharaan sangat ideal, pendapat saya adalah bahwa apa yang Anda pelajari dari mengembangkan proyek yang sukses> apa yang dapat Anda pelajari dengan memelihara proyek orang lain. Pemeliharaan mungkin mengajarkan Anda apa yang tidak boleh dilakukan, tetapi seperti yang dikatakan oleh Jason Fried: belajar dari kegagalan mungkin memberi tahu Anda apa yang tidak boleh dilakukan di waktu berikutnya, tetapi itu tidak memberi tahu Anda apa yang harus dilakukan di waktu berikutnya .
Korey Hinton
@KoreyHinton: Saya yakin Jason Fried, seorang pengusaha sukses, percaya apa yang dia katakan, dalam hal menjadi seorang pengusaha. Saya berpendapat bahwa a) dia tidak benar-benar tahu apa yang bisa dia lakukan dengan lebih baik, karena segala sesuatunya berjalan dengan sangat baik baginya, b) mendukung DHH dan Rails adalah 90% dari keberhasilan sinyal dan itu adalah pertaruhan yang tidak akan membayar off 90% dari waktu, dan c) bahkan Jason mungkin tidak akan mengklaim bahwa nasihat tentang menjadi seorang wirausahawan diterjemahkan menjadi belajar dari keharusan mengumpulkan perangkat lunak yang ditulis dengan buruk.
pdr
@ pdr Anda benar, kedua hal itu tidak menerjemahkan dengan tepat. Karena saya masih seorang mahasiswa, saya berbicara berdasarkan pendapat dan bukan pengalaman. Saya kira secara pribadi saya lebih suka menulis kode baru daripada mempertahankan kode yang ditulis oleh orang lain tetapi kedengarannya seperti pemeliharaan adalah sesuatu yang akan saya lakukan banyak di bidang ini.
Korey Hinton
13

Dalam pekerjaan apa pun, pengalaman yang Anda dapatkan adalah spesifik untuk apa yang Anda lakukan, yang membatasi berbagai kemungkinan saat melamar pekerjaan lain berdasarkan pengalaman itu. Itu tidak spesifik untuk pemeliharaan. Saya pikir pertanyaan lain lebih relevan daripada apakah sesuatu pemeliharaan atau pengembangan perangkat lunak baru:

  • Seberapa luaskah teknologi spesifik yang Anda gunakan? Jika Anda mempertahankan sesuatu yang usang dan jarang digunakan di tempat lain, maka itu akan membatasi peluang karir masa depan Anda (tetapi demikian juga mengembangkan perangkat lunak baru untuk sistem / platform / teknologi yang tidak banyak digunakan).
  • Bagaimana pekerjaan Anda saat ini memperlengkapi Anda untuk pekerjaan yang ingin Anda lakukan di masa depan? Pekerjaan pemeliharaan, seperti yang Anda tunjukkan, adalah penting dan akan selalu ada. Tidak ada yang salah dengan memiliki karier yang terfokus pada jenis pemrograman ini; akan selalu ada banyak kemungkinan bagi pengelola sistem. Tapi mungkin bukan itu yang ingin Anda lakukan. Ini menjadi masalah jika pekerjaan Anda saat ini tidak mempersiapkan Anda untuk apa yang Anda minati.

Namun, saya tidak akan terlalu khawatir. Satu hal yang Anda katakan adalah:

Saya telah mendapatkan banyak hal dalam hal area yang telah saya sentuh tetapi tidak terlalu dalam.

Jangan menganggap ini sebagai masalah, karena dapat digunakan untuk keuntungan Anda. Memiliki pengalaman luas berarti ada banyak hal yang bisa Anda katakan "ya, saya sudah melakukan itu." Banyak pekerjaan meminta pengalaman dalam beberapa teknologi dan tugas yang berbeda. Anda mungkin memiliki keunggulan dibandingkan pengembang yang memiliki pengalaman yang sangat mendalam dalam satu teknologi.

Selain itu, banyak pekerjaan melibatkan campuran pemeliharaan dan pengembangan baru. Jika Anda ingin melakukan lebih banyak pengembangan baru, Anda bisa menggunakan pengalaman pemeliharaan yang ada untuk transisi ke peran campuran yang akan memberi Anda lebih banyak pengalaman pengembangan.

Kesimpulannya, resume Anda mungkin lebih baik daripada yang Anda pikirkan. Sebagian besar akan tergantung pada seberapa baik Anda menganalisis kekuatan pengalaman Anda, dan kemudian mengomunikasikan kekuatan itu dalam proses aplikasi dan wawancara.


sumber
+1 Tentang pengalaman luas . Setelah melakukan 15 tahun pengembangan dan tahun terakhir dalam pemeliharaan, saya dapat mengatakan dari pengalaman pribadi bahwa saya telah menyentuh lebih banyak bahasa dan platform daripada yang seharusnya saya tetap dalam pengembangan. Sebagai seorang pekerja lepas, memiliki banyak keluasan (generalis) memberi saya perasaan nyaman tidak akan segera kehabisan pekerjaan. Mungkin ini dengan mengorbankan kemungkinan menghasilkan lebih banyak uang ketika mengkhususkan (spesialis) tapi saya lebih suka mengurangi risiko.
Lieven Keersmaekers
2

Apakah peran program pemeliharaan khusus akhirnya merugikan karier awal?

Lebih sering daripada tidak - YA, dengan asumsi:

  • bahwa karir di sini berarti keahlian dalam berbagai keterampilan teknis yang berbeda.
  • Anda menghabiskan lebih dari X tahun di sana, di mana X sudah cukup untuk "mengatur" cara berpikir Anda.
  • bahwa Anda tidak melakukan apa pun selain.
  • bahwa "pengelola khusus" (lihat EDIT, di bawah) berarti Anda tidak membuat kode untuk memelihara dan juga membuat kode hal-hal baru, tetapi Anda hampir selalu memberi kode untuk mempertahankan atau bahkan mengerjakan proyek dalam mode pemeliharaan - tidak ada fitur baru, paling tidak diperlukan perubahan kode untuk memperbaiki bug.

Ini tidak berarti bahwa selalu demikian.

Orang yang memelihara perangkat lunak jarang dianjurkan (lihat EDIT, di bawah) untuk melakukan penelitian, jarang dapat menyambungkan perpustakaan baru atau DB dan menghabiskan beberapa hari mencari tahu cara kerjanya. Ini (biasanya) pekerjaan tetap yang membutuhkan perubahan minimal pada basis kode yang ada dan dengan demikian "membentuk" cara Anda mendekati masalah di kemudian hari. Saya dapat menyebutkan beberapa perusahaan yang memiliki kebijakan untuk memelihara perangkat lunak yang secara eksplisit menyatakan "sedikit perubahan dalam kode = lebih baik", meskipun ada hal-hal buruk yang dapat terjadi.

Apakah programmer lain benar untuk menghindari peran seperti ini?

Saya tahu pengelola yang sangat baik yang menyukai pekerjaan mereka dan tidak ingin melamar sesuatu yang lain justru karena nyaman di mana mereka berada. Tidak semua orang suka mempelajari hal-hal baru setiap saat. Jadi - hindari atau cari tergantung pada preferensi Anda.

Apakah melakukan pekerjaan ini mengunci Anda untuk melakukan tugas-tugas serupa kecuali Anda siap untuk memulai sebagai junior?

Lebih sering daripada tidak - YA. Karena Anda sudah memiliki pengalaman melakukan itu, karena Anda sudah "tahu tali" dll. Tetapi shift jelas mungkin dan dapat terjadi tanpa melamar posisi junior. Anda sudah mulai melakukan hal-hal samping, tetap lakukan! Itu sebenarnya sangat bermanfaat dan dapat mengecilkan 'kesenjangan keterampilan' yang Anda perhatikan.


EDIT: Dan telah menunjukkan (sangat tepat), bahwa tugas pemeliharaan sering kali dapat dilakukan DENGAN penelitian. Itu benar. Saya telah mengubah jawaban di atas di dua tempat untuk mengatasi hal ini dengan lebih baik.

Tugas seperti itu pasti BISA dilakukan dengan cara ini dan jika mereka - hebat! Namun AFAIK sebagian besar pengelola sistem LEGACY BERDEDIKASI memiliki kebijakan atau harapan dan tenggat waktu manajemen yang - sekali lagi, lebih sering daripada tidak - memaksa mereka untuk menyelesaikan masalah dengan perubahan sekecil mungkin. Seringkali tekanan cukup tinggi sehingga bahkan jika Anda bisa melakukannya dengan cara ini, Anda mungkin tidak mau. Terutama jika itu bukan kode ANDA: tanpa teori (sesuai Ryle dan Naur) di belakangnya Anda berisiko merusak lebih dari yang Anda perbaiki.

Namun demikian harus dicatat: Saya tidak memiliki data global yang keras, saya berbicara dari pengalaman saya sendiri - saya bekerja dalam situasi sebagai OP, saya merekrut orang-orang dengan 4 - 10 tahun pengalaman sebagai pemelihara, saya berbicara dengan banyak pemelihara dan saya tahu orang-orang yang bekerja sebagai pengelola yang berdedikasi . Tidak hanya orang-orang yang membuat kode hal-hal baru tetapi juga kode untuk mempertahankan pengelola proyek yang berdedikasi, siapa yang hanya bertugas mengerjakan bug dan patch dan bahkan tidak satu pun fitur baru, karena ini adalah proyek lama dan sekarang hanya dalam "mode pemeliharaan".

LAFK mengatakan Reinstate Monica
sumber
@ dan1111, bagian mana yang tidak? Meskipun ini merupakan duplikat, saya dengan senang hati akan membuat jawaban saya lebih baik.
LAFK mengatakan Reinstate Monica
Terima kasih Dan. Saya akan sedikit memperluas jawaban saya untuk menyoroti bagian-bagian yang saya percaya berisi jawaban atas komentar Anda.
LAFK mengatakan Reinstate Monica
+1 untuk pekerjaan tambahan pada jawabannya. Terutama, menjelaskan sejauh mana pengalaman Anda sendiri bermanfaat untuk membangun kredibilitas jawabannya.
"Orang-orang yang memelihara perangkat lunak ... jarang dapat menyambungkan perpustakaan baru atau DB dan menghabiskan beberapa hari mencari tahu cara kerjanya." Itu bukan pengalaman saya. Pemrogram pemeliharaan harus pandai menyelam ke sesuatu yang asing dan cepat memahami esensinya (apakah itu program atau perpustakaan). Setidaknya, itulah masalahnya jika Anda mempertahankan hal-hal yang berbeda; jika Anda mempertahankan hal yang sama sepanjang waktu, selama bertahun-tahun, maka negatif yang datang yang tidak disebabkan oleh "pemeliharaan", mereka disebabkan oleh bekerja pada hal yang sama terlalu lama (terlepas dari di mana itu berada siklus hidup).
user1172763
Hai @ user1172763. Saya harus mengatakan, definisi pemeliharaan Anda sangat luar biasa. Saya percaya bagian yang saya tambahkan untuk Dan membahas kasus pemeliharaan yang lebih menarik, seperti milik Anda. Namun saya tidak percaya itu adalah pemeliharaan standar. Hanya untuk memverifikasi - alasan penurunan suara adalah karena pengalaman Anda tidak cocok dengan jawaban saya? Maka tolong sebutkan sumber Anda, seperti yang saya nyatakan milik saya, sehingga orang lain dapat membaca dan memutuskan.
LAFK mengatakan Reinstate Monica
1

Saya harus menyatakan diri saya sebagai yang cukup junior dalam tingkat keterampilan karena saya tidak akan memiliki kedalaman tingkat pengetahuan yang diperlukan dari seseorang dengan pengalaman tiga tahun yang difokuskan pada jalur tertentu dalam pengembangan fitur.

Benar. Anda tidak akan bisa mengatakan "3 tahun pengalaman merancang sistem dari awal menggunakan X, Y, dan Z", Anda harus mengatakan "3 tahun pengalaman MEMPERTAHANKAN sistem dari awal menggunakan X, Y, dan Z" kecuali Anda ingin berbohong di CV Anda.

Saya merasa seandainya saya mewawancarai perusahaan lain untuk keluar dari pekerjaan pemeliharaan, saya harus menyatakan diri saya cukup junior dalam tingkat keterampilan karena saya tidak akan memiliki kedalaman tingkat pengetahuan yang diperlukan dari seseorang dengan pengalaman tiga tahun yang berfokus pada bidang tertentu. jalur dalam pengembangan fitur akan

Jika Anda ingin mengatakan "Saya merancang dan membangun sistem dari awal" maka ya, Anda harus mengklasifikasikan diri Anda sebagai junior.

Apa yang cukup umum dalam IT, (dan saya tidak mengatakan ini adalah apa yang Anda lakukan) adalah orang-orang berasumsi bahwa karena mereka telah bekerja selama X tahun, mereka memiliki pengalaman X tahun dan setelah {jumlah tahun tak tentu} mereka harus dianggap sebagai pengembang {Widget} Senior.

Sekarang, jangan salah paham, tidak ada yang salah dengan pekerjaan pemeliharaan, setiap orang harus melakukannya pada suatu waktu atau yang lain, tetapi apa yang telah Anda sadari adalah bahwa terjebak melakukan hal itu terlalu lama akan membuat Anda sulit untuk melakukannya. menjauh dari peran itu di masa depan. Ini sering berjalan seiring dengan "terjebak" tidak belajar teknologi / alat / metode yang lebih baru.

Idealnya, Anda menginginkan perpaduan antara kerja sistem "baru" dan pekerjaan lama.

Pada catatan positif, Anda mungkin telah melihat banyak arsitektur yang berbeda (baik dan buruk), pendekatan yang berbeda, bagaimana keputusan yang buruk dapat membuat programmer lama bekerja lebih keras di kemudian hari. Ini semua positif daripada yang bisa ditekankan.

Semoga berhasil!

ozz
sumber
0

Melihat ini dari sudut yang berbeda, saya pikir menjual diri Anda sebagai seorang ahli dalam pemeliharaan adalah peluang yang dapat dipasarkan.

Sebagai pemilik perusahaan perangkat lunak yang memiliki banyak proyek saat ini, salah satu risiko terbesar yang harus saya meminimalkan adalah pengembang yang melompat kapal, dan pemeliharaan kode mereka selanjutnya.

Jadi anggaplah Anda mampu menumbuhkan semangat tentang pekerjaan pemeliharaan (yang saya kira akan menjadi kasus sejak Anda siap untuk blog tentang pengalaman Anda), jika Anda datang kepada saya menawarkan layanan Anda sebagai guru pemeliharaan - menjamin untuk memoles semua berbagai proyek pengembang saya dengan refactoring, mengoptimalkan dan mendokumentasikan kode mereka untuk pemeliharaan jangka panjang - dan Anda memiliki rekam jejak untuk mendukung jaminan Anda, saya akan mempekerjakan Anda dalam sekejap.

Saran saya adalah mencoba ini dengan benar. Posisikan diri Anda sebagai ahli pemeliharaan dan kembangkan blog Anda. Kamu mungkin berencana untuk melakukan sesuatu.

Kosta Kontos
sumber