Sei sulla pagina 1di 38

Prime Teknoloji

Bu dokman Prime Teknoloji tarafndan Agile sreler konusunda ksaca bilgi vermek amacyla hazrlanmtr. Ekibimiz Agile proje planlamas, ynetimi ve teknik pratiklerin uygulanmas konusunda Trkiye deki en deneyimli ekiptir. Danmanlarmz The Guardian, HSBC, Standard&Poors, Freemarkets, Barclays Bank ve McGraw Hill gibi irketler iin yaplan byk apl projelerin tm aamalarnda alm ve Agile srelerle baarlara imza atmtr. Proje almalarna ek olarak birok irkete ksa sreli danmanlk hizmetleri vermilerdir. Dnyada Agile konusunda lider danmanlk firmas Thoughtworks bnyesinde Senior Consultant olarak alm Cenk ivici Agile ile ilgili hizmetlerimizden sorumludur ve edindii deneyimleri Trk firmalar ile paylamay amalamaktadr. Prime Teknoloji Agile konusunda ana balklar aada belirtilen konularda hizmetler vermektedir. Proje ynetimi, Analiz , Tasarm, Kodlama, Test, Kurulum konularnda Agile pratiklerin uygulanmas konusunda eitim ve klavuzluk hizmetleri. Ekibinize entegre gerek veya pilot projelerde koluk hizmetleri. Agile srelerin uygulanmasnda eksiklerin tespiti, yol haritasnn karlmas. Agile gelitirme ortamlarnn kurulumu ve aralar konusunda eitim ve danmanlk.

Copyright 2008 Prime Teknoloji - iletisim@prime.com.tr

AGLE SRELER

Hedef nedir? Bir yazlm gelitirme projesinin ana hedefi kaliteli, ihtiyalar karlayan yazlm bte, zaman gibi kstlar dahilinde en hzl biimde mteriye teslim etmektir. Kalite hem i kaliteyi yani yazlmn hatalardan arndrlm olmasn, hem de d kaliteyi yani yazlmn mteri ihtiyalarn karlamasn ifade eder. Yazlm kullanclar ii deer ifade etmeli, onlarn daha verimli almasn salayarak rekabeti avantaj salamaldr.

Yazlm gelitirme sreleri bu hedefe ulaabilmek iin kullanlan yntemlerdir. Bir dan zirvesine ulamak hedef ise, trmann nasl yaplaca sretir. Gereksinim analizi, tasarm , gelitirme, test ve kurulum gibi alanlarla ile ilgili yntemler bu hedefe ulamay kolaylatrd lde deerlidir. Hedef bu kadar kolay ifade edilebilmesine ramen gnmzde yazlm projelerine baktmzda halen birok projenin hedefe ulaamadn gryoruz. Standish grubunun drt ylda bir yapt ve yzlerce projeyi kapsayan aratrmalar bunu kantlyor. Son olarak 2004 de yaplan ve 50 bin projeyi kapsayan aratrmaya gre projelerin baar oran yzde 29 u maalesef gemiyor.

Copyright 2008 Prime Teknoloji - iletisim@prime.com.tr

Ana problemler neler? Projeler btelerini amalarna ramen deer ifade eden kaliteli yazlm teslim edemiyor. Projenin ilk aamalarnda yaplan analiz ve tasarm almalarnda ok zaman kaybediliyor. Bu almalar detaylarda bouluyor. Ekip ancak projenin sonraki aamalarnda ritm tutturarak verimli almaya balayabiliyor. Mterinin ihtiyalarndaki deiiklikleri yazlma yanstmak riskleri arttryor. Deiikler karsnda mevcut zellikler bozuluyor, hatalar kyor. Problemler ancak srecin ilerki aamalarnda tespit edilebiliyor ve dzeltilmeleri yksek maliyetli oluyor. Projenin balangcnda yaplan proje plan bir sre sonra ya geerliliini yitiriyor ya da plana uymak iin ekip fazla mesai yapmak zorunda kalyor. Fazla mesailerle hata riski artyor ve ekibin motivasyonu azalyor. Gelitirilen yazlm mteri tarafndan yetersiz bulunup ekibe yeni ve projenin en banda kapsamda belirtilmeyen istekler gelebiliyor. Deiiklikler sonunda yazlmda farkedilmesi zor hatalar ortaya kyor. Projenin banda yaplan tasarm yaplan deiiklikleri kaldramyor ve proje sonunda kt tasarma sahip, hata batakl kodlar ortaya kyor. Deiikliklerin maliyeti proje ilerledike artyor. Deiiklikleri nlemeye altka mteri ile atmalar ortaya kyor. Ekip ii bilgi paylam yaplamyor, projeden ayrlan elemanlar risk haline geliyor. Ekipteki roller etkin bir ibirlii yapmyor, ekimeler oluuyor. Agile yntemler bu problemleri bertaraf etmek iin pratik, brokrasiden uzak bir bak as sunuyor ve hedefe ulamay kolaylatran yollar neriyor.

Agile nedir?
Agile bir sre deildir. Agile manifesto ile zetlenen yazlm gelitirme konusuna zel bir yaklam biimidir. Bu yaklamda nemli noktalar unlardr. Yazlm zellikleri ksa aralklarla srekli kaliteli teslimler yaplarak gelitirilir. Bu aralklarn skl haftalarla snrldr. 1-4 hafta aras srer, tercih mmkn olduu kadar ksa aralklardan yanadr. Projenin bandan o ana kadar gelitirilen zellikleri ile yazlm her an kullanma alnmak zere hazrdr.

Copyright 2008 Prime Teknoloji - iletisim@prime.com.tr

1-4 haftalk her aama sonras gerek kullanclardan geri beslenim alnr ve bu geri beslenim kullanlarak bir sonrak admda yaplacak iler ncelikler uyarnca belirlenir. Ekip srekli kendi alma yntemlerini gzden geirir ve daha verimli almak iin organize olur. Agile yntemlerin tm ayn yaklama sahiptir. Bu yaklam daha detayl biimde Agile Manifesto olarak belgelenmitir. Doksanl yllarda bu sreler ile ilgili almalar yapan ve dnyaca tannan 17 pratisyen bir araya gelmi ve projeleri hedefine ulatran prensipleri Agile manifesto olarak duyurmulardr. Agile Manifesto Aadaki maddelerde soldakileri sada yazlanlardan daha nde tutar. Bireyler ve iletiim > Kullanlan aralar ve sreler alan yazlm > Kapsaml Dokmantasyon Mteri ile ibirlii > szlemesi stnde grmeler Deiime hzl adapte olabilmek > Bir plan takip etmek den daha nemlidir. Bu sada yazlanlarn nemsiz olduu anlamna gelmez fakat solda yazanlar ilk ncelie sahiptir. Sada yazl olanlar solda yazl olanlar olmadan deersizdir. Manifestonun ikinci ksmnda agile srelerin tmnn kabul ettii prensipler yer alr. Prensipler lk nceliimiz kaliteli yazlm mteriye teslim edebilmektir. Bu projenin ilk aamalarndan itibaren srekli teslimlerle yaplr ve mterinin yazlm ok nceden kullanmaya balayarak deer salamasna olanak salanr. Gnmzde evik srelerin poplaritesinin balca nedenlerden biri , yaplan yatrmlarn hzl geri dnnn olmasdr. Deiiklikler projenin ilerki aamalarnda gelse dahi kabul edilir. Ama mterinin ihtiyalarn karlayan, onlara yarar salayacak, gerek deer katacak yazlm retmektir ve ihtiyalarda meydana gelen deiiklikler projenin sonraki aamalarnda dahi yazlma aksettirilmelidir. Test gdml gelitirme, kapsaml otomatik testler, srekli entegrasyon, basit tasarm, refactoring gibi pratikler sayesinde deiikliklerin getirecei maliyetler minimuma indirilir ve sre deiikliklere abuk adapte hale getirilir. ok ksa aralklarla yinelemeler yaplr. Bu aralklar tipik olarak 1-4 hafta arasdr. Bu sayede srekli geri beslenim salanr ve mterinin istekleri dorultusunda yazlm evrimleerek geliir.

Copyright 2008 Prime Teknoloji - iletisim@prime.com.tr

