Servis Tabanlı Kurumsal Yazılım Gelitirilmesinde XP Kullanımı ve Eletirisi



Benzer belgeler
WEB SERVS TABANLI GELTRLEN MOBL UYGULAMALAR: ODTÜ MOBL ÖRENC LER BLG SSTEM (MOBS)

ÖZGÜR YAZILIMLAR İLE J2EE

Spring Ekosisteminde Kurumsal Yazılım Geliştirme. Kenan Sevindik Harezmi Bilişim Çözümleri A.Ş.

2. Bölgesel Kalkınma ve Yönetiim Sempozyumu Ekim 2007, zmir

Femsoft, kolay kullanımı ve genileyebilen esnek yapısı ile ilerinizi çok kolaylatıracak!

BYS. T.C. Ulatırma Bakanlıı Biliim Belge Yönetim Sistemi Çözümü

Femsoft, kolay kullanımı ve genileyebilen esnek yapısı ile ilerinizi çok kolaylatıracak!

ERP MPLEMENTASYONU PROJELERNDE DENETM SÜRECNN ÖNEM ve KARILAILAN RSKLER. Uur Kaan DNÇSOY

Java Tabanlı Akıı Sisteminin Gelitirilmesi

Çok Katmanlı Veritabanı Uygulamaları çin Esnek Bir Vb.Net Kodu Üreticisi: Code Generator

KONTROL SSTEMLER LABORATUARI

Java ve Linux. Bora Güngören Portakal Teknoloji Akademik Bilişim

Çok Katmanlı WEB Tabanlı Uygulamalarda Yetkilendirme Problemi

BÜLTEN. KONU: Menkul Kıymetlerin Vergilendirilmesi Hk 277 Nolu GVK G.T. Yayınlanmıtır

İnternet Programcılığı

Java. Hakkımızda. Java Eğitimi

E-Beyanname* *connectedthinking

Vakko Tekstil ve Hazır Giyim Sanayi letmeleri A Tarihi tibarıyla Sona Eren Hesap Dönemine likin Yönetim Kurulu Yıllık Faaliyet Raporu

TCMB Deneyim Raporu. Kurumsal Java Uygulama Platformu. Sacit Uluırmak. Türkiye Cumhuriyet Merkez Bankası Sistem Araştırma ve Planlama Müdürlüğü

Android e Giriş. Öğr.Gör. Utku SOBUTAY

Veritabanı. Ders 2 VERİTABANI

2 Temel Kavramlar (Devam) Veritabanı 1

JAVA RMI ve Hibernate teknolojileri kullanılarak çok amaçlı bir yazılım altyapısı hazırlanması

Bileen Tümletirmesine Dayalı Otomatik Uygulama Gelitirimi

Yüksek Lisans Çalımalarının Yürütülmesinde Aday Örencinin Sorumlulukları

Turquaz. Açık kodlu muhasebe yazılımı Turquaz Proje Grubu

1 Temel Kavramlar. Veritabanı 1

Taıt alımlarının ette tüketim endeksi kapsamında izlenmesi hakkında bilgi notu

ICS TÜRK STANDARDI TS EN OHSAS 18001/Mart 2001

Basit Mimari, Katmanlı Mimari ve doğrudan çalıştırma olarak üçe ayrılır.

CMMI. CMMI ve Çevik Yöntemler. Orhan KALAYCI Haziran Yazılım Süreç Kalitesi ve Yönetim Danışmanlığı.

Bu model ile çalımayı öngören kuruluların (servis ve içerik salayıcılar),.nic.tr sistemi ile uyumlu, XML tabanlı yazılım gelitirmeleri gerekmektedir.

OTSTK BR OLGUNUN DUYGULARI ANLAMA VE FADE ETME BECERSNN KAZANDIRILMASINA YÖNELK DÜZENLENEN KISA SÜREL BR E TM PROGRAMININ NCELENMES

2. Bölgesel Kalkınma ve Yönetiim Sempozyumu Ekim 2007, zmir

BELEDYELERDE NORM KADRO ÇALIMASI ESASLARI

VERİ TABANI PROGRAMCILIĞI DALI

