Şu anda ücretli bir staj yapıyorum ve son 5 yıl boyunca birden fazla geliştirici (farklı zamanlarda) tarafından geliştirilen eski bir sistemi korumakla görevlendirildim. Yönetim, "sistem yaşam desteği üzerinde" olduğunu kabul ediyor ve şu anda sistemi kullanan son kullanıcılardan oldukça düzenli bir hata raporu alıyorum.
İnsanlar hala kullanıyorsa sistem kullanılmıyor ve iş faaliyetlerini destekliyor. Halen kullanılmakta olduğundan, işletme sadece atmakla kalmaz, sisteme ihtiyaç kalmayıncaya kadar desteklenmesi gerekir. Bu, iş hedeflerinde bir değişiklik olabilir veya yeni bir sistem geliştirildi, test edildi ve son kullanıcılara başarıyla dağıtıldı.
Gerçekten, 5 yıl o kadar uzun değil. Daha önce 10 yaşında olan kodla çalıştım. Hala kullanıcının ihtiyaçlarını karşılıyorsa, neden atmalısınız? Bu onu geliştirmek için harcanan çok parayı atıyor. Artan maliyetler nedeniyle sürdürülmesi olanaksız hale gelene veya gereksinimler büyük ölçüde değişene kadar, atmak için iş için bir neden yoktur.
Yönetim şimdi projeyi bir yıl daha uzatmak istiyor ve bu süreçte kullanıcı tabanını neredeyse üç katına çıkarıyor.
Yönetim bu sistemin "yaşam desteğinde" olduğunu söylüyorsa, neden sistemi daha fazla kullanmaya çalışıyorlar? Bakım faaliyetlerinin, değiştirilene kadar eski bir sistemde devam etmesi yaygındır, ancak bir sistem kullanım ömrü doluysa, genellikle daha fazla insana dağıtılmaz. Bakımın uzatılması bir şeydir, ancak sisteme güvenen kullanıcıları eklemek hep birlikte farklı bir durumdur.
Bana göre, aslında yaşamın sonu değil, bir bakım aşamasında ve sistem artık kullanıcıların ihtiyaçlarına hizmet edene kadar orada olmaya devam edecek.
Stajyer olarak (veya herhangi bir giriş seviyesi pozisyonunda) nasıl "geri itebilirim"? Açık uçlu bir belgede de olsa endişelerimi belirten bir rapor zaten yazdım. Değişiklik önermek için protokol veya belge türü var mı? Öneride bulunacak mıyım yoksa eski sistemi desteklemeye devam etmeli miyim?
Eski sistemi desteklemeye devam etmeniz gerekiyor. Daha sonra, yazılımın şirketinizin ana işi olmadığını söylüyorsunuz. Böyle bir ortamda yazılım ekiplerinin işi şirketin ana işini desteklemektir. Ancak, yazılım ekiplerinin de iş hedeflerini akıllarında tutmaları gerekir.
Bu arada, önerilerinizi zorlayıcı olmayan bir şekilde yakalayın. Sisteme entegre edilebilen veya yeni bir sistem oluşturulduğunda / oluşturulduğunda ve bunların artıları / eksileri ile kullanılabilecek diğer teknolojilere veya tekniklere dikkat edin. Bunu nasıl yapacağınız şirkete bağlıdır, ancak daha sonraki bazı noktaları göz önünde bulundurarak, belki bir wiki veya başka bir ortak çalışma sitesi oluşturmak yararlı olacaktır.
Yazılım dışı bir işte yazılım bir maliyettir ve yazılım ekipleri (özellikle yazılım projesi / program yöneticileri), son kullanıcıların ihtiyaçlarını desteklerken yazılım sistemlerini oluşturma ve bakım maliyetini olabildiğince azaltmak için çalışmalıdır. . Kullanıcıların ihtiyaçlarını karşılayabileceği kadarıyla (sizin de görebildiğiniz kadarıyla) yazılım ekibinin en iyi çıkarlarını karşılayan yazılımları atmak.
* Açıklığa kavuşturmak gerekirse, yazılım geliştirme şirketimin ana işi değildir. Bu nedenle, dahili protokoller yoktur. Ayrıca, projenin hiçbir resmi dokümanı, hiçbir gereksinim dokümanı yoktur. Gelişme çok ad hoc.
Benim için sorun bu. Belgeleme üretmeme, bir spesifikasyona göre geliştirmeme ve tutarlılık eksikliği, yazılım geliştirme maliyetini artırma eğilimindedir. Bunu düzeltmek için çalışmak benim en büyük önceliğim olurdu ve bunu bir kodlama standardı, sürüm kontrolü, kendi kendini belgeleyen kod ve tasarım belgeleri üretmek, hata takibi ve gereksinimler belirtimleri gibi şeyler üzerinde çalışarak yapardım.