Makale Özeti

Bu makalede Visual Studio Team System (VSTS) nedir, yazılım geliştiricilere ve yazılım evlerine neler sağlamaktadır konuları detaylı olarak anlatılmaktadır.

Makale

Yazılım geliştirmek her geçen gün karmaşıklaşan ve bir süreç halini alıyor. Bir yandan müşterilerin istekleri yeni teknoloji altyapıları sayesinde gelişip sürekli artarken, bunları yapacak olan yazılım ekiplerinin de yazılım araçlarından beklentileri artıyor. "En iyi yazılımcı Notepad kullanandır" sözü etkin bir proje yönetimi için artık gülüp geçtiğimiz bir söz halini aldı. Çünkü yazılım projesi yapmak sadece kod yazmak anlamına gelmiyor; birinin altyapı mimarisini tasarlaması, birinin çözüm mimarisini sunması, birinin yazılımın testlerini gerçekleştirmesi, birinin kodları yazması ve tabiki birinin de tüm bu projeyi yönetmesi gerekiyor. Belki şimdiye kadar "Ama zaman çok az kaldı", "Mimariyle falan uğraşmak zaman kaybı, biz hemen koda yazmaya başlayalım" , "Eskiden proje yönetimimi vardı, yaşayıp gidiyoruz işte, şimdi yazarak boşuna uğraşmayalım" diyerek yazılım projelerinizi ciddiye almadınız ama bunların sonucu olarak projelerin zamanında bitmediğini, en başta konulan isteklerin tam olarak yerine getirilemediğini veya projenin bütçesini aştığını gördünüz. Bunları yaşamamak için çözümler yok mu, elbette var; ama sorun şurada: hangisini nerede kullanmalı?

Şimdi gelin şöyle birkaç terime bakalım; UML, eXtreme Programlama, Birim Testleri, Proje Raporlamaları, Servis Tabanlı Mimari Tasarımları, Sınıf Tasarımcıları, Statik Analizler vs. vs. Bu terimler bitmez; peki bunların hepsini bilip, bunlara karşılık olabilecek ürünleri öğrenmek ve hangilerini projeleriniz de kullanacağınıza karar vermek sizce kolay bir süreç mi? Hadi hepsini inceleyip kullanacağınız ürünlere karar verdiniz; bu ürünler arasında veri akışını nasıl sağlayacak ve proje ekibinizin bu birbirinden farklı yazılımlar arasında doğru süreçte haraket ettiğinden emin olacaksınız? Sorular zor ama çözüm için artık bir sistem var; Visual Studio Team System (VSTS)

VSTS nedir?

VSTS yazılım projelerinde yer alan proje ekibinde yer alacak kişilerin farklı rolleri üstlenmelerini ve bu rollere uygun olarak Visual Studio içerisinden görevlerini yapabilmelerini sağlayan yazılım geliştirme sistemidir. VSTS yazılım projelerinde yer alan yazılım mimarisinin tasarımı, kalitenin sağlanması, takım içerisinde etkin iletişimin sağlanması ve testlerin yapılabilmesi için Visual Studio ile entegre çalışan bir çözüm paketi olarak tasarlanmıştır ve tüm rollere uygun olarak araçları içermektedir.

VSTS Rolleri nelerdir?

VSTS'de yer alan ilk rol tabi ki yazılım geliştiricidir.Yazılım geliştirici Visual Studio .NET ortamında uygulamalarını yazarken proje yöneticisi tarafından kendine iş olarak atanmış görevleri yerine getirir ama önemli olan kısım ise bunu yaparken belirlenen mimari kriterlere uygun olarak bunu yapması; daha farklı ifade edecek olursak belirlenen mimari dışına çıkamadan bunları yapmasıdır. Birçoğumuz yaşamışızdır, bir kişinin yazdığı koda başka bir yazılımcı müdahale etmek istemez çünkü her yazılımcı çoğunlukla kendi belirlediği bir mimaride veya mimarisizlikte kod yazdığı için başkasının yazdığı kodu çözmek oldukça zordur bu yüzden hep "Ben yenisini yazayım" modadır. Oysa yazılım geliştirici kod yazarken belirlenecek bir mimariye uygun kod yazdığında proje ekibi içerisinde etkin görev dağılımını yapmak kolaylaşacak, yazılım geliştiriciler arasında kolay geçişler sağlanabilecektir. İşte bu yüzden gelin hemen ikinci role bakalım; yazılım mimarları.