Java EE 5 Teknolojileri Jboss Seam

Pozisyon Kontrol Sistemi Üzerine Karakteristik Yapı Çalı ması: STANBUL

Akıllı Kontrolde Teknoloji Devi SCADA YAZILIMI. Supervisory Control and Data Acquisition. ViewPLUS. Açık, Esnek, Ölçeklenebilir.

Client Server Database

Arş.Gör.Muhammet Çağrı Gencer Bilgisayar Mühendisliği KTO Karatay Üniversitesi 2015

EL PARMAKLARINA DEERLER VEREREK KOLAY YOLDAN ÇARPMA ÖRETM YÖNTEMYLE ZHN ENGELL ÖRENCLERE ÇARPIM TABLOSU ÖRETM UYGULAMASI

Corafi Daıtık Yazılım Gelitirme Ortamında Yazılım Konfigürasyon Yönetimi

DELTA MENKUL DEERLER A..

OTSTK ÇOCUKLARIN ALELERNE YÖNELK GRUP REHBERL NN ANNE BABALARIN DEPRESYON VE BENLK SAYGISINA ETKS

GÜNCEL GELMELER IIINDA LKÖRETM: MATEMATK-FEN-TEKNOLOJ-YÖNETM

! "#$ % %&%' (! ) ) * ()#$ % (! ) ( + *)!! %, (! ) - )! ) ) +.- ) * (/ 01 ) "! %2.* ) 3."%$&(' "01 "0 4 *) / )/ ( +) ) ( )

Yazılım Nedir? 2. Yazılımın Tarihçesi 3. Yazılım Grupları 4 Sistem Yazılımları 4 Kullanıcı Yazılımları 5. Yazılımın Önemi 6

AB Uyum Sürecinde Türkiye nin Rekabet Gücü lerleme Raporu Üzerine Tespitler

Dousan Boru Sanayi ve Ticaret A Tarihli Faaliyet Raporu. irket Merkezi Erzincan Sivas Karayolu 14 Km Pk 74 Erzincan

PIZZA DONALDO TÜRKYE. Mevcut Durum

Hedef Kitle Ko ullar Kurs Tanımı Amaçlar Kurs Tanıtımı

MATEMATK ÖRETMNDE BULMACA ETKNLNN ÖRENC BAARISINA ETKS

Swing ve JDBC ile Database Erişimi

KURUMSAL YÖNETM LKELERNE UYUM RAPORU 1. Kurumsal Yönetim lkelerine Uyum Beyanı Brisa Bridgestone Sabancı Lastik Sanayi ve Ticaret A..

Veri Tabanı-I 1.Hafta

İŞLETİM SİSTEMLERİ. (Operating Systems)

Amaç ve Kapsam. Yetki ve Sorumluluk

ASP.NET Web Uygulamalarında Güvenlik

Bilgi Notu ARA TIRMA VE TASN F GRUBU " ç Kontrol: Kamusal Hesapverme Sorumlulu u çin Bir Yapı Olu turulması" Hk.

tarafından hazırlanan bu iyeri yönetmelii tüm irket çalıanları için geçerlidir.

VERİ TABANI UYGULAMALARI

TÜLN OTBÇER. Seminer Raporu Olarak Hazırlanmıtır.

HLA Tabanlı Bileenler ile Otomatik Uygulama Gelitirme

TÜRKSAT A.Ş. 2. PostgreSQL Konferansı. Bilgilendirme Sunumu Faruk Selman Lekesiz

COĞRAFİ BİLGİ SİSTEMLERİ SERVER MİMARİSİ SERVER UYGULAMA GELİŞTİRME EĞİTİMİ

JavaServerFaces. Ahmet Demirelli. SCJP 5.0, SCWCD 1.4

1.PROGRAMLAMAYA GİRİŞ

Vakum teknolojisi. Sistem kılavuzu

MUSK MUALLM MEKTEBNDEN GÜNÜMÜZE MÜZK ÖRETMEN YETTRME PROGRAMLARINDAK YAYLI ÇALGI ÖRETMNE LKN SINAMA-ÖLÇME-DEERLENDRME DURUMLARININ NCELENMES

