Makale Özeti

Visual Studio Team System ile Yazılım Süreç Yönetimi makale serisinin, 1. Makalesi.

Makale

 

VISUAL STUDIO TEAM SYSTEM (VSTS) İLE

YAZILIM SÜREÇ YÖNETİMİ –

 Bölüm 1: Giriş ve Bileşenler

11.12.2006

 

Ertan Deniz

Derya Bilgi Teknolojileri

www.deryabilgi.com, Ertan.Deniz@deryabilgi.com

 

 

 

Makale özeti

 

Yazılım projelerinin her geçen gün daha da karmaşıklaşması,  Proje ve süreç yönetiminin önemini, proje başarısına katkısını daha da belirgin ortaya çıkarmaktadır. Microsoft firması tarafından Visual Studio ailesi içinde tanıtılan Team System (VSTS) ürününün, tanıtımı için yayınlanması planlanan makale serisinin birincisinde; VSTS’ye giriş, bileşenleri ve VSTS platformu hakkında genel bir değerlendirme sunulmuştur. Makale serisinin devamında; Takım ortak bilgi yönetim sunucusu (Team Foundation), Yazılım mimarları için VSTS, Veritabanı uzmanları için VSTS, Yazılım geliştiriciler için VSTS, Test uzmanları için VSTS, VSTS genişleyebilirlik ve özelleştirme konularında makaleler yayınlanacaktır. 

 

Tüm bu makaleler ile; Microsoft firmasının, Yazılım geliştirme süreç yönetimi (SDLC- Software Development Life Cycle) platformu olan bu ürün ile, Yazılım geliştirme süreç yönetimi ihtiyaçlarımızı ve sunulan çözümü değerlendirme imkanı bulacağız. VSTS’nin, Microsoft yazılım geliştirme vizyonundaki yeri ve önemine de dikkat çekmeye çalışacağız.

 

İçindekiler

 

Yazılım Geliştirme Süreç Yönetimi ve ihtiyaçlarımız

Visual Studio Team System (VSTS)  

VSTS nedir ?

Niçin VSTS ?

VSTS ürün yapısı ve bileşenleri

Değerlendirme

Kaynaklar

 

Yazılım Geliştirme Süreç Yönetimi ve ihtiyaçlarımız

 

Teknolojideki hızlı gelişmeler,servisleri kullanan tüm kullanıcıların  (Kurum personeli, Yöneticiler, Firmalar, Vatandaş vb) beklentilerini de yükseltmektedir. Bu beklentilerin karşılanabilmesi için devamlı yeni yatırımlar gündeme gelmekte, mevcut yatırımların korunarak, birbiri ile etkileşimli bir bilgi sistemi çözümü beklenmektedir. Tüm bilgi teknolojileri alt yapısı gibi, yazılım projeleri de bu hızlı değişimlerden nasibini almaktadır. Bu sistemlerin geliştirilmesi, değişikliklerin yönetimi ve izlenebilirliği için bir süreç içinde takip edilmesi çok önemlidir. Tüm bilgi sistemleri geliştirme süreci gibi, yazılım sistemlerinin geliştirilmesi için; araştırma, analiz, tasarım, test ve bakım gibi safhalardan oluşan bir sistem yaklaşımı takip edilmelidir. Aslında bu gereksinim, sistem geliştirme tanımları ortaya atıldığı ilk zamanlardan beri, karşımızda. Sistem (Yazılım gibi) süreci yönetim metodolojileri geliştirilmiş ve başarısı kanıtlandıkça yaygınlığı artmıştır. Genel de doküman temelli olan bu süreçlerin, elektronik ortamda takip edilmesi için çözümler geliştirilmiş ve zaman içersinde kullanımı belirli seviyelere gelmiştir. Teknolojideki gelişmelere paralel olarak, teknolojinin merkezinde bulunan profesyonellerin kendi işlerinde teknolojiyi en iyi seviyede kullanmaları gerektiğine ve bu konuda yaşanan eksikliklerin giderilmesi gerektiği kanaati hepimizde geçerli olduğunu düşünüyorum.

 

Yazılım geliştirme sürecinde çalışan bilgi sistemi profesyonelleri olarak, mevcut çalışma ortamlarımızda ve güncel proje gereksinimlerinde aşağıdaki ortak ihtiyaçlarımız ile karşı karşıyayız :

 

1.       Kısıtlı bütçeler ve zaman planları içinde, az kaynak ile çok iş yapılması

