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?
sumber
Jawaban:
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).
sumber
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:
Namun, saya tidak akan terlalu khawatir. Satu hal yang Anda katakan adalah:
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
Lebih sering daripada tidak - YA, dengan asumsi:
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.
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.
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".
sumber
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.
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!
sumber
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.
sumber