SGK 11 Bin Liraya Eleman Arıyor

Selsoft Eğitim Kataloğu

.com. Özcan Acar 2009 Kurumsal Java.com

İngilizce'de Relational Database Management System (RDBMS) olarak ifade edilir.

ORM & Hibernate. Ahmet Demirelli. SCJP 5.0, SCWCD 1.4 ahmetdemirelli@sabanciuniv.edu

Büyük Ölçekli Bir Sistem Projesinde IBM Rational Jazz Platformu Kullanarak Çevik Süreçlerin Uygulanması. Serap Bozbey

PHP 1. Hafta 1. Sunum

Veritabanı Uygulamaları Tasarımı

Kurumsal Yönetim Sistemleri Sistemleri

08217 Internet Programcılığı I Internet Programming I

Compiere Açık kodlu ERP + CRM yazılımı. Hüseyin Ergün Önsel Armağan Serkan Demir

11.DERS Yazılım Testi

INTOSAI KAMU KES M Ç KONTROL STANDARTLARI REHBER. Özet Çeviri Baran Özeren Sayı tay Uzman Denetiçisi

stanbul Depreme Nasıl Hazırlanıyor?

MÜZK ETM YÖNETM ve DEERLENDRME LKLER *

Inovasyonu Hızlandırın

EKONOM!K KATMA DE"ER (EVA) YAKLA#IMI. Doç.Dr.Cemal ÇAKICI Marmara Üniversitesi,!!BF.!"letme Bölümü Ö#retim Üyesi

Veri Tabanı Yönetim Sistemleri Bölüm - 3

#$% &'#(# Konular. Bits of Information. Binary Özellikler Superimposed Coding Signature Formation Deerlendirme

SOSYAL GÜVENLİK KURUMU. HİZMET SUNUMU GENEL MÜDÜRLÜĞÜ GSS Yazılımları Daire Başkanlığı MEDULA UYGULAMALARI ALİ GELENLER

Bu dönemde daha önce belirttiim gibi yatırımlarımızla ilgili almı olduumuz kararlarımızın yanı sıra;

II. KURUMSAL YÖNETM LKELER UYUM RAPORU

VERİ TABANI YÖNETİM SİSTEMLERİ

Java Programlama Giriş

!!"#! $#$%& '(& )*$+,( -. )/0 1-2 *. / *. /0 3 )56 7

DI TCARET HADLERNDEK DEMN CAR LEMLER DENGES VE GSYH ÜZERNE ETKLER ( )

BURSA DA GÖREV YAPAN MÜZK ÖRETMENLERNN ULUDA ÜNVERSTES ETM FAKÜLTES GÜZEL SANATLAR ETM BÖLÜMÜ MÜZK ETM ANABLM DALI LE LETM VE ETKLEM

Yazılım Yapılandırma Teknikleri: Temizer Sistemi

e.t.t.e tüketim endeksi

ENSTİTÜMÜZDE DIŞ İNCELEME UZMANI GÖREVLENDİRİLMESİNE İLİŞKİN DUYURU

Transkript:

Servis Tabanlı Kurumsal Yazılım Gelitirilmesinde XP Kullanımı ve Eletirisi Ensar GÜL 1, Ünal YILDIRIM 2 1 Avrupa Yazılım, Tübitak Mam Tekseb A Blok No: 201 Gebze, Kocaeli 1 eposta: ensar.gul@avrupayazilim.com Özet Bu bildiride, yazılım gelitirmede kullanılan Uç Programlama Extreme Programming (XP) yaklaımının servis tabanlı kurumsal yazılımlarının gelitirilmesinde kullanılmasının dourduu pratik sonuçlar anlatılmı ve XP ye eletirel bir bakı açısı getirilmitir. Abstract In this paper the practical results of applying Extreme Programming(XP) in the development of an enterprise application using service oriented architecture are presented and XP methodology has been criticized. 1. Giri Uç Programlama Extreme Programming (XP), kaliteli bir yazılımı, mümkün olan en kısa sürede gerçekletirmeyi hedefleyen, bir dizi, deer, kural ve uygulamadan oluan bir yazılım gelitirme yöntemidir. XP, yazılım projelerinde riskleri azaltan, projenin ortamdaki deiimlere en iyi ekilde uyum salamasına izin veren ve sistem yaam döngüsü kapsamında verimlilii ön planda tutan çevik bir yöntem olarak kabul edilmektedir[1]. XP hakkında ayrıntılı bilgi için [2,3,4,5,6] kaynaklarına bakılabilir. Fakat uygulamada XP nin bu iddialarının her zaman ve ortamda gerçeklemedii gözlenmitir. Bu bildiride geni ölçekli bir kurumsal yazılımın gelitirilmesinde uygulanan XP yaklaımından kazanılan deneyimler anlatılacaktır. Bildirinin ikinci bölümünde XP`nin kullanıldıı yazılım hakkında bilgi verilmi, üçüncü bölümde bu yöntemin servis tabanlı kurumsal yazılım gelitirilmesinde uygulanması ve karılaılan güçlükler anlatılmı, dördüncü bölümde ise sonuçlar tartıılmıtır. 2. Tedarikçi Yönetim Sistemi (TYS ) Proje Kapsamı Yazılımın gelitirildii kurum, üretime yönelik hammadde ve yarı mamul alımları ile satı destek (promosyon) malzemelerinin yurt içi alımlarını Satın Alma Koordinatörlüü ve bu koordinatörlüe balı 18 Satın Alma Müdürlüü ile gerçekletirmektedir.

Satın Alma Müdürlükleri stok takibi, talepleri izleme, sipari açma gibi operasyonel ilemlerini gerçekletirmek için AS-400 sistemini kullanmaktadırlar. Satın almanın yanı sıra malzeme yönetimi, kalite kontrol, üretim planlaması, satı ve muhasebe gibi temel iletme ihtiyaçlarını karılamaya yönelik olarak gelitirilen AS-400 Sistemleri her irkette birbirinden baımsız olarak çalımaktadır. TYS öncelikle tedarikçi ve malzeme fiyatı onaylama süreçlerini elektronik ortama taımayı ve böylece bu süreçleri kayıt altına alıp, daha verimli izlenebilir bir hale getirmeyi hedeflemektedir. kinci olarak TYS intranet aracılıı ile tüm irketlerin ortak olarak kullanacaı ve katkıda bulunacaı bir bilgi tabanı olarak karar alma sürecinde Satın Alma Müdürlüklerine destek niteliindedir. TYS malzeme ihtiyaçlarını belirleme, talep yaratma, sipari açma ve malzeme kabul etme gibi operasyonel ihtiyaçlara bu versiyonda cevap vermemektedir. Sistemin kapsamı, tedarikçi ve fiyat onaylama süreçleri çevresinde satın alma karar destek ortamına gerekli bilgi daarcıını oluturmak ve bunun tüm grup irketleri arasında paylaılmasını salamaktır. Bu amaçla sistemin u fonksiyonları gerçekletirilmitir: a. Genel Kullanıcı lemleri b. Tedarikçi Bilgileri Gir/Güncelle c. Tedarikçi Onayla d. Malzeme Bilgileri Gir/Güncelle e. Malzeme ve Fiyat Belirle f. Satın Almayı Onayla g. Sistemi Yönet h. Rapor Çek Tedarikçi likileri Yönetim Sistemi ile; satın alma sürecinde farklı birimlerden/irketlerden toplanan bilgilerin paylaıma açılması, onay süreçlerinin elektronik olarak kayıt/gözlem altına alınması ve bu yolla satın alma kararlarının verilme sürecinde önemli bir verimlilik ve kontrol artıı salanması hedeflenmektedir. 2.1. Proje Teknik Yapısı Ürün bir Java uygulaması olarak, J2EE teknolojileri kullanılarak, çok-katmanlı (multi-tier) mimari yaklaım ile tasarlanmıtır. Platform baımsızlık (Unix, Windows, Linux), veritabanı baımsızlık (Oracle, DB2, mysql, postgresql, DB2400, Sybase, vb.) ve uygulama sunucusu baımsızlık ürünün ana özellikleri olarak planlanmıtır. Uygulamanın genel katmanları ekil 1'de görülmektedir. Uygulama web, mobil telefon ve masa üstü kullanıcılarını destekleyecek ekilde tasarlanmı ancak u ana kadar sadece web arayüzü gerçekletirilmitir. TYS sistem mimarisi, MVC (Model View Controller) modeline uygun bir ekilde, modüler yapıya sahip olacak ekilde ve esnek bir veri modeli üzerine kurulmutur. Kullanıcı ön yüzü deiik ara birimlerden olabilecei gibi, ilk tasarım web uygulaması olarak yapılmıtır. Sunucu kısmında i mantıı modüler bir yapıya bölünmü, dıarıdan ve içerden çarılabilecek servisler üzerine kurulmutur. Kalıcı Nesneler (Persistent Object) tabakasında `hibernate`[7] kullanılarak JDBC API

karmaası uygulamadan soyutlanmı; veri modeli, kavramsal ve fiziksel olmak üzere iki seviyede normalize bir ekilde tasarlanmıtır. Kullanıcı ara yüzü alt yapısı olarak JSF[8] kullanılmıtır. Uygulamanın alt yapısında Spring[9] yapısından faydalanılarak, singleton sınıflar uygulama balangıcında oluturularak tek bir yerden yönetimi salanmıtır. Uygulamanın çoklu dili desteklemesi amacıyla özellikler (properties) dosyaları kullanılmıtır. Uygulamadaki veri tabanı ilemlerin bütünlüü için bir ilem yöneticisi (Transaction Manager) ve servislere eriim için servis yöneticisi kullanılmıtır. Uygulamada kullanıcıya hata mesajlarının gösterilmesinde çoklu dil desteklenmi ve hata mesajları sınıflandırılmıtır. Genel amaçlı kullanılacak sınıflar ve arayüzler common, share ve util gibi paketlere ayrılmıtır. Bütün uygulamada gelitirme, test ve üretim aamasındaki log mesajlarının ayrılması için log4j kullanılmıtır. Gelitirilen yazılım yaklaık 180K satırdan olumaktadır. Mobil Swing Java Web Start Web stemci Güvenlik Tabakası(Security Layer) Web Servisleri JSP/JSF/Struts Servis Katmanı (Service Layer) Veri Modeli Katmanı (Data Model Layer) Nesne Veritabanı likilendirme Katmanı (Object Relational Mapping Layer) Hibernate Toplink JDO Dier Veritabanı Oracle DB2 AS400 Dier ekil 1. Yazılım Mimari Katmanları

3. XP Uygulaması ve Karılaılan Zorluklar Yazılım gelitirme sürecince sürümler iki hafta olarak planlandı. Proje ekibinde 14 kii görev aldı. Bu kiiler 7 çift olarak programlama yaptılar. 5. sürümün sonunda yazılım bitirilmesi hedeflenmiti. Bazı eksiklere ramen bu sürenin sonunda çalıan bir yazılım üretildi. Aaıda XP prensiplerinin uygulması konusunda karılaılan zorluklar ve bu balamda XP ye getirdiimiz eletiriler sıralanmıtır. Planlama ve küçük sürümler XP çerçevesinde ilk sürümlerde çalıır bir programın iskeletinin çıkarılması kolay deildir. Özellikle karmaık sistemlerde sistemin tümününe hakim olunması, i parçalarının tanımlanması, bunların gerçekletirilmesi XP nin iddia etti gibi kolay olmamaktadadır. Gelitirdiimiz uygulamada veri eriim katmanı, servis katmanı, GUI`de kullanılan teknolojiler balı baına uzmanlık gerektiren, örenilmesi zaman alan teknolojilerdir. Bunların hepsinin yazılımcılar tarafından iyi derecede örenilmesi ve verimli bir ekilde kod üretilmesi zaman kaybına yol açmaktadır. ler yapıldıkça sürekli yeni iler ortaya çıkmaktadır. Bu da proje ile ilgili salıklı bir tahmin yapılmasını zorlatırmaktadır. lk bata yaklaık 300 adet i birimi (task) planlanmı iken yazılım süreci boyunca bu i birimi sayısı artarak yaklaık 700 adet olmutur. Ayrıca buna ek olarak yaklaık 600 adet deiiklik ya da hata eklenmitir. Eli Programlama ( Pair Programming ) Yazılım sırasında balangıçta % 80 oranında eli programlama (pair programming) kullanılmı, sona doru rotasyonun getirdii uygulama zorlukları nedeni ile bu oran % 20 ye kadar dümütür. Eli programlamada karılaılan zorluklar: Sürekli e deiimi nedeni ile yazılım güçlükleri ortaya çıkmıtır. Kiilerin yaptıkları iler yarım kalmıtır. Yarım kalan ileri eler arasında paylatırmak sorun olmutur. Yazılımcıların çalıma alanlarının belli olmayıı herhangi bir alanda uzmanlamayı engellemitir. (Bu durum sık sık e deitirilmesinden kaynaklanmıtır). Bir iin iki kiiye aynı anda verilmesi, kiilerde sorumluluk duygusu olumamasına neden olmaktadır. Bir iten iki kiinin sorumlu olması, kiilerin i hakkında karar verme ve uygulamaya geçme hakkını kendilerinde görememesine neden olmaktadır. yapıldıktan sonra hangi ii kimin yaptıının tam olarak belli olmayıı hataların sorumlusunun tam olarak anlaılamamasına neden olmaktadır. Sonradan hangi ii kimin yaptıının tam olarak bilinmemesi baarı deerlendirilmesi konusunda salıklı ve somut veri bulunmamasına neden olmaktadır.