2.       Yazılım sistemlerinin karmaşıklaşmasına paralel olarak ;

a.       Proje ekiplerimizde personelimizin belli bazı işlerde uzmanlık sağlaması

b.       Dağıtık yapıda proje mimarilendirme ve geliştirme alt yapısı

3.       Denenmiş ve başarılı olmuş süreçlerin, kurum ihtiyaçlarını ve alışkanlıklarını da gözönünde tutarak, özelleştirilerek hayata geçirilmesi

4.       Tüm proje ekibi için süreç ile birlikte, birlikte çalışma ve bilgi paylaşım ortamı oluşturulması

5.       Daha büyük sayıda (ve bazen dağıtık yapıda) proje ekiplerimizin olması

6.       Yazılım geliştirme süreci ile ilgili tam çözüm geliştiren firmaların ürünlerinin pahalı olması ve işletim zorlukları

7.       Yazılım süreçlerinin belli bir kısmı için çözüm üreten firmaların kendi aralarında entegrasyon zorlukları, ideal bir çözüm ortamının oluşturulması için yapılacak çalışmaların maliyeti

8.       Başarılı proje için gerekli en önemli gereksinimlerden biri olan, projenin izlenebilirliğinin sağlanması

 

Bunların sayısı arttırılabilir. Ama ortak olan temel özellikleri ortaya çıkarmaya çalışırsak ; yazılım geliştirmenin ekip işi olduğu, tanımlı bir sürece göre takip edilmesi ve tüm ekip içinde kuvvetli bir bilgi paylaşım ve iletişim ortamı olması, ağırlığı olan özellikler olarak karşımıza çıkıyor.

 

 

Visual Studio Team System (VSTS) 

 

VSTS nedir ?

 

Microsoft Visual Studio yazılım geliştirme ürün ailesi üzerinde, yazılım süreçlerinin yönetilmesi, yazılım takımının daha iyi iletişim kurması için sağlanan araçlardan oluşan, geliştirilebilir ve ihtiyaçlara göre özelleştirilebilir yazılım geliştirme süreç yönetimi (SDLC - Software Development Life Cycle) platformudur.

 

VSTS, 4 temel hedef  üzerine tasarlanmıştır :

 

1.       Servis temelli mimari (SOA) uygulamaları geliştirilmesi kolaylaştırmak,

2.       Tüm takım elemanları için, entegre araçlar ve daha iyi iletişim olanaklarının olduğu bir çalışma ortamı sağlamak,

3.       Dağıtık ekiplerin de uzaktan erişebileceği, ölçeklenebilir, güvenli bir yazılım geliştirme süreç yönetimi (SDLC) platformu sağlamak,

4.       Özelleştirilebilir süreç yönetimi sağlamak,

 

VSTS, Visual Studio ürününü yazılım geliştirici seviyesinden, tüm proje takımlarına hizmet sunan, takım birlikte çalışma ortamı seviyesine çıkarmıştır. Yazılım geliştirme süreci içinde çalışan,  yazılım mimari, veritabanı uzmanı, yazılım geliştirici, test uzmanı gibi rollerin ihtiyacı olan araçlarını, ortak bir çalışma platformu üzerinde sunmuştur. Her bir rol için gelen araçlar, Visual Studio (VS) profesyonel sürümü ile birlikte gelmekte ve VS içinde çalışmaktadır.  Microsoft 1990 yılların başında, Visual Basic ile MS Windows ortamında kolay geliştirme imkanı sağladı. Visual Basic 6.0 sürümü ile sektörde, milyonlarca kişinin tercih ettiği bir yazılım geliştirme ortamı haline geldi. .NET platformunun duyurulması ile, dağıtık sistemler üzerine uygulama geliştirme de önemli teknolojiler ve araçlar sunuldu. Şimdi ise, VSTS ile, yazılım sistemlerindeki karmaşıklığa çözüm getirecek araçlar ve süreç temelli çalışma imkanı sunulmaktadır. 

 

 


Niçin VSTS ?

 

Artan ihtiyaçlar ve sistemlerin her geçen gün daha fazla karmaşıklaşması, daha büyük proje ekiplerinin kurulmasına sebeb olmuştur. Proje çalışan sayısının artması ile, proje yönetimi ve sürecin daha iyi takip edilebilmesi daha da önem kazanmıştır. Bu ihtiyaçlara cevap verebilmek için, Microsoft Visual Studio ailesi içinde, yeni ürün ailesini duyurmuştur. Microsoft firmasının VSTS ile hedefi ; yönetilebilir, genişletilebilir ve özelleştirilebilir bir yazılım geliştirme süreç platformu sunmak.

 

