21 Mayıs 2013 Salı

HIGH LEVEL ESTIMATION (PROJE SÜRESİNİN TAHMİN EDİLMESİ)

HIGH LEVEL ESTIMATION

     Agile Metodoloji ile projelendirilen bir çalışmanın şüphesiz en önemli aşamalarından biri de bu projenin ne kadar süreceğini tahmin etmektir. Agile süreçte bu tahmin oldukça interaktif ve gerçeğe yakındır. Waterfall metodolojide, Ön analiz sürecinden sonra projenin ne kadar süreceği daha çok üst yönetim tarafından belirlenir. Yazılım ve Analiz konusunda her ne kadar ekipten yardım alındığı teorik olarak doğru olsa da pratikte yönetimin daha çok sorumlu olduğu bir konu olduğundan tecrübeli yöneticiler bu konuda aktif rol oynarlar.

    High Level Estimation, adından da anlaşılacağı üzere kesinlik ifade etmiyor. Tahmin yapılırken projenin "ne zaman biteceği" değil "ne zaman bitebilir" sorusunun cevabı aranmaktadır. Bu adım Iterasyon Zero diye adlandırılan Proje Hazırlık safhasında yapılır.  

KİMLER KATILIR? 

    Analist, Yazılımcı, Teknik Lider, Test Uzmanları, Test Lideri ile  Iterasyon Manager dahil projede görev alan tüm ekip katılır. 

NASIL YAPILIR?

Tahmin Kartları

    Bu adımda PRODUCT BACKLOG hazırdır. PRODUCT BACKLOG Tüm Story'lerin (Hikâye) listesidir bir anlamda. High Level Estimation yapılmadan önce tüm Hikâyeler kartlara yazılır. Bu işi ya Product Owner (PO) olarak görevli kişi yapar. Pratikte bu kişi BA olabilir. Bu kartlar fiziki kartlardır.

    Kartların Ön yüzünde Hikâyenin özeti, Arka yüzünde ise, ekibin tahmin ettiği Complexity-Zorluk seviyesi yazılır.



Tahmin Kartları

Tahmin Metotları: Complexity

    Kartlar sırasıyla ekibe gösterilir ve hikâyenin özeti anlatılır. Ardından tüm ekibe bu hikâyenin zorluk derecesini düşünmesi istenir. Ardından ekip aynı anda tahminlerini bir kağıda yazarak ya da parmakla göstererek kaldırır.

Tahmin için iki metot vardır. Hikâyeler en kolaydan en zora doğru bu şekilde sıralanır.

  1. T-Shirt Size: XS,S,M,L,XL....:  Sayısal olarak ifade edilecek olursa S=1 derece iken her önceki ve sonraki zorluk öncekinin 2 katı zor ya da kolaydır. Bu durumda XS:0,5S  M:2S  L:4S zorluk düzeyindedir. Bu derecelendirmede XL ve daha büyük hikâyelerin çok komplex olduğu ve bu yüzden parçalanması ve zorluk düzeyinin azaltılması beklenir. 
  2. Fibonacci Serisi: 1,2,3,5,8,13 olarak ilerler.  Burada doğrudan bir puanlama olduğu için tekrar bir dönüştürmeye ihtiyaç yoktur. Bu sınıflandırmada da 8 ve üzeri derecelendirilmiş hikâyenin çok komplex olduğu ve parçalanması gerektiği sonucu ortaya çıkar.
Tahmin yaparken tahmin edicilerin referans alacağı 2 önemli kıstas vardır.
  • Birincisi, ilk hikâyenin zorluk derecesidir. Genellikle ilk hikâyeye orta düzey bir puanlama verilir. Bu da M ise diğerlerinin zorluk seviyesi buna göre düşünülerek verilir.
  • Diğer kıstas ise Bir hikâye ekip tarafından bir iterasyon içerisinde bitirilebilecek kadar büyük olabilir. Bu da L veya 5 olarak derecelendirilir. Böylece bir iterasyonda bitirilemeyeceği düşünülen hikâyeler XL,XXL vb. bir derecelendirme alır. 