Alan uzmanlar , yazlmclar, testiler hergn birlikte alrlar. Farkl roller arasnda duvarlar rlmez. Rol bazl ekipler yerine yazlm zelliklerine gre ekipler oluturulur.Testi , analist, yazlm gelitirici ayn ekibin iinde alr ve srekli iletiim halindedir. Projeler motive bireyler evresinde kurulur ve ekip yelerine kendileri ile ilgili alacaklar kararlar konusunda gvenilir. Ekip kendi kendine organize olacak yetkiye sahiptir. Yzyze iletiim dier her trl iletiim ynteminden nde tutulur. Projedeki gelimenin tek ls o ana kadar gelitirilmi zellikler ve alan yazlmdr. evik sreler devam ettirilebilir bir hz salamaya alr. Planlamalarn salkl olmas iin ekibin i teslim hznn gvenilir olmas gerekir. rnein fazla mesailer gibi yntemlerle ekibin hzn geii olarak arttrmak tercih edilen yntemler deildir. Teknik adan mkemmel , sade zmler oluturulmasna zen gsterilir. En iyi tasarm abuk genileyebilen tasarmdr. Bu zellik eviklie katkda bulunur. Sadelik anlay akla gelen ilk batan savma zm uygulamak yerine anlalmas ve sonradan deitirilmesi kolay , maliyeti en dk ve o anki gereksinimleri karlayan zm kullanmaktr. En etkin alan ekipler kendilerini organize edebilen , bu konuda yetkin ekiplerdir. Ekip kendi alma yntemlerini sorgulamakta ve gerekli deiiklikleri yapmakta zgrdr. Ekip ksa srelerle toplanr, alma yntemlerini gzden geirir ve daha etkin ve etkili almak iin kendini retrospective formatnda yaplan toplantlarla gzden geirir. Agile sreler yukardaki manifestoyu kabul eden ve alma yntemlerini Agile bak asyla oluturmu srelerdir. Bala Agile sreler aadaki ekildedir. Extreme Programming Ksa adyla XP gelitirme ve test pratikleri ile dikkat eken bir sretir. Test Driven Development, Continuous Integration, Test Automation konusundaki uygulamalar XP nin r aan pratikleridir. Bu pratiklerin Agile karakterinde olmayan projelerde bile kullanlmas yararlar getirecektir. Scrum Scrum proje ynetimi, planlama ile ilgili yntemlere odakldr. Mhendislik pratikleri ile ilgili detaylar iermez. Agile kabiliyetleri tam anlamyla kazanabilmek iin XP gelitirme pratikleri gibi pratikler ile desteklenmesi arttr.
Copyright 2008 Prime Teknoloji - iletisim@prime.com.tr

Feature Driven Development FDD Alan modellemesi, Yazlm zellikleri evresinde ekiplerin oluturulmas, tanml kilometre talar gibi daha detayl bir reete ierir. Dynamic Systems Development Model ngiltere kaynakl bir sretir. XP, Scrum gibi srelerin ileyii ile karlatrldnda daha fazla detay ierir ve genelde devlet ihaleleri gibi yazlm projelerinde sklkla kullanlr. Crystal Metholodogies Xp gibi srelere nazaran daha esnektir ve gelitirme pratikleri konusunda kstlar koymaz. Fixed Price projeler ile ilgili neriler ierir. Agile UP Rational Unified Process in Agile yntemlere uygun, perhize girmi halidir. Bu srelerden hangisini kullanalm sorusunun cevab hibiri olacaktr. nemli olan Agile manifesto ve Lean prensipleri ile zetlenen bak asn kavramaktr. Agile Scrum kullanmaktan veya XP ile gelitirmekten ibaret deildir. Beraberinde srekli iyiletirme odakl kltr deiiklii getirir. Bu sreler ancak balang noktas olabilir. Proje ilerledike ekip sreci kendisine adapte etmeli ve sre srekli iyiletirilmelidir. Agile srelere ait baz yntemlerin detaylarna inmeden nce klasik yntemlerle en byk farklarn incelemek yerinde olacaktr. Yazlm gelitirme srecini Analiz, Tasarm, Kodlama, Test, Entegrasyon ve Bakm olarak aamalara ayrrsak klasik sreler lineer ekilde ilerler. Her aama bir nceki aamann i rnlerini girdi olarak alr ve bir sonraki aama iin farkl bir i rn ortaya koyar. Bir sonraki aamaya geilmeden evvel bir nceki aamann i rnleri gzden geirilir ve onay srecinden geer. Geleneksel yntemlerde bu sre aadaki gibi elale eklinde ifade edilir.

Copyright 2008 Prime Teknoloji - iletisim@prime.com.tr

elale yntemindeki ana problem geri beslenime, deiikliklere srecin ak olmamas, projeyi baarszla gtrebilecek problemlerin ancak projenin sonunda farkedilebilmesidir. Hedefe ulaabilecek miyiz sorusunun cevab ancak projenin sonuna doru verilebilir. Proje sresi boyunca zaman varken dzeltilebilecek ve projeyi baarya ulatrabilecek frsatlar grnr deildir. Sre iinde deiiklik istekleri en aza indirilmeye allr ve bu sayede bata yaplan analize ve proje planna sadk kalnr. elale yntemi tm dezavantajlar bilinmesine ramen hala ou yazlm irketinin kulland yntemdir. Mteriler yatrmlarnn karln alabilmek ve deer elde edebilmek iin kaliteli yazlma mmkn olduu kadar abuk ulamak istiyor demitik. Deer projenin koullarna gre farkl ifade edilebilir. Bir irketin karar ynetim sistemi ise yazlm sayesinde giderlerinde azalma deerdir. Yazlm bir rn olarak satlyorsa, pazara nce kmak, piyasaya hakim olmak, yazlm satarak para kazanmak deerdi. Bir salk uygulamas ise insanlarn hayatnn kurtulmas deerdir. Bu deer mmkn olduu kadar abuk teslim edilmelidir. Yazlmn tm zellikleri ile hemen teslim edilmesi mmkn olmadna gre yaplacak ey aama aama , en ncelikli zelliklerden balayarak teslimler yapmaktr. elale yntemini kullanan bir projede bu deer teslimi ge balar. Bu problemi deiiklik grafiklere aklayalm. Her yazlm projesinin banda belli olan kriter ne zaman biteceidir. Projede birok belirsizlik olmasna ramen, biti tarihi her zaman en ak ksttr. Yazlmn sahip olmas gereken zellikleri biti tarihinde tamamlamak gerektiine gre aadaki gibi bir grafik izilebilir. ki izginin kesitii nokta projenin baaryla bittii noktadr. Tm istenen zellikler biti tarihine kadar tamamlanmtr.

Copyright 2008 Prime Teknoloji - iletisim@prime.com.tr

elale yntemi hedefe doru ilerlemeden nce uzun ve detayl analiz, tasarm, gzden geirmeler, onay sreleri ierir ve proje balangcndan bir sre sonra alan yazlm zellikleri gelitirmeye ve hedefe doru ilermeye balar. Aadaki grafikteki izgi elale ynteminin hedefe nasl ilerlediini gsteriyor. Proje balangcnda detayl almalarda zaman kaybedilir ve hedefe ulalamayaca projenin ancak sonuna doru belli olur. Kt haberler srecin banda alnabilse zm yollar bulmak daha kolay olacaktr. Proje sonunda kt haberler panie neden olur.

Agile yntemlerde ise projenin ilk anndan itibaren test edilmi, ihtiyalar karlayan zellikler mteri nceliklerine gre gelitirilmeye balanr. Agile iin aadaki grafie bakacak olursak, Agile deer vermeye projenin en bandan itibaren balar. Hedefin yerine deiikler olduunda bunlar problemlere yol amadan ok nce tespit edilip nlemler alnabilir. Srekli yazlm zellikleri eklenir ve belli bir an geldiinde mteri proje biti tarihini beklemeden yazlm u anki zellikleri ile kullanmaya balayalm, iimize yarayacak baz zellikler ok gzel alyor u anda diyecektir. Yksek ncelikli zellikler daha nce teslim edilir. Srecin ilerleyii, hangi zelliin ne zaman eklenecei belirgindir.

Copyright 2008 Prime Teknoloji - iletisim@prime.com.tr

Agile sreler ok farkl bir yaklam ile gnmzde rekabetin youn olduu, hereyin byk bir hzla gelitii ve deitii koullarda deiime adapte olmay ama olara belirler. Srece ait tm pratikler deiimle birlikte yaayabilmek, deiimi bir avantaj olarak kullanabilmek, deiimin maliyetlerini en aza indirebilmek amacyla oluturulmutur. Tm sre kk elalere blnr. 1-4 hafta aras sren bu kk elalere Yineleme/Iteration ad verilir. Her yineleme iin planlama, detayl analiz, kodlama, test , entegrasyon ve kurulum almalar gerekleir ve her yineleme kaliteli, test edilmi ve kullanma hazr yeni zelliklerin yazlma eklenmesi ile sonulanr. Belli bir anda proje sonlansa dahi mterinin kullanabilecei zellikleri barndran bir rn hazr haldedir. Yinelemeler sonunda eklenen zellikler belli bir btnlk ifade ettii zaman yaym/release ile mevcut yazlm mterinin kullanm iin gerek ortama aktarlr ve mteri projenin tamamnn bitiminden ok nce yazlm kullanmaya balayarak yatrmnn dnn daha abuk alr. Ayrca her yineleme sonunda geri beslenim alnarak nceliklerin belirlenmesinde ve srecin iyiletirilmesinde kullanlr.

Agile tabii ki tm problemleri zebilecek bir gm kurun deildir. Byle bir iddias da yoktur fakat srecin uygulama biimi , bak as ve pratikleriyle beraber projenin baarsn etkileyebilecek riskler, mevcut problemler projenin ilk aamalarndan itibaren grnr hale gelir. Ekibin ileri bitirme hz, alma verimlilii srekli gznndedir. Problemler gizli kalmaz.

Copyright 2008 Prime Teknoloji - iletisim@prime.com.tr

Agile srelerin avantajlar u ekilde zetlenebilir. Problemler projenin ilk aamalarnda ortaya kar ve dzeltilir. Mteri erken aamalarda kullanabilecei kaliteli yazlmlar teslim alarak yatrmnn geri dnn daha abuk salar. Projenin ilerlemesi, problemler, riskler, ekibin verimlilii gibi birok konu grnrdr. Bu grnrlk proje yneticisine somut bilgiler ile karar verebilme yetisini kazandrr. Projenin ilerki aamalarnda dahi yeni zellikler veya mevcut zelliklerde deiiklikler yazlma kolayca eklenebilir. Gelitirme iin kullanlan pratikler deiiklik maliyetini en aza indirger.