Yazılım mimarı aslında iki farklı rolde incelenebilir. Birinci kısım yazılımın altyapı mimarisinin tasarlanmasıdır. Bunun içerisinde verilerin hangi veritabanında ve hangi sunucuda duracağı, IIS'in ne tür bir donanım konfigürasyonuna sahip olacağı, güvenlik altyapısında nerede firewall arkasında kalınacağı ve SSL kullanılacağı tasarlanmalıdır. Bu altyapı tasarımını oluşturabilmek için çözüm mimarisini de tasarlamak önemlidir. Bu yüzden yazılım mimarının ikinci temel tasarım işi ilk işe paralel olarak çözümün tasarlanması olacaktır. Çözümü tasarlarken nasıl bir katmanlı yapı kullanılacağı, nerede web servislerinin kullanılacağı, proje çözümlerinin yapısı belirlenecektir. Bu sayede yazılım geliştirici kod yazmaya başladığında oluşturacağı .NET projesi içerisinde ancak bu yapıya uygun olarak çözümler yaratabilecektir. Kısaca yazılım mimarı yazılımcıların elini kolunu bağlamayan ama yapılacak projenin ana hatlarını çizen bir mimari tasarımı yapmakla görevlidirler.

Gelelim üçüncü rol olan test işlemine. Test bir projenin en önemli aşamalarından biridir, şimdi düşünün kaç yazılım projeniz ilk derlediğinizde hatasız çalıştı: hiçbiri. Çünkü yazılım her kod hatalar içerebilir ve bu hataların iyi bir test yöntemi ile ayıklanması gereklidir. İşte bu yüzden test aşaması birçok projenin en kritik aşamalarındandır, ürünü bitirip teslim ettiğinizde sorunlar yaşamamak için bu adımın olabildiğince detaylı olarak projenin belirlenen şartlarına uygun olarak yapılması gerekmektedir. Test aşaması VSTS'de birim testi ile başlar ve kolayca Visual Studio içerisinden modüller bazında birim testleri yapılabilir. İşin güzel yanı, yapılan test sonucunda hata alınırsa kolayca yazılım geliştiriciye Visual Studio içerisinden aktarılıp, ne zaman ve hangi değerlerle sorun yaşandığı sonuç ekranıyla birlikte yollanabilmektedir. Böylece yazılımcılar tarafından verilen klasik bir cevap olan "Valla ben de hata vermiyor" sözünün de önüne geçilmiş olmaktadır.

Son rolümüz ise proje yöneticiliğidir. Tüm proje süreçlerine hakim olan ve projenin ne durumda olduğunu, kimin şu an hangi görev üzerinde çalıştığını ve olası gecikmelerin hangi kısımlardan kaynaklanabileceğini bir proje yöneticisinin görmesi ve bunlara çözümler getirebilmesi gereklidir. VSTS asıl olarak iletişime odaklanmaktadır. Tüm ekip üyeleri sürekli birbirleriyle iletişim halinde olmalıdırlar. Bu özellikle yazılım sektörü için zor bir iş çünkü bilgisayar başında geçen yıllar sonrası insan iletişim özelliğini yavaş yavaş kaybetmektedir. Bir şirket içinde en fazla bürokrasi olan departmanların son yıllarda yazılım ve bilgi işlem departmanlarının olması size sanıyorum şaşırtıcı gelmemiştir; ortada dönen yüzlerce e.postalar karar almayı ve iletişimi zorlaştırmaktadır. VSTS sayesinde bir proje yöneticisi; mimarların tasarladığı altyapıya ve çözüme uygun görevleri yerine getiriyorlar mı, yazdıkları kodlar testlerden başarıyla çıkabiliyor mu kolayca Visual Studio üzerinden kontrol edilebilmektedir. Ayrıca Microsoft Project gibi proje yönetimi araçlarına da bu görevler eş zamanlı olarak dahil edilebilmektedir. Hatta çok basit kullanımı sayesinde birçok işi kolaylıkla yapabildiğimiz Microsoft Excel ile entegrasyon da VSTS sayesinde sağlanabilmektedir. Burada önemli nokta Excel içerisinden bile iki yönlü bir iletişimin sağlanabilmesidir.

