Saya saat ini sedang magang dibayar, dan telah ditugaskan untuk mempertahankan sistem usang yang telah dikembangkan oleh beberapa pengembang (pada waktu yang berbeda) selama 5 tahun terakhir. Manajemen menyetujui "sistem ini mendukung hidup", dan saya menerima persediaan laporan bug yang cukup teratur dari pengguna akhir yang saat ini menggunakan sistem.
Sistem ini tidak usang jika orang masih menggunakannya dan itu mendukung kegiatan bisnis. Karena masih digunakan, bisnis tidak bisa begitu saja membuangnya - perlu didukung sampai kebutuhan untuk sistem tidak ada lagi. Itu bisa berupa perubahan tujuan bisnis atau sistem baru telah dikembangkan, diuji, dan disebarkan dengan sukses ke pengguna akhir.
Sungguh, 5 tahun tidak terlalu lama. Saya telah bekerja dengan kode yang berumur 10 tahun sebelumnya. Jika masih melayani kebutuhan pengguna, mengapa membuangnya? Itu membuang banyak uang yang dihabiskan untuk mengembangkannya. Sampai menjadi tidak layak untuk dipertahankan karena meningkatnya biaya atau persyaratan berubah secara drastis, tidak ada alasan bisnis untuk membuangnya.
Manajemen sekarang ingin memperpanjang proyek untuk satu tahun lagi, dan dalam proses hampir tiga kali lipat basis pengguna.
Jika manajemen mengatakan bahwa sistem ini "mendukung hidup", mengapa mereka mencoba untuk menyebarkannya lebih lanjut? Adalah umum bahwa kegiatan pemeliharaan berlanjut pada sistem warisan sampai diganti, tetapi jika suatu sistem berada di akhir masa pakainya, biasanya tidak digunakan untuk lebih banyak orang. Memperluas pemeliharaan adalah satu hal, tetapi menambahkan pengguna yang mengandalkan sistem adalah situasi yang berbeda secara bersamaan.
Bagi saya, sepertinya itu tidak benar-benar berakhir, melainkan dalam fase pemeliharaan dan akan terus ada sampai sistem tidak lagi melayani kebutuhan pengguna.
Sebagai pekerja magang (atau posisi level pemula) bagaimana cara "mendorong kembali"? Saya sudah menulis laporan yang menyatakan keprihatinan saya, meskipun dalam dokumen terbuka. Apakah ada protokol atau tipe dokumen untuk menyarankan perubahan? Apakah saya dalam posisi untuk membuat saran, atau haruskah saya terus mendukung sistem yang lama?
Anda harus terus mendukung sistem yang lama. Kemudian, Anda menyebutkan bahwa perangkat lunak bukan bisnis utama perusahaan Anda. Dalam lingkungan seperti itu, tugas tim perangkat lunak adalah mendukung bisnis utama perusahaan. Namun, tim perangkat lunak juga perlu mengingat tujuan bisnis.
Sementara itu, tangkap saran Anda dengan cara yang tidak sombong. Tunjukkan teknologi atau teknik lain yang dapat diintegrasikan dengan sistem atau digunakan jika / ketika sistem baru dibuat dan pro / kontra mereka. Cara Anda melakukannya tergantung pada perusahaan, tetapi mempertimbangkan beberapa poin di kemudian hari, mungkin membangun wiki atau situs kolaboratif lainnya akan bermanfaat.
Dalam bisnis non-perangkat lunak, perangkat lunak adalah biaya dan tim perangkat lunak (terutama proyek perangkat lunak / manajer program) harus bekerja untuk meminimalkan biaya membangun dan memelihara sistem perangkat lunak sebanyak mungkin, sambil mendukung kebutuhan pengguna akhir . Membuang perangkat lunak yang (sejauh yang saya tahu, dari posting Anda, tetap) memenuhi kebutuhan pengguna bertentangan dengan apa yang menjadi kepentingan terbaik tim perangkat lunak.
* Untuk memperjelas, pengembangan perangkat lunak bukan bisnis utama perusahaan saya. Karena itu tidak ada protokol internal. Selain itu, proyek tidak memiliki dokumentasi formal sama sekali, tidak ada dokumen persyaratan. Pengembangannya sangat ad hoc.
Bagi saya, ini masalahnya. Tidak memproduksi dokumentasi, tidak mengembangkan ke spesifikasi, dan kurangnya konsistensi cenderung meningkatkan biaya pengembangan perangkat lunak. Bekerja ke arah memperbaiki ini akan menjadi prioritas tertinggi saya, dan saya akan melakukannya dengan mengerjakan hal-hal seperti standar pengkodean, kontrol versi, menghasilkan kode dokumentasi dan dokumen desain mandiri, pelacakan cacat, dan spesifikasi persyaratan.