Eğer ekip içerisinde tahminlerde bir farklılık varsa tüm ekip uzlaşana kadar ekip kendi arasında niçin böyle bir tahmin yaptığını diğer ekibe anlatır.
Örneğin 4 kişi tahminleme yapmış olsun. Bunlardan çıkan sonuç aşağıdaki gibidir.

Müge : L
Murat : L
Selim : M
Ayhan :XL

    Burada Müge ve Murat benzer bir tahminleme yapmıştır. Fakat Selim ve Ayhan arasında ciddi bir fark vardır. Bu kişiler birbirini tahmin nedenlerini anlatır. Bu esnada daha ortak fikir sunan Müge ve Murat da bu fikirleri dinledikten sonra kendi fikirlerini söyler. Bu tartışmanın sonunda Selim de bu hikâyenin L olduğuna ikna olmuş ama Ayhan halen XL konusunda ısrar ediyorsa burada iki durum vardır. Ya Hikâyenin kapsamında bir sorun vardır ki bunu PO değerlendirmek zorundadır. Ya da ekip içerisindeki algılardan kaynaklıdır ve bunun için çoğunluğun fikrine uymak gereklidir.

    Bu tahminler alındıktan sonra her hikâyenin arkasına zorluk derecesi yazılır ve tüm hikâyeler bitene kadar bu işlem devam eder.

Takım Hızı: Velocity

    Her hikâyenin zorluk derecesi belli olduktan sonra takımın bir iterasyonda ne kadar zorluk düzeyinde iş çıkaracağını belirlemek gerekir. Öncelikle bir iterasyonun süresi belirlenir. Agile uygulanan kurumlar bu konuda bir standart kendilerine göre belirlerler. Bu kurum içerisinde bir iterasyonun 2 hafta olduğu varsayımında bulunarak devam edelim.

    Kartlar karıştırılır. Bu kartların toplam zorluk derecesinin 100S olduğunu düşünelim.
Bu kartlardan bir tane seçilir. Zorluk derecsi gösterilmeden takıma Hikâye anlatılır. "Bir iterasyon içerisinde takım olarak bu hikâyeyi bitirebilir misiniz?" diye sorulur. Takım evet derse bu hikâye iterasyona dahil edilir. Bu işlem takım "yeter" diyene kadar yapılır. Örneğin ilk turda takım 2 M, 2 L büyüklüğünde 4 hikâye seçmiş olsun. Bunların toplamı aşağıdaki gibi S'ye dönüştürülerek yazılır.Bu şekilde 5-10  arası tur yapılır. Bu turlar sonucunda takımın ortalama hızı ortaya çıkar. Aşağıdaki örnekte 6 tur yapılmış ve ortalama hız 11 S olarak ortaya çıkmıştır. Bu demek oluyor ki bu takım 1 iterasyonda 11S büyüklüğünde iş bitirebilir.


Velocity Hesaplama Tablosu

    Bu örneğe göre değerlendirecek olursak elimizde toplam 100 S zorluk derecesinde hikâye vardır. takımın hızı her bir iterasyon için 11S olduğundan takım bu projeyi 9 iterasyonda bitirebilir. Bu da 18 hafta olarak ilgili işin sahibine iletilir.

SONUÇ

Takım hızı ve Hikâye zorluğu sadece ilgili takım için geçerlidir. Takım değişirse, bu tahminler yeniden yapılmalıdır. Bir takımdan elde edilen sonuçlar kesinlikle başka takım için geçerli olamaz. 


1 yorum:

  1. Bu yöntemi agile süreçlerde çalışmayan proje yöneticileri de rahatlıkla uygulayabilir. Çok etkin bir proje tahmin metodolojisi.

    YanıtlaSil