VSTS Tasarım Amaçları

Takım İletişimi : VSTS içerisinde yer alan farklı rollerin birbiri ile entegrasyonu çok önemlidir. Etkin raporlama yapabilmek ve bu raporlara kolayca bir web arayüzünden ulaşabilmek VSTS sayesinde mümkün. Böylelikle proje yönetimi yapmak ve çalışmaları izlemek mümkün olabilmektedir.

Kalite; erken ve her zaman: Günümüzde Türkiye'de ve dünyada yazılım projeleri yapan birçok firma var. Ama her geçen gün farklılaşan, ismi duyulan ve cirolarını yukarıya taşıyanlar kaliteye önem verenler. Çünkü müşteriler için önemli olan kriterlerin başında kalite geliyor. Bu yüzden VSTS kalite kriterlerinin projenin en erken safhalarında ele alınmasını ve sürekli proje ilerlerken kontrol edilmesini sağlamaktadır.

Microsoft 1975 yılından bu yana yazılım geliştirmektedir ve kendi içerisinde kullandığı kalite araçları mevcuttur. Bunlardan birçoğu VSTS ile dış dünyaya duyurulmaktadır, herkesin kullanabileceği ve başarılı olabileceği süreçler haline getirilmektedir. Bunların başında statik analizler ve performans profilleme yer almaktadır. Microsoft'un başarısının ardından kaliteye verdiği önem ve bu kalite için ortaya çıkardığı bu ürünler yer almaktadır. VSTS ile bu ürünler de bütünleşik olarak gelmektedir. Bunun yanında birim testleri ve yoğunluk testleri de kalite standartlarını yakalamak için VSTS içerisinde yer almaktadır.

Operasyonlar için bir tasarım: Özellikle yazılım mimarların kullanacağı birtakım araçlar VSTS ile gelmektedir. Bunların başında servis tabanlı mimariler için SOA (Service Oriented Architecture) tasarımcısı, mantıksal verimerkezi tasarımcısı gelmektedir. Yazılacak program kodlarının belirli bir sınıf yapısında olması için gerekli olan sınıf tasarımcısı ve tabiki denetleyiciler de VSTS içerisinde yer almaktadır.

Yenilikçilik için bir platform: Artık yazılım projelerinin genişleyebilmesi için web servisleri temel bir gereksinimdir. Projelerinizde yenilikçilik yaratabilmek için web servisleri tabanlı bir yapı ortaya çıkartmak ve bunları yaparken bir takın açık protokolleri kullanmak çok önemli bir hal almıştır. VSTS bütün bunları yapabilmeniz için araçları da yine Visual Studio içerisinde sağlamaktadır.

VSTS'yi nereden yükleyebilirim?

VSTS MSDN Universal üyeleri tarafından ücretsiz olarak indirilebilmektedir. Download adresi : http://msdn.microsoft.com/subscriptions/downloads

Yol Haritası

Nisan 2005 tarihinde Beta 2 versiyonu çıkan VSTS ile ilgili en güncel bilgiye ulaşabileceğiniz adresin http://msdn.microsoft.com/vstudio/teamsystem olduğunu hatırlatmak isterim. Bu konuyla ilgili Türkçe içerikli yazıları Yazgelistir.com'dan http://www.msakademik.net ve http://www.yazilimmimarlari.com adreslerinden de takip edebilirsiniz. VSTS yazılım sektöründe olan önemli bir açığı dolduracak olan bir sistem olacağından dolayı sürekli takip etmenizde oldukça fayda göreceğinizi söyleyerek bu yazımı burada sonlandırmak istiyorum. Bilgiyi paylaştığımız yerini bir yazıda daha görüşmek dileklerimle...


Mehmet Nuri ÇANKAYA
www.nuricankaya.com