VSTS ’nin en önemli avantajları arasında; yaygın olarak kullanılan Visual Studio geliştirme ortamı entegrasyonu, diğer Microsoft ürünleri ile entegrasyon (MS Excel, MS Project, MS Sharepoint, MS SQL SERVER veritabanı,veriambarı) süreç ile ilgili zengin araçlar, özelleştirilebilir süreç yönetimi  ve çözüm ortakları tarafından üretilen geniş ürün yelpazesi. Yazılım süreç yönetimi için entegre ve ihtiyaçlara uygun bir şekilde özelleştirilebilir ve genişletilebilir bir platform. Bu özellikleri ile, diğer ürünlere göre özellik ve maliyet avantajları. VSTS ile, yazılım süreç yönetimi için sunulan önemli özellikleri biraz açmamız gerekirse, aşağıda şekilde detaylandırabiliriz :

 

1.       Yazılım geliştirme ile ilgili nesnelerin ortak bir yapı üzerinde paylaşılması ve ortak servislerin sunulması

2.       Yazılım sürecinde ihtiyaç duyulan araçların rol bazlı sunulması ve gerekli entegrasyonların sağlanması

3.       Microsoft yazılım geliştirme vizyonunun geliştirme ortamının ilk adımları (DSI-Dynamic System Initiative,SDM-System Definition Model)

4.       Model temelli uygulama geliştirme (DSL – Domain Specific Languages)

5.       Servis temelli uygulama (SOA) geliştirmedeki karmaşıklığın azaltılması

6.       Takım içi gelişmiş iletişim ve bilgi paylaşım imkanı sağlaması

a.       İş akış yönetimi

b.       Dağıtık ekiplerin yönetimi

c.       Rapor portalı ve gelişmiş süreç raporları

d.       Sharepoint proje portalı

e.       Süreç ile ilgili bilginin modellenmesi ve analizi (Proje yönetim değerleri için veriambarı)

7.       Gelişmiş araçları ile hataların erken bulunması ve çözülmesine katkısı ile  daha kaliteli yazılım geliştirme imkanı

8.       İspatlanmış süreç yönetim metodolojileri (MSF – Microsoft Solutions Framework) ve süreç özelleştirme imkanı

9.       Gelişmiş proje yönetimi araçları ile, proje izlenebilirliğinin sağlanması

10.   Genişleyebilir ve özelleştirilebilir mimari yapısı.

11.   Yatırımın hızlı geri dönüş imkanı

 

VSTS ürün yapısı ve bileşenleri

 

Visual Studio Team system;

 

Yazılım projeleri ile ilgili ortak veri  ve servislerin yer aldığı birlikte çalışma sunucusu ile,

Proje yöneticileri,

Yazılım mimarları,

Veritabanı  uzmanları,

Yazılım geliştiriciler,

Test uzmanları

 

için gerekli araçlardan ve özelleştirilebilir süreç yönetimi alt yapısından oluşan bir platformdur.

 

VSTS, genişleyebilir mimarisi sayesinde, hazır süreç şablonları (MSF – Microsoft Solutions Framework; MSF Agile, MSF for CMMI improvement) kullanılabilmekte ve kurum ihtiyaçlarına göre özelleştirilebilmektedir. Yeni süreçler geliştirilerek veya piyasada yaygın olarak kullanılan süreçlerin şablonlarının, entegrasyonu yapılabilmektedir. Visual Studio çözüm ortakları tarafından geliştirilen araçlar, farklı ihtiyaçları bulunan kurumlara geniş bir yelpazede imkanlar sunmaktadır. Bu araçların, ortak bilgi yönetim sunucusu üzerinden, yazılım süreci ile entegrasyonu, önemli bir avantaj olarak gözükmektedir.

 

VSTS ile, Visual Studio ürün ailesi yazılım geliştirici üretkenliğinden, proje takımı üretkenliğine önemli bir geçiş sağlamıştır. Proje takımında çalışan tüm takım üyelerinin ihtiyaç duyduğu araçlar ve takım için iletişim imkanları ile, modern bir yazılım geliştirme süreç yönetimi (SDLC) platformu oluşturulmuştur.

 

