Apakah pembuatan perangkat lunak baru umumnya merupakan bagian utama dari sebagian besar pekerjaan pemrograman? [Tutup]

63

Saya telah bekerja dalam pengembangan perangkat lunak selama lebih dari 10 tahun sekarang, dan saya sadar bahwa saya jarang bisa membuat sesuatu yang "baru". Saya menyadari bahwa "baru" adalah istilah yang tidak jelas, tetapi saya akan mendefinisikannya sebagai sesuatu dari proyek berskala besar baru yang jelas hingga fitur besar baru dalam proyek yang ada (katakan sesuatu yang membutuhkan pemikiran tentang desainnya, dan itu mungkin butuh 2 minggu atau lebih untuk menyelesaikan). Mungkin pedoman kasar adalah sesuatu yang baru jika memerlukan spesifikasi tertulis. Saya pikir sebagian besar programmer tahu apa yang saya bicarakan - Anda berada di zona itu, menulis satu ton kode dengan cepat.

Bagaimanapun, mengingat kembali apa yang telah saya lakukan, saya memperkirakan bahwa kurang dari 10% waktu saya dihabiskan untuk pekerjaan "baru". Ada hal-hal seperti "adaptasi sistem yang ada ini untuk bekerja di lingkungan baru ini", yang tentunya membutuhkan banyak perencanaan, tetapi pengkodean aktual dan "barang baru" bermuara pada membuat perubahan kecil di banyak tempat di seluruh kode. Demikian juga untuk permintaan fitur kecil - jika saya tahu apa yang harus dilakukan, ini sering dapat diselesaikan dalam waktu kurang dari satu jam, dan jika tidak, itu hanya banyak kode bacaan dan mencari tahu apa yang harus dilakukan (yang membuat saya frustrasi karena saya belajar jauh lebih baik dengan melakukan, bukan dengan membaca).

Secara umum saya merasa seperti saya tidak benar-benar menciptakan sesuatu sebagian besar waktu. Saya agak berasumsi bahwa ini adalah kasus di sebagian besar tempat - sebuah produk baru akan keluar lebih cepat dan pada saat itu semua orang akan bersemangat dan membanting kode dengan cepat, tetapi kemudian sekali hidup itu bergerak ke mode pemeliharaan, di mana beberapa perubahan berikutnya akan dianggap "baru & kreatif".

Apakah aku salah? Apakah saya menggambarkan secara akurat sebagian besar pekerjaan pemrograman, atau apakah kebanyakan programmer merasa seperti mereka sering menciptakan hal-hal baru?

Yer
sumber
11
@JamieTaylor Diterjemahkan ke dalam istilah metaforis Anda, pertanyaannya adalah: Apakah tipikal untuk selalu memperbaiki model Lego orang lain dan jarang membuat yang baru?
Caleb
22
@ Jo, hah! Jadi, Anda adalah orang yang memproduksi semua sistem warisan! * # @ * &!% Yang harus kami pertahankan selamanya ?! ;-P
Péter Török
14
@ Jo, ya saya lakukan, terima kasih banyak. Mungkin jika Anda dapat menulis hanya sedikit tes unit lagi, saya akan sepenuhnya puas :-)
Péter Török
8
@ Jo, yang mengingatkan saya pada pepatah lama, yang menurut saya belum tepat - yaitu, sampai sekarang: "selalu kode seolah-olah orang berikutnya mengambil alih kode Anda adalah psikopat berbahaya yang tahu di mana Anda tinggal"; -)
Péter Török
11
@JonMcdonald Seharusnya tidak menyedihkan - tidak ada pekerjaan semua mawar, dan pemeliharaan basis kode yang ada mungkin cara tercepat untuk mendapatkan pengalaman dan meningkatkan keterampilan Anda sebagai seorang insinyur. Menghabiskan waktu untuk pemeliharaan akan membantu Anda memahami dan menghindari semua kesalahan khas yang menyebabkan kode yang tidak dapat dipelihara sejak awal, dan akan membantu Anda menghargai hal-hal yang mungkin tidak akan Anda pedulikan seperti analisis kode statis dan pembuatan unit test otomatis.
Ben Cottrell

Jawaban:

66

Banyak pekerjaan perangkat lunak adalah pemeliharaan. Tidak ada manajer perekrutan yang benar-benar akan memberi tahu Anda hal ini, tentu saja, tetapi tentu saja ini masalahnya.

