25 Nisan 2015 Cumartesi

Team Foundation Server ile Work Item (İş Öğesi)

     Merhaba arkadaşlar, ilk yazımda bahsettiğim gibi Team Foundation Server, küçük projelerden tutun yüzlerce yazılım uzmanının yer aldığı çok geniş projelere kadar yazılım geliştirme sırasında ihtiyaç duyulacak bir çok alt sistemi bünyesinde barındırır. Bu alt sistemlerden Versiyon Kontrol özelliğinden bahsettim şimdiye kadar. Sıra geldi Work Item Tracking (İş Öğesi Takibi) konusuna değinmeye.

     TFS üzerindeki en büyük yapı bir Takım Projesi (Team Project)'dir. Önceki yazılarımda anlattığım gibi bir Takım Projesinin kaynak kod kontrol sisteminde kendine ait bir alanı (work space), Work Item Tracking sisteminde kendine ait form tipleri vardır ve Work Item (iş öğesi) bunlara verilen genel isimdir. Work Item dediğimiz; metin alanlardan, çoktan seçmeli listelerden, sekmelerden vs oluşan elektronik bir formdur. Kullandığınız süreç şablonuna (process template) göre tipleri farklılık gösterir. Örneğin TFS içerisinde hazır olarak gelen CMMI şablonunu kullanırsanız Gereksinim (Requirement), Değişiklik İsteği (Change Request), Hata (Bug), Görev (Task) gibi Work Item tipleri ile karşılaşırsınız. Her birinin kendilerine özgü alanları ve ortak alanları vardır. [1]

     Work Item'ları işlerinizi takip etmek için kullanırsınız. Örneğin bir projede yapılacak işleri gereksinim tipinde Work Item'lar olarak sisteme alırsınız. Bunlarla ilgili açıklamaları üzerine yazarsınız. Analizi derinleştirecek detaylı dosyaları bunların ekine iliştirirsiniz.Daha sonra bunları ekibinize paylaştırmak için alt görevlere böler ve her bir görev için bir Work Item açıp ilgili kişinin üzerine atarsınız. Tabii ki alt görevleri ana gereksinim maddesiyle eşlersiniz. Onlar da görevlerini bitirdikçe bu kayıtları kapatırlar. [1]

     Proje sırasında gelen değişiklik isteklerini de birer Wrok Item yapar ve gereksinimler ile ilişkili olarak kaydedersiniz. Neyin değişmesinin istendiğini ve bunun analizini yazarsınız.[1]

     Yazılım teste çıktığında dönen hataları da bu gereksinimle ya da değişiklik isteğiyle ya da görevlerle ilişkili olarak sisteme girersiniz. Hata mesajını, tanımını, varsa ekran görüntülerini hata kaydına girersiniz.[1]

     Bütün bunları yaptığınız zaman projenin herhangi bir anında proje kapsamında neler varmış, kimlere paylaştırılmış, ne kadarı bitmiş, daha yapılacak kimin üzerinde ne kadar iş var, hangi işler için ne değişiklik istenmiş, ne için ne kadar kod yazılmış, nasıl test edilmiş, hangi koddan ne kadar hata çıkmış, hataları düzeltmek için ne değişiklikler yapılmış gibi daha bir çok soruya cevap verebilir durumda olursunuz. Bu sayede proje ilerleme raporundan tutun da gereksinim toplama sürecinin etkinliğine, modüllere göre hata yoğunluğundan gereksinim/test kapsama raporuna kadar her raporu hazırlayacak altyapınız olur.[1]

     Ya da tam ters yönden bakacak olursak kodlara altan üstten bakıp da neden yazıldığını anlayamadığınız o iki satırın başında saçlarınızı yolarken TFS'in "Annotate" komutunu kullanarak her bir dosyadaki her bir satır kodun hangi tarihte kim tarafından ne için yazıldığını, neden değiştiğini, nasıl test edildiğini vs. görebilirsiniz.[1]

     Work Item'lar AreaPath ve IterationPath alanlarını kullanarak alt gruplara ayırılabilir. Örneğin projelerin, modüllerin, versiyonların vs işlerini ayrı takip etmek için bu alanlar kullanılabilir. Bu alanlara ağaç yapısında tanım yapmak mümkündür.[1]

     Work Item'lar kişilerin üzerine atanır. Elden ele gezebilir. TFS üzerine Work Item atılan kişiye otomatik e-posta gönderir. Kendinize ya da bir başkasına atanmış olan Work Item'ları listeleyebilirsiniz. Kişilerin üzerindeki işleri takip edebilirsiniz.[1]

     Her bir Work Item'ın oluşturulduğu günden son haline kadar olan tarihçesi TFS tarafından saklanır ve görüntülenir. Bu sayede herhangi bir Work Item'ı hangi tarihte kim oluşturmuş, kime atanmış, hangi alanlarına neler yazmış, kimler ne değişiklikler yapmış vs. gibi bilgilere ulaşmak mümkündür.

      Ayrıca Work Item 'lar ilişkiler konusunda da yeteneklidir. Bir Work Item'ın ekine herhangi bir tipte bir dosya iliştirmek mümkündür, Kaynak kod kontrol sisteminden bir changeset (değişiklik kümesi) ile ilişkilendirip (Bunu da herhangi bir changeset'i check-in ederken ilişkili bir Work Item seçerek yaparsınız.) ya da diğer bir Work Item ile ilişkilendirip tip bile tanımlayabilirsiniz.[1]

     Work Item'ın ne olduğundan, ne için kullanıldığından bahsettik, şimdi pratik kısmına gelirsek Work Item oluşturmak için Visual Studio Online, Team Web Access ve Team Explorer kullanabilirsiniz. 

     1. Web Browser ile Work Item Oluşturma 
     Team Project veya Team Home sayfasından her hangi bir tipte Work Item oluşturabilirsiniz. Bunun için ilk yazılarımda bahsettiğim TFS yüklerken oluşturulan bağlantıyı açıyoruz. Hatırlamıyorsanız, Visual Studio'da Team Explorer penceresinden Web Portal linkine tıklayarak ulaşabilirsiniz. Açılan sayfada şekil 1'de görüldüğü gibi yazımın başında bahsettiğim Work Item tipleri listelenmektedir. Buradan istenilen tip seçilerek oluşturulur. 

Şekil 1: Web ile Work Item 
      Ben önceki yazılarımda Team Project'imi oluştururken şablon olarak CMMI şablonunu kullandığım için Gereksinim (Requirement), Değişiklik İsteği (Change Request), Hata (Bug), Görev (Task) gibi iş öğesi tipleri ile karşılaşıyorum. Bunlardan biri olan  Task (Görev) tipini seçerek ilerliyorum ve şekil 2'de görülen form karşıma çıkıyor. 

Şekil 2: Task Oluşturma 
     Burada oluşturacağınız göreve bir başlık girmek zorundasınız, ben başlık olarak New Task yazdım. "Status" kısmında bu görevi kim için açtığınızı, işin durumunu ve nedenini belirtebiliyosunuz. "State" kısmı her tip iş öğesi için iş akışına göre farklı seçenekler sunmaktadır. "Planning" kısmında Priority olarak önem derecesini belirleyebilirsiniz. Blocked kısmında evet, hayır seçeneklerinde eğer kimsenin work item üzerinde izninin olmaması isteniyorsa evet seçeneği seçilebilir. Alttaki Other sekmesinden işin başlangıç ve bitiş tarihlerini ayarlabilirsiniz. Attachments ve sekmelesinden iş ile ilgili ek ve bağlantı ekleyebilirsiniz. All Links sekmesinden ilişkili başka bir iş öğesi, değişiklik kümesi, bug vs gibi şeyleri iş öğesine bağlayabilirsiniz. 
     Listeleri kategorize etmek ve filtrelemek için etiket ekleyebilirsiniz. "Etiketler" kısmında "Ekle..." diyerek bir ya da daha fazla etiket ekleyebilirsiniz. Bu etiketler, bir iş öğesine atanmış olarak etiket çubuğunda listelenir. Bu atanmayı kaldırmak için etiketin yanındaki "x" ya tıklamanız yeterlidir. TFS'den bir etiketi kendiniz silemezsiniz, TFS kullnılmayan atanmamış olan etiketleri 3 gün sonra otomatik olarak siler.
     Her alan ve görev tipi hakkında daha ayrıntılı bilgi almak için team project'i oluştururken kullanılan şablonları inceleyebilirsiniz: Scrum iş öğesi türleri (ürün biriktirme listesi öğesi ve diğerleri), Agile iş öğesi türleri (kullanıcı hikayesi ve diğerleri) ve CMMI İş öğesi türleri (gereksinimve diğerleri). Yazımın başında da bahsettiğim gibi her şablon için farklı iş öğesi tipleri bulunmaktadır. [3]
     Alanlar istenilen gibi doldurulduktan sonra kaydedip kapatıyoruz ve New Task adında yeni bir Work Item oluşturmuş oluyoruz. 

     2. Team Explorer ile Work Item Oluşturma 
     Visual Studio eklentisi olan Team Explorer ile iş öğesi oluşturmak için Team Explorer ana menüsünden "Work Items" seçilir. Şekil 3'te görülüğü gibi açılan pencereden "New Work Item" linki seçilip iş öğesi tipi seçilir. Bundan sonraki adımlar web browser üzerinde yapılan işlemlerin aynısı olmaktadır.

Şekil 3: Work Item Oluşturma
     3. Work Item Silme
     Bir iş öğesini silmek için komut ekranını kullanabiliriz çünkü Team Explorer ya da Web Access ile silmek mümkün değil. Bunun için komut ekranına aşağıdaki komutu girerek çalıştırıyoruz.

      C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDEwitadmin destroywi /collection:http://koleksiyon url adresini/ /id:17,16,15 [2]

     Burada koyu belirttiğim id kısmı silmek istediğiniz iş öğelerinin id lerini göstermektedir. Bu id lere ulaşmak için  Web Access ya da Team Explorer ana menüsündeki "My Work" kısmından bakabilirsiniz.
     Ekranda, İş öğelerini silmek istediğinizi doğrulamanız için (y: Evet /n: Hayır) cevabını girmeniz beklenir. Silme işlemini gerçekleştirmek için y yazarak enter tuşuna basıp tamamlayabilirsiniz. Artık My Work sayfasında o iş öğelerinin bulunmadığını görebilirsiniz.[2]

     4. İş Öğesini Güncelleme
     Her takım üyesi iş öğesinin durumunu güncelleyebilir ya da iş öğesi formundaki geçmiş hariç her hangi bir yazılabilir alanın değerini değiştirebilir. İş öğesi üzerinde yapılan değişiklikler geçmiş (history) alanında saklanır. Ayrıca bir iş öğesinin ID'sini değiştiremezsiniz.
     Bir iş öğesini güncellemek için Web Access ile göstermek gerekirse şekil 4'te görüldüğü gibi İŞ sekmesi altındaki Sorgular sekmesinde "Bana Atanmış" (My Work) alanındaki güncellenilmek istenen iş öğesine çift tıklayarak iş öğesi formu güncellemek için açılıyor. [3]

Şekil 4: Bana Atanmış İş Öğeleri
      Bir iş öğesinin durumunu (state) değiştirmek için listede olanlardan biri seçilir. Örneğin yukarıda Task tipi bir iş öğesi açtığımızda durumu için sadece proposed seçeneği ve sebep (reason) olarak sadece new seçeneklerini sunmaktaydı. Ama güncellemek için iş formunu açtığımızda Active, Closed, Proposed seçenekleri bulunmaktadır. Bu alan güncellendiği zaman bir sebep girilmesi zorunludur. Seçilen duruma göre sebep seçenekleri değişiklik göstermektedir bunlardan uygun olan seçilir. Bir iş öğesinin saatini (Hours) güncellemek için Remaining Work kısmına ekibin işi tamamlamak için kalan zamanı sayısal olarak girilir. Bunlar gibi form üzerinde bir çok yerde oluşturduktan sonra değişiklik yapabilirsiniz. [3]

    5. İş Öğesinin Değişiklik Geçmişini Görüntüleme
    İş öğesi formundaki "History" sekmesinden iş öğesi üzerinde yapılan her değişikliği görüntüleyebilirsiniz. Şekil 5'te History sekmesi görülmektedir.
Şekil 5: History Sekmesi
     Yalnızca Tartışma (Discussion Only) sekmesinde eklenen açıklamaları, yorumları görebilirsiniz. Tüm değişiklikler sekmesindeki bir değişikliğin üzerine tıklayarak hangi alanda kim tarafından ne değişiklik yapılmış ayrıntılı görüntüleyebilirsiniz.[3]


     Bu haftalık yazımı burada bitiriyorum. Haftaya İş Öğesi Sorguları üzerinden devam edeceğim. Okuduğunuz için teşekkürler...  



Referanslar:

Hiç yorum yok:

Yorum Gönder