Aşağıda ürün bileşenleri şeması ve bileşenlerin kısa bir tarifini içeren bir tablo sunulmuştur:

 

 

 

Resim1: Visual Studio Team System ürün bileşenleri

 


 

 

TFS, proje ve süreç ile ilgili tüm bilgilerin ortak bilgi modeli üzerinden paylaşımının sağlandığı, birlikte çalışma sunucusu

 

 

 

Yazılım mimarları tarafından, Servis temelli uygulamalar (SOA) geliştirmek ve gerçek ortama geçiş sürecinde ihtiyaç duyulan (Teknik alt yapı üzerinde doğruluğunun denenmesi,Kurulum gereklilikleri vb) adımlarının gerçekleştirilebildiği görsel tasarım araçları

 

 

Kod analizi, performans yönetimi ve birim testleri gibi, Uygulama geliştirme sürecini destekleyen ve problemlerin geliştirme aşamasında tespitine ve çözümüne destek sağlayan ileri seviye araçlar

 

 

Uygulamaların gerçek ortama alınmadan önce testlerinin gerçekleştirildiği İleri seviye test araçları

 

 

Veritabanı nesnelerinin proje içinde yönetiminin gerçekleştirilmesi (Versiyon yönetimi, Değişiklik Yönetimi, Gerçek ortama geçiş işlemleri vb)

 

 

MSF for CMMI Process Improvement

 

Kurumların çözüm geliştirmede kullanabilecekleri; Microsoft tarafından geliştirilmiş ve süreç içinde tecrübelerin kazandırıldığı, başarısı ispatlanmış yazılım geliştirme süreç şablonu

Tablo1 : VSTS ürün bileşenleri ve kısa bir tarifi.

 

Değerlendirme

 

Yazılım geliştirme metodolojilerinin gittikçe önem kazandığı günümüzde, bu metodolojilerin takip edilebileceği ürünlerde yaygın olarak kullanılmaya başlanacaktır. Visual Studio Team System, Microsoft firmasının ürünü olması, .NET platformu ve Visual Studio araçlarının yaygın bir kitle tarafından kullanılıyor olması, bu ürünün en önemli avantajı olarak gözükmektedir.  Microsoft firmasının sunduğu tüm ürünlerdeki fiyat ve kolay kullanılabilirlik avantajları da, rakiplerine göre en önemli üstünlüğü olarak değerlendirebiliriz. Proje geliştirme kalitesine katkı sağlayacak bir çok aracı ihtiva etmesi, süreç adımlarının entegrasyonu, proje yönetimine getirdiği kolaylıklar ile, yazılım geliştirme süreç yönetimi çözüm pazarına önemli bir hareketlilik getireceğini düşünüyorum. VSTS ile, yıllardır Microsoft firmasının kendi bünyesinde kullandığı bazı araçlarda sunulmuştur. Bu açıdan, dünya yazılım devinin kurumsal tecrübelerinin paylaşılması çok önemli bir gelişmedir. Diğer taraftan, bu ürün ailesinin yine kurum bünyesinde kullanılma planları ve bölümler seviyesinde gerçekleştirilen çalışmalar ürünün (Microsoft Team System Referansları [1] ), sağlam bir vizyona sahip olduğunun bir göstergesidir. 

 

Yazılım geliştirme süreçlerini geliştirmek isteyen firmalar, VSTS platformunu bir süreç geliştirme projesi olarak ele alabilirler. Özellikle, daha büyük ve kurumsal projelerini CMMI süreçlerine uygun takip etmek isteyen firmalar, MSF CMMI (for CMMI improvement, Seviye 3) desteği ile çalışmalara başlayabilirler.

 

Ürün şu an ilk versiyondadır. Bu durum geçiş kararını biraz zorlaştırmaktadır. Ama erken başlamak her zaman dezavantaj olarak algılanmamalıdır. Ürünün ilk versiyonu olması, rakiplere göre bir dezavantaj olarak görülebilir. Ama ürünün en önemli özelliği genişleyebilir ve özelleştirilebilir mimarisi. Bu başlangıçta, eksik görülen hususlar için fazla enerji harcamak anlamına da geliyor. Bu sebeble, yeni başlayan projelerde de öncelikli değerlendirilmelidir.  Yazılım geliştirme süreç yönetimi için, ürün kullanmayan, sürecini klasik yöntemlerle takip etmeye çalışan ve süreç içinde bahsi geçen birçok aracın fonksiyonlarından habersiz bir şekilde uygulama geliştiren, bakım yapan firmaların proje başarısı ve maliyetleri ciddi olarak değerlendirilmelidir. Ürünün kısa zamanda, yatırımların geri dönüşünü sağlayacağı hususuna dikkat edilmelidir.

 

