5 yıldan uzun süredir solo çalışan bir yazılım projesi üzerinde çalışıyorum. Başlamak için bir karmaşa vardı (üzerinde çalışmakta olan üçüncü veya dördüncü geliştiriciyim) ve şu anda daha az karışık olmasına rağmen hala inanılmaz şekilde dağınık durumda. Kontrol altına almadaki ilerleme oranı buzullu ve içinde bulunduğu durum karşısında umutsuz hissetmeye başladım. Gerçekten düzeltmeye nasıl başlayabilirim?
Projenin özellikleri: MySQL arka ucu ve C # ile yazılmış bir raporlama motoru ile neredeyse tamamen Visual Basic Classic'te (VB6) yazılmış bir satış programıdır. C # raporlama modülü üzerinde çalışmak bir zevkti, sadece son birkaç yılda yazılmıştı ve bundan önce tüm raporlar Crystal Reports 9'da yapıldı (evet, hala ona dayanan bazı raporlarımız var).
Ancak asıl programın kendisi tam bir felakettir. Toplamda 90k LOC yoktur ve yaklaşık 10k yorum satırı vardır (çoğunlukla dokümantasyon değil, yorumlanan eski kod). 158 form dosyaları ve 80 modül dosyaları. Bunların ne kadarının kullanıldığı hakkında hiçbir fikrim yok, çünkü programın bazı özellikleri basitçe kullanımdan kaldırılmış ve ilgili kod programdan kaldırılmadan böyle bir şekilde belirtilmiş. Kodun yalnızca% 50'sinin fiili üretken kullanımda olduğunu tahmin ediyorum.
Sadece bir çok müşterinin güvendiği bir şeyi kırıp kırmadığımdan emin olamadığımdan, kodun çoğuna dokunmaktan korkuyorum, sayabileceğimden daha fazla vesile oldu. Sanırım kod boyunca mayınlar dağılmış gibi.
Projede gerçekten bir yapı yok. Şimdiye kadar reform yapmak için sabrım olan birkaç yer dışında, nesne odaklı değil. Bir formda veri almanız gerekiyorsa, bir veritabanı nesnesini başlatır, sorgunuzu burada işlevinde açıklar, yürütür ve veri kümesiyle ne yapacağınızı yaparsınız.
Proje üzerinde çalışmaya başladığımda, kullanımda hiçbir kaynak kontrolü yoktu. Kullanmaya çalıştığım diğer insanları cesaretlendirmeye çalıştım, ama ben yeni bir adamdım ve insanları yıkmak için kullanmaya çalıştım ama başarısız oldum. Şirketin lider geliştiricisi, son birkaç yıl içinde nihayetinde büyük bir hata yakaladı ve şimdi tüm geliştiricilerin tüm projeler için kaynak kontrolünü kullandığından emin oldu, bu yüzden en azından bu bir gelişme.
Eğer projeyi tam zamanlı olarak yeniden düzenlemek için çalışabilseydim, iyi bir ilerleme sağlayabileceğimi ve hatta projenin tam anlamıyla makyaj yapmamın ne kadar süreceği konusunda bir tahminde bulunabileceğimi düşünüyorum. Sürekli olarak yangın söndürmesi, hataların giderilmesi, özelliklerin eklenmesi vs.
Peki bu projeyi gerçekten düzeltmeye nasıl başlarım? VB6'yı başka bir dille mi kullanmaya çalışıyorsunuz? Boş zamanlarımda programı yeniden yazmaya çalış. Yoksa bu tamamen umutsuz mu?
Güncelleştirme
Bu görevden sonra, yenilenen coşkuyla projeye geri döndüm, ancak bu kadar yavaş bir ilerleme gördükten sonra birkaç ay içinde umutsuzluğa geri döndüm. Sonra bir sonraki yıla kadar bu döngüyü 2 veya 3 kez daha tekrarladım.
O zamandan beri farklı bir işe taşındım. Her ne kadar uzun yıllar sonra vb6 ve sadece diğer teknolojilerle olan çevresel deneyimlerden sonra arama zordu ve yol boyunca birçok reddetme ile karşı karşıya kaldım (bir yıl boyunca yaklaşık bir düzine görüşme). Bu durumda başkalarına tavsiyem, sadece bu faktör için ayrılmayı düşünmektir. Bunun gibi çıkmaz bir pozisyonda kalarak kariyerinize verebileceğiniz zararı göz önünde bulundurun.