Scott C Wilson
sumber
13
Ini mungkin benar, tetapi pemeliharaan masih sangat penting, dan kadang-kadang juga menantang secara intelektual :)
joshin4colours
3
Sama sekali tidak ada yang salah dengan perawatan. Tetapi orang merasa kurang glamor, sehingga deskripsi pekerjaan cenderung mengecilkannya.
Scott C Wilson
Dengan pemeliharaan yang Anda maksudkan membuat perangkat lunak berkinerja seperti yang dipersyaratkan oleh spesifikasi yang selalu berubah. Pemeliharaan sebagai konsep hanya berlaku untuk perangkat keras dan hal-hal lain yang secara acak dapat rusak karena faktor fisik. Perangkat lunak tidak dipelihara, itu dirancang ulang dan di refactored.
Rudolf Olah
3
@ rumah - kadang-kadang ya, tapi kadang-kadang itu hanya memperbaiki bug yang mencolok dalam implementasi untuk memenuhi spesifikasi asli. Tapi Anda benar - berbagai kegiatan dicakup di bawah rubrik "pemeliharaan."
Scott C Wilson
@omouse, mendesain ulang, dan refactoring memiliki makna juga dan tidak mencakup hal-hal yang umumnya kita sebut "mantainance". Jika beberapa perangkat lunak menggunakan fungsi yang sekarang sudah tidak digunakan lagi, atau api eksternal berubah, hal yang akan Anda lakukan adalah tidak mendesain ulang atau refactoring.
cbrandolino
59

Ya, persepsi Anda akurat. Ini benar disangkal bahwa jauh lebih banyak waktu, uang dan usaha dihabiskan untuk memelihara sistem daripada menciptakan sistem baru. Jadi jelas, alokasi waktu kebanyakan programmer akan mencerminkan hal itu.

Salah satu alasannya adalah karena banyak orang, ketika mereka melakukan "baru & kreatif", mereka melakukannya dengan buruk, sehingga pemeliharaan sistem itu sulit (ini kemungkinan besar jika mereka belum pernah melakukan pemeliharaan sendiri - tidak ada yang terus-menerus bekerja pada proyek greenfield kecil yang benar-benar dapat mengklaim kompeten).

Alasan lain (mungkin lebih besar) adalah bahwa sebagian besar sistem dirancang untuk terus berguna, bukan hanya untuk acara satu kali saja. Jadi mereka terus terbiasa lebih lama dari yang dibutuhkan untuk mengembangkannya. Tetapi selama waktu itu, persyaratan berubah (dan ditambahkan ke) karena perubahan undang-undang, di pasar, dalam penelitian, di pengguna, apa pun. Dan itu berarti pekerjaan pemeliharaan.

Michael Borgwardt
sumber
15
+1 untuk "tak seorang pun yang terus-menerus bekerja pada proyek-proyek greenfield kecil benar-benar dapat mengklaim sebagai kompeten"
mattnz
1
Apa itu "proyek greenfield kecil"?
Kue Tepung Beras
@RiceFlourCookies: Greenfield adalah istilah untuk endevour kerja yang benar-benar baru. Dalam hal ini, sebuah proyek dimulai dari awal.
Steven Evers
@RiceFlourCookies dan walaupun kecil adalah relatif, proyek yang dapat dilakukan oleh satu orang dapat dianggap kecil.
Scott C Wilson
23

Sistem warisan adalah yang sukses. Mereka selamat dari proses pengembangan awal di mana 50% proyek gagal (bahkan setelah kesuksesan telah didefinisikan ulang!). Mereka selamat dari lingkungan bisnis yang terus berubah. Mereka mungkin bertahan sekitar sepuluh proposal oleh programmer muda yang naif untuk menulis ulang semuanya di Jawa atau apa pun yang sedang trendi saat itu. Mereka cukup beruntung bahwa apa pun departemen, perusahaan, atau agensi yang dilayani perangkat lunak itu selamat dari berbagai pemotongan anggaran, reorganisasi, merger, dll.

Mungkin kurang dari 5% dari perangkat lunak yang ditulis masih akan berjalan sepuluh tahun kemudian.

Jadi daripada mengeluh tentang hal ini melihatnya sebagai hak istimewa untuk bekerja pada kisah sukses Darwinian dan kesempatan untuk belajar apa yang berhasil di dunia nyata dan mengapa.

