30 Nisan 2016 Cumartesi

Bir yazılım firması nasıl proje geliştirir

Yakın zamanda bir arkadaşım tarafından sorulmuş soru için bir şeyler yazdım. Soru; yazılım firması içinde genel işlerin otomatize edilmesi ve dökümanlar ile kodun, hata ve istekler ile paralel çalışması nasıl olur idi.
Beşden fazla proje elemanı olan ve ikiden fazla müşterisi olan her firma aşağıda anlattıklarımı uygulamalıdır. Aslında profesyonellik açısından firma ölçeğiniz ne olursa olsun hatta evde bile yazılım geliştiriyor olsanız bu tür bir otomasyona sahip olmanız gerekir.
Şimdi aşağıdaki şemaya bir göz atalım:
Yönetim
Şemamız biraz kalabalık oldu ama bazı birimleri aynı sunucu altında toplayabiliriz. Örneğin Döküman Yönetimi, Hata ve İstek Yönetimi ve Proje Portalı için tek bir sunucu; Sürüm Yönetimi ve İnşa ve Paketleme için bir sunucu kurulabilir. Daha rahat anlaşılması için ayrı göstermeyi tercih ettim. Gelelim şemadaki birimlerin açıklamalarına. Vezir Wiki'de ayrıntılı açıklamalar var burada sadece özet geçeceğim.
Analiz Ekibi
Analiz Ekibi müşteri ile görüşmeleri yaparak gereksinimleri öğrenir ve sistemi modeller. Üretilen her döküman Döküman Yönetimi altında tutulur ve bu dökümanlar periyodik olarak yedeklenir.
Döküman Yönetimi
Döküman Yönetimi firma içinde herkesin rahatça ulaşabileceği, web arayüzü olan ve dökümanların rahatça paylaşılabileceği bir sistemdir. Döküman Yönetiminden lokal sisteme indirilen bir belge, üstünde çalışıldıktan sonra Döküman Yönetimi sistemine geri gönderilir ve onaya sunulur. Kimin ne değişiklik yaptığı açıkça görülebilir.
Kullanılacak Programlar
Yazılım Ekibi
Yazılım Ekibi yazılımı geliştiren ekiptir ve hemen hemen her sisteme bağlantısı vardır. Analiz ve Test ekipleri ile koordineli çalışır. Hakkında Vezir Wiki'de ve blogumda gereğinden fazla yazı bulabilirsiniz.
Sürüm Yönetimi
Sürüm Yönetimi yazılan kod üzerindeki değişiklikleri tutan sistemdir. Yazılım ekibinin beraber çalışmasını sağlar. Sürüm Yönetimi sistemi periyodik olarak yedeklenir. Bir web arayüzünden kodlar görüntülenilir. Yapılan değişiklikler Hata ve İstek Yönetimindeki kayıtlara bağlanabilir.
Kullanılacak Programlar
İnşa ve Paketleme
İnşa işlemi otomatikleştirilmiş bir işlemdir. Sürüm Yönetimindeki kod değiştikçe bunu algılar ve kodu derler. Ünite testlerini otomatik olarak yapar ve sonuçları bir web arayüzünden yayımlar. Derlemenin doğru gerçekleşmediği durumlarda yetkili kişileri e-posta yoluyla uyarır.
Derlenen kodun otomatik olarak kurulum paketlerini hazırlar ve CD üzerine yazar. Ayrıca kodun otomatik olarak test ortamına kopyalanmasını sağlar ve test ekibini bu durumdan haberdar eder. Böylece test ekibi testlere hemen başlayabilir.
Ortaya çıkan çalıştırılabilir ürünleri gene Sürüm Kontrolünde tutar.
Bu derleme için giderilen hatalar ve eklenen yeni özellikler Hata ve İstek Yönetiminden otomatik olarak çekilir ve bir belge olarak düzenlenerek ürünün yanında sunulur ayrıca bu belge test ekibine gönderilir ve giderilen hataların test edilmesi sağlanır.
Kullanılacak Programlar
Hata ve İstek Yönetimi
Müşteriden gelen hata ve istekler ile firma içinde test ekibinin bulduğu hatalar bu sistemde birikir. Hatalar ve istekler bu işin yöneticisi tarafından sınıflandırılır ve yetkililere atanır. Sistem belli zamanlar içinde çözülmeyen hataları veya istekleri yöneticilere bildirir. Bu veritabanı periyodik olarak yedeklenir. Hataların giderilince nasıl test edilecekleri de notlarda yer almalıdır.
Kullanılacak Programlar
Test Ekibi
Test ekibi ürünü test eder ve genel akış şemalarına ve analiz sırasında ortaya çıkan senaryolara uyup uymadığını kontrol eder.
Test Ağı
Test ağı yazılım ağından bağımsız bir ağdır. Mümkün olduğunca müşteri tarafındaki ağı temsil eder. Yapılacak ürün testlerinin gerçeğe yakın olmasını sağlar. Bu sistemin devamlılığı için, 6 ayda bir veya gerekli periyodlarda sistemlerin yeniden kurulması gerekir. Tüm ağ aynı tip bilgisayarlardan oluşmalı ve imaging yazılımları ile 6 ayda bir sıfırlanmalıdır. Sanal bir ortam daha sağlıklı ve bakımı kolay olacaktır.
Kullanılacak Programlar
  • VMWare (Ücretli)
  • MS Virtual PC
  • Norton Ghost (Ücretli)