VSTS içinde barındırdığı test araçları, versiyon ve kaynak kodu yönetimi, SOA (Service Oriented Architecture) uygulama tasarımı gibi konularla da sürecin belirli bir kısmı için, sunulan araçlardan istifade etmek şeklinde de yatırım planları gerçekleştirilebilir. Bu kısmi geçişlerden sonra, tüm sürecin geçişi de potansiyel olarak talep edilecektir. (Yatırım bütçesi ve proje zamanı kısıtlı olan firmalar için.)

 

Büyük ve kaliteli projeler geliştirmek için, takım çalışması gerekiyor. Bu takım çalışmasının yönetilebilirliği ve izlenebilirliği çok önemli. VSTS , bu konuda önemli bir eksikliği dolduracak gibi gözüküyor. Sandal yüzdürmek için, yapılacaklar belli. Gemi yüzdürmek için yapılması gerekenleri bir düşünmeliyiz. Yolumuz uzun, yükümüz ağır.

 

Kolay gelsin.

           


Kaynaklar

 

1.      VSTS introduction presentation

 

http://download.microsoft.com/download/0/7/3/073F2E33-6226-4431-AABC-EAFC69ED931B/VSTSIntro.ppt

 

2.      Team System ürün dokümantasyonu

 

http://msdn2.microsoft.com/en-us/teamsystem/aa718833.aspx

 

3.      The Software Life Cycle – Team System Presentation

 

Kevin C. Kelly, Microsoft Corporation

 

4.      Microsoft Visual Studio Team System 2005

 

Joel Semeniuk,Imaginets Resources Corp

 

http://msdn.microsoft.com/vstudio/teamsystem/reference/overview/default.aspx?pull=/library/en-us/dnvs05/html/VS05TeamSysInt.asp

 

5.      Driving Productivity and Adaptive Businesses with Intuitive Integrated Application Life-Cycle Management - Visual Studio Team System Business Value Whitepaper

 

http://msdn.microsoft.com/vstudio/why/vsts_whitepaper/default.aspx

 

6.      Visual Studio 2005 Team System: Overview

 

Prashant Sridharan, Microsoft Corporation

 

http://msdn.microsoft.com/library/en-us/dnvsent/html/vsts-over.asp?frame=true

 

7.       VSTS Guide

 

http://www.microsoft.com/downloads/details.aspx?familyid=B3C4B808-F9EB-4CA0-A036-4AB5B587F029&displaylang=en

 

8.      Introducing Visual Studio Team Edition for Database Professionals (Teched 2006 Presentation)

 

Thomas Murphy, Matt Nunn

Microsoft Corporation

 

9.      Managing and Deploying your SQL Server schemas with Visual Studio Team Edition for Database Professionals (Teched 2006 Presentation)

 

Richard Waymire, Mairead A. O’Donovan

Microsoft Corporation

           

10.  What Microsoft Visual Studio 2005 Team Edition for Database Professionals Can Do for You (MSDN)

 

Tony Loton, LOTONtech Limited

 

http://msdn.microsoft.com/vstudio/teamsystem/default.aspx?pull=/library/en-us/dnvs05/html/TEDBPro.asp

 

11.   Visual Studio 2005 Team Foundation Server Visual Studio 2005 Team Foundation Server (Teched 2006 Presentation)

 

Mark Michaelis Architect, Author, and Trainer

Eric Lee, Microsoft Product Manager

 

12.  Choosing Between Microsoft Visual Studio Team System and Microsoft Visual SourceSafe

 

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnvs05/html/VSTmSysvsVSS.asp

 

13.  Visual Studio 2005 Guided Tour

http://msdn.microsoft.com/vstudio/tour/vs2005_guided_tour/default.htm

 

14.  Visual Studio 2005 Team Foundation Server- Developing custom process templates, work item types and policies

 

Kevin Kelly, Microsoft Corporation

 

15.  Database Professional Team Center

 

http://msdn2.microsoft.com/en-us/teamsystem/aa718764.aspx

 

16.  SDLC tanımı

http://www.webopedia.com/TERM/S/SDLC.html

 

 

VSTS Giriş ve Bileşenler