James Anderson
sumber
8
... atau mereka selamat karena ada seseorang dengan pengaruh pengambilan keputusan yang cukup dan dengan minat tersembunyi dalam menjaga mammoth warisan berlangsung selama 10 tahun atau lebih, seperti mengamankan pekerjaannya, pensiun, atau hanya terlalu tidak kompeten dan keterampilannya terlalu ketinggalan zaman untuk mencari pekerjaan baru
Marek
@marek memang bisa keduanya.
nicolas
8
Fakta bahwa sesuatu bertahan tidak berarti itu optimal atau bahkan baik. Ini hanya berarti bahwa itu "cukup baik" bahwa belum ada yang menyingkirkannya dari kesengsaraannya. Kekuatan selektif utama di alam adalah kompetisi; ketika ada sedikit kompetisi, Anda bisa mendapatkan beberapa organisme yang cukup gila. Persaingan juga berlaku dalam perangkat lunak, tetapi sistem internal biasanya tidak memiliki banyak kompetisi. Hasilnya adalah bahwa sistem internal sering kacau ke max.
Caleb
@ Caleb - Sebagai sistem aturan umum di mana pengembang mendengarkan pengguna dan mengunci persyaratan agar tetap hidup. Tidak masalah seberapa buruknya tulisan itu! Sistem di mana pengembang berusaha untuk mencocokkan pola desain terbaru, menerapkan mode terbaru dan terobsesi dengan lekukan mereka tidak sampai ke rilis pertama. Kode yang bekerja selalu berdetak cantik, kode yang sesuai dengan kata kunci.
James Anderson
14

Istilah yang sering digunakan untuk proyek baru yang tidak bergantung pada pengembangan yang lebih lama adalah proyek greenfield . Kadang-kadang Anda dapat melihat istilah dalam daftar pekerjaan - mengetahui bahwa Anda harus memulai dari awal daripada mewarisi upaya orang lain yang gagal dapat membuat pekerjaan lebih menarik.

Proyek perangkat lunak yang berhasil umumnya menghabiskan lebih banyak waktu untuk dipertahankan daripada membangunnya sebagai proyek baru, jadi sama sekali tidak mengejutkan bahwa Anda tidak dapat melakukan banyak hal yang benar-benar "baru".

Juga, menciptakan sesuatu yang sama sekali baru adalah banyak pekerjaan. Bahkan pada proyek greenfield, Anda mungkin akan memilih sejumlah alat untuk membantu Anda: platform, kompiler, kerangka kerja, perpustakaan, dll. Segera setelah Anda membuat pilihan itu, Anda telah memberlakukan batasan tertentu pada proyek Anda. Itu bukan untuk mengatakan bahwa Anda tidak melakukan pekerjaan baru lagi, hanya bahwa "baru" adalah istilah relatif di sini. Itu bukan langkah besar dari sana untuk melihat menambahkan fitur atau modul ke proyek yang sudah ada sebagai "baru" meskipun Anda tidak akan menyebutnya proyek greenfield.

Caleb
sumber
7
"Usaha orang lain yang gagal" - sistem warisan adalah kisah sukses Darwinian, proyek gagal tidak dipertahankan!
James Anderson
2
@JamesAnderson Point diambil, tetapi keberhasilan teknis bukan satu-satunya kekuatan selektif dalam ekologi perangkat lunak. Siapa yang belum pernah melihat anjing setengah jadi dari sebuah proyek yang penting bagi para manajer tetapi dianggap terlalu jauh untuk memulai?
Caleb
6

Itu tergantung pada pekerjaan apa yang Anda cari.

Saya hanya pernah bekerja untuk perusahaan produk perangkat lunak murni di mana saya mengerjakan aplikasi tunggal berlapis emas dalam tim pemula yang kecil.

Kalau tidak, saya telah bekerja untuk perusahaan teknologi yang membutuhkan perangkat lunak untuk mendukung R&D internal atau produk luar.

Kelebihannya adalah saya bisa membangun produk awal-selesai yang lengkap dan cukup banyak membangun apa yang saya inginkan. Kadang-kadang Anda juga dapat mencoba teknologi yang lebih baru daripada jika Anda terjebak menambahkan fitur ke aplikasi terkemuka pasar yang ada.