Agile Hedefe nasl ular?

elale yntemi henz projenin banda hedefi tam olarak belirleme imkan olmad halde bir hedef belirler ve almaya balar. alma yntemi geri beslenim alnmasna ve buna gre adaptasyona ak deildir. Sonu olarak proje sresinin bitiminde hedefin aslnda yerinin deitii, projenin henz hedefin ok uzanda olduu farkedilir. Fazl yaklam elale yntemin risklerini bir nebze hafifletmek iin kullanlr. Fazlar genelde birka aydan oluur ve arada geri beslenimler alnr. Fakat srecin adaptasyon yetenei elaleden daha iyi olmakla beraber yeterli deildir.

Copyright 2008 Prime Teknoloji - iletisim@prime.com.tr

Agile ise ok ksa aralklarla geri beslenim dngsn kurar. Her dngnn sonunda bir sonraki hedef nerede, nereye ynlenmemiz lazm deerlendirilir ve almalar bu dorultuda ynlendirilir. Agile adeta gdml bir fze gibidir. Projede meydana gelen her deiiklik deerlendirilir ve deiime adapte olunur. Deiim Maliyeti Deiimle birlikte yaayabilmek gtr. Deiimi avantaja evirebilmek iin deiikliklerim yol aaca problemlerin kaynan ortadan kaldrmak gerekir. Klasik srelerde deiikliklerin maliyeti proje sresi ilerledike geometrik olarak artar. Yeni bir yazlm gereksinimini mevcut yazlma eklemek hatalarn ortaya kmasna, zahmetli test srecinin tekrarlanmasna neden olacaktr. Bu nedenle klasik srelerde deiiklikler en aza indirgenmeye allr. Agile ise deiimle birlikte yaayabilmek iin farkl yazlm gelitirme pratikleri kullanr. Yeni bir gereksinim projenin banda nasl rahatlkla eklenebiliyorsa, proje sonunda da ayn rahatlkla eklenebilir. Bu rahatl salayan, deiikliklerin maliyetini en aza indiren Agile proje ynetimi ve gelitirme yntemleridir.

Copyright 2008 Prime Teknoloji - iletisim@prime.com.tr

Agile sreler
Agile sre dendii zaman akla -Projenin paydalarnn(gelitirici ekip, mteri) birbirlerinin haklarn ifade eden sosyal szleme. -Proje ynetim, planlama ile ilgili aktiviteler. -Kod yazm, test, entegrasyon,kurulum gibi gelitirme pratikleri. geliyor. Mteri, Ynetici ve Gelitirici lerin haklarn ifade eden sosyal szlemenin maddeleri unlardr.

Mteri haklar Maliyet ve ncelikleri temel alarak yaym ieriklerini planlama hakk vardr. Bir sonraki yinelemede gelitirici ekibin stnde alaca yazlm zelliklerini seme hakk vardr. Projedeki gelimeyi alan, kullanlabilir yazlm olarak ksa aralklarla(1-4 hafta) grme hakk vardr. Maliyet kriterlerini gzeterek ncelikler ve kapsamda deiiklikler yapma hakk vardr. Gelitirici haklar Yazlma yeni eklenecek zelliklerle ilgili efor tahminleri verme hakk vardr. Bu tahminlere dier paydalar sayg gstermelidir. Drste projedeki geliim hakknda rapor verme hakkna sahiptir. Teknik mkemmellikten dn vermeden almaya hakk vardr. Bir sonraki yinelemede teknik adan kritik, teknik ncelii olan zelliklerin seilmesini salama hakk vardr. Ekibin kendi iinde organize olabilme, daha iyi alabilecei yollar seme hakk vardr. Ynetici haklar Zaman maliyetleri, tahmini sonular gibi konularda bilgiler almaya hakk vardr. Ekibin ileri bitirme hzn lmeye ve bunu kullanarak planlar yapmaya ve projenin gidiat ile ilgili raporlarda ekipten toplad bilgileri kullanmaya hakk vardr. Mikroynetim yapmadan ekibin nndeki engelleri kaldrmaya hakk vardr. Proje ynetimi ve gelitirme pratikleri Projenin balangcndan itibaren bu yntemlerin nasl uygulandn ok fazla detaylara girmeden aktaralm.

Copyright 2008 Prime Teknoloji - iletisim@prime.com.tr

Projeye balang yapldktan sonra ilk aama projenin byklne gre 1-4 hafta aras srebilecek Yineleme 0 aamasdr. Bu aama sresinde amalar ksaca Projenin vizyonunu ortaya koymak Ana User Story listesini hazrlamak Ekibin gelitirme ortamlarn hazrlamak Yaym planlamasn yapmak lk yinelemenin planlamasn yapmak Projenin dikey kesitlerini alarak mimari vizyonu izmek olarak aklanabilir.

Proje Vizyonu : Projenin vizyonunun tm paydalar tarafndan paylalmas ve vizyon stnde fikir birliinde bulunulmas ok nemlidir. Bu proje sonucunda ne gelitirilecek, ne ie yarayacak ve nasl gelitirilecek gibi kritik soruya proje vizyonunun cevap verebilmesi gerekir. Vizyon kuru bir dokman olmamaldr. Ekipteki tm kiiler bahsi geen soruya vizyon olarak belgelenen cevaplar veriyorlarsa hedef tm ekip tarafndan paylalm demektir. Gemi projelerimizde vizyonu skc bir dokman olmaktan karmak uyguladmz baz yntemler oldu. rnein bir yazlm rn gelitirdiimiz projenin balangcnda, yazlmda hangi zelliklerin olaca bir rn reklam eklinde kue katlara basld ve tm ekibe datld ve ekibin alma ortamlarndaki duvarlara bytlerek asld. Vizyonun etkili bir iletiimle ekibe yaylmas sayesinde birka yl sren proje boyunca hedef tm almalara klavuzluk etti, ekip hedefin ne olduunu akldan karmadan zirveye doru trmanna devam edebildi. irket ii kullanlmak zere gerekletirilen baka bir projede ise vizyon bir gazete haberi olarak hazrland. Haberde irket IT direktr ve proje liderleriyle sylei yaplyor ve projenin nasl gerekletirildii, ne gibi yararlar salad anlatlyordu. Ekip bu haberi okuduunda hem hedefin ne olduunu tam olarak alglad hemde bu hedefe ulamak iin motive oldu. Ana User Story Listesi: User Storyler Agile srelerde yazlma eklenecek zellikleri yakalamak iin kullanlr. Gereksinim analizi, planlama ve iletiim asndan nemlidirler. Byk bir SRS dokmanndan farkl insanlar ok farkl eyler anlayabilir ve hatalar yapabilir. Gelitiricilerin yapt hatalarn en byk nedeni gereksinimleri yanl anlamalardr.

Copyright 2008 Prime Teknoloji - iletisim@prime.com.tr

User Story kart kkl ve yanl anlamalar ortadan kaldracak yzyze iletiimi zorunlu klmas nedeniyle tercih edilir. User Story tespit edildii zaman hayatna birka cmlelik formatta balar ve gelitirme aamasna yaklatka ve gerektii detayla i ak, kabul kriterleri, arayz tasarmlar, kabul test senaryolar gibi detaylar eklenir. Projenin ilk aamasnda yaplan analiz almalar sonucunda ana user story listesi oluturulmaya allr. Bu liste final bir liste deildir, proje sresinde deiikliklerin olmas doaldr ve beklenti bu yndedir. Ana story listesi hazrlanrken , yazlmdan istenen zellikler birka cmlelik bir format kullanlarak yakalanr. rnein Ben X rolndeki kullanc olarak , yazlmdan Y zelliini istiyorum ki bana Z yarar olsun format sk kullanlr. Hangi roldeki kullancnn ne tr bir zellii hangi amala istedii, bu zellikten ne yarar olaca tek bir cmle ile alnm olur. Kartlar tespit edilirken INVEST ile ksaltlan prensiplere dikkat edilir. Bu prensiblere gre kartlar birbirinden bamsz, stnde uzlalabilir, deer ifade eden, tahmin yaplabilen, kk ve test edilebilir olmaldr. Ana User Story Listesi Scrum diliyle Product Backlog unu oluturur. Aada rnek bir liste grebilirsiniz.

Copyright 2008 Prime Teknoloji - iletisim@prime.com.tr

Aadaki gibi indeks kartlar stne User Story ler yazlarak ekip ii iletiim kolaylatrlr. Kartlar wiki veya Agile proje ynetim yazlm aralar ile de tutulabilir fakat her zaman tercih basitlikten yanadr.

