14 Mart 2013 Perşembe

AGILE TAKIMIN ÖZELLİKLERİ



     Agile Manifesto’ da proje başarısı için en önemli unsurlardan biri doğru takım oluşturabilmektir. Agile takım bir projenin siparişi alma noktasından üretime almaya kadar her adımını bünyesinde sonuçlandıracak bireylere sahip olmalıdır. Burada bahsettiğimiz Takım yapısı sadece Scrum Metodolojisi  için değil Agile olan Kanban, Lean, XP (bunlar agile manifestonun farklı fakat aynı amaca odaklı süreç türleridir) gibi tüm süreç tipleri için geçerlidir.

Takım’ın kimlerden oluştuğundan bahsetmeden önce Agile bir Takım’ın öncelikli amacı yüksek etkileşimli takım-YET olabilmesi gerektiğini belirtmek gerekir. 

YET;
  •  Birbiri ile uyumlu
  •  Daima etkileşim içerisinde
  • Soru ve sorunları face2face halleden
  • Ekip ile bildiği her teknik bilgiyi Paylaşmaktan çekinmeyen
  • Amaç birliği konusunda uzlaşmış
  • Sonuca giden yolda Süreci tıkayabilecek her engeli aşmak için hiçbir iletişimden çekinmeyen
  • Rekabetçi değil işbirlikçi (Bağcı döven değil üzüm yiyen)
  • İş tahminleme yetenekleri gelişmiş
  • Sonuca ulaşma adına gerekirse hızlıca farklı teknikler uygulayabilecek kadar esnek
  • Öğrendiği bilgileri hızlıca uygulayabilen
  • bireylerden oluşmalıdır.

Agile bir takım kimlerden oluşur?

1.    PRODUCT MANAGER (PRODUCT OWNER-PO): Bu kişi teknik ekip içerisinde ürünün sahibidir. Bu kişi tüm proje paydaşları (stakholders) adına tam yetkilendirilmiş kişidir.
Ürünün olgunlaşması, ürün vizyon ve beklentilerine göre yapılandırılması, Analiz çalışmasının yapılmasından sorumludur. PrdMngr’nin üvanının ne olduğu değil, fonksiyonu önemlidir. Fakat Waterfall metodolojide genel olarak İş Analisti olarak görev yapan kişiler bu görevi üstlenirler.

2.    PROGRAM MANAGER (PM): Takım’ın yöneticisidir. Scrum’da  SCRUM MASTER olarak adlandırılır. Bu yöneticinin klasik anlamdaki yönetim şeklinden farkı “katılımcı yöneticilik” özelliğidir. Takım kararları ortak verir. Program Manager, bu kararların uygulanıp uygulanmadığını takip eder, takım içi iletişimi yönetir, iş yükünün dengeli dağıtılmasını sağlar. Tarafsızdır ve çözüm üreten kişidir.

3.    TEKNİK MİMAR (ARCHITECT): Proje başlangıcında üründen beklenen ihtiyaçları PO’dan aldıktan sonra teknik mimari ihtiyaçlarını belirler. Bu proje için alternatif modeller üretir ve bu modeller arasında en uygun modeli ekiple beraber tartışarak seçer. Seçilen modelin projeye uygulanmasını sağlar ve sürekli modeli gözden geçirerek eksiklikleri giderir.

4.    YAZILIMCI (DEVELOPER): Ürünün implemente edilmesinden sorumludur. Developerler ayrıca story’lerin tahminlemesinden de doğrudan sorumludur. Her iterasyonun başında QA ve Developer ekibi o iterasyondaki potansiyel tüm storylerin zorluk derecelerini belirler ve hangilerinin o iterasyonda yapılacağına doğrudan karar verir.

5.    Quality Assurance-QA (Test Uzmanı): Projenin her iterasyonunda ortaya çıkacak ürün parçasının (Sprint Backlog) beklenen özellikleri karşıladığını teyit eder. Bu amaçla PO tarafından beklenen her bir Kabul Kriteri (Acceptance Criteria) için Test senaryolarını yazar.  Test senaryoları tüm kabul kriterlerini kapsamalıdır. QA testleri geçtikten sonra PO sadece Sign-off testi yapar. Sign-Off, QA testi kadar kapsamlı olmayıp daha önce planlanmış ve yazılmış senaryoları yoktur. Bu yüzden asıl defectlerin bulunduğu yer QA testleridir.

6.    USER EXPERIENCE DESIGNER (UED):  PO sadece ihtiyaçları belirler. Gerekirse görsel açıdan yardımcı olması için mock-up’lar hazırlayabilir. Fakat kullanıcının alışkanlıklarını ve trendleri bilen ve bu ihtiyaçlara göre User Interface tasarımları yapan kişi PO değildir. Bu görevi UED yerine getirir. PO ile görüşerek ürün özelliklerini netleştirdikten sonra alternatifler üretir ve PO ile nihai tasarıma karar verir.

Takımın büyüklüğüne bağlı olarak Program Manager, UED ve Architect rolü başka rollere atanabilir. Fakat bir ekipte Developer, QA ve PO her durumda ayrıca bulunmak zorundadır.

Takım oluşturmada kesin bir ölçüt olmamakla beraber 5-20 arasında değişebilir. Fakat önemli olan PO, DEV, QA dağılımını doğru yapmaktır.

PO/Dev/QA oranı genellikle 1/3/1 veya 1/3/2 olarak optimize edilir.
Bu oran aşağıdaki durumlara göre değişkenlik gösterir

  • Kullanılan test yöntemi: Otomatik? Manuel? 
  • QA alışkanlıkları nedir? Manuel Test mi Otomatik Test mi?
  • Deployment süreci
  • Kullanılan teknoloji ve Developerlerin bu teknolojilerle çalışması
  • SDLC süreci

Fakat Agile bir takım için tercih edilen genel oran 1/3/1’dir. Test maliyetlerinin yükselmesi her ne kadar istenmese de Production ortamlarda minimum hata için gerektiğinde QA sayısında artışın olması olağandır ve bu yüzden QA oranı PO ve DEV ekibine göre daha esnek hale getirilebilir. 



Hiç yorum yok:

Yorum Gönder