Kelemahannya adalah Anda adalah bagian dari biaya, bukan bagian dari produk. Jadi saya punya proyek yang dikalengkan karena 'kita tidak melakukan perangkat lunak "/" perangkat lunak bukan bisnis inti "= sungguh menakjubkan bagaimana perusahaan berpikir mereka dapat menjual alat mesin $ 100 K tanpa perangkat lunak untuk mengoperasikannya!

Martin Beckett
sumber
Ini juga membuat saya heran bagaimana perusahaan berpikir bahwa mereka tidak membutuhkan solusi khusus untuk masalah kustom mereka, dan bahwa sejuta baris 278 kolom masing-masing dapat dengan mudah dan cepat dimanipulasi dalam excel, bukan db.
Spencer Rathbun
@SpencerRathbun Apa yang lebih mengherankan bagi saya adalah ketika Anda memberi mereka perkiraan untuk membangun perangkat lunak khusus, mereka segera mulai menanyai Anda dan bertanya, "Bukankah perangkat lunak open source mereka yang dapat memberi kami fitur X kustom gratis?"
maple_shaft
7
@maple_shaft yang lebih menyenangkan adalah ketika mereka mengatakan "kita dapat membeli X seharga $ 10K dan solusi tujuan umum ini akan sangat sesuai dengan masalah kustom kami tanpa pengaturan! BTW Anda akan bertanggung jawab untuk menjalankannya dan bekerja dan semua masalah / bug dengan perangkat lunak yang kami beli adalah kesalahan Anda. "
Spencer Rathbun
3
@SpencerRathbun Anda menang, itu adalah situasi terburuk.
maple_shaft
5

Daripada melihat kode warisan sebagai terus membersihkan kekacauan orang lain, lihat itu sebagai kesempatan untuk bekerja pada banyak proyek baru.

Pikirkan tentang hal itu, setiap fitur baru yang ditambahkan ke sistem adalah proyek kecil di dalamnya. Anda masih perlu menerapkan seluruh SDLC untuk memastikan Anda telah menyelesaikan pekerjaan dengan benar. Tentu, Anda mungkin diberikan spesifikasi untuk fitur tersebut, tetapi biasanya detail halusnya dibiarkan begitu saja, sehingga terserah Anda untuk menganalisis masalah seperti yang ditunjukkan, merancang metode terbaik untuk menerapkan perubahan, mengujinya, mengodekannya, dan kemudian lepaskan kembali ke sistem kontrol versi Anda, dan sangat mungkin untuk mempertahankannya di masa depan.

Sudah pengalaman saya bahwa Anda tidak sering mendapatkan pekerjaan di bidang yang benar-benar hijau, dan sering kali ketika Anda cukup beruntung untuk melakukannya, Anda akan diharapkan untuk melihat proyek melalui sebagian besar pemeliharaan itu dan bahkan mungkin untuk masa pakai produk, atau sepanjang waktu Anda bersama pemberi kerja yang diberikan. Ini karena pengalaman intim Anda dengan suatu produk berarti Anda menjadi tempat penyimpanan pengetahuan, dan itu bisa dianggap mahal untuk memindahkan Anda ke hal-hal lain. Ketika Anda mulai dengan produk yang sudah ada, itu karena majikan baru-baru ini kehilangan sumber daya atau membutuhkan lebih banyak sumber daya pada proyek, dan mereka bisnis perlu memastikan itu tidak membuat kerugian terlalu besar pada investasi yang telah dibuat dalam perangkat lunaknya . Itulah kenyataan menjadi insinyur perangkat lunak.

Saya telah bekerja di bidang TI selama hampir 22 tahun dengan 15 tahun terakhir sebagai Pengembang Perangkat Lunak, dan sepanjang waktu itu saya hanya menciptakan sekitar 5 produk baru, dengan sebagian besar waktu saya baik mempertahankan produk tersebut dalam jangka panjang, atau mempertahankan milik orang lain. produk. Masing-masing telah memberi saya tantangan dan masalah untuk dipecahkan, dan masing-masing diperlakukan bukan hanya sebagai proyek besar yang saya hanya menjadi bagian dari, tetapi juga sebagai serangkaian proyek mikro BESAR untuk diselesaikan.

Sungguh menakjubkan bagaimana sedikit senam mental dapat benar-benar mengubah persepsi dan kesenangan Anda dari pekerjaan sehari-hari yang Anda lakukan. ;-)