Mimari altyap almalar Gelitirici ekip Yineleme 0 aamasnda proje iin kritik grdkleri, teknik adan neme sahip ve projenin mimarisi kabataslak ortaya karabilecek User Story leri seerler ve mimari n almalar yaparlar. Sistemin dikey kesitleri alnarak kavramlar ispat etmek iin kodlama almalar yaplr. Kullanlmas dnlen aralar denenir, seenekler arasnda karlatrmalar yaplr. Bu n alma User Storylerin birbirlerine bal olarak byklklerinin tahmin edilebilmesi iinde ekibe n bilgi verir. Yaym planlamas Agile srelerde planlama yaym, yineleme ve gnlk planlar olmak zere farkl seviyelerde yaplr. Her seviye farkl amalarla ve detayda hazrlanr. Yaym planlamas en st seviyedeki planlamadr. Yaym planna bakldnda yazlm zelliklerinin hangi srayla teslim edilecei, yaymlarn tarihleri veya hangi zellikleri iereceine dair kapsamlar grlr. Yaym plan projenin yol haritasdr. Plann hazrlanmas sreci zet olarak u ekide iler. Ana User Story listesindeki kartlar iin gelitirici ekipten yaym tahminleri alnr. Yaym seviyesinde kartlarn tahminleri kartlar byklk asndan karlatrlarak verilir. rnein A kart 1 puan ise B kart A kartna gre 3 puan olabilir gibi bir mantk yrtlmesi sonucunda kartlarn byklkleri ile ilgili tahminler alnr. Gelitirici ekip B kartnn A kartndan 3 kat fazla zaman alabileceini, 3 kat daha zor olacan tahmin ettiini sylemi olur. Tahminlerin bu aamada
Copyright 2008 Prime Teknoloji - iletisim@prime.com.tr

kartlarn karlatrlmas yoluyla verilmesi zaman tahminleri yapmaktan daha kolay ve daha isabetlidir. Bu tahminler planlama pokeri ad verilen bir aktivite ile alnabilir. Bu aktivitede gelitirici ekip kart stnde tarttktan sonra ayn anda bir tahmin kart atar. Aada bu aktivite iin tasarlanm planlama poker destesini gryorsunuz.

Sonraki aamada mteri tahmin deerlerini gznne alarak nceliklerine gre yaymlarn kapsamlarn belirler. Ana User Story listesindeki kartlar yaymlar halinde gruplanr. Kritik, mterinin iine en ok yarayacak, projenin hedefi asndan nemli kartlar nceki yaymlara alnr.

Copyright 2008 Prime Teknoloji - iletisim@prime.com.tr

Yaym plan sadece projenin banda yaplan ve proje sonuna kadar deitirilmeden kullanlan bir plan deildir. Proje sresince yeni gereksinimler geldike, ncelikler deitike, belirsizlikler aldka , yeni yaymlar gerektike yaym planlama aktivitesi gerekletirilir ve proje sresince yaym plan gncellenir. Yineleme planlamas Agile ekipler 1-4 hafta aras sren yinelemeler ile alrlar ve her yineleme yazlma test edilmi, kullanlmaya hazr yeni zelliklerin eklenmesiyle biter. Yinelemeler sonucunda yaym kapsamndaki zellikler tamamlandnda yazlm kullanma sunulur. Yineleme kapsamnda hangi zelliklerin ekleneceine yineleme planlama toplants ile karar verilir. Mteri 1-4 hafta srecek yineleme kapsamnda yazlma eklenmesini istedii kartlar seer. Bunlar yaym kapsamnda ncelie sahip kartlar olacaktr. Bu seimden sonra kartlar ncelik srasna konur ve her kart yazlmc ekip tarafndan analiz edilir ve gelitirilmesi iin gerekli admlar tartlr. Veritabannda yeni bir tablo oluturulacak gibi i admlar oluturulur ve kartlara eklenir. Sonrasnda tm ekip kart iin ayn anda oylama ile zaman tahmini verir. Bu tahminin ayn anda yaplmas ekip yelerinin birbirlerinden etkilenmemelerini salar. Tahminlerin ok farkl olduu ortalama alnmaz. Ekip kart iin yaplacak ileri tekrar tartlr, en yksek ve en dk tahminleri verenler nedenlerini aklarlar. Sonrasnda tekrar tahmin verilir ve ekibin tmnn stnde uzlat tahmin kaydedilir. Her kart iin testiler, arayz tasarmclar gibi farkl rollerde kendi tahminlerini verir. Kartlar 1-4 gn aras bitirebilecek durumda olmaldr. Bu sreden fazla zaman alacak kartlar olmamaldr ve daha kk kartlara blnmelidir. Yinelemedeki ign says, gelitirici says gibi kriterler kullanlarak kapasite deerine ulalr ve bu kapasite geilmeyecek ekilde ekibin yineleme sresince bitirebilecei kartlar ncelikler ve zaman tahminleri gznne alnarak seilir ve yineleme kapsamna alnr. Ekibin bundan sonraki 1-4 haftalk yineleme hedefi yineleme kapsamndaki kartlar hatasz, kullanma hazr biimde teslim etmek olacaktr. Yineleme planlama toplantsnn ardndan Yineleme planlama toplantsndan sonra yeni yineleme balar. Ekip ayakta ksa bir toplant yapar. nceliklerine gre kartlar panoya yerletirilir. Panodaki ilk aama Iteration Backlog tur. Bu aamada henz gelitirilmesine balanmam kartlar bulunur. Yineleme balangcnda tm kartlar bu aamadadr.

Copyright 2008 Prime Teknoloji - iletisim@prime.com.tr

Bir kartn gelitirilmesine balanmadan nce Gelitirici, Testi, Analist rolleri 15 dk gibi ksa sren ayakta toplant yaparlar ve kabul kriterlerinn ve gereksinimlerin birkez daha stnden geerler. Bundan sonra Testiler kabul test senaryolarn detaylandrmaya, gelitiriciler ise kod yazmaya giriirler. Analist ise kart hakkndaki sorular cevaplamaya her zaman hazr olur. Analist ayrca bir sonraki yineleme iin aday olan kartlarla ilgili analiz almalar yapmaktadr. Gelitirilmesine balanan kartlar panoda Gelitiriliyor- In Process-Play aamasna getirilir.

Gelitirme pratikleri Yazlm gelitiriciler kartlar gelitirirken TDD, Refactoring, Srekli entegrasyon gibi pratikler kullanrlar. TDD pratii ksaca belli bir ilevi yerine getiren kodu yazmadan nce, bu ilevin yerine getirildiini test eden test kodunun yazlmasdr. TDD bir test pratii deildir, testler bu pratiin uygulanmas sonucunda kan bir rndr fakat ama deildir. Gereksinimler testler olarak ifade edilir ve gelitiricinin yapaca kodlamay ynlendirir. Kod yazlmadan nce test kodunda nesnenin arayz, dier nesnelerle etkileimi nceden tasarlanr. Bu adan TDD tasarm da etkileyen bir pratiktir. Test nce dnlerek kolay test edilebilen, birbirinden bamsz ve kendi iinde ahenkli nesnelerden oluan tasarmlar oluur. Nesneler birbirlerine lego paralar gibi kenetlenir.
Copyright 2008 Prime Teknoloji - iletisim@prime.com.tr

Test koduyla gerek kod aras geiler TDD nin uygulanmas srecinde dakikalar ile snrldr. Gelitirici nesnenin tm sorumluluklar iin test kodunu yazmaz. Bir test yazlr, bu testin gemesi iin gerekli kod yazlr ve testin getii grldkten sonra bir sonraki test senaryosu kodlanr ve sre nesnenin tm sorumluluklar testler ile ifade edilene kadar devam eder. Bu pratiin uygulann aadaki diyagram zetliyor.

TDD pratii uyarnca yazlan tm testler projenin test suitine eklenir ve srekli entegrasyon kapsamnda her kod deiikliinde altrlr. Projenin ilerki aamalarnda mevcut fonksiyonaliteye yeni zellikler eklendike varolan testlere yenileri eklenir. Testler eklenme srasna gre tutulduunda projedeki gelimeyi belgeler. Bir kodun hangi ilevi gerekletirdii konusunda dokmantasyondur. Gelitirici daha nce almad bir kod parasnn hangi amala kullanldn testlere bakarak kolayca anlayabilir. Hatta testlerden dokmantasyon oluturan aralar dahi vardr. Srekli entegrasyon Srekli entegrasyon ekip yelerinin birbirlerinin ayaklarna basmamalar iin kullanlr. Projelerde farkedilmesi ve dzeltilmesi en zahmetli problemler entegrasyon problemleridir. Srekli entegrasyon sunucusu ekibin yapt kod deiikliklerini versiyon kontrol sunucusu (rn Subversion) vastasyla izler. Herhangi bir deiiklii grdnde entegrasyon kurulumunu balatr. Bu kurulum projenin zelliklerine gre ekillenir fakat basite tm kodlar derlenir, testler altrlr
Copyright 2008 Prime Teknoloji - iletisim@prime.com.tr

ve sonular yaynlanr. Eer bir hata varsa kurulum krlr. Bu durumda ekibin ncelii entegrasyon problemini zmektir. Kurulumun krlmas retim hattnda problemin ortaya kmas gibidir, alter indirilir ve bozukluk tamir edilir ve retim hatt devam eder. Kurulum krlmas ekibin verimliliini negatif etkiler. Gelitiriciler bunu nlemek iin yaptklar deiikleri versiyon kontrole eklemeden nce son deiikleri alrlar, yerel bir kurulum yapp sonu baar ise kendi deiikliklerini versiyon kontrole eklerler. Kurulumlar tamamen otomatiktir ve kurulum sresinin 10 dk nn altnda olmasna zen gsterilir. Byk projelerde kurulumlar srekli, gecelik gibi aamalara blnr. Srekli entegrasyon kodlarn hatasz, her an kullanma hazr tutulmasn mmkn klar. Bir noktal virgl dahi deitiinde kapsaml testler deiikliin etkilerini inceler ve problemler kar kmaz ekip tarafndan dzeltilir. Srekli entegrasyon Benim makinamda alyordu burada niye almyor problemini zer. Aadaki diyagramda Srekli entegrasyon sunucularndan CruiseControl un ileyiini gryorsunuz.