lerin deiik parçalarının deiik eler tarafından yapılması, iler arasında kopuklua neden olmaktadır. lerin deiik kiiler tarafından yapılması ve bir iin iki kiiye paylatırılması ilerin hızlı ve verimli yapılması ile çelimektedir. 3.1. Ortak Kod Sahiplii Yazılım büyük ölçekli olduu için bir sürüm boyunca ilerin tanımlanması hayli zor olmutur. Özellikle kısa süreli iler bulmak ve tanımlamak kolay olmamaktadır. Bazı i parçaları sürüm süresi boyunca devam etti. Bu süre sonunda eer verilen i eksik kaldıysa, bundan sonraki sürümde farklı bir çift programcıya verildi. Yeni ii alan programcılar yazılan kısımları örenmek ve bunun üzerine kod yazabilmekte zorlandılar. Ortak kod sahiplii yazılımcıların çıkan sorunları ve eksikleri sahiplenmemesine yol açmaktadır. 3.2. Ayaküstü toplantılar Bu toplantılar çok faydalı olmaktadır. Bu toplantılarda alınan, yazılımda uygulanacak yöntemlere ilikin önemli teknik kararlar, yazılı hale getirilerek yayımlanmalıdır. Aksi halde bu yöntemlerin uygulanmasında zorluklar ortaya çıkmaktadır. 3.3. Birim Testler (Unit Testing ) Gelitirilen yazılıma her yazılımcı müdahale edebilmektedir. Bir çift yazılımcının yaptıı hatanın bütün sistemi etkilememesi ve sistem entegrasyonun bozulmaması içim birim testler yapılmalıdır. Veri tabanı içeren sistemlerde yazılım veri tabanını deitirdii için, birim testlerinin yazılması zor olmutur.veri tabanı baımsız olan modüller için birim testler yazılmı olup, bunun için junit kullanılmıtır. 3.4. Yeniden Yapılandırma (Refactoring ) XP, yazılım mimarisinin önceden belirlenmedii, sürekli yapılan yeniden yapılandırmalarla nihai mimarinin ve yazılım yapısının ortaya çıkmasını hedefliyor. Biz bu konuda üst seviye bir mimari tasarımın olmasının daha faydalı olduunu düünüyoruz. Bu yaklaımımızla belirsizliklerin biraz daha azaltılmasını hedefledik. Hemen kodlamaya balamak ve korkmadan yazılan bölümleri çöpe atmak pratikte söylenildii kadar kolay olmamaktadır. Yazılım ortaya çıkmaya balayınca çeitli nedenler, örnein bazı modüllerin yava çalıması, yeniden yapılandırılacak kısımları belirlemektedir. Bu kısımlar tamamen atılarak veya yeniden yazılarak müterinin istedii ürün ortaya çıkmaktadır. Yeniden yapılandırma sırasında, sürümün tamamen bitirilmesi ya da sürüm tam olarak bitmiyor ise bile dondurularak genel bir yeniden yapılandırma için zaman ayrılmalıdır. Sürüm sonunda yazılımın tam olarak dondurulamadıı durumlarda sorun yaanmıtır.