S.Robins
sumber
4

Saya pikir banyak pekerjaan pengembangan perangkat lunak yang melibatkan peningkatan produk yang sudah ada atau mengadaptasi kode yang ada untuk pelanggan atau pasar baru.

Ini sebenarnya bukan 'pemeliharaan'. Sebagai contoh, VMWare baru saja merilis versi 8, ini merupakan peningkatan besar ke produk utama mereka. Saya menduga beberapa pengembang yang melakukan pekerjaan ini ada di sana ketika baris pertama kode untuk VMWare ditulis. Mereka membangun upgrade utama mereka pada kode yang ditulis oleh orang-orang yang sudah lama pindah.

Selama di Workplace Beta ada pertanyaan tentang bagaimana sistem proyek pribadi 20% Google bekerja .

Saya yakin bahwa Google menemukan bahwa pengembang terbaik ingin berada di sana pada saat penciptaan produk perangkat lunak baru dan pada akhirnya akan bosan menambahkan fitur-fitur kecil dan mengutak-atik gui untuk rilis poin berikutnya.

Dengan memiliki proyek 20% saya berspekulasi bahwa pengembang Google tidak akan keberatan tinggal untuk meningkatkan proyek Google karena dia masih bisa bersenang-senang berada di sana pada awal sesuatu yang baru.

Jim In Texas
sumber
2

Anda akan menghabiskan waktu Anda membuat fungsionalitas baru dan mengubah fungsionalitas kode yang ada untuk menyesuaikan dengan spesifikasi baru.

Yang lain menyebut pemeliharaan itu tapi itu istilah yang mengerikan. Ini adalah desain ulang dan refactoring atau pengkodean ulang perangkat lunak untuk membuatnya sesuai dengan ide baru tentang apa yang harus dilakukan oleh program.

Rudolf Olah
sumber
2

Saya akan mengatakan itu tergantung pada perusahaan tempat Anda bekerja.