Entegrasyon sonularn altmz bir projede ekibe duyuran Build Monitoru uygulamas. Build monitorden ayrca ekibin gz nnde olmas gereken bilgilerde yaynlanr.

Copyright 2008 Prime Teknoloji - iletisim@prime.com.tr

CruiseControl Srekli entegrasyon sunucusunun web rapor arayz. Bu arayzden gemi kurulumlar ile bilgilere erimek mmkn.

Copyright 2008 Prime Teknoloji - iletisim@prime.com.tr

Refactoring Extreme Programming de sade kod en nemli kriterinden balayarak aadaki zellikleri sahip olmaldr. 1. 2. 3. 4. Tm testleri gemeli Kodlarda herhangi bir duplikasyon olmamal Tm tasarm fikirleri kolay anlalabilmeli Nesne, arayz saylar az olmal

Refactoring pratii sadeliin bozulmamasn salar, TDD nin nc admdr. Testi geen kod yazldktan sonra , koddaki iyiletirme olanaklar incelenir ve bu amala kk deiiklikler yaplr. Ama daha sade, anlalr koda ulamaktr. Bu niteliklere sahip kod deiiklere kar daha esnektir ve deiiklik maliyetleri en aza indirir. Refactoring konusunda gnmzde Design Patterns gibi Refactoring Patterns kataloglar olumutur. Testler Refactoring aamasnda gvenlii salar. yiletirme yapldktan sonra testler tekrar altrlr ve baarl ise kodun dardan gzlenen mevcut sorumluluklarnda hala karladndan emin olunur. Testler olmadan Refactoring ok risklidir ve zaman alabilen manuel test aamalar gerektirir. Agile srelerde projenin ilerki aamalarnda dahi tasarmda iyiletirmeler testler sayesinde rahatlkla yaplr. Bu adan testler yazm maliyetlerini projenin sonraki aamalarnda kat kat karlar. Testleri olmadan yazlan kodlar legacy koddur. Deitirilmesi risklidir. Agile testlerin gvenlii ile kod iyiletirmelerini projenin ok ilerki aamalarnda dahi yapabilir. Bu sayede tasarm iyiletirilir ve yazlma yeni zelliklerin eklenmesi daha kolay hale gelir. Testler olmadan yaplan tasarm iyiletirmeleri refactoring deildir. TDD pratiinin uygulanmas boyunca gelitirici farkl apkalar takarak alr. Test apkasn takarak testi yazar ve baarsz olduunu yani sistemin test ile ifade edilen sorumluluu yerine getirmediini grr. Sonra gelitirici apkas ile ilev kodlanr. Testin gemesinden sonra refactoring apkasn takarak yazlan kodu iyiletirir. Sre bir sonraki test ile batan balar. eitli aralar vastasyla kodlarn yzde kann test edildii llr. Bu yzde iyi bir projede yzde 80 in altnda olmamaldr. Test kodlar toplam kodlarn yzde 60 na ulaabilir. Daha nceden Agile yntemler kullanlmadan yazlm mevcut bir sisteme yeni zellikler eklenirken ncelikle gvenlii salamak iin st seviye fonksiyonel testler yazlr. Sonrasnda her yeni zellik kodlanrken , ilgili kod alanlar iin testler eklenir ve test edilmeyen kodlar sktrlr. Byk tasarm deiiklikleri iin byk refactoring ler yapmak refactoring demek deildir. Bu durum refactoring ileminin zamannda yaplmadn, ekibin teknik bor biriktirdiini gsterir. Her refactoring sonucu kodun dardan gzlenen davrannn deimedii testler ile dorulanr. Byk tasarm deiikliklerinde bu dorulama zordur.
Copyright 2008 Prime Teknoloji - iletisim@prime.com.tr

Yinelemenin devam Kartn hayat dngsne geri dnelim. Kart panoda gelitirilme aamasna alnr ve TDD, Refactoring gibi yntemlerle gelitirilir demitik. Gelitirilme boyunca kart stnde alan yazlm gelitiriciler testi ve analist ile yakn alrlar. Analist sorular cevaplamak iin her zaman ulalabilir olmaldr. Gelitiriciler baz zellikler bittike bunlar analist ve testilere gstererek geri beslenim alrlar ve aradaki iletiimi salam tutarlar. Gelitirme aamas bittiinde analist ve testilere ksa bir demo yaplr ve onay verirlerse kart Test aamasna geirilir. Bu aamada artk gelitiricinin sorumluluu bitmitir, kart stnde testiler almaya balar. Testiler kabul senaryolarn altrr ve kullanc gznden yazlma eklenen zelliin kabul kriterlerini karladn dorular. Hatalar iin hata kayd alr ve gelitiricilerin bunlar dzeltmeleri salanr. Bu hatalarn dzeltimesi nceliklidir. Kabul senaryolar iin kabul testleri yazlr. Bunlar uygulamay kullanc gznden test eden otomatik testlerdir. rnein yazlm bir web uygulamas ise arayz otomatik yneten aralar sayesinde testler kodlanr ve test suitine srekli entegrasyon kapsamnda almak zere eklenir. Test aamas bittiinde rn sahibine bir demo yaplr ve onay istenir. Onay alndktan sonra kart Bitti Bitti Bitti aamasna getirilir. Bu panodaki son aamadr ve kartn yazlma hatasz ekilde eklendiini gsterir. Bitti Bitti Bitti deki ilk Bitti gelitirilmesinin bitiidir. kinci Bitti testin, ncs ise rn sahibinin onaynn alnmasn simgeler. Her proje Bitti nin tanmn batan yapmaldr. rn sahibi ekiple srekli yakn alr ve gidiat hakknda srekli bilgi sahibi olur. Yineleme sresince kartlarn panodaki en soldaki balang aamasndan en sadaki bitti aamasna engellere taklmadan ilerlemesini, yoldaki engellerin almasn salamak proje yneticisinin grevidir. Agile srelerin hatalara bak as Yazlm gelitirme srasnda hatalar yapmak normaldir fakat ayn tr hatalar tekrarlanmamaldr. Ayn tr hata tekrarlandnda uygulanan srecin hata nleme etkinlii gzden geirilmelidir. Hatalar olaan grmek hatalarla birlikte yaamak iin srar etmektir. Agile srelerde hatalar tolere edilmez. Bir hata ktnda ncelikle nedenleri aratrlr. Ana nedeni bulmak iin rnein 5 kez Neden sorusunu sorma gibi Root Cause Analysis yntemleri kullanlr ve sonrasnda nedenler ortadan kaldrlmaya allr. rnein anlalmas zor , kark yazlm bir kod parasnda deiiklikler srekli hatalar kmasna neden oluyorsa, kod paras refactor ilemine tabii tutulur ve sadeletirilir.
Copyright 2008 Prime Teknoloji - iletisim@prime.com.tr

Hata dzeltilmeden nce hatann varl baarsz bir test ile ispatlanr. Hata dzeltilir ve testin gemesi salanr. Bu test mevcut test suitine eklenir ve proje sresince her otomatik kurulumda srekli entegrasyon kapsamnda altrlr. Agile ekiplerdeki testiler basit hatalarla uramak zorunda kalmaz ve proaktif biimde gerekten uygulamann i kurallar ile ilgili test senaryolarn test etmeye frsatlar olur. Hatalar zaman kayb olarak grlr. Agile sreler hatalar gibi kt srprizleri daha ortaya kmadan test pratikleri ve ekip ii iyi iletiim sayesinde nlemeye alr. Predictable bir sre iin hatalar gibi istenmeyen zamanlarda ortaya kan problemlerin kesinlikle nlenmesi gerekir. Ancak bu sayede planlama gibi aktiviteler salkl hale gelebilir. Hatalar ayak badr, projenin ilerlemesini yavalatr. Bu bak as sayesinde Agile srelerde hata says ok az saydadr ve yazlmn kalitesi yksektir. Proje ilerlerken arkada hatalar birikmez. Hatal yazlm bitmemi yazlmdr ve her yineleme hatasz yazlmla bitmelidir. Farkl seviyelerde testler En basit haliyle evik yntemlede 3 farkl seviyede test yazlr. Birim testleri Entegrasyon testleri Kabul senaryosu testleri Birim testleri programclar tarafndan kod yazm pratiinin bir paras olarak yazlr. Kod yazm TDD pratii ile testler tarafndan ynlendirilir. Bir snf yazlacaksa snfn yerine getirecei sorumluluk test olarak ifade edilir ve snfn davran bamllklarndan izole sahte objeler gibi yntemlerle test edilir. Birim testleri veritaban, web servisleri , aygt bamllklar gibi bamlklardan izole edilmeye allr. Entegrasyon testleri birden fazla snfn rol oynad ilevlerin testleri iin kullanlr. Bu testler gerekten veritaban, web servisleri gibi bamllklar kullanr. Kabul senaryosu testleri tamamen kullanc gznden i kurallar uyarnca yazlr. Her user story nin kabul kriterleri vardr ve senaryo testleri bu kabul kriterlerinin karlandn test eder. Tm bu testler otomatik alacak ekilde hazrlanr ve srekli entegrasyon srecine dahil edilir. Bunun yannda fonksiyonel olmayan performans gibi kriterler iin performans testleri yazlr. Proje iindeki standartlarn kontrol iinde testler yazlabilir. rnein sorgularn mutlaka cache lenmesi gibi bir standart varsa ve yeni
Copyright 2008 Prime Teknoloji - iletisim@prime.com.tr

