Extreme Programming Nedir?
Programcilik yaptiginiz projelerde, sayfalarca dizayn dokumani yazmaniz isteniyor mu? Ne kadar onceden dusunup tasinsanizda, sonradan elde ettiginiz dizayn kagittakinden degisik olmuyor mu? Hic zamani ve ozellik listesi 'dondurulan' (fixed time/fix bid) turu projelerde calistiniz mi? Boyle projelerin %50'sinin basarisizlikla bittigini biliyormusunuz? Boyle bir projeden gectiniz mi? Butun saclariniz hala yerinde mi?
Evet, yeteri kadar soru sorduk herhalde. Yukaridaki problemleri yasayan Amerika'da bir grup programci, proje idaresi isini beceremeyen yoneticilere, ve o 'grafik metod hastasi' kardes programcilara samari vurdu. Metod hastasi arkadaslari bilirsiniz, hani kutuphanelere sigacak dokuman yazmadan program yazmayanlardan bahsediyorum.
Kent Beck isimli bir Smalltalk programcisi, uzun zamandan beri isleyen
programcilik, dizayn, proje idaresi tekniklerini bir araya koydu, ve
Extreme Programming akimini yaratti. Bu teknigin soyledikleri sunlar:
- Projelerin ozellik listesi nasil olsa proje sirasinda degisecektir.
Bu listeyi 'dondurmak' bosa zaman harcamaktir. Musteri,
danismana aylik miktarda oder, ama her 3 haftada bir isleyen bir
program gorebilir
- Test yazilimi, test 'edilen' parcalardan once yazilir, ve mumkun
oldugunca hersey test edilir. Bu testler ust, uste isletilebilen
turden olmalidir.
- Programcilar yanliz calismaz, butun kod ikiserli takimlar
tarafindan yazilir.
- Sistem mimarisi icin HIC zaman ayrilmaz. Yazilim mimari yapisi
onceden tek basina yazilmaz. Butun isbolumu, musteriye anlamli
ozellikler uzerinden yapilir, mimari, 'yavas yavas' ozellikler
eklenirken arka planda insa edilir.
- Dokumantasyon yazilmaz. Binlerce kilometrelik, program yazmaya hic
yarari olmayan bu kagit parcalari icin zaman harcanmaz.
- Musteri her zaman programcilar ile ayni yerde durur, soru sormak
icin surekli mevcut bulunmalidir.
- Programcilar is dunyasini ilgilendiren kararlar alamazlar,
musteriler teknik kararlar alamazlar. Hangi ozelligin once, hangisinin
sonra gelecegi is dunyasini ilgilendirir. Ozelliklerin ne kadar surede
kodlanacagi, nasil kodlanacagi programcilara kalmistir.
- Ozellikler, teker teker orta boy kartlarin uzerine yazilir, fakat bu
kartlar atilabilir, yerine yenisi yazilabilir. Musteri istedigi zaman
yeni bir kart ekleyip cikartabilir. Tek kurala uymak kaydiyla: 3
haftalik dilimlerde yazilacak kart sayisi, takimin is hacmi otesinde
olamaz. Is hacmini baska yazilarda isleyecegim.
Daha yazimiza sigmayan cok onemli ozellikler var. Fakat ustte
belirtilen butun dersler, simdiye kadar izlenen dizayn stillerinin
karsiti. Eski stiller, kendilerini insaat muhendisligine benzetmek
icin ugrastilar, fakat oteki muhendislik alanlari, yazilima gore cok
farkli. Uzun bir dizayn zaman dilimine gerek yoktur yazilim
dunyasinda, aslinda kod yazmanin kendisi bir dizayn islemdir.
Saygilar,