Pekerjaan pertama saya adalah perusahaan perangkat lunak akuntansi yang produk utamanya adalah sistem ERP, bersaing pada tingkat yang sama dengan Great Plains atau Peachtree (seperti pada Anda pindah ke sana dari QuickBooks, atau menyamping ketika Anda bosan dengan skema GP yang dikaburkan atau apa pun Anda pikir itu salah dengan PT, maka Anda pindah dari tingkat sama sekali ke dalam paket seperti SAP). Pekerjaan itu adalah pemeliharaan 99,99%, yang didefinisikan sebagai memperbaiki bug dan menambahkan "hal-hal kecil", tanpa secara mendasar mengubah cara kerja perangkat lunak atau apa yang bisa dilakukan. Saya meninggalkan perusahaan ketika CEO ingin melakukan penulisan ulang halaman-satu dari sistem, yang seharusnya keren kecuali dia bersikeras pada beberapa fitur desain yang anti-pola yang jelas, seperti platform-dalam (memungkinkan penyesuaian tingkat tinggi program dengan pada dasarnya memberikan pelanggan VS Designer dumbed-down,

Pekerjaan saya berikutnya setelah itu adalah perusahaan kontrak yang melakukan "pengembangan turnkey"; sistem yang ditentukan pelanggan dibangun dari bawah ke atas, perangkat keras dan perangkat lunak, kemudian pada penyelesaian proyek itu semua diserahkan kepada klien yang bisa mempertahankannya sendiri atau mempertahankan layanan perusahaan dengan biaya bulanan. Pekerjaan saya adalah mengembangkan salah satu proyek besar ini, dan jadi ketika saya bekerja di sana hampir semua yang saya lakukan belum ada sebelum saya mulai. Meski begitu, pembangunan pada dasarnya bersifat iteratif; Anda selalu menambah apa yang sudah Anda miliki (bahkan jika apa yang Anda miliki tidak ada apa-apanya), dan Anda harus menghindari dan memperbaiki masalah regresi (barang baru merusak barang lama). Dan begitu proyek pindah ke status "garansi",

Pekerjaan saya saat ini adalah kembali ke pengembangan in-house, untuk sebuah perusahaan keamanan yang menggunakan pemantauan video dan umpan balik audio untuk memberikan verifikasi sinyal alarm dan layanan "penjaga virtual" lainnya. Bidang ini tumbuh dengan cepat dan masih berkembang; peralatan baru memasuki pasar sepanjang waktu, pelanggan baru mendaftar yang ingin kita melakukan hal-hal baru, dan produk yang sudah ada tidak lagi memenuhi standar UL dan peraturan pemerintah. 99% dari pekerjaan ini adalah "integrasi"; menulis perangkat lunak baru yang belum pernah ada sebelumnya, untuk membuat satu peralatan atau perangkat lunak yang baru tetapi sudah ada bekerja dengan perangkat atau perangkat lunak yang mungkin sudah ada sebelumnya, sehingga kita dapat melakukan hal-hal baru dengan keduanya.

KeithS
sumber
1

Saya akan mengatakan itu sangat tergantung pada sifat peran Anda.

Saya bagian dari tim kecil dan karena itu, harus mempertahankan dan mendukung semua yang saya buat.

5 tahun yang lalu sebagian besar yang saya lakukan adalah "baru" - sekarang saya akan mengatakan pemeliharaan kode yang ada membutuhkan setidaknya setengah dari waktu saya, dengan 25% lebih lanjut menjadi versi "baru" dari sistem yang ada.

Tetapi jika Anda hanya bekerja sebagai pengembang dengan tim untuk melakukan pemeliharaan dan dukungan setelah Anda merilis kode, maka secara teknis semuanya akan "baru". Jika Anda dapat menemukan pekerjaan di mana menjaga kode Anda sendiri tidak diperlukan, ambillah!

Widor
sumber
1
  1. Tergantung seberapa bahayanya posisi pekerjaan Anda: ;-)

    Jika Anda bekerja untuk perusahaan baru yang mengembangkan produk baru dengan risiko tinggi bahwa perusahaan itu akan bertahan, Anda mungkin menciptakan beberapa produk baru yang hebat.

    Jika Anda bekerja untuk perusahaan lama yang memiliki posisi stabil di pasaran, besar kemungkinan Anda akan membuat kode dalam mode pemeliharaan ;-).

  2. Penciptaan perangkat lunak baru selalu sangat menggoda . Sebenarnya sulit untuk melakukan ini dengan cara yang benar . Melakukan kode yang bisa dipelihara bukanlah tugas yang sepele.

    Jika Anda memikirkan banyak aspek ini, Anda harus memastikan untuk menulis kode yang baik: pembalakan yang benar, pemantauan yang tepat dan perolehan statistik, desain deskriptif yang efisien dan bahkan membantu orang asing untuk terlibat dalam proyek Anda, mendokumentasikan, pengujian otomatis, dan pengembangan yang didorong oleh pengujian.

Tidak banyak orang melakukannya dengan benar sehingga kita harus menjaga kode mereka dan memolesnya ke keadaan yang tepat. ;-)

Berita baiknya adalah jika Anda berada di perusahaan cukup lama, Anda dapat memiliki pengaruh bagaimana kode baru ditulis :-)

digital_inifinity
sumber
1

Apakah Anda terutama melakukan pemeliharaan atau tidak, setidaknya sebagian di bawah kendali Anda. Dalam kasus saya, sebagian besar pekerjaan saya selama 15+ tahun terakhir adalah perkembangan baru. Ini karena saya mencari pekerjaan yang memungkinkan saya melakukan pengembangan baru. Saya bukan kontraktor, dan saya umumnya tidak melakukan pengembangan web. Saya hampir selalu bekerja untuk pengusaha kecil, dan saya biasanya bekerja di area khusus (pengembangan GUI desktop, alat QA, alat pengembang, pasar vertikal).

Saya juga telah melihat dan mengalami secara langsung bahwa programmer terbaik di tim biasanya (meskipun tidak selalu) mendapatkan pekerjaan terbaik. Jadi, fokuslah untuk menjadi programmer terbaik di perusahaan Anda dan Anda akan mulai melihat perkembangan baru menghampiri Anda.

Bryan Oakley
sumber
1

Pengembangan pemeliharaan adalah tugas yang sulit, lebih sulit dalam banyak hal daripada pengembangan baru. Dalam pengalaman saya, pengusaha suka membuat pengembang melakukan pemeliharaan, terutama jika mereka ahli. Menemukan pengembang pemeliharaan yang baik dalam teknologi lawas lebih sulit daripada menemukan seseorang yang dapat bekerja dengan teknologi terbaru.