3.5. Müteri ile birlikte çalıma XP bir müteri temsilcisinin sürekli programcılarla birlikte çalımasını öngörüyor. Bu erken geri besleme açısından çok faydalıdır. Hatta analiz aamasında sadece analizcilerin degil bütün programcıların bir ölçüde analiz çalımalarına katılması ve iin bütününü görmesi program gelitirirken ilerini kolaylatıracaktır. 4. Sonuçlar Gelitirdimiz yazılımda sürüm (iteration) süresi 2 hafta olarak planlanmıtı. Her sürüm sonunda olgunlamı ilerin ortaya çıkması için bu sürenin yeterli olmadıı gözlendi. Proje boyunca gerekirse sürüm süresi deitirilmeli, fakat önceden belirlenmi en fazla süreyi, örnein 3 haftayı, amamalıdır. Veri tabanı üzerinde birim testlerin zorluu nedeni ile bu testlerin verimli kullanılması mümkün olmamaktadır. Yazılımcıların çalıma alanlarının sürekli deimesi, nedeni ile herhangi bir alanda uzmanlamayı engellemektedir. XP de rotasyon yapılması yazılımı güçletirmektedir. Eli programla, herhangi iki kiiden birisinin ayrılması durumunda, bilgi birikiminin korunmasını yeterince salamaktadır. Fakat rotasyon yapılmasının i gücü kaybına neden olacaı göz önüne alınmalıdır. Mutlaka e deiimi yapılacak ise bu küçük gruplar içinde olmalıdır. Proje süresince bir iin sorumlusu mümkün olduu kadar sabit kalmalıdır. Eer iin sorumlusu sık sık deiir ise, i ile ilgili yapılmayan bölümün sorumluluunu alamamaktadır. XP ile projenin ne kadar süreceini tahmin etmek zordur. Bu, metodolojinin kendisinden kaynaklanmakadır. Sürekli yeniden yapılandırma ile sonuca varılmaya çalıılmakdadır. Yapılan yeniden yapılandırmanın, projeye nasıl etki edecegi ve projenin ne kadar sürecei tahmin edilememektedir. Karmaık sistemleri iyi tanımlı alt bölümlere ayırarak XP nin uygulanması faydalı olabilir. Sistemin tümüne birden XP uygulanması beklenen faydaları salamamıtır. Dier yazılım metodolojileri gibi XP de her kapıyı açan bir anahtar deildir. Kullanılmadan önce getirecei olumlu ve olumsuz sonuçlar düünülmeli, gerekirse projeye has yeni bir metodoloji kullanılmalıdır.

5. Kaynakça 1. Telekomünikasyon Yazılımlarının Gelitirilmesinde XP Yaklaımı, Taylan ekerci, Aziz Can Yücetürk, Ensar Gül, UYMS 2003, zmir. 2. Beck, K., Extreme Programming Explained: Embrace Change, Addison Wesley, 2000, ISBN: 0201616416. 3. Jeffries, R., Anderson, A., Hendrickson, C., Extreme Programming Installed, Addison Wesley, 2001, ISBN: 0201708426. 4. http://www.xprogramming.com/ 5. Exreme Programming FAQ, http://www.jera.com/techinfo/xpfaq.htm 6. The new Methodology, Martin Fowler, http://www.martinfowler.com/articles/newmethodology.html 7. www.hibernate.org 8. Java Server Faces, http://java.sun.com/j2ee/javaserverfaces/reference/api/index.html 9. www.springframework.org