yazlan sorgu cache lenmemise , testin krlmas salanabilir. Ayn ekilde kurulumdan nce ortamn uygunluunu test eden testlerde yazlabilir. letim sisteminin versiyonunun kontrol, veritaban balantsnn dorulanmas gibi testler bu snfta yer alr. Agile yntemlerde testiler kartlarn hayat dngs iinde gelitiricilerle srekli ibirlii iinde alrlar. Grevleri sadece projenin sonunda test aamasndan ibaret deildir. Gelitirme balamadan nce Acceptance Test Driven yntemiyle nce kabul testlerini dahi yazabilirler. Kart stnde gelitirme devam ederken ksa aralklarla analist ve testilere gidiat hakknda bilgi verilir ve kk demolar yaplr.

Agile Proje Yneticisi Agile srelerde proje yneticisinin rol ekibi ynetmek deildir. Mikroynetim Agile da vurgulanan kendi kendine organize olabilen ekip anlayna terstir. Komuta ve kontrole dayanan proje ynetim anlayndan gelenler iin bu yeni ynetim tarzna almak zor olabilir. Agile proje yneticisinin ana grevi ekibin i teslim etmesinin nnde duran engelleri ortadan kaldrmaktr. Proje yneticisi problemlerin almasn salar yani yneticisi bir anlamda ekibe hizmet eder. Bunun yannda ekiple organizasyonun geri kalan arasnda kpr vazifesi grr. Projenin btesi, kaynaklar gibi konularda da eldeki metrikleri kullanarak alr. Agile proje yneticisinin ii heyecanldr nk dinamik ve hzla adapte olabilen bir ekibi ynetmektedir. Farkldr nk ekip yelerine ne yapmalar gerektiinin sylenmesine gerek yoktur. Farkldr nk projenin banda belirsizliklere ramen tahminlere dayanan kararlar almaya gerek yoktur. Proje farkl seviyelerde srekli planlanr. Herey grnrdr kt haberlerde dahil. Ayn dili konumak Gelitirici, analist, testi, proje yneticisi ve mteri gibi projede farkl roller oynayan insanlar arasnda iletiim problemleri olabilir. letiim eksiklii tasarmda, test senaryolarnda eksikliklere yol aabilir. Bu problemlerin nne geilmesi iin tm ekibin ayn dili konumas arttr. Bu dil projenin alan modelinin dilidir. Agile ekipler Domain Driven Design gibi yntemleri kullanarak alan modelinin dilini tasarmdan testlere her aamada kullanmaya alr. Fit, Fitnesse gibi aralar sayesinde mterinin dahi okuyup anlayabilecei test senaryolar yazlabilir. Gnlk ayakta toplantlar Her sabah ayn saatte tm ekip yeleri ayakta toplant yapar. Ayakta yaplmasnn nedeni toplantnn ksa srmesini salamaktr. Bu toplantnn amac gnlk planlamay yapmak, yinelemede son durum hakknda bilgi paylamn salamaktr. Ekip yelerinin her biri ksaca bir nceki toplantdan
Copyright 2008 Prime Teknoloji - iletisim@prime.com.tr

beri ne yaptn, iin son durumunu, karlat problemler varsa bu problemleri ve o gn iin planlarn anlatr. Toplant srasnda ayn anda tek kii konuabilir, eer daha uzun konuulmas gereken konular ortaya karsa bunlar iin daha detayl toplantlar planlanr. Ekip bu toplant sayesinde senkronize olur ve kartlarn durumlar gncellenir ve almalar devam eder.

Yinelemenin bitimine kadar hergn sre ayn ekilde iler. Ama tm kartlar Bitti Bitti Bitti aamasna getirmektir. Kartlar bitirebilmek amacya yineleme sreleri deitirilmez. Yineleme sreleri balangc ve bitii cetvelin santimetreleri gibi deimez olmaldr. Srenin sabit olmas yinelemeler iinde toplanan ve planlama iin kullanlan XP Hz gibi metriklerin salkl olmasn salar. Yineleme srerken analist bir sonraki yineleme iin dnlen kartlarn detayl analizleri stnde alr. Kart bir cmlelik formattan bu alma sonunda daha detayl, arayz ablonlar, kabul kriterleri, i aklar gibi bilgilerin yer ald bir formata dnr.

Retrospective toplants Yineleme bitiminde gzden geirme toplants yaplr. Bu toplantya Retrospective ad verilir. Ama ekibin daha verimli almasn salayacak iyiletirme olanaklarn tespit etmek, ekibi yavalatan faktrleri belirleyerek ortadan kaldrmaktr. Bir anlamda tasarmn refactor edilerek iyiletirilmesi gibi
Copyright 2008 Prime Teknoloji - iletisim@prime.com.tr

ekip bu toplantyla kendi alma yntemlerini refactor eder ve daha iyiye ular. Bu toplantnn amac sadece problemleri saptamak deildir. yi uygulanan yntemler varsa bunlarn ne olduunu belirlemek ve aynen devam etmek amalanr. Ekip kendi kendine organize olur ve alma ynteminin ne olaca konusunda fikir yrtr ve uzlat konularda admlar atar. Her yinelemede proje hakknda yeni eylerin renilir. Bu deneyimden faydalanmak ve daha iyiye gitmek gereklidir. Aada retrospective oyunlarnn birkann uygulanmasn gryorsunuz. Ekip yeleri iyi, daha iyi olabilecek ve onlar artan, kzdran durumlar farkl renklerle kartlara yazp bir panoya yaptryor. Bunlar gruplanp toplant iinde tartlp kararlar alnyor.

Bir dier retrospective oyunu proje zaman grafii. Bunda ekip yeleri yineleme sresince olan olaylar kronolojik sraya sokuyor ve younluklu noktalar birletirilerek yinelemede olan olaylar ve etkileri gzleniyor.

Copyright 2008 Prime Teknoloji - iletisim@prime.com.tr

Demo toplants Yineleme bitiminde yaplan bir dier toplantda demo toplantsdr. Bu toplantnn amac yineleme kapsamnda gelitirilen yeni zellikleri kullanclara gstermek ve geri beslenim almaktr. Toplantya katlanlar yineleme iinde hangi zelliklerin yazlma eklendiini grr ve fikirlerini paylar. Kullanclarn kafasndaki belirsizlikler somut yazlm zellikleri gsterilerek alr. Ortaya kan yeni fikirler toplanp yazlmn daha yararl olmas adna kullanlr. Proje ynetim metrikleri Yineleme bitiminde ekibin bitirdii kartlar ele alnarak ekibin hz hesaplanr ve kaydedilir. Yineleme birim ise, hz birim zamanda ekibin bitirdii i miktardr. Bu hesap yaym seviyesinde alnan tahminlerin toplam olarak hesaplanr. Bu hza gre proje yneticisi gelecee dair projenin sresi ve maliyeti ile projeksiyonlar yapabilir. Yineleme hznn ilk yinelemelerde dk kmas, daha sonra artmas ve bir seviyeden sonra sabit bir deere yaklamas beklenir. Retrospective toplantsnda alnan kararlarn hza etkileri izlenebilir. Hz metriine proje yneticisinin elindeki en deerli metriklerden biridir. Bu metrik kullanlarak Burn Down, Burn Up, Finger Chart gibi farkl grafikler karlr ve projenin gidiati grsel olarak zetlenir. rnein Burn Down ve Burn Up grafikleri proje kapsamndaki oynamalar, bunlarn zamana etkilerini, ilerin bitirilme hzn ksaca gidiat zetler. Dikeyde kartlarn alnan puan toplamlar, yatayda ise zaman yer alr. Projede meydana gelen deiikliklerin etkileri bu grafiklerde gze arpar. rnein yavalamalar, ilerin ilerlemiyor olmas gibi.

Copyright 2008 Prime Teknoloji - iletisim@prime.com.tr

Copyright 2008 Prime Teknoloji - iletisim@prime.com.tr

Kartlarn durumlar iin Finger grafikleri olduka yararldr. Ka User Story kartnn hangi zamanda hangi durumda olduu ile ilgili bilgileri bir bakta verir.

Agile ve Ofis ortam Agile ofis ortam ekip yelerinin yzyze iletiimini kolaylatracak ekilde dzenlenmelidir. Bilgiyi aramak iin geen zaman kayp zamandr. letiim kolaylatka bilgi paylam artar ve ekip yeleri ok ksa bir zamanda yanl anlamalar olmadan direk diledikleri bilgiye ular hale gelir. Agile sreler konusundaki en nemli pratik bu iletiime olanak veren ofis ortamnn kurulmasdr. rnek bir oturma dzenini aada grebilirsiniz. Birbirleri ile srekli iletiimde olmasi gereken ekip yeleri birbirlerine daha yakn oturacak ekilde yerleirler. rnein analist , mimar, testi gibi roller programclarn ortasnda olacak ekilde otururlar.

Copyright 2008 Prime Teknoloji - iletisim@prime.com.tr