Saya telah bekerja di sebuah perusahaan yang dibagi menjadi tim produk, yang semuanya pemeliharaan, dan tim proyek, yang semuanya merupakan pengembangan baru. Ada pengembang yang hebat di kedua sisi, tetapi orang-orang pemeliharaan jelas lebih khusus dan menggunakan teknologi warisan.

Bisakah saya memberi saran agar Anda mundur dan meminta beberapa pekerjaan pengembangan baru? Dan jika majikan Anda hanya melakukan pemeliharaan maka mungkin Anda perlu pindah?

dodgy_coder
sumber
0

Saya akan mengatakan bahwa itu tergantung pada banyak faktor. Di mana Anda bekerja, produk apa yang Anda buat, bagaimana tim Anda diorganisasikan, dll.

Empat tahun saya bekerja di perusahaan saya, saya akan mengatakan 70-80% dari waktu saya dihabiskan untuk menciptakan sesuatu yang baru. Mungkin 50-60% dari yang dihabiskan untuk proyek-proyek besar yang sepenuhnya kode baru, sedangkan sisa waktu itu dihabiskan untuk peningkatan fungsi saat ini.

Bagian yang saya tahu adalah bagaimana perusahaan saya bekerja. Tidak semua orang di tim pengembangan saya menghabiskan waktu sebanyak ini untuk membangun fungsionalitas baru. Ada nomor yang memfokuskan waktu mereka hanya memperbaiki bug / berburu. Jika itu adalah fungsionalitas baru atau mereka membutuhkan bantuan, maka itu akan ditendang ke saya untuk diselidiki. Namun secara umum, tim kecil pemburu bug itulah yang memungkinkan kelompok pengembang yang lebih besar untuk maju tanpa gangguan.

Cam
sumber
0

Saya telah bekerja hampir tiga tahun sebagai satu-satunya pengembang di perusahaan yang menggunakan QuickBooks dan Excel dan tidak ada yang lain ketika saya mulai. Sekarang kita punya aplikasi Windows Forms , pengaturan SharePoint , SQL Server + Laporan, add-in Excel, dan Outlook add-in.

Baru hari ini , saya mengatur untuk pertama kalinya sistem tiket karena saya kehilangan kemampuan untuk mengelola permintaan email pada tingkat yang membuat pengguna tidak mengeluh, jadi saya melihat ini adalah tanda bahwa saya telah memasuki mode pemeliharaan.

Pekerjaan saya sebelumnya lebih seperti apa yang diposting orang lain, tapi saya pikir saya akan melemparkan pengalaman atipikal saya hanya karena itu menunjukkan Anda tidak pernah tahu apa yang akan membawa pekerjaan berikutnya. Saya lelah, tetapi jumlah yang saya pelajari pada pekerjaan ini sepadan dengan pekerjaan.

Aaron Anodide
sumber
Mode pemeliharaan sudah lama terjadi ... Anda baru saja membutuhkan alat untuk membantu Anda.
Saya senang saya tidak punya perasaan karena mereka mungkin terluka dengan memiliki satu-satunya jawaban di utas ini untuk memiliki poin negatif :(
Aaron Anodide
Nah, Anda tidak menjawab pertanyaan yang diajukan.
0

Beberapa organisasi besar seperti Perusahaan tempat saya bekerja memiliki kebijakan menonaktifkan perangkat lunak setelah beberapa tahun, mungkin karena bahasa pengembangan yang ditulisnya tidak lagi digunakan (Delphi, siapa pun?), Atau platformnya sedang diganti (Windows XP) , atau persyaratan peraturan menuntutnya. Misalnya, dua program tingkat yang berbicara langsung ke database sekarang sedang dinonaktifkan untuk tiga tingkat yang menggunakan koneksi Kerberized untuk keamanan yang lebih besar.

Pengguna masih membutuhkan fungsionalitas orisinal itu, dan karenanya versi yang benar-benar baru menggunakan teknik terkini yang dikembangkan.

Harapkan siklus penggantian 5-7 tahun untuk jenis hal ini. Misalnya pada tahun 2020, saya berharap perangkat lunak WPF (Klien) / Java (server) yang saya tulis sekarang akan menjadi teknologi lama dan digantikan oleh sesuatu yang lebih baru.

David Bolton
sumber