Destek Ekibi
Destek ekibi Proje Portalında müşteri tarafından girilmiş hata ve destek isteklerine bakar. Duruma göre hataları Hata ve İstek Yönetimine yönlendirir yada müşteri ile temasa geçerek hatanın çözülmesi için uğraşır.
Proje Portalı
Proje Portalı firma içinden ve dışından ulaşılabilen bir web uygulamasıdır. Gerekli döküman, hata ve istek girme, proje detayları, zaman çizelgeleri gibi bilgilerin müşterilere ve firma çalışanlarına açılmasını sağlar. Müşteri bu sisteme kayıtlıdır ve bir kullanıcı ismi ve şifre ile giriş yapar.
Kullanılacak Programlar
Yedekleme
Yedekleme tamamı ile otomatize bir işlem olmalıdır ve firmanın yükünü kaldırabilecek kapasitede olması gerekir. Geceleri çalışacak yedekleme işleri, başka işleri aksatmayacak biçimde planlanmalıdır. Hata durumlarında yöneticiler otomatik olarak uyarılır.
Kullanılacak Programlar
  • RSync
  • Norton Ghost (Ücretli)
  • Acronis True Image (Ücretli)
Daha önce yazdığım yazılara bakarsanız bazı araçların nasıl kurulduğu ve kullanıldığı hakkında bilgi veriyorum. Aralarındaki bağlantıları kurmak biraz zaman alabilir yada Team Foundation Server gibi komple bir çözümü almak daha çok işinize yarayabilir. Eğer yazılım ortamınız Microsoft ise ve MS araçlarını kullanarak yazılım geliştiriyorsanız TFS hostingi alabileceğiniz firmalar da var. Yani TFS kurmuyorsunuz yada almıyorsunuz ama tüm kodunuz ve dökümanlarınız bir firmanın sunucularında barınıyor. Ayrıca eğer MSDN üyeliği varsa zaten 5 kişilik bir TFS hazır elinizde var demektir. Kurup kullanmak size kalmış.
Tamamen açık kaynak gidip komple bir çözümü kendi istekleriniz doğrultusunda geliştirebilirsinizde. Tabii ne kadar zamanınız ve enerjiniz bu işlere gidecek planladıktan sonra.
Herkese kolay gelsin.

Hiç yorum yok:

Yorum Gönder