Proje hakkndaki tm bilgiler proje ortamndaki duvarlarda paylalr. Arayz ablonlar, hata saylar, toplant haberleri, yaym planlar, alan modeli, nemli mimari standartlar gibi akla gelebilecek her bilgi proje ortamnda grnr haldedir. Aadaki fotorafta duvarlardaki bu tr bilgi paylamn grebilirsiniz.

Copyright 2008 Prime Teknoloji - iletisim@prime.com.tr

Agile ve CMMI
Agile sreler ile CMMI in ilikisine bakacak olursak , CMMI modeli srelerin hangi alanlarda pratiklere sahip olmas gerektiini syler ve buna gre olgunluk seviyeleri tanmlar. Bu pratiklerin neler olaca, ekibin hangi yntemlerle alaca konusunda kstlar koymaz CMMI ne yapacaksn sorusunun cevabdr. Nasl sorusunun yantn uygulanan srecin kendisi verir. Bu sre Agile olabilecei gibi klasik elale yntemleri de olabilir. Gnmzde CMMI sertifikasyonunu Agile sreler kullanarak gerekletiren irketlerin says artmaktadr. XP ve Scrum yntemleri ile CMMI L3 gereksinimleri karlanmaktadr. Sadece CMMI gereksinimlerini kullanarak sre iyiletirme yapan irketler brokratik , ekibin doal alma haline gelemeyen srelerin olumas riski byktr. Agile sreler adaptasyonu ve sonrasnda oluan srecin CMMI gereksinimlerine gre paralel eksiklik analizleri almas yoluyla hem etkin bir sre hemde CMMI sertifikasyon hedefi tutturulabilir.

Su kltr
Proje sresince hatalarn yaplmas doaldr. Agile srelerdeki ekip kltr hatalarda su aramaz, sulu olarak bireyleri gstermez. Hatalar varsa bundan bireyler deil tm ekip sorumludur, hatann nedeni tespit edilip dzeltilmelidir. Probleme deil zme odakl olmak bunu gerektirir.

Copyright 2008 Prime Teknoloji - iletisim@prime.com.tr

Su kltrn yerleik olduu ekiplerde alan kiiler hata yapmaktan tedirgin verimsizlie doru itilir. Ekip ruhu zedelenir. Baarlar ekibe ait olduu gibi problemlerde ekibe aittir ve tm ekip sorumludur. Bu bak asndaki tek istisna srekli entegrasyon kurulumlarnn krlmas konusundadr. Hatal bir checkin ilemi ile kurulumun krlmas dier ekip yelerinin checkin yapamamas anlamna geldii iin ekibin almasn yavalatr, retim hatt problem dzeltilinceye kadar durur. Kiilerin local makinalarnda checkin ncesi entegrasyon kurulumunu mutlaka yapmalar gerekir. Krlmalar nlemek amacyla ekip kurulumu kran kiiyle elenebilir. rnein bu amala kurulumu kran kiiye apka giydirmek, kurulumu krdm yazl bir tshirt giydirmek gibi elenceli zmler Agile ekipler tarafndan uygulanr.

Agile ve Dokmantasyon
Agile sreler iin dokmantasyon, analiz, planlama gibi aktivitelerin ihmal edildii gibi nyarglar vardr. Bu aktiviteler klasik srelerde projenin banda uzun sren ve analiz paralizine yol aabilecek ekilde uygulanr. Agile srelerde ise aktiviteler proje sresine yaylr ve srekli yaplr. Dokmantasyon adm adm kartlar gelitirilme aamasna yaklatkca detaylandrlr. Planlama farkl seviyelerde(yaym,yineleme, gnlk) srekli yaplr ve somut metriklere dayandrlr. Kurulumlar her kod deiikliinde yaplacak ekilde hazr tutulur. Yazlm srekli otomatik testler tarafndan snanr. Belirsizliklerin youn olduu projenin balang aamasnda detayl analiz ve planlamalar yapmak yanl kararlarn alnmasna neden olabilir.

Agile sreler iin kullanlan aralar


Agile sreler proje ynetim ve ilerin takibiyle ilgili olarak sade ve pratik yntemler kullanr. Proje ekibinin 10 kiiyi gemedii, ekibin ayn fiziksel mekan paylat projelerde herhangi bir yazlm kullanlmasna dahi ihtiya olmayabilir. Fakat proje ekibi farkl mekanlara daldka, proje ekibi bydke ve iletiim zorlatka srecin uygulanmasnda dezavantajlar ortaya kar ve bunlar bertaraf etmek iin eitli yazlmlara bavurulur. Thoughtworks Mingle, VersionOne, Rally Software gibi yazlmlar Agile proje ynetimi iin zel tasarlanm , User Story lerin takibi, Yaym ve Yineleme planlama, Burn down grafikleri gibi kabiliyetleri ieren yazlmlardr. Yazlmclarn kulland aralara gelince zellikle testlerin kolayca yazlmasn ve hzl ekilde altrlmasn salayan aralar kullanlr. xUnit test aralar ailesi , fonksiyonel testler iin Selenium, Fit, Fitnesse, Watir bu tr aralardr. Ayrca otomatik kurulumlar iin Ant, Maven, MsBuild, Rake gibi aralar kullanlr. Proje tek bir komut ile kurulabilmelidir. Bunun yannda srekli entegrasyon iin CruiseControl , Hudson, Atlassian Bamboo gibi aralar
Copyright 2008 Prime Teknoloji - iletisim@prime.com.tr

kullanlr. Bunlar Subversion, CVS gibi versiyon kontrol sistemlerien entegre alarak ksa aralklarla otomatik kurulumlar gerekletirirler. Hatalarn takibi iin Jira, Trac gibi aralar kullanlr. Proje kodlama standartlar, potansiyel problemlerin analizi, test kapsam raporlar gibi konularda da birok ara mevcuttur. Bu aralarn seiminde ana kriterlerden biri otomatik kurulum srecine dahil olabilme kabiliyetleridir. PMD, FindBugs, Clover, Cobertura, NDepend, FxCop bu tr aralardr.

Agile srelerde metrikler


Agile srelerde srekli gznnde bulunan metrik ekibin hzdr. Bu her yineleme iin llr ve paylalr. Bu metrik sayesinde projeyi zamannda bitirebilecek miyiz, yaplan iyiletirmeler ekibi hzlandrd m, ekibin verimi artyor mu gibi sorulara cevap bulunabilir. Bunun yannda User Story lerin yineleme srasnda hangi aamalarda ka gn bekledii, test ile gelitirme arasnda geri dnler, kan hata saylar gibi lmler alnr ve yineleme deerlendirme toplantlarnda bu lmler ekibin yorumuna alr. Projedeki mevcut test says, kodlarn yzde kann testlerin gvenliinde olduu, srekli entegrasyon kurulumlarnn zamanlamalar, gelitiricilerin checkin skl, kurulumun krlma oranlar ve nedenleri gene srekli gznnde bulundurulan ve ekibin daha verimli almas iin kullanlan lmlerdir. lmler ancak bir anlam ifade ettii ve proje ekibine daha iyiye gidebilme konusunda kararlar almasna yardmc olduu lde yararldr.

Agile ve Lean arasndaki paralellik


Yaln dnce(Lean Thinking) ncelikle hedefiniz nedir sorusunu sorar. Ama her zaman bizi hedefe yaklatracak deerleri yaratmak olmaldr. Yazlm balamnda dnldnde hedef mteri ihtiyalarn karlayan kaliteli yazlm hzla teslim etmektir. Yaln dnce bu hedefe ulalrken kullanlan srece ne kadar deer rettii, mteriye ne salad gzyle bakar. Mteriye deer salamayan sre faaliyetleri zaman,kaynak ve para israfdr ve srecin etkinlemesi iin israfn yok edilmesi gerekir. Tm faaliyetlerin ne kadar deer oluturduunun srekli sorgulanmas gerekir. Deer ak bu sayede srekli iyiletirmelerle mteriye mkemmel deer salayacak ekilde ayakta tutulur. Bu sayede hem mteriler ihtiyalarna daha kaliteli, hzl ve ucuz ekilde ularlar hem de firmalar rekabet glerini ve karllklarn arttrm olurlar. Yaln dncenin k Toyota retim Sistemidir(Toyota Production System). Bu sistemin temelinin atld 1950li yllarda Henry Fordun ortaya koyduu kitle retim(mass production) yaklam kabul gryordu. Fabrikalarda dk vasfl iiler ve zel makinalar retim hatlarnda ucuz arabalar retebiliyordu.
Copyright 2008 Prime Teknoloji - iletisim@prime.com.tr

Mevcut sistem retime direk katks olmayan ve deer salamayan faaliyetleri beraberinde getiriyordu. rnein detayl planlama, stok ynetimi, ara yatrmlar gibi faaliyetler ve sistemin insan kaynana zensiz bak as ana problem kaynayd. Sava sonras yllarda Toyota kendi retim srelerini kurarken Ford retim sistemini inceledi. O yllarda Toyotann zaman ve kaynak israf etmek gibi lksleri yoktu, ayakta kalabilmek iin ok verimli alarak mteri ihtiyalarn karlayan kaliteli rnleri piyasaya hzlca srmesi gerekiyordu. Ama retimi tketici istedike yapmak ve hzlca tketiciye ulatrmakt. Sistemde israfa yer yoktu. Stok, detayl planlama aktiviteleri, kararlarnn gecikmesi israf olarak alglanyordu. retim byk kitleler halinde deil mterinin istedii kadar yaplyordu. alma dzeni olarak farkl makinelerin dizildii dz bir retim hatt yerine U eklinde bir iinin birden fazla makinenin sorumluluunu ald bir yerleim kullanld ve monotonluu azaltt iin alanlarn i tatmini artt. Toyota retim Sisteminin en nemli zelliklerinden biri alanlara ve i memnuniyetlerine verdii nemdi. Yaln yaklamn fabrikalarda yoketmeye alt israf 7 kategoride deerlendirilir. sraf 1 : Fazla retim Bir sipari gelmeden mal retmek. rnein yaln yaklam benimseyen Dell Computer ok az bir stok tutup bilgisayarlar mteri siparii geldiinde zel olarak retebilmesi ile nl. sraf 2 : Stok Ham madde ve retilen ara paralar maliyetleri arttrr. Bunlar retim srasnda tamak, saklamak gerekecektir.deal durum hi stok yapma ihtiyac olmadan ham maddenin nihai rn olana kadar hzl ekilde aktlmasdr. sraf 3 : Gereksiz i admlar Gereksiz i admlar sreci kompleks hale sokabilir. Eer bir i adm olmadan sre ileyebiliyorsa o adm israftr. sraf 4 : Hareket in yaplmas iin ok fazla efor sarfetmek gerekiyorsa bu israftr. sraf 5 : Hatalar Hatalar daha ortaya kmadan nlemek gerekir. rnde farkedilen hatalar o rnn retilmesi iin kullanlan kaynaklarn israfdr. sraf 6 : Beklemeler Bir i adm iin baka i admlarnn ktlar bekleniyorsa bu bekleme israftr.
Copyright 2008 Prime Teknoloji - iletisim@prime.com.tr

sraf 7 : Tama Bir paray bir yerden dierine tama zorunluluu maliyetleri arttrr ve israftr. Amerikan firmalar Yaln yaklam benimseyen ve yukarda anlatlan israflar nleyen Japon irketleri karsnda pazar kaybetmeye baladlar. 1980li yllarda Toyota yeni bir araba modelini Amerikan irketlerinin 3 de biri zamanda retebiliyordu. Ara kalitesi ve tketici memnuniyetinde de Japonlar ak ara nde gidiyordu.Gnmzde bile 10-15 yldr saat gibi ileyen Japon arabalarn hala yollarda grmek mmkn. Amerikan arabalarnn ise ilk 6 ay iinde dahi problemler karmas hatta arabalarn geri arlmas gibi problemler olaand. Zaman getike ayn verimi hedefleyen Amerikan ve Avrupa irketleri yaln yaklamlar benimsedi ve yaln yaklam retim sistemleri dnda yazlm sektr gibi birok farkl alanda uygulanmaya baland. Yazlm gelitirme alanna baktmzda Yaln yaklamn evik sreler olarak yorumlandn syleyebiliriz. Toyota nn rn tasarmna bak evik srelerin pratiklerine artc derecede benziyor. sraf yazlm projeleri balamnda yorumlarsak aadaki liste ortaya kyor. sraf 1:Ekstra zellklerin eklenmesi Mterinin sadece ihtiya duyduu zelliklerin yazlma eklenmesi gerekir. evik sreler sadece en ncelikli gereksinimlere odaklanr. Gelecekte bu gereksinim de ortaya kar diyerek mterinin geri beslenimi olmadan yazlma ek zellikler eklemez. Kodlama aamalarnda da ayn ekilde kodlar sadece gnn ihtiyalarn karlayacak ekilde basite tasarlanarak yazlr. Gelecekte ihtiya olacak diye sistemin kompleksliini arttracak zelliklerin yazlma eklenmesinden kanlr. sraf 2: Gereksinimler Batan tm gereksinimlerin detaylandrlmas ve analiz dokmanlarnn oluturulmas batan hammadde stou oluturmak gibi israftr. Gereksinimleri byk yn halinde stoklamak yerine evik sreler ksa admlarla gereksinimleri alr ve bunlar alan yazlma dntrr. Bu teslimler srekli yaplr ve analiz projenin bandan son aamalarna kadar devam eder. Teslimlerde yazlma hangi zelliklerin eklenecei mterinin kendisi tarafndan belirlenir. sraf 3:Gereksiz i admlar Gereksiz dokmantasyon, gzden geirme almalar , pratikte ilemeyen test sreci gibi ilk bata akla gelen i admlar mteriye yazlm teslimi hedefine katkda bulunmaz. Aksine bu almalar zamanla ama haline gelir ve ekip asl hedefi unutabilir. evik sreler disiplinli ekilde yazlm

Copyright 2008 Prime Teknoloji - iletisim@prime.com.tr

gelitirilebilmek iin gereken en temel pratikleri ierir ve alan yazlm i rnleri oluturmaktan ye tutar. sraf 4: Bilgiye ularken harcanan efor Ekibin bilgiye kolayca ulaabilmesi ve paylaabilmesi gereklidir. rnein analiste sorulacak bir soru iin toplantlar dzenlemek gerekiyorsa, yazlm gelitirici ii ile ilgili kaynaklara zor ulaabiliyorsa bu israftr. evik srelerde tm ekip yeleri ak bir ofis ortamnda oturur ve srekli iletiim halindedir. Ekiplerin oturma dzeni bilgi paylamn arttracak ekilde dzenlenir. Ekip bilgiyi duvarlara aslan panolarda paylar. rnek olarak alan modeli, projenin son performans lmleri, versiyon kontrol sistemi balant zellikleri, nemli iletiim bilgileri, halen gelitirilmekte olan zellikler gibi bilgiler ekibin alt ortamda herkesin grebilecei ekilde paylalr. sraf 5:Hatalar Yazlmda test aamalarndan sonra bulunan hatalar israf edilen kaynaktr. evik srelerden XP testleri birinci ncelie koyar ve kodlarn yazlmas iin nce testler yazlr. Testler sayesinde mevcut yapnn belli bir ilevi yerine getirmedii ispatlanr. Sonrasnda bu ilev iin gereken kodlar yazlr ve testler tekrar altrlr. Test getiinde ilev yazlma eklenmi demektir. Bu gerekenden fazla i yaplmasnnda nne geer. sraf 6:Beklemeler rnein bir iin balamas iin onaylar bekleniyorsa bu israftr. SRS onay bunun en gzel rneklerinden biridir. Testcilerinde teste balamak iin kodlamann bitmesini beklemesi ayn ekilde israftr. evik srelerde beklemeler minimuma indirilmitir. 2-4 haftalk srelerle ihtiyalar hzlca gelitirilip yazlma eklenir ve mteriye teslim edilir. Toplantlar dahi ksa zaman almas iin ayakta yaplmaya allr. sraf 7:Ekipler aras i teslimi Bu tr teslimleri azaltmak iin Testi, Analist, Yazlm gelitirici gibi rollerdeki ekip yeleri hergn yazlma yeni zellikler eklemek hedefiyle beraber alrlar. rnein gereksinimi belirten bir kullanm hikayesi(user story) ile ilgili kodlama almalar balamadan nce ekip yeleri biraraya gelip ksaca kapsam tartabilir. Bu tr basit fakat etkili yntemlerle dokmantasyon ihtiyalar ve ek i rnlerinin getirdii israf nlenmi olur. Sre iyiletirme almalarnda yaplan genel hatalardan biri sreci oluturan alt i admlarna odaklanarak , bu admlar optimize etmeye almaktr. Yaln yntemler sreci bir btn olarak grr ve sreteki deer akn analiz eder. Sre bir btn olarak ele alnmaldr ve etkinlii bir btn olarak llmelidir. Grdnz zere yazlm dndaki sektrlerde uzun yllardr denenen ve Toyota gibi dnya devlerinin baarlarnn srr olan Yaln Dnce eklinin yazlm sektrndeki iz dm Agile dir.
Copyright 2008 Prime Teknoloji - iletisim@prime.com.tr

Agile sihirli denek mi?

Agile tm problemleri zecek ve proje baarsnn garantisi olacak bir gm kurun deildir. Bu ynde bir iddias yoktur. Agile yntemlerle alma ekli problemlerin projenin ilk aamalarndan itibaren grlmesini salar. Projedeki ilerleme her zaman belirgindir. Ksaca hibirey gizli kalmaz. Problemler varolmasna ramen bunlarn stlerine gidilmiyor ve problemler zlmyorsa proje Agile sreleri kullansn veya kullanmasn baarsz olacaktr. Agile yntemler bu problemleri grnr klar. Ekibi problemleri zmesi iin kendi kendine organize olabilme konusunda yetkilendirir ve ekibin alma ritmi halini alan pratikleri sayesinde disiplinli biimde hedefe doru yrr. sraf nleyerek hedefe daha abuk ulalmasn salar. Dikkat edilmesi gereken bir nokta sreleri uygularken bir btn haline ele almaktadr. XP pratiklerine bakarsak pratiklerin bir btn olduunda anlam ifade ettiini, birbirlerine bal olduklarn gryoruz. Eer bir pratii uygulamayacaz derseniz, bu pratiin yerine ayn amala kullanlabilecek baka bir pratik uygulamanz gerekir. rnein pair programming den vazgeildiinde yerine srekli, ksa aralklarla yaplan kod gzden geirmeleri gerekir.

Copyright 2008 Prime Teknoloji - iletisim@prime.com.tr