You are on page 1of 182

Yazlm Uzmanl zerine

Standartlama, Firma Altyaps, Ekip Oluturulmas, Blogdan Semeler ve UML ile Proje Gelitirilmesi

Grkan Yenieri

Yazlm Uzmanl zerine


Srm 0.1 beta Bu kitap zgr Yazlm mant ile yazlmtr ve her ekilde datlmas serbesttir. Ltfen orjinal formatn koruyunuz. Orjinal format korumasanz da arkanzdan gelip niye byle yaptnz diyecek deiliz. Bu kitab kullanyorsanz, yazara gurkan nokta yeniceri AT gmail nokta com adresinden ulaarak bildirirseniz seviniriz. Grdnz hatalar veya istekleri de iletirseniz ok daha mutlu oluruz. Bu kitap zaman iinde deiiklie urayabilir. Son srm iin www.analystdeveloper.com adresine bakabilirsiniz. Blog, Forum ve Vezir Wiki sitelerindeki alntlar ile bir takm eklentiler ve dzeltmeler, linkler ile zenginletirilmi yazlar rahata okunabilecek bir formatta buraya toplanmtr.

ii

nsz Bu e-kitap hem bir projenin nasl ynetilmesi gerektiini hemde bir proje grubunun nasl yaplanmas gerektiini anlatmaktadr. Modl ve Nesne tabanl analiz ve gelitirme yntemlerinin nasl bir projede uygulanabiliceini rnekler ile gstermektedir. Bu kitab yazmaktaki amacm, biliim sektrne gnl vermi insanlarn snrlama olmadan bilgiye ulamalarn salamak ve havada kalm bir takm konular bir standarda oturtmaktr. Modl ve Nesne tabanl sistemler yakn zamana kadar tartlan ve standarda sokulmaya allan sistemlerdir ve u anda dnyann pek ok yerinde genelde devlet itirakleri tarafndan olmak zere pek ok yazlm firmas tarafndan uygulanmaktadr. Temeli 1980lere dayanan UML ve 1996 ylnda standarda sokulan Modl Tabanl Yazlm Gelitirme kurallar ile birlikte Nesne Tabanl sistemler hayata gemeye balad. Bylece yazlm dnyasnda modlleme yolu ile yazlm gelitirmek hem daha az maliyetli hemde yeniden kullanlabilirlii arttran bir sistem olarak rabet grmeye balad. Baz firmalar belirli ileri yapan modlleri hazrlayp firmalarn beenisine sundular. Baz firmalarda hem Nesne Tabanl hemde Modl Tabanl yazlm gelitirme aralar ile piyasaya ktlar. Kitabn ilerleyen sayfalarnda bu firmalarn aralarna yer vereceiz. Umarm bu kitap biliim sektrne gnl vermi herkes iin bir yol gsterici olur ve herkesin yararland bir kaynak haline gelir.

iii

Kitap Kimin in Yazld Kitap yazlm firmas sahiplerinden, yazlm uzmanlarna kadar geni bir kitleye hitap edecek biimde hazrland. Yazlm firmas sahipleri kendi i organizelerini dzenleyecek bilgiler bulurken, yazlm uzmanlar Modl ve Nesne tabanl konular hakknda bilgi sahibi olacaklar. Bir sistem yneticisi yazlm ortamlarnda nelere dikkat etmesi gerektiini grecek. Bir test uzman nasl test yaplaca konusunda metodolojileri renecek. Bir sistem analisti nasl analiz yapmas gerektiini renecek. Pazarlama uzmanlar nasl rn pazarlamalar gerektii konusunda yardmc bilgiler. Kitabn bu kadar geni kitleye hitap etmesinin sebebi bir yazlm firmas iindeki yapy tam olarak anlatabilmek ve yazlm firmas kurmak isteyen gen giriimcilere birazda olsa yol gstermektir. Kitapta anlatlan metodlar olduu gibi kullanlabilecei gibi, gerekliliklere gre ekleme yada kartma da yaplabilir. Kitabn Organizasyonu Kitap 4 ana blmden olumaktadr. Bunlar: 1Ynetim ve Yaplanma

Bu blmde yazlm firmas kurmak teyen giriimcilerin nelere dikkat etmesi gerektiini anlatmaya altm. Altyap ve firma dzeninin nasl olaca konusunda fikirler verdim. Firma ynetimi ile ilgili yapsal dzenlemelerin nasl olacan analtmaya altm. 2Proje Ekibinin Oluturulmas

Yazlm retecek ekibin yaplanmas ve aralarndaki haberlemenin nasl olaca konusunda ayrntl bilgileri burada bulabilirsiniz. Yazlm lideri veya ynetim gruplarnda bulunan kiiler yaplanma ile ilgili fikirleri bu ksmda bulabilirler. 3Blogdan Semeler

Bu blmde blogda yazdm ve bu kitabn konular ile rten yazlara yer verdim. Bu yazlarn Trke karakter hatalarn temizledim, linkler ile zenginletirdim, eski olan baz yazlar teknolojiye gre gncelledim. 4UML ve CBD ile Yazlm Gelitirme

iv

UML ve CBD standartlarnn tm proje genelinde nasl kullanlaca ve dosyalanaca konusunda bilgiyi rnekleri ile beraber bu ksmdan renebilirsiniz. Yazlm gelitiriciler ve sistem analistler iin hazrlanm bir blmdr ve teknik arlkldr. Her ne kadar farkl blmlere ayrlm olsada, her gruptan insann kitabn tamamn okumasn tavsiye ederim. Bylece herkes eit seviyede bilgiye sahip olmu olacak ve veri ak daha hzl olacaktr.

NDEKLER
NSZ ........................................................................................................................... 2 KTAP KMN N YAZILDI .............................................................................................. 3 KTABIN ORGANZASYONU ............................................................................................ 3 1 YNETM VE YAPILANMA ........................................................................................ 1
1.1 1.2 1.3 PROJE ALT YAPISININ HAZIRLANMASI ................................................................................................................................... 1 ORTAMI VE SALIKLI ALIMA......................................................................................................................................... 9 SONULAR .................................................................................................................................................................... 12 SSTEM SORUMLUSU ....................................................................................................................................................... 14 PROJE LDER ................................................................................................................................................................. 14 ANALZ EKB ................................................................................................................................................................. 16 TASARIM EKB............................................................................................................................................................... 17 YAZILIM EKB ................................................................................................................................................................ 18 MTER TEMSLCS ....................................................................................................................................................... 19 TEST EKB .................................................................................................................................................................... 20 ETM EKB ................................................................................................................................................................. 22 PAZARLAMA EKB .......................................................................................................................................................... 23 KURULUM YNETM EKB ............................................................................................................................................... 24 DEM VE STEKLERN YNETM..................................................................................................................................... 25 PLOT FRMA ................................................................................................................................................................. 25 EFFAF MUHASEBE ......................................................................................................................................................... 26 YAPILAN YANLILAR ........................................................................................................................................................ 26 TOPYALARIM, AKIM VE BEN .......................................................................................................................................... 31 AGLE MODELLEME DEERLER ......................................................................................................................................... 35 DNCELERM ............................................................................................................................................................. 39 PROGRAMLAMAYA YEN BALAYACAKLARA.......................................................................................................................... 41 EXTREME PROGRAMLAMA ............................................................................................................................................... 46 YAZILIM UZMANI VE SALIK ............................................................................................................................................. 51 EKP TOPLANTILARI ......................................................................................................................................................... 52 ESK PROJELER ............................................................................................................................................................... 57 CMMI, ISO, SPICE, IEEE .............................................................................................................................................. 64 SOA VE PROJE ANALZ ................................................................................................................................................... 68 ANALST YAZILIM UZMANI ............................................................................................................................................... 72 NASIL DAHA Y KOD YAZARIZ ........................................................................................................................................... 76 EER TEST EDLMEMSE ALIMIYOR DEMEKTR ................................................................................................................. 82 GEREKSNM YNETM VE KALTE...................................................................................................................................... 84 DER GEREKSNM YNETM YAZISI ................................................................................................................................. 87 SERBEST YAZILIM............................................................................................................................................................ 89 REUSNG VE REFACTORNG ............................................................................................................................................... 91 KARYER OLAYI .............................................................................................................................................................. 93 SPANYOL TEORS........................................................................................................................................................... 95 BAVURUSU VE DKKAT EDLECEKLER .............................................................................................................................. 97 YEN KURACAKLARA BR TEST ........................................................................................................................................ 99 TESTN CEVAPLARI ........................................................................................................................................................101 PROGRAMLAMA RENCSNN DERD .............................................................................................................................103 BANA RAKBN SYLE ...................................................................................................................................................106 YAZILIM UZMANLIINDAN YNETCLE...........................................................................................................................107 ISVLER N 25 KURAL ..................................................................................................................................................114 SRM YNETM ........................................................................................................................................................117 FRMANIZI KORUMAK ....................................................................................................................................................120

PROJE EKBNN OLUTURULMASI ......................................................................... 13


2.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8 2.9 2.10 2.11 2.12 2.13 2.14

BLOGDAN SEMELER ............................................................................................. 31


3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 3.9 3.10 3.11 3.12 3.13 3.14 3.15 3.16 3.17 3.18 3.19 3.20 3.21 3.22 3.23 3.24 3.25 3.26 3.27 3.28

3.29 3.30 3.31 3.32 3.33 3.34

YAZILIM VE KLK ........................................................................................................................................................124 YAZILIM SRECNDE KALTE ............................................................................................................................................126 YAZILIM UZMANI OLAMAYACAINIZIN 10 KANITI ...............................................................................................................130 STRES VE YAZILIM SEKTR............................................................................................................................................133 YURTDIINA YAZILIM RETELM ......................................................................................................................................135 BR BAKA GZLEM ......................................................................................................................................................142 GEREKSNMLERN MODELLEME AAMASI .....................................................................................................................145 KULLANICI ARAYZ GEREKSNMLER VE TASARIMI BELGES ................................................................................................148 SSTEM MODELLEME AAMASI .......................................................................................................................................149 PROTOTPLEME AAMASI ...............................................................................................................................................153 RNEK PROJE LE OO VE UML .......................................................................................................................................153

UML VE CBD LE YAZILIM GELTRME ................................................................. 145


4.1 4.2 4.3 4.4 4.5

Ynetim Ve Yaplanma

1 Ynetim Ve Yaplanma Kural koymak ok kolaydr ama gelin grn ki bu kurallara herkesin zveri ile uyduunu dnmek sama olur. Koyulan kurallarn belli yntemler ile kontrol ve raporlanmas gerekir. Ynetimin yapmas gereken i sadece kural koymak deil, bu kurallarn yerine getirilip getirilmediini kontrol edecek mekanizmalarda ileme sokmaktr. Bu blmde bir yazlm firmasndaki alt yapy inceleyeceiz. Firma blmleri arasndaki veri aknn nasl verimli hale getirileceini aratracaz. 1.1 Proje Alt Yapsnn Hazrlanmas Bir firmann deeri alanlarna verdii deer ile doru orantldr. Alt yapsna ve alanlarna yatrm yapmak yerine zevki iin para harcayan firmalar ise ksa vadeli firmalar olmaktan kurtulamazlar. Gnlk zmler ile hayatn srdren bir firma gnn birinde mutlaka batar. leriyi grerek yatrm yapanlar ise daha uzun piyasada kalacaklardr. Her firmann bir sonu vardr. Fakat unutmayn ki bu sonlardan yeni kaynaklar retmek ve yeni yatrm sahalar yaratmak tamamen akl gcnze kalm bir olaydr. 1.1.1 Bilgisayarlar Bir ie balarken yaplan yatrm zkaynaklarnz arttrr. Bu adan dnldnde, alnacak her bilgisayar, kurulacak her sistem, cekilecek her kablo zkaynaklarnza dahil olacaktr. Gnmzde bilgisayar sistemleri ok abuk gncel-d kaldndan bilgisayar alrken dikkat edeceiniz husus, gncelleme seeneklerinin ak olmas veya aldnz firma ile yapacanz anlamada, belirli periyodlarda sistemlerin yenilenmesi gibi maddelerin olmasna dikkat etmenizdir. Bylece elinizdeki bilgisayar sistemi zaman ierisinde eskimemi olacak, verimliliiniz dmemi olacaktr. Bilgisayar aldnz firmann kkl bir firma olmasna dikkat edin. Referanslarn grmek isteyin. Dikkat edeceimiz hususlar maddeler eklinde sralarsak:

Bilgisayarlarn tamam yetkili bir firmadan alnmaldr. Tm zelliklerin her bilgisayarda ayn olmasna dikkat edilmelidir. 6 ay veya 1 senelik periyodlarda gncelleme iin anlalmas gerekir. Sistemler tamamen deiecek ise eskileri geri alma gibi maddelerde olmaldr. Hasar veya fabrika hatalar gibi arzalar sigorta kapsamnda olmaldr ve bilgisayar firmas

bu bilgisayarlar deitirmelidir.

Ynetim Ve Yaplanma

Her kullancnn kendi bilgisayar hakkndaki zellikleri bilmesi ve en verimli biimde

kullanabilmesi iin bilgilendirilmelidir.


Hangi bilgisayarn hangi masada durduu ve kimin tarafndan kullanld kayt edilmelidir. Monitrlerin gz bozmayacak trden olmas gerekir. Yansmay azaltan ekran filtreleri

kullanarak alanlarn gzlerinin korunmas gerekir. 1.1.2 A Yaps Firmanz ierisindeki a yaps kurulurken, uzun vadeli bir yatrmm gibi dnp, o srada piyasada bulunan en iyi kablolarn ve ularn kullanlmasna dikkat edin. A alt yaps bir daha deimeyecei iin, en son sistem a yaplarnda kullanmay dnebilirsiniz. Fiber optik, kablosuz yada 100mb CAT5 veya 1Gb CAT6 gibi teknolojileri inceleyip en iyisinin hangisi olacana karar verebilirsiniz. Sistemin sal asndan, bilgisayarlarn yerletirilme planlarnn iyi yaplmas gerekir, bylece koblo ularndaki balayclar zarar grmemi olacak ve ileride ek bir masraf kartmayacaktr. Gvenlik konularna da dikkat edilmesi gerekir, kablolarn bina iinde kontrol olmayan yerlere gitmesi yada kablosuz a yapnzn 15 yanda bir bilgisayar kurdu tarafndan hack edilmesi pek ho olmasa gerek. Bu nedenle ekilen her kablonun kat zerinde bir modelinin olmasna zen gsterin. Bu modelleri iyi saklayp ileride kacak problemleri hzl bir biimde zmek iin kullanabilirsiniz. nceden planlama ile ka metre kablo harcanacan tahmin edebilir ve maliyetlerinizi kontrol altna alabilirsiniz. Bir ka madde halinde sralarsak:

nceden plan yaplarak kablolarn nerelerden geecei tesbit edilir. Masalarn dzeni ve yerleim plan ile birletirilerek ne kadar kablo harcanaca ortaya

karlr.

Her kablo etiketlenmeli ve hangi masaya hangi kablo gidiyor kayd tutulmaldr. Arza arama ve giderme iin kablo test cihazlar bulunmaldr. Yedek kablo, ular ve kablo pensesi her zaman bulundurulmaldr. Yedek hub ve benzeri ekipman her zaman bulundurulmaldr. Kablolamay yapacak firma konusunda uzman olmaldr.

Kablolama iini Sistem Yneticilerine yaptrmayn. Eer bu konuda uzman bir firma seecekseniz, alannda iyi olan ve bir ka referans olan bir firma sein. Anzda kacak herhangi bir arza iinde bu firmadan yardm isteyin. Bylece Sistem Yneticisinin zaman bu tr ilerle blnmemi olur. Eer profesyonel dnce sistemi ile hareket edersek ve profesyonel firmalar ile alrsak ileride doacak pek ok problemi daha olumadan ortadan kaldrm oluruz. Maliyetleri ksmak iin tm bu

Ynetim Ve Yaplanma

ileri firma iindeki kaynaklar ile zmeye alrsanz ileride doacak arzalarda ok fazla zaman ve nakit kaybedebilirsiniz. Prensip olarak yaplacak her i iin o ile uraan profesyonel bir firma semenizi tavsiye ederim. Pek ok yararn greceksiniz. ncelikle, belki sizin hi aklnza gelmeyecek alternatif zmler retebilirler. Belki de sizin hesapladnzdan daha az bir harcama ile bu iten kurtulabilirsiniz. Yarn sorun ktnda arayacak birileri olacaktr. Ve en nemlisi de gncelleme iin banz armayacaktr. Tabii tm bu saydklarmn imzaladnz anlamada olmas gerekmektedir. 1.1.3 letim Sistemleri Yazlm srecinde kullanlacak iletim sistemlerini ikiye ayrabiliriz. Birincisi rn gelitirdiiniz ortamlar, dieri ise rn kurup altrdnz ortamlar yada test ortamlar da diyebiliriz. Fiziksel olarak birbirinden ayr sistemler olmas gerekmektedir. letim sistemi iin gncelleme ve yeni srmler, test ortamnda denenebilir. Bylece yazlm ortam sabit durur. Tm testler yapldktan sonra, disc image programlar ile bir kopya oluturulur ve rn gelitirme ortamndaki bilgisayarlar gncellenir. disc image programlar kullanmaya karar verirseniz, firmanzdaki her bilgisayarn eit zelliklere sahip olmas gerekir. rnnz hangi iletim sistemlerini destekliyorsa o sistemlerin yeni versiyonlarn takip etmek ve salayc firma tarafndan artk desteklenmeyen sistemleri devre d brakmak gerekir. Linux gibi ak sistemler kullanyorsanz, her yeni kernel (Linux ekirdei) ktnda veya desteklediiniz Linux srm yeni srme getiinde rnnz derleyerek yeni paketler oluturmalsnz. Sanallatrma ile maliyetleri bir miktar drmek te mmkndr. Eer sanallatrma kullanlacaksa gerekli donanmn ihtiyaca gre planlanp alnmas ve gelecekte ihtiya olabilecek ykseltmelerin kolayca uygulanabilmesi gerekir. Bir de yedekleme stratejilerinin ok iyi uygulanmas ve sistemlerin, yazlan kodun, veritabanlarnn ve retilen her trl belge ve ktnn yedeklenmesine zen gsterilmesi gerekiyor. Ylda en az bir kere yedeklerden geriye dn tatbikat yapn. lerin youn olmad bir zamanda yedei bulunan tm sistemleri silin, formatlayn yada kullanlamayacak hale getirin. Aldnz yedekleri kullanarak firmay tekrar ayaa kaldrmaya aln. Uygulanmas ok zor bir tatbikat gibi grnse de eer baarl olursanz bu tatbikat hi yapmam firmalara gre bir stnlnz olacaktr. Tatbikat sonunda yedekleme ve bu yedekleri saklama metodlarnz gzden geirin ve eer aksayan ynleri varsa dzeltin.

Ynetim Ve Yaplanma

1.1.4 Yazlm Aralar te hayatnz, ve firmanzn geleceini belirleyecek en nemli karara geldik. Seeceiniz programlama dili yada arac zaman ierisinde kaybolup gitmeyecek ve yeni teknoloji ve teknikleri uygulayabilir bir dil olmal. zerinde en fazla zaman harcayacanz, karar verirken en fazla dneceiniz, en fazla aratrma yapacanz ksm bu olmal. Karar verme aamalarna bir bakalm: mi? biliyorlar m? mu? dnyor? var. veriyor. Ne kadar para harcamay dnyorsunuz? rnnz Dnya genelinde satmay dnyor musunuz? Ara/dil bu tasarma bulma sitelerinde, sizin dndgnz yazlm arac/dili ile ilgili ne kadar i ilan Dnyada baka kimler kullanyor? rtbanda arama yaptnzda ka tane sonu Yazlm arac/dili iin eitim verecek kurulu var m? Diploma, sertifika veriliyor rnnz en son yazlm tekniklerini ve teknolojilerini uygulayabilir mi? Kullanmay dndnz veritabanlarn destekliyor mu? Piyasadaki yazlm uzmanlar, sizin kullanmay dndnz yazlm aracn rnnz birden fazla letim sistemini destekleyecek mi? rnnz web, istemci/sunucu, tek bana calabilecek biimde tasarm edilecek

izin veriyor mu? Yazlm arac/dili reten firma ile birlikte baka hangi firmalar bu araca/dile destek

Birden fazla yazlm aracda dnebilirsiniz. Veya farkl firmalarn rnlerinden bir sentez de ortaya kabilir. rnein, veritabann Oracledan, iletim sistemlerini Microsoft ve Hewlet Packarddan, yazlm aralarnn bir ksmn Computer Associatesden, bir ksmn Microsofttan, analiz aralarn Rational Softwareden, Application Serverlar BEAden, Web sunucular Microsoft ve Apacheden, Middleware yazlmlarn IBMden alabilirsiniz. Kendi alannda lider konumunda bulunan rnleri toplamak iyi bir fikir gibi gelebilir. Tek dikkat etmeniz gereken ey sat sonras destein ne kadar iyi olduudur. Mteriniz sancdan kvranrken size kolayca ve hzl zm sunabilecekler mi?

Ynetim Ve Yaplanma

Firmanz kurduktan sonra ilk 2 yl sizin iin bir tampon zaman olacaktr. Bu zaman ierisinde belirli aralar/dilleri/teknolojileri deneyerek grmeniz, sat sonras destek olaylarn aratrmanz sizin iin iyi olacaktr. Firma kuruluu srasnda, dile ve kullanacanz aralara karar vermi bile olsanz, ilk 2 yl yeni araylar ierisinde olmaya bakn. Sizin istediiniz ileri daha ucuza yapan ceit ceit yazlm gelitirme aralar, veya sat sonras destei daha iyi olan baka bir firma bulursanz alt yapnz deitirmekten korkmayn. Unutmaynki burada 10 yl iinde piyasadan silinecek bir firmadan bahsetmiyoruz. Kuracanz firmann kkl olabilmesi iin, rnnzn ve teknolojinizin de gncel ve kkl olmas gerekir. Hangi rnleri seerseniz sein baarl olmak iin standartlatrma ve dosyalama kurallar her zaman gncel ve uygulanabilir olmal, her alan bu kurallara uyarak yazlm gelitirme yapmaldr. Belli kurallara uymadan yaplan iler zaman ierisinde yok olup giderler. Hangi dilde yazlrsa yazlsn bir program mterinin isteklerine cevap vermelidir, bence en nemli koul budur. 1.1.5 Ek Yazlmlar Ek yazlmlar, firma ierisinde ve yazlm gelitirme srecinde ileri kolaylatracak, kendi bnyenizde yazlm yada dardan satn aldnz rnler olacaktr. Ceitli metin editrleri, sktrma aralar, mzik dinleme programlar, sohbet yazlmlar ve yazlm gelitirme ile dorudan balantl olmayan her trl program bu kategoriye girer. Dardan alnan ek yazlmlarn gvenlik aklar var m, kullandnz sistemler ile uyumlu alyor mu, iinizi yzde ka kolaylatryor, gncelleme nasl yaplyor gibi konular takip edilmesi ve yazlmas gereken konulardr. Her trl ek yazlmn firma iinde nasl kullanld, hangi bilgisayarlarda ykl olduu, kimlerin ne kadar kulland gibi bilgilerin gncel bir biimde tutulmas gerekir. 1.1.6 Dardan Alnm Modller Modl tabanl gelitirme yapyorsanz, piyasada hazr bulunan mdlleri kendi rnlerinize entegre edebilirsiniz. Bu balamda oluturulmu, kredi kart dorulama, kullanc adres bilgileri, gvenlik, audit (veritabannda hangi kullanc ne i yapm), veritaban balantlar gibi bir dizi hazr modl alp kullanabilirsiniz. Hem zamandan hem i gcnden kazanm olursunuz. Tabii bu modllerin bakm ve destei iin belirleyeceiniz kiilerin yeterli eitimi almasna dikkat edilmelidir. 1.1.7 Analiz Yazlmlar Projelerinizin analiz aamasnda harcayacanz zaman daha ok olacandan, bu blmde yaplan her iin kaytl olmas ok byk nem tamaktadr. Tutulan kaytlarn da belli bir format

Ynetim Ve Yaplanma

ierisinde olmas, ve firmann her blmnde okunduunda, rahata anlalabiliyor olmas gerekir. Firma ierisinde bu i iin belli bir kltr oluturmal, belge ablonlar gelitirmeli, metodolojiler ile ilgili genel bilgileri herkesin ulaabilecei bir yerde tutmal, genel baz eitimleri tm firma alanlarnn almasn salamanz gerekir. Analiz iin belli bal aralar, Rational rnleri veya rtba zerinde bulacanz baz cretsiz yazlmlarda iinizi grebilir. nemli olan belli bir standard oturtmaktr. Analiz blmnde standartla ilgili bir ka ablon bulacaksnz. Herhangi bir rn almasanz bile veya sadece Microsoft Office kullansanz bile, tm bu iin belli bir dzen iinde yaplmas gerekir. UML veya OO analiz metodolojilerini kullanacaksanz kullanacanz yazlm diline ek olarak, bu dil ile uyumlu bir UML modelleme aracna bakmanz gerekir. rnein IBM Visual Age ile Java dilinde yazmaya karar verirseniz IBM-Rationaln Rose aracn UML modellemede kullanabilirsiniz. UML modellerinin hayat sreci rn ortaya kana kadardr. Modelleri, hayata geirildikten ve kodlandktan sonra tutup tutmamak size kalmtr. Snf emalar dndaki dier tm UML emalarn rn ortaya ktktan sonra ortadan kaldrabilirsiniz. Tamam ile silmek yerine arivleyerek saklamak daha iyi olabilir. Tm modelleme boyunca rafine edilerek gelitirilen UML modelleri yeni fikirlerin ortaya kmas ve risklerin tanmlanabilmesi iin geerlidir. Tm sorular cevaplanp snf emalar ve veritaban tablolar ortaya ktktan sonra artk yazlan kod kendini ifade etmelidir. rn ortaya ktktan sonra elimizde sadece Senaryo belgeleri ve kod kalmaldr. Testler srasnda bu senaryo belgelerine gre tm modller bir arada test edilir. 1.1.8 Hata Denetleme Ve Atama Yazlmlar Proje analizi aamasnda yazlacak modller az ok ortaya kar. Bu ilerin yazlm ekibindeki kiilere atanmas ve srecin takip edilmesi gerekir. Ayrca rn yazlmaya balandktan sonra, kacak hatalarn kayt edilecei ve gene yazlm ekibine atanmas gibi ileri otomatize edecek aralara ihtiya vardr. Proje gerekliliklerine gre bu aralar kendiniz de yazabilirsiniz. Piyasada bu i iin yazlm aralar da mevcuttur. Dikkat etmeniz gereken kullanacanz hata denetleme ve atama yazlmnn rtba zerinden eriilebilmesi ve mterilerinize ak olmasdr. Kullacanz aracn yapsna biraz bakalm: ulamaldr. Farkl projeler yaratp modlleri belirleyebilmelisiniz. Her proje ve modl iin sorumlu atayabilmelisiniz. Kaydedilen hatalar veya istekler atanan kiiye e-mektup yolu ile

Ynetim Ve Yaplanma

Farkl projeden modlleri bir dier projede kullanabilmeli ve o modl iin

ikinci bir sorumlu atayabilmelisiniz. Yaplan iin belgelerine linkler olmal yada direk program iinde

saklanmaldr. Her proje ve modl iin yzde ka ilerleme var eklinde raporlar

alabilmelisiniz. Bitirme zamanlar ve yazlm uzmanlarnn zerindeki iler gibi raporlar

alabilmelisiniz. 1.1.9 Dizin Yaps Projenin saysal dosyalamas iin dizin yaps oluturmak, retilen her trl belgeyi burada muhafaza altnda tutmanz ve gerektiinde yedeklerinin alnmas iin gereklidir. Her projenin gereklilikleri farkl olduu iin dizin yaplarda trl farkllklar gsterebilir. Kitap ile gelen tkzda proje dizinlerini otomatik olarak yaratan kk bir programca rastlayacaksnz. Bu ara ile proje ismini ve iki karakterden oluan kodunu verdiiniz zaman size temel saylabilecek bir dizin yaps oluturmaktadr. Ayrca her proje iin geerli olabilecek bir dizi belgeyide otomatik olarak yaratmaktadr. Bundan sonra yapacanz i adm adm giderek gereklilikleri doldurmaktr. 1.1.10 Programlar Ve Sorumlular Hata veya istekler zorluk derecelerine gre sral listelenebilmelidir. Her proje elemannn ne kadar i yapt grlebilmelidir.

Programlar satan firmalardan kontak kiiler, yardm alma biimleri, yeni versiyonlar ve yamalarn uygulanmas. Aldnz programlar firma ierisinde kullananlardan seilecek kiiler program ile ilgili her trl gelimeyi takip edecek. Fiyat teklifleri, anlamalar ve rnlerin ulatrlmas konularn organize edeceklerdir. rnler firmanza ulatktan sonra, kurulum, test, fiyat, yarar ve zararlar konularnda bir belge hazrlayp, firma yneticilerine ve rn kullanmas beklenen kiilere gnderir. Geriye dnecek yorumlara gre bir toplant yaplarak sonular tartlr ve rnn/yamann kullanlp kullanlmayacana karar verilir. 1.1.11 rnn Datm

Proje ekibinin rettii rn piyasaya srmek iin kullanacanz kurulum gelitirme programlar bir ka platformu birden desteklemelidir. Tkz, disket, rtba yada i-rtba zerinden kurulum yapmaya imkan verecek aralar kullanmalsnz. rnnz datma mekanizmalarnz ne kadar geni

Ynetim Ve Yaplanma

olursa hitap edeceiniz kitle o kadar geni olur. Ayrca zaman ierisinde rnde gelimeler olduka ortaya kacak yamalarnda bir ekilde kullanclara ulatrlmas gerekiyor. Bu yamalarn uygulama metodlar mmkn olduu kadar kullancy yormayacak biimde olmaldr. 1.1.12 Merkezi alma Yntemleri

Proje sreci iinde retilen her belge ve kod, merkezi sunucularda bulunmaldr. Paylam programlar ile her proje elemannn bu sunucuya eriip koordineli olarak almasn salayacak aralarda bnyenizde barndrmanz gerekir. Kullandnz programlama aracna gre kod srm takibi ve paylaml alma aralarn aratrn. Bu sayede her proje eleman dier tm ekiplerin neler yaptndan haberdar olur. Bir yazlm firmasnda takip edilmesi gereken ana unsur: 1. 2. 3. Belge ynetimi ve srm takibi Kod ynetimi ve srm takibi rnnzn ynetimi ve srm takibi

Firma iinde analiz aamalarnda retilecek her belgenin yeri, kim tarafndan retildii, hangi versiyonlarda ne gibi deiikliklerin yapldn ynetmeniz gerekir. Bunun iin eitli yazlmlar gelitirilmitir. Lotus Domino.Doc gibi yazlmlar veya bir istemci/sunucu eklinde Miscrosoftun Share Point Portal ve Share Point Team Services sunucu sistemlerini kullanabilirsiniz. Yazlm uzmanlar tarafndan yazlan kodun merkezi bir sunucuda bulunmas ve yazlm uzmanlarnn alacaklar ksmlar belirleyerek sunucudan bu ksmlar kendi alma ortamlarna indirmeleri ve iin bitiminde tekrar sunucuyu deiikliklerle gncelleyerek derlemeye hazr hale getirmelerini organize edecek aralara da ihtiya vardr. Bir ka rnek vermek gerekirse Microsoftun Visual Source Safe, IBM Rationaln Clear Case, Borlandn StarTeam gibi yazlmlar bu ii yaparlar. Eer corafik olarak yaylm bir ekibiniz varsa veya evlerinden alan yazlm uzmanlar ile alyorsanz, rtba zerinden de ayn ilemleri gerekletirebileceiniz aralara ynelmeniz gerekir. rnn derlenmesi ve son haline getirilmesi ile srm ynetimi konular da bu sunucular zerinden yaplabilir. Bylece programclar ilerine devam ederken bir yandan da rn derlenerek zaman kazanlm olur.

Ynetim Ve Yaplanma

1.2

Ortam Ve Salkl alma

1.2.1 Masalar Ve Bilgisayarlar Masa banda alan herkes trl rahatszlklar yaamaktadr. Fare tutan elin parmaklarnda ar ve bilek blgesinde Tnel Kalpal rahatszl, omuzlarda kaslma, boyun blgesinde tutulma, srt arlar, omurgada kayma, gz bozukluu gibi pek ok rahatszlk masa banda yanl oturmak ve belirli kaidelere uymamaktan dolay kaynaklanmaktadr. Ofis iin seilecek masalarn yksekliklerinin ayarlanabilir olmas gerekir. Bylece her alana gre masa yksekliinin ayarlanmas salanr. Kullanlacak koltuk yada sandalyelerin iyi bir srt destei olmal, sandalye ykseklii, srt destei ykseklii, yere olan as ayarlanabilir olmaldr. Kullanlan monitrlerin ykseklii ve as ayarlanabilir kaideler zerinde durmas salanmaldr. Monitrlerde filtre olmas ve bu filtrelerin topraklanmas gerekir. Ayrca monitr banda uzun saatler geiren kiiler senede bir kez gz muayenesinden geirilmeli ve gerekiyorsa dinlendirici gzlkler kullanlmaldr. Masa ba alanlar iin kitap ile birlikte gelen tkzda masa banda nasl oturulmas gerektii anlatlmtr. Monitrn konumu, klavyenin konumu, gerekli alar ayrntl olarak gsterilmitir. Her masaya ait en az 1 adet kilitli ekmece olmas gerekir. Bylece mesai bitimi sonunda gvenli bir yerde saklanmas gereken dosyalar muhafaza altna alnm olur. Bilgisayarlar 24 saat ak braklabilir, sistem oturumunu kapatp monitr de kapadktan sonra enerji harcamas en aza indirilmi olur. 24 saat alan bilgisayar nem tutmaz ve mr daha uzun olur. Bilgisayar alrken fanlarndan kan sesin mmkn olduu kadar az olmasna dikkat etmek gerekir. 30 tane bilgisayarn fan uultusu olduka fazla olmaktadr. Ylda bir kez fanlarn ve kasalarn hava fleyen elektrik sprgeleri ile temizlenmesi gerekir. Pazarlama ekibi ve yazlm ekibi ayn oda ierisinde bulunmamal, yazlm ekibi iin mmkn olduu kadar sessiz ve sakin bir ortam yaratlmaldr. Yazlm ekibinin odasnda ses yanklanmalarn nlemek iin duvarlara gzleri dinlendirici resimler aslabilir. Klasik mzik yada dinlendirici tr mzikler yaynlanabilir. Dahada ileri gidersek duvarlara ses yaltm bile dnlebilir. Bir kayt stdyosunda konutuunuz zaman kendi sesiniz hi bir bozuntuya uramadan ve yanklanmadan kulanza gelir. Bu

Ynetim Ve Yaplanma

10

tr bir ortamda yazlm yapmak, odaklanmak ve konsantre olmak iin idealdir. Hem hafta sonlar ekibin enstrman alanlar stdyo olarakta kullanabilir. 1.2.2 Telefonlar Telefonlar firmann durumuna gre ehirler aras yada milletler aras kapal olabilir. En az bir adet serbest kullanma ak fax cihaz olmaldr yada tamamen saysal bir fax sunucusuda kullanabilirsiniz. Yaplan telefon grmelerini kontrol edip milletler aras yada ehirler aras zel konumalar maalardan debilirsiniz. Cep telefonlar iin zel hatlar kurup ucuza aranmalarn salayabilirsiniz. Her masada bir hat olmas en idealidir. Dardan arayanlar sekreter hanmn iini blmeden istedikleri kiiye ulaabilirler. Mteriler yetkili kiilere dorudan ulaabilirler. Masalardaki telefon hatlarna gizli modemler balanm m arada bir kontrol etmek gerekir. Baz alanlar kendi zel modemleri ile internete kmak isteyebilir. Ayrca firma bilgisi dnda balanm bu modemler sisteminizi tehdit edebilir. Dardan gelecek saldrlara kar ak bir kap gibi olacaktr. Yazlm uzmanlarnn telefon numaralar mterilere verilmemelidir. 1.2.3 Iklandrma Genelde bilgisayar ve yazlm firmalarnda beyaz floresan kullanlr. Fakat bu floresanlarn saylarnn her zaman ift olmasna dikkat edilmesi gerekir. Masalarda akrobat masa lambalar kullanmakta faydal olabilir. Iklandrma ekranlardan yansmayacak biimde yerletirilmelidir. Ayrca pencerelerden gelen n da ekranlara direk gelmemesine dikkat edilmelidir. 1.2.4 Havalandrma alma ortam konsantrasyonu bozacak her trl kokudan arndrlm olmaldr. Yaknlardaki restorann yemek kokular, havalandrma cihazlarnn kokular gibi havann kalitesini bozacak her trl koku arndrlmaldr. Havalandrma cihazlarndan kan souk havann direk kiiler zerine gelmemesi iin ayarlamalar yaplr. Havalandrma cihazlarnda biyonik filtreler kullanlmaldr. Nem oran kontrol altnda tutulmaldr. 1.2.5 Proje Ortamnn Gvenlii Bilgisayarlarn tkz ve disket srcleri olmamal. Sunucular bir odada kilit altnda tutulmal. Emektup trafii denetlenmelidir. Eer tkz ve disket srcler kullanlacaksa ok iyi bir virs tarama program kurulmal ve her virs veritaban gncellemesi ktnda gncellenmelidir. E-mektup iin kota uygulamas kullanlabilir.

Ynetim Ve Yaplanma

11

Yangn sndrme cihazlar ve alarmlar her hafta bir kez kontrol edilmelidir. Ekiplerden birer kii yangn durumlar iin yetkili atanarak yangn klar ve metodlar hakknda bilgilendirilmelidir. Ayda bir kez yangn tatbikat yaplarak personelin yangn klarn nasl kullanaca ve hangi kurallara uymas gerektii uygulamal olarak retilmelidir. Deprem gibi afetler iinde tatbikat yaplmal ve binann gvenli yerleri, hayat genleri belirlenmeli ve buralara tabelalar aslarak herkesin renmesi salanmaldr. Yangn tatbikat iin yetkili bir kurumdan yardm almak gerekebilir. Ofis iinde seilecek kiiler ilk yardm eitimi almal ve bu bilgilerini ihtiya halinde kullanabilmek iin hazrlkl olmaldrlar. 1.2.6 Dier alanlarn ayrm yaplmadan ylda bir kez, k aylarna girerken grip as yaplmas, hem firmanz hemde alanlarnz iin iyi olur. Bir kiiden yaylacak grip virs tm projenizi 1 hafta geriye atabilir. Bu tr riskleri almak istemiyorsanz grip asn gz nnde bulundurmanz tavsiye ederim. Grip as istee bal olmal, a olmak istemeyen personel serbest braklmaldr. Sigara binann hi bir yerinde iilmemelidir. Dinlenme odalar da dahil olmak zere hi bir yerde sigaraya izin verilmemelidir. Sigara imek isteyenlere nikotin bantlar verilebilir. Sigara ienleri ie almamak bile dnlebilir. Mutfak blmnde buzdolab, mikro dalga frn, scak su veya ay kahve makineleri ve evden yemek getirenler iin bir masa bulunmaldr. Mutfan temizlii, her hafta bir profesyonel temizlik uzmanna yaptrlmal ve personelin mutfa temiz tutmas iin gerekli nlemlerin alnmas gerekir. Binann uygun bir odasna kou band, egzersiz bisikleti gibi aletler koyarak alanlar fiziksel egzersiz yapmaya tevik edebilirsiniz. Tabii du ve deime odalarn da unutmayn. Bu sayede motivasyonu arttrm olursunuz. Sanat ile uraan personel iin eitli alma odalar salayabilir ve buralardan kacak sanat eserlerinin ak arttrma gnleri ile satarak vakflara yada derneklere yardm salayabilirsiniz. lk okul, lise veya evrenizdeki yardma muhta ocuklar veya aileler ile ilgili bu tr almalar firmanzn ismini medyada duyurmanza yardmc olur. Ek olarak rnnz niversitelere veya liselere cretsiz vererek genlerin renmesini salayabilirsiniz. Makinelerden arndrlm sessiz bir oda yaplacak klasik mzik yayn ile mkemmel bir dinlenme odasna evrilebilir. Dinlenme odalar gnn problemlerini unutarak, akl temizlemek ve i problemleri ile savaacak gc tekrar toplamak iin idealdir.

Ynetim Ve Yaplanma

12

Haftalk alma saatinin %20si aratrma ve gelitirmeye ayrlabilir. Bu sayede alanlarn motivasyonu artar ve rn gelitirme blmnden yeni fikirler elde edilebilir. 1.3 Sonular

Bir firma kurulumu srasnda dikkat edilmesi gerekenleri sraladk. Burada yapmanz gereken firmanzn her birimini bir modl olarak ele alp gelitirmek ve modller aras ilikileri ok iyi bir biimde tanmlamaktr. Ancak bu ekilde baarl bir alma hayat izebilirsiniz. Her modl iin bir ynetici atayn. Bu ynetici kendi modlnn arayz olacaktr yani d dnya ile balant kaps. Eer baka bir modln yneticisi dier bir modldeki kaynaklar (insan gc, makine, bilgi vb.) kullanmak isterse bu isteini o modln yneticisine bildirir. Ve bylece arada bir iliki balar ve kaynaklar en verimli biimde kullanlmak zere ynlendirilir.

13

Proje Ekibinin Oluturulmas

Proje Ekibinin Oluturulmas

Bir proje ekibinin birbirini tanmas iin en azndan 2 ay birlikte geirmeleri gerekir. Bu 2 ay zarfnda her kes birbirinin psikolojik yapsn, ailesini, yaam tarzn, deerlerini, nem verdii eyleri, dinledii mzik trn, ald enstrman, ne kadar bilgisayar bilgisi olduunu renmelidir. Bu liste olduka fazla uzatlabilir. lk aamada proje ekibi iin i-rtba zerinde bir web sitesi hazrlayp, temel olarak zgemi bilgilerinden balayp yaynlamak iyi bir fikir olabilir. Bylece ekip ierisinde kim ne kadar, ne biliyor, daha nce nerelerde calm gibi bilgiler herkese ular. Daha sonra proje ekibinin grevlerini ve bu grevlerin kimler tarafndan stlenildiini belirten bilgilerde yer almaldr. Ekibe verilen sorumluluklar yerine getirilmeye balandka bu bilgiler gncellenir ve herkesin ne kadar i yapt da gzler nne serilir. Sanrm olduka effaf bir yntem oldu bu ama birbirimizden saklayacak neyimiz olacak ki. Ekip ilikilerini gelitirecek bir ka aktiviteden burada bahsetmek istiyorum. a. Sabah ay: Her ekip ayda bir defa ilerinden seecekleri 3 kiinin hazrlayaca bir sofra ile 2 saat srecek bir sabah ay dzenleyebilir. Yiyecekler iin para tm ekipten toplanr. Bu sofrada genelde kahvalt amal yiyecekler bulunur ve sofra akam i kna kadar ortada durur. Herkes kendi barda ve ay ile katlr. Ekip iindeki ilikileri arttrmak ve i dnda baka konular konumak iin ortam oluturmaldr. Gn sonunda sofray kuran kaldrr. b. Genel sabah ay: Gene ayn formatta bu sefer firma genelinde dzenlenir. Firmaya yeni katlan insanlar takdim edilir, yeni balayan projelerden, baarlan ilerden, baarlmas gereken hedeflerden bahsedilir. Sunumlar hazrlanarak firma genelindeki bilgi paylamnn en st seviyeye karlmas salanr. c. Baz yarmalar ap kazananlara dl verilebilir. Verilen dllerin ve yarmalarn gene yaplan ile alakal olmas gerekir. d. Son teknolojilerin tartld bir ortamda hazrlanmaldr. Bir aratrma gelitirme laboratuar bu ama iin uygun olabilir. e. Bir aktivite kulb oluturarak firma iinde dzenlenecek yemek, piknik, mangal partileri gibi olaylar organize etmek te iyi bir fikir olabilir. f. Piyasa takibi ve haberleri renmek iin bilgisayar dergilerine abone olunabilir. Her ay alnacak dergiler herkesin ulaabilecei bir yerde durmaldr. Bir ktphane oluturulup eitli yaynlardan ve kitaplardan herkesin yararlanmas salanmaldr. imdi bir proje ekibindeki sorumluluklara gz atalm.

Proje Ekibinin Oluturulmas

14

2.1

Sistem Sorumlusu

Sistem sorumlusu firmann ihtiyacna bal olarak kullanlacak tm yazlm ve donanmn kurulumu ve bakm konusunda bilgili olmal yada renmeye ve aratrmaya ak olmaldr. Genel elektrik ilerinden anlamal, lehim yapmak, kablo ekmek gibi ileri bilmelidir. Ayrca Microsoft Visio gibi bir program bilmesi, yerleim dzeni ve kablolama iin gerekli emalar izebiliyor olmas gerekir. Eer sistemde bir deiiklie gidilecekse ve sistem sorumlusunun yeni sistem hakkndaki bilgisi az ise, yeterli eitim verilmeli ve ancak sistem sorumlusu kendini yeterli grd zaman sistem deitirme ilemlerine balanmaldr. Sistem sorumlusu e-mektup, rtba gibi kullanc haklarn firmann prensiplerine gre ayarlamaldr. Snrl bir internet balants ve sk virs tarama programlaryla denetlenen bir e-mektup altyapsn kurup ynetebilecek seviyede olmaldr. Her BT alan ilk 4 yldan sonra alt, bildii yazlmlar kurup kullanmak ister. Bu seviyeye gelmi bir sistem sorumlusu da kullanlacak yazlm ve donanm hakknda fikir belirtebilmeli ve rahata alabilecei bir ortam yaratlmaldr. alanlarn fikrini almak ve bu bilgileri kullanmak, bir sr paranz yutup hi bir i yapmayan BT danmanlarndan daha etkili ve ucuz bir yntem olacaktr. Gvenlik ile ilgili konularda piyasa genelinde kullanlan yazlm ve donanmlar bilmeside gerekir. Firewall tabir edilen gvenlik yazlmlarn ok iyi bilmesi gerekir. Yaplan projelerin yedeklenmesi ve saklanmas konularnda titiz almal, sistem gmeleri halinde en ksa zamanda bir nceki yedeklere dnecek kadar bilgiye sahip olmas gerekir. Kesintisiz g kaynaklar ve kullanm hakknda bilgiye sahip olmal, salayc firma ile ilikileri salam tutmaldr. Servis zamanlarnda yada arza hallerinde salayc firma tarafndan yaplan her ilem kayt edilmeli ve arivlenmelidir. Kesintisiz g kaynana ait prizlerin dier prizlerden farkl olmas ve arj cihazlar veya elektrik sprgesi gibi kesintisiz g kaynana zarar verebilecek cihazlarn bu prizlerden kullanlmamasna dikkat etmelidir. 2.2 Proje Lideri

Proje liderinin firma ii tm operasyonlar ve projesi yaplan i hakknda geni bilgiye sahip olmas gerekir. Tercihen i ile ilgili sektrden gelmi ve Bilgi Teknolojileri Ynetimi hakknda bilgisi olmas istenir. Eer byle birisi bulunamaz ise tm analiz aamalarnda bulunacak ve ii en ince ayrntsna kadar anlayabilecek bir kimse olmaldr. Proje Lideri ekibi bir arada tutmak ve zaman izelgelerine uyulmas iin gerekli motivasyonu salayacak sosyal bir insan olmaldr. Ayrca Ynetim Kurulu ile proje arasndaki bilgi

15

Proje Ekibinin Oluturulmas

al-veriini de salar. Bte konularnda dzenlemeler ve maliyet analizlari konusunda ynetim kuruluna bilgi ve tavsiye verir. Proje Szlnn oluturulmasnda grev alr ve proje genelinde kullanlan terimlerin herkes tarafndan renilmesine dikkat eder. yi bir ekip iltiimi iin nem verilmesi gereken bir konudur. Yazlacak modllerin ve arayzlerin zorluk derecelerine gre zamanlarn tayin eder ve proje plan iinde yaynlar. Bu zamanlarn tayini srasnda proje ekibi ve yazlm uzmanlar ile beraber alr. Onlarn fikirlerini dinler ve tavsiyeleri gz nnde bulundurur. Proje Lideri yeni gelenlere bilgi aknn salanmas ve ekip iindeki yerlerini kolayca bulabilmeleri iin de yardmda bulunur. Yeni gelenler iin hazrlanacak dosyada, gerekli her ey olmal, ie balarken getirecekleri evraklardan, proje standartlarna ve bina iinde uyulmas gereken kurallara kadar her ey maddeler halinde bulunmaldr. Firma ahlaki, kurallar, calma prensipleri, ynetim emas, i tanm vb. gibi her trl bilgi dzgn biimde aktarlmaldr. Bu tr bilgiler gncellendiinde tm alanlarn bunlar renmesi salanr. Yeni yazlm uzmanlarna i atanrken daha yeni olduklar dnlerek atanmal ve ncelikle ortama uyum salamalar ve projesi yaplan ii renmeleri iin yeterli zaman tannmaldr. Modl tabanl gelitirme yaplyorsa basit modllerden iler verilerek kiinin ie almas salanr. Proje Lideri yazlm arac olarak kullanlan aralar ve dilleri de bilmelidir. Bylece maliyet analizi ve teslimat gnlerini belirlerken gereki tahminlerde bulunabilir. Eer proje lideri firma iinden yetimi ve yazlm uzmanlndan ykselmi ise daha da iyi olur. Alt yaplar ve firma ahlakn ok iyi bildii iin, sadece ynetim ile ilgili bir eitim almas yeterli olacaktr. Dier proje ekipleri ile bilgi alveriini salar ve kontrol altnda tutar. Dier ekiplerin yneticileri ile koordineli alr. Kendi projesinin teslim zaman dier projelerdeki modllere dayanyorsa bu uzantlarda kontrol eder ve ekibine bildirir. Projedeki her trl riski takip eder ve kaynaklarn ona gre tahsis eder. Riskleri belgeleyerek zmler iin onaya sunar. Onay sonucu kan kararlar ileyerek sonular tekrar ynetim kuruluna bildirir. 2.2.1 Grev Srelerinin Tayin Edilmesi Atanacak grevlerin alaca zaman belirlenirken PERT (Project Evaluation Review Technique, Proje Deerlendirmesi Tefti Teknii) ortalamasndan yola klabilir. Proje Ekibine grevler atanrken 3

Proje Ekibinin Oluturulmas

16

farkl zaman tayini yaplr. Bunlar En yi, En Kt ve Normal Biti zamanlardr. Grev atanan kiinin deneyimlerinden yararlanlarak tayin edilir. Aadaki forml bu verileri kullanarak grev zamann belirlemek amac ile kullanlr. GZ = (E + 4NB + EK) / 6 GZ = Grev Zaman E = En iyi durumda grevin alaca zaman NB = Normal biti sresi EK = En kt durumda grevin alaca zaman Bu formlden elde edilen GZ deeri Microsoft Project zerinde grevlerin srelerinin tayin edilmesi amac ile kullanlr. 2.3 Analiz Ekibi

Srekli mteri ile yz yze toplantlar yaparak i aknn ok iyi bir biimde aktarlmasndan sorumludur. Yazlm ekibi ile mteri arasndaki problemlere zm bulmak iin urar. Analiz toplantlarnda Senaryolarn ortaya kararak detaylandrlmasnda grev alr. Yazlm ekibinden gelecek her trl soruyu cevaplamaya alr. Yazlm ekibi senaryolar hakkndaki sorularn merkezi bir dosyada tutar. Haftada bir kere analiz ekibi ile yaplacak toplant ile bu sorulara cevap bulmaya yada ortaya kan istekler dorultusunda senaryolarda deiiklik yapma yoluna gidebilir. Mteri isteklerinin tam olarak anlalmas ve modellenmesi iin hazr formlar ve ablonlar kullanr. Tm toplant notlar belli dzenler iinde veya tutanak biiminde tutulur ve saklanr. Kat kullanmay azaltmay amaladmza gre 10 parmak yazabilen veya steno bilen bir eleman toplant notlarn hzl ve eksiksiz biimde tutmaldr. Daha sonra bunlar belgeleyerek proje ekibine ulatrlmasn da salar. Yazlm ve tasarm ekibi ile birlikte alarak mteri isteklerinin tam olarak modellenmesine ve yazlm ekibi tarafndan iyice kavranmasna dikkat eder. Ortaya kan modellerin doruluunu senaryolar ile onaylar ve yanl yerlerin deimesi iin neride bulunur. Bu nerilerin ve deiimlerin yaplp yaplmadn kontrol eder.

17

Proje Ekibinin Oluturulmas

Ortaya kan rnn, mteri ncesi testlerin yapar ve senaryolar yolu ile doruluunu ler. ak iinde mantksal olmayan yerleri ve mteri isteklerine uymayan ksmlar tesbit eder ve deimesi iin nerilerde bulunur. Ekran tasarmlar ve aklar iin de nerilerde bulunabilir. Fakat kullanlan yazlm aracnn ve dilin kapasitesini ok iyi biliyor olmas gerekir. Tm analiz ekibinin, analiz metodlar, UML, OOA gibi konularda bilgi sahibi olmas gerekir. UML ve OOA konularna yeni balayan firmalarda ise bu konularda eitim verebilecek seviyede bir elemann analiz toplantlarna yn vermesi ve yeni gelenleri eitmesi gerekir. En iyi eitimde mteri ile olan toplantlarda olur. Yeni gelenler bu toplantlara katlarak hem analizin nasl yapldn hemde UML ve OOA konularnn nasl uygulandn grrler. 2.4 Tasarm Ekibi

Tasarm ekibi, analiz ekibinin rettii senaryolar UML kullanarak modeller ve analizi yaplan mteri gereksinimlerinin elle tutulur bir kopyasn ortaya kartr. Ortaya kartlan modellerin bakmndan da sorumludur. Tasarm ekibi UML tabanl bir ara kullanyorsa, modelleri i-rtba zerinde yaynlar ve analiz ekibinin test etmesini salar. Eer bir UML arac yoksa modeller katlara izilerek duvarlara aslr. Bu duvara model duvar (wonderwall, modeling wall) denir ve herkesin grebilecei bir duvar seilir. Model Duvar ekip iindeki iletiimi arttrmak iin ok nemlidir. Modellerden veri taban ve snf emalarn oluturarak ilk veritaban modellerini ortaya karr ve yazlm uzmanlar ile analiz ekibinin test etmesini salar. Testler sonucu oluacak deiiklikleri uygular ve nerileri dikkate alr. Veritaban modeli ortaya kmaya baladka oluan sahalarn ne ie yaradn gsteren veri szlnn oluturulmasn salar. Bu szlkte veritabannda bulunan her sahann aklamas ve rnekleri bulunur. Sahalar iin bulunan i kurallarna da referans verilir. rnein belli sahalara belli formatlarda veri girilmesi gerekebilir. rnein saha 15 karakterlik bir tekst katardr fakat girilen verinin 100-110-111-121 eklinde olmas gerekir. Bu gibi durumlarda ilgili i kural numaras ile belirtilmeli ve bir hyperlink ile balanmaldr. Modelleme sonucu ortaya kan modlleri teste sunar ve gerekten gerekli olup olmadklarn bulmaya alr. Analiz ekibi ve yazlm ekibi modl testlerini ortak yapar. Modelleme, sreci boyunca deiime ak bir konudur ve genelde ilk tesbit edilen modllerin %60 ortadan kalkar. Modl normalizasyon toplantlar, sistem gereksinimleri ve mteri istekleri karlatrlarak yaplr. Sistem

Proje Ekibinin Oluturulmas

18

gereksinimi, rnn alaca sistem dnlerek ne kadar cpu, ne kadar hafza, ne kadar disk alanna ihtiyacnz olduudur. Modllerin gereksiz yere imemesi ve almaya baladnda performans sorunlarna yol amamas iin yaplmas gereken bir analizdir. Ak Senaryo (Sequence) emalarnn oluturulmasna nclk eder ve tm proje ekibinin bu genel aklardan haberdar olmasn salar. Projesi yaplan ii tam olarak anlayabilmek ve gelitirmeler iin fikir yrtebilmek amacyla bu emalarn ok iyi kavranmas ve sindirilmesi gerekir. nce genel i aklarndan balayp detaylandrarak gitmek mantk olarak olaylarn anlalmasn kolaylatrr. Mesela yazlm ekibi detay aklar incelerken, ynetim sadece genel aklar kontrol edebilir. Bylece ynetim iine yaramayacak pek ok bilgiden kendini soyutlam olacaktr. lk srmde yer alacak modl ve servislerin belirlenmesi amac ile tm modlleri ncelik srasna dizer. Projenin minimum kapasite ile alacak biimde ilk srmn verebilmesi amac ile planlama yapar ve bu modller zerine younlalmasn salar. Modllerin sunaca servislerin belgelendirilmesi iin bir ablon belirler ve her servis iin giri/klarn ve servisin yapt iin ieriini ortaya koyar. Daha sonra yazlm ekibi bu belgelerde anlatlan servisleri hayata geirecektir. Servis belgelerinda kullanlan dil herkesin anlayabilecei bir ekilde olmal ve okuyan yazlm uzman bildii yazlm dili ile uygulayabilmelidir. Servis belgesinin kullanlan yazlm aralarndan ve dillerinden bamsz olmas gerekir. Yani servisin yapt iler yazya dklrken yaln ve dzgn bir Trke ile anlatm yaplmaldr. Ortaya kan servislerin hangi senaryolar ile test edileceini de maddeler halinde belirtir. Yazlm uzmanlar bu bilgiyi kullanarak nite Testi iin gerekli veriyi hazrlayacaktr. Veri ile elien durumlarda yada test senaryosunun gereklenemeyei durumlarda, konu iyice tartlmal ve veritaban ile program tasarmlar gzden geirilmelidir. Zira bu tr bir elime tasarmlarda bir deiiklie yol aabilir. 2.5 Yazlm Ekibi

Firmanzn kalbi, modelleri hayata geirerek gerekleyen ve elle tutulur (greceli, ancak tkza yazarsak olabilir), gzle grlr yazlmlara dntren ekibiniz. Yazlm ekibinin grevlerine bir bakalm. Yazlm uzmanlar tasarm ekibinin oluturduu her trl rn okuyarak renmeli ve aklna taklan sorular rahata tasarm ekibine yneltebilmelidir. Analiz aamalarnda bulunmal ve projesi yaplan ii en derin ynleriyle renmelidir. Gerektiinde mteri tarafnda ii renmek iin almas salanmaldr yada eitim gnleri ile tm ii renmesi salanr.

19

Proje Ekibinin Oluturulmas

Ortaya kan modllerin servislerini yazarak ie balar. Gerektiinde deiiklikler iin fikir sunar. Kk modllere ayrlm bir projede her yazlm uzman bir modln sorumluluunu alabilir. Modller aras balantlar gerekletirir. Servislerin tek tek testini yapar. Test iin gerekli veriyi hazrlar ve veritabanna ykler. Tasarm ekibinin belirledii test senaryolarnn ayrntlarn yazar ve uygular. Servisleri kodlamaya balamadan evvel test verileri ve yntemi hazr olmaldr. Kod iinde kulland yorum satrlar ile kodun kendini anlatabilmesini salar. Karmak fonksiyonlar yada tekrar eden ilemleri blerek ufak paralar halinde yazmaldr. Tm blnen bu paralarn nasl altn belgelendirerek dier kiilerin anlamasn kolaylatrr. Belgelendirme ii uzun sreceinden kod iine yazlacak yorum satrlar da yeterli olabilir. Zaten ana servis ayrntlar ile yazya dklmtr. Kodlama aamasnda ortaya kan ufak fonksiyonlar yorum satrlar ile anlalacak biimde detaylandrlr. Her yazlan servisin ve onun kulland alt fonksiyonlarn girdi ve ktlar, bunlarn biimleri, dier hangi servisler tarafndan arld, hata durumlarnda yaratt hata mesajlar ve kodlar ayrntl biimde yazlmaldr. Modl tabanl gelitirme konusunda bunlarn rneklerini greceksiniz. Yazlm uzman kulland cihazlara kar sorumluluk sahibi olmaldr. Firma kaynaklarn kt amalarla kullanmamal, piyasada firmann yada kendisinin ismini kt olarak duyuracak davranlardan kanmaldr. Masasnn ve kulland cihazlarn temizliinden sorumludur. Arza hallerinde hemen sistem sorumlusunu konudan haberdar eder. Gnlk tutarak yapt ileri yazar veya yapamad ilerin nedenlerini sralar. Performans deerlendirme zamanlarnda bu gnlkten yararlanlr. Firmann kurallarna gre kendini yeni sahalarda gelitirmelidir. ini zamannda bitirebilmek iin planlamaya vakit ayrmas gerekir. Proje genel planndan ve tm servislerin teslim zamanlarndan haberdar olmaldr. Yapt planlar yneticisi ile paylamal ve fikir almaldr. Gerekiyorsa planlarn buna gre deitirmelidir. Yazlm uzman retilen her trl kodun ve belgenin firma dna kmamas iin bilin sahibi olmas gerekir. Yllar boyunca emek verdiiniz yazlmnzn 4 milyona yerlerde satldn grmek pek iyi olmasa gerek. Bu konuda pek ok nlem alabilirsiniz fakat en nemlisi ekibin bilinlendirilmesi ve eer ihtiya varsa, bindikleri dal kesmemeleri iin eitilmeleri gerekir. 2.6 Mteri Temsilcisi

rnnz pazarlayacanz sektrden yada firmadan atanacak 2 kii srekli yazlm gelitirme srelerinde bulunacak ve aamalara yn vererek kaydedecektir. Mteri ile yaplan analiz toplantlarnda kpr grevi stlenecek ve yanl anlamalar ortadan kaldracaktr. Mterinin ne istedigini tam olarak, tasarm ve yazlm ekibine aktarlmasnda kilit rol oynayacaktr. Her toplantdan

Proje Ekibinin Oluturulmas

20

sonra, tartlan gndemi ve analizleri belgelendirecektir. Bu belgelerin Tm proje ekibine ayrm yapmadan datlmasndan da sorumludur. Mteri temsilcileri yaptklar ii ok iyi bildikleri iin kendi ileri ve hizmet sunduklar sektrler arasndaki ak en iyi onlar anlatabilir. Analitik dnce yapsna sahip olmal ve problem zme becerileri bulunmaldr. Bilgisayar nedir, yazlm nedir ve bu yazlmdan neler bekliyorlar gibi konularda bilgi sahibi olmalar gerekir. Mhendis yada yazlmc olmalarna gerek yoktur. Eer ilk defa bu tr bir ide alacaklarsa, ilikili veri taban mant, kullanlacak iletim sistemlerinin genel yaplar, kullanlan yazlm aralarnn ilevsellii, firma ii standartlar ve kurallar hakknda bilgilendirilmelidirler. Firmadaki teknik alt yap ve haberleme metodlar hakknda da bilgi verilmelidir. Giri seviyesi UML modelleme konular retilmeli ve analizlerde kullanmalar salanmaldr. rn ortaya ktktan sonra i ak testlerini yapar ve hesaplamalarn doruluunu kontrol eder. Ekranlarn kullanlrln ve aklar konusunda genel testler yapar. Test ekibine dorudan yardmc olur. Proje banda tasarm ve analiz ekibine, ortasnda yazlm ekibine ve sonunda da test ekibine yardmc olur. 2.7 Test Ekibi

Test ekibine gemeden nce bu ekibin kullanaca alt yapdan biraz bahsedelim. Test ekibi testlere baladktan sonra ortaya kacak hatalar bir yerlere kaydetmelidir. Modl baznda kayt edilmesi ve hatann tam bir aklamas ile ekran resimlerinin ilitirilmesi gerekir. Hatann yazlm uzman tarafndan tekrar edilebilmesi amac ile kullanlan veride belirtilmelidir. Tm bu verilerin kayt edilecei bir ortam nceden hazrlanmal yada satn alnmaldr. Bu ortam ileride mteri sorunlarna zm ararken de kullanlaca iin gvenilir, yksek kapasitede alabilecek ve rtba izerinden ulalabilecek bir rn olmas gerekir. Test ekibinin yapaca testleri bir ka snfa ayrabiliriz. Bunlar:

Servis testleri

Modl iinde barnan servislerin tek tek test edilmesi ve bu servislerin giri ve klar servis belgelerinden kontrol edilerek test edilir. Tm sonular, servis belgesindeki tahmin edilen sonular ile karlatrlr ve uymayan durumlar tekrar gzden geirilir. Verinin btnl genel amatr ve hesaplamalar ile veritaban operasyonlarnn gerekleip gereklemedii tesbit edilmeye allr.

Modl testleri

21

Proje Ekibinin Oluturulmas

Modller aras ilikiler gzden geirilerek beraber almas umulan modller birlikte test edilir. Bir modln ktlar baka bir modln bir servisini tetikliyor olabilir. Bu tr tetiklemelerin oluup olumad test edilir. Bu aamada veri pek nemli deildir. Dikkat edilmesi gereken konu modllerin birbirleri ile nasl alt ve bir modln ktlarnn bir dier modl tarafndan nasl kullanld ve doru olarak veri aknn gerekleip gereklemedii test edilir.

ak testleri

En uzun sren test budur. Servis ve Modl testlerinden baar ile km modllerin tm sistem iinde nasl davrandklar ve ilk gerek hayat testleri bu aamada yaplr. in gerektirdii biimde ve Mteri Temsilcisi tarafndan yaplmaldr. aklarn ok iyi bilen Mteri Temsilcileri tm yazlm bir btn olarak ele alp incelerler. rnein bir hisse senedi alma iine bakalm. Mteri arac firmay arayarak hesap bilgilerini ve ifresini doruladktan sonra almak istedii hisse senedini belirtir. Bu arada hattn dier ucundaki personel, mterinin bilgilerine ulam ve alm iin gerekli ekranlara girmitir. Mteri satn almak istedii hisse senedini ve miktarn belirtir ve alm iin gerekli talimat verir. Personelimiz bu bilgileri de alarak programa girer ve alm iin son bir onaydan sonra alm tuuna basar. Bundan sonra programmz alm yapar, mterinin banka hesabndan creti der, ve hesaplar gnceller. Son durumu ekranda gsterir ve personelimiz de bu son durumu telefondaki mteriye syler. Buraya kadar geen tm olaylarda programn nasl kullanldn hayal edin. Tm ekranlar gznzde canlandrn. Kullanlacak modlleri bir sayalm, ncelikle mteri modl ile mteri bilgilerine ulatk, daha sonra alm/satm modlnden istenen hisse senedine ulatk. Bu arada baka bir modl hisse senetlerinin fiyatlarn gncelledi. Mterinin bankas ile balant kuracak fon transferi modl de para aktarmn gerekletirdi. Son olarak ta mteri hesabn grntleyen Muhasebe modl devreye girdi. Bu tr i aklar nceden Tasarm ekibi tarafndan hazrlanmaldr ve Servis Testleri srasnda belli paralar yazlm uzmanlar tarafndan kullanlmaldr. Analizler srasnda ortaya kan senaryo modelleride test amal kullanlabilir. Test iin gerekli verinin senaryolar halinde hazrlanmas ve veritaban uzmanlar tarafndan yklenmesi gerekir. Msteriden iki kiinin teste yn vermesi de gerekebilir. Yarm gn calacak iki grevli testlere farkl bir gz ile bakmay salayacaktr. Mterinin atayaca iki kii hem i aklarn hemde ne istediklerini bilecekler, ayrca bu kiiler bizim test ekibini de eiteceklerdir. Senaryolarn genilemesine

Proje Ekibinin Oluturulmas

22

yardmc olacaklardr. Bu kiilerin zaman ierisinde belli bir dngye girip test senaryolarna dar bir gr as ile saplanmamalar iin belli zamanlarda farkl kiiler ile deitirilmeleri gerekir. 2.8 Eitim Ekibi

Eitim ekibi firma iinde gerekecek her trl eitim gereksinimini karlayacak biimde olmaldr. Firma ii eitimler kadar dardan da eitim almak iin gerekli organizasyonu yapar. Bu ekibin yapaca ii bir ka alt balk altnda incelersek: a- Yazlm ekibinin egitilmesi Yazlm ekibi iin gerekecek eitimleri belirleyecek ve alt yapsn hazrlayacaktr. Firma ii eitimler dnda eer gerekirse uzman eitim firmalarndan destek almas gerekebilir. Yazlm ekibinin eitli konularda sertifikalandrlmas ve bu eitimlerin gncel ilerde kullanlabilecek olmasna dikkat eder. Eitim ekibi firma iinde kullanlan rnlerden, yazlm aralarndan haberdar olmal ve gerekli eitimleri tasarm edebilmelidir. Eitim iin kullanlacak bilgisayarlar ve eitim belgelerini hazrlamaldr. b- Pazarlama ekibinin egitilmesi Pazarlama ekibini sat yaplacak rn konusunda bilgilendirmeli, rakipleri aratrarak zayf ynlerini belirlemeli ve rnn zelliklerini tamam ile pazarlama ekibine retmelidir. c- Belgelerin hazrlanmas Eitimler iin gerekecek her trl belge ve program nceden hazrlanmaldr. Standart haline gelmi eitimler ile yeni firmaya katlanlara verilecek eitimler kitapklar halinde hazr olmaldr. Firma ahlakn ve alma prensiplerini anlatan eitimler ok nemlidir. Mezuniyetten sonra hayata atlan i arkadalarma planl programl ve prensipleri olan bir firmada almalarn tavsiye ederim. Eer ie girdiinizin ikinci gn sizden bir eyler retmeniz isteniyorsa anlayn ki firma dzeni pek oturmamtr ve sizden yapmanz istenen iler de yarn ekil deitirecektir. Belirsizlikler iinde srklenmektense bir an nce baka bir firma bulup gei yapmanz geleceiniz iin iyi olacaktr. d- Eitim odalarnn hazrlanmas Eitim odalarnn dzeni ve kullanlacak bilgisayar ve beyaz tahtalarn bakm konularndan sorumludurlar. Tm ekipman kayt altnda tutulmal ve her eitimden sonra kontrol edilmelidir. Kayplar yada yeni istekler ynetim kuruluna bildirilmelidir.

23

Proje Ekibinin Oluturulmas

e- rn eitimlerinin hazrlanmas retilen rnn eitim kitaplarn hazrlar, yeni gncellemeleri ve ekran deiikliklerini eitim belgelerine yanstr. rnn her majr srm ile birlikte eitim kitaplarda yenilenmelidir. 2.9 Pazarlama Ekibi

Pazarlama ekibi en az yazlm ekibi kadar nemlidir. Hangisinin daha ok gerekli olduuna deil birbirleri arasndaki haberlemenin -firmann gelecei iin- nasl olmas gerektiine odaklanmak gerekir. altm firmalarda zaman zaman bu konuda tartmalara tank oldum. Fakat bilinmesi gerekir ki bu tr tartmalar sadece firmann kaynaklarn boa kullanmaktr. Pazarlama ekibi mteri pazarnn belirlenmesi iin almalar yapar. Potansiyel mterileri belirleyerek ziyaretlerde bulunur. Fuar veya sergi gibi etkinliklerde hem rakipler zerine aratrma yapar hemde yeni mteriler bulabilmek iin alr. Sektr ile ilgili medyay takip eder ve gerekli haberleri arivleyerek firma iinde datr. Rakiplerin neler yaptklarn, rnlerinde ne gibi zellikler olduunu, hangi mterilere sat yaptklarn renmeye alr. Rakiplerin sat fiyatlar hakknda bilgi toplar ve tm bilgiyi karlatrmal tablolar halinde firma iinde yaynlar. Reklamlarn hazrlanmas iin alr. Reklamlarn hangi dergilerde veya televizyonda hangi saatlerde kacan belirler. Sektr yakndan takip etmek iin medya takip ajanslar ile alabilir. Sat stratejileri belirlemek iin rakiplerin yeni srmlerinin ne zaman kaca takip edilmelidir. Reklam tasarmlar iin bnyesinde bir grafik tasarmcs bulundurabilir. Bu sayede grafik tasarmcs rn nasl tantacan daha iyi anlar. Medya ile ilikileri gncel tutmak iin bir ka ke yazar ile balants olmas gerekir. Yeni bir srm ktnda ke yazarlar ile balant kurup rnn reklamnn yaplmas salanr. Mteri analizleri yaparak veritaban oluturma ve mteri isteklerini kaydederek tasarm veya yazlm ekibine bildirmesi gerekir. Mteriyi istei konusunda bilgilendirerek konu ile ilgilenildiini gstermelidir. Bu istekler tasarm ve yazlm ekibi tarafndan tartlarak genel srmlerde uygulanabilirlii ortaya kartlmaldr. Bir alt proje gibi ele alnp harcanan kaynak ve zaman planlanmaldr. Lisans takibi iin almalar yaparak hangi mterinin ne tr lisanslara sahip olduunu tutar ve yeni lisanslarn salanmas iin mteri ile kontak kurar. renci lisans, 30 gnlk deneme srmleri ve akademik lisanslarn salanmas ve rnn mmkn olan en fazla kii tarafndan kullanlmasn salamak iin alr. Fuarlarda deneme srmlerinin datlmas ve yeterli eitim belgesi ile birlikte sunulmas iin

Proje Ekibinin Oluturulmas

24

gerekli organizasyonu da yapar. Firmann rtba sitesi zerinden gerekli reklamn yaplmas ve yeterli belgenin yaynlanmas iin almay da yapar. BSA ile olan ilikileri dzenler ve rnn lisansz kullanlmamas iin gerekli tedbirleri alr. rnn elektronik ve yasal olarak korunmas iin dzenlemeleri yapar. Anlama metinlerini dzenler ve hem rn iinde hem de rtba sitesinde yaynlanmasn salar. Deiiklik gerektiren durumlarda tm bu ortamlar gncellenir ve mteriler bu deiiklikten haberdar edilir. Sat sonras mteri memnuniyeti testleri ve ziyaretleri ile srekli mteri ile balantda olur ve bylece mteri kendini yanlz hissetmez. Mteriler iin etkinlikler organize eder ve mterilerinde kendi aralarnda balar yaratr. Bylece mteriler birbirlerinin bilgilerinden yararlanabilirler. Bu tr ilikilerin artmas aile gibi bir yapnn mteriler ve firmanz arasnda domasna yol aar. Gittike ilerleyen ve gelien bu yap ileride meyvelerini toplayacanz bir aacn fidesi olabilir. 2.10 Kurulum Ynetimi Ekibi Kurumsal zmler sunan bir firma yapsna sahip iseniz yada rnlerinizi sizin kendi sunucularnz zerinden kullandryorsanz, tm kurulum ilemlerinin ve yeni srmlerin kontrol altnda olmas gerekir. Yaplacak i projelerin bitim tarihleri ile koordineli olarak tm mevzuatn dzene sokularak maddeler halinde yazlmasdr. zellikle 3-katmanl yada n-katmanl sistemlerde gncellenmesi gereken programlar bir ka sisteme dalm olabilir hatta corafik olarak birbirlerinden uzakta bile olabilirler. Yaplacak iler sras ile:

Gncelleme iin planlama yapmak. Gncellenecek programlarn kurulumlarn hazrlamak ve bu kurulumlarn nerelerde

altrlacan belirlemek. Kurulum ilemlerinin en ince ayrntsna kadar belgelendirilmesi gerekiyor.


Gncelleme iin gerekli, yazlm d, rn kurmak gerekiyor mu aratrmak. Mterileri uyararak, gncelleme yaplaca gn programlarn almayacan belirtmek. Gncellenecek sistemin yedeini almak. Gncellemeyi yapmak Tekrar yedek almak Yazlm Dorulama Testi yaparak gncellemenin doru altndan emin olmak

25

Proje Ekibinin Oluturulmas

(EK) Eer YDT sonular gncellemenin almadn gsteriyorsa, yedekleri geri

ykleyerek sistemi bir nceki konumuna getirmek. Bu ana maddeler nda tm admlarn en ince ayrntsna kadar detaylandrlmas ve balant kurulacak kiilerin telefon numaralar bir belge halinde projede grev alan herkese ulatrlmaldr. Yazlm ekibinden bir kii olas bir sorun durumunda balant kurulmas amac ile destek hizmeti verir. Oluturulacak belge bir ak emas, bir Excel belgesi yada bir MS Project belges olabilir. nemli olan tm tarih ve saatlerin en ince ayrntsna kadar yazlmasdr. 2.11 Deiim Ve steklerin Ynetimi Projenin her safhasnda deiim ve isteklerin ynetilmesi zorunluluu vardr. Bu i iin bir kii ayrlmas arttr. Deiim ve istekleri ynetecek kii retilen her trl belge ve yazlm parasndan sorumludur. retilen belge yada kod ilk majr srm numarasn aldnda o para artk Deiim ve stekler Ynetimi altndadr. Majr numaradan kastmz 1.0dr. Noktann sol taraf 1 olduu zaman artk ilk srm verilmi demektir. stenen her trl deiiklik ve istek bir toplant yaplarak karara balanr. Deiimden etkilenen her proje paras ortaya kartlarak maliyet aratrlr. Eer ok fazla maliyetli bir deiim ise bir sonraki srme braklabilir. Fakat bu ileri yneten kiinin bunlarn takibini yapmas zorunludur. 2.12 Pilot Firma rnnz belli bir seviyeye geldikten sonra bir pilot firma seip yazlm buraya kurmak ve i ak iindeki davranlarn grmek yaplacak en iyi testlerden biridir. Ortaya kan ve testleri bitmi modllerin bu ekilde test edilmesi size ve rnnze ok yararl olur. Bu i iin atanacak kiiler ve kurulacak sistem nceden belirlenmeli ve pilot firmann i akn aksatmayacak biimde derlenmelidir. Kurulacak bilgisayarlar ve yazlmlar, var olan sistem zerine deil, yedek bir sistem zerine kurulmaldr. Belki her masada iki kii ve iki bilgisayar (biri sizin dieri pilot firmann) olacaktr ama ilk aama iin bu gereklidir. Yazlmnz olgunlamaya baladka pilot sistem var olan sistemin yerini almaya balar. Tm operasyonlara cevap verecek dzeye geldiinde ise artk tamam ile sizin yazlmnz ii ele alm olacaktr. Bu i iin ayrlacak elemanlar zel olarak seilmeli, stres ve bask altnda rahata ve soukkanl kalabilmeli, problem anlarnda kontak kuracaklar kiileri bilmeli, tm alt yap ve yazlm ile yaplan ii bilmelidir. Her kacak hata veya deiiklik istemi iyi bir hata takip program ile firmaya aktarlmal ve zmler hzl ve ayrntl biimde bulunmaldr.

Proje Ekibinin Oluturulmas

26

2.13 effaf Muhasebe Firma iinde yaplan tm harcamalarn ve gelirlerin effaf bir biimde alanlarn grmesini salayarak belli bir oranda bilin oluturabilirsiniz. Kullandklar makinelere ne kadar harcandn bilen bilinli kullanclar, onlar korumak iin daha fazla aba gsterecektir. Mutfak ve tuvaletler iin yaplan harcamalar da dahil olmak zere her harcama herkesin rahatlkla ulaabilecei bir yerde olmaldr. Firma alanlarndan gelecek tavsiyeler ile harcamalarda daha hesapl davranlabilir. Maliyet bilinci ile alan kii daha dikkatli bir biimde alr. Ayrca bu harcama bilgisinin firma dna kmamas iin gerekli eitiminde alanlara verilmesi gerekir. effaf muhasebenin miktarn size brakyorum. Eer saklamay arzu ettiiniz harcamalar varsa bunlar neden sakladnz bir kez daha dnp harcamay o ekilde yapn. Firma alanlarnn firmaya maddi zarar verecek davranlardan da kanmas gerekir. effaf muhasebe ile belirli bir bilin seviyesine gelen alanlar, altklar firmann daha uzun mrl olmas iin ellerinden geleni yapmaldrlar. 2.14 Yaplan Yanllar 2.14.1 Lisanssz Yazlm Kullanm

Firmanz kurdunuz, rnde hemen hemen hazr, mteriler srada bekliyor fakat ne kullandnz yazlm aralar nede iletim sistemleri lisansl deil. Bu gibi durumlarda yazdnz rn satmanz mmkn deil. Bir an nce lisanslama yoluna gitmeniz gerekir. lkemizde bu konu hakknda alma yapan BSA (Business Software Alliance) lisanssz kullanm iin olduka ar cezalarn uygulanmasna nclk etmektedir. Ayrca yazdnz rnn bakalar tarafndan lisanssz kulanlmasn nlemek amal olarak ispiyoncularn size rahata ulaabilmesi iin bir ortam hazrlamanz ve avukatlarnzn bu konularda deneyimli olmas gerekir. te yanda ne yaparsanz yapn bir yerlerde birileri sizin el emei gz nuru programnz lisanssz olarak kullanacaktr. Bu tr bir kurulu kefettiinizde bir maliyet analizi yapp kar dava aarsanz zararnzn ne olacan ve ne elde edeceinizi iyi tartmanz gerek. Astar yznden daha pahallya gelmesin yani. Birde maliyeti ok gibi grnse de bu tr kaak yazlm kullanan bir kuruluu reklam ve caydrma arac olarak kullanabilirsiniz. 2.14.2 Yeterli Yardm Ve Destei Alamama

Kullandnz yazlm aralarnn reticisi ile olan ilikileriniz ok sk ve akkan olmal. Bir yardma ihtiyacnz olduunda acil aranmas gereken telefon numaralar, yardm siteleri, sadece kaytl mterilerin girdii forum siteleri gibi tm yardm aralarn ok iyi kullanabilmelisiniz. Firma iinden

27

Proje Ekibinin Oluturulmas

atanacak bir kii tm bu balantlar salayacak ve bilginin akkan olarak firmanza akmasna yardmc olacaktr. Ayrca eer kontaklar yurt dnda ise, yabanc dili iyi olan bir kii bu ileri yrtmelidir. Yeterli destei alamyor iseniz kendi iinizde bu problemleri zmeniz gerekir. Bu yapy da oluturmak seneler alabilir. Birde bu ilere bakan kiinin 6 ay sonra iden ktn dnn. Yeni gelen kiinin olay anlamas ve destek konularn ayaa kaldrmas gene bir 6 ay alacaktr. Eer kendi iinizde halletmeye karar verirseniz, tm ilemlerin ok net bir biimde belgelendirilmesine zen gsterilmelidir ve tekrar eden ilerin ksa programcklar ile otomatize edilmesi baz ileri kolaylatracaktr. retici firmalar dnda zel e-mektup listeleri de yardm almak iin yararl olabilir. Bazen retici firmadan da daha iyi olabiliyor bu listeler. Kullanclarn bulduu zmler daha gerek hayata yakn ve uygulamas kolaydr. Fakat retici firmann desteklemedii bir zm olabilir, buna dikkat etmek lazm. Yardm alnacak tm yollar ve yntemleri yazlmal ve genel bir hata veritaban oluturulmaldr. Bu sayede tekrar eden hatalar zaman kaybetmeden zme kavuturulabilir. 2.14.3 Eitimsiz Yazlm Uzmanlar

Nasl bilgisayar sisteminizi ve programlarnz gncelliyorsanz, yazlm uzmanlarnzn da gncellenmesi gerekir.Yeni bir aracn veya dilin firmanz iinde uygulanmaya balanmasndan evvel, yazlm ekibine yeterli eitim verilmeli ve bilgi seviyelerinin ayn olmas salanmaldr. Oluturulacak gncel bir ktphane ile her zaman gncel bilgiye ulamalar salanmal, sanal belgeler ile de srekli desteklenmelidir. En fazla para harcayacanz yer uzmanlarnz olduuna gre bu konularda ciddi alma yaplmas gerekir. Eitimsiz bir Yazlm Uzman firmanza ok byk zararlar verebilir. Projeleriniz zamannda yetimez, yazlan programlarn yeterli belgeleri bulunmaz, kayt d pek ok rutin program veya iki kere yazlm pek ok fonksiyon ile rnnz iebilir. Sonuta ortaya kan rn de mterinin istei ile ilgisi olmayan bir rne dnr. Mkemmel alyordur belki ama mterinin isteini yerine getirmiyorsa ne ie yarar ki. 2.14.4 Firma i Ahlakn renilememesi

Firma ii giyim kuam, hareket ve davranlarn belli bir dzene sokulmas amac ile ceitli standartlara gidilebilir. Mteri ile yz yze olmayan yazlm uzmanlarnn takm elbise giymesi gerekmez ama mteri toplantlarnda veya analiz toplantlarnda takm elbise art koulabilir. Tuvaletlerin temizlii, mutfan ve banyonun kullanm belli standartlar ve hijyenik kurallar ierisinde olmas gerekir. Bu tr kurallar renemeyen firma alan sorun yaratmaya balar. Sorunlar ksa zamanda giderilmezse dier alanlar rahatsz olur ve iten ayrlmalara kadar gidebilir. yi elemanlarnz sebepsiz yere

Proje Ekibinin Oluturulmas

28

kaybetmeye balarsnz ve proje iin pek iyi olmaz. Sorun karan kii proje lideri de olabilir. Bu gibi durumlarda proje liderine baka iler verip projeyi yrtmesi iin baka bir lider arayna girmeniz gerekir. 2.14.5 Lidersizlik

Proje liderine ok fazla i verilmesi yada baka bir projeye atanmas sonucu, ekibin babo kalmas ve kontrol edici mekanizmann iyi almamas nedeni ile projenin aksamasna neden olur. Bu gibi durumlarda liderin yerine geici olarak geecek, proje iinden bir kii belirlenir ve ilerin normal yrmesi temin edilir. Performans kriterleri ve varlmas gereken hedefler ok ak ve net bir biimde herkesin grebilecei gibi yaynlanmaldr. Aksi takdirde hedefsizlikten doacak ok byk gecikmelere maruz kalabiliriz. Yanl belirlenmi hedeflerde problem yaratabilir. Ekipten gelecek yorumlar dikkate alnp hedef zamanlarnn tekrardan belirlenmesi gerekebilir. 2.14.6 Btn in Herkes Tarafndan Bilinmemesi

Bir projeye balandnda, proje ile ilgili her trl bilgi en ufak birimlere kadar aktarlmaldr. Ekibin bilgisi ayn seviyede tutulmal ve yazlan programlarn aslnda ne gibi ilere yaradn gerek hayatta grlmesi ve kavranmas gerekir. Ayrca proje plannn herkesin grebilecei bir duvara aslarak yaynlanmas gerekir. Bylece ne kadar yol alnd her kes tarafndan grlr. Tm plan ve bilgi eit biimde paylalmaldr. Her yazlm uzman, iin iyi kavranabilmesi iin sektrde en az 1 hafta almal ve ii kaynanda renmelidir. kurallarn ve temel ileyileri en hzl bu biimde renir. rnein ayakkab taban reten bir firmaya proje yapyorsunuz. Analiz ve yazlm ekiplerinin dnml olarak bu firmada almas ve ileyii tam olarak kavramalar, i kurallarn renmeleri, i iinde geen terimleri ve mterinin psikolojisini iyice kavramalar gerekir. Bylece yazlm retilirken ortaya kan paralarn iin hangi aamasnda kullanlaca daha rahat hayal edilir. 2.14.7 Yetersiz Haberleme Ve Bilgi Ak

Firmanzda, yukarda anlattgm blmler arasnda haberleme ve bilgi al verii cok iyi olmaldr. Yazlm ekibi kendi iini, pazarlama ekibi kendi iini, yonetim kendi iini yaparken, ortaya kan sonularn her kes tarafndan paylalmas gerekir. Ancak bu ekilde herkesin firmaya olan gveni salamlatrlr ve ortak karlar iin birlikte allr. Bir ka rnek verelim: Yazlm ekibi gnler geceler boyu rnn bir modln ortaya karr ve testlerine balanr. Fakat pazarlama ekibinin bu gidiattan haberi yoktur ve modl hakknda pazarlama iin gerekli stratejik bilgiyi zamannda renemez. kinci modlde ortaya kar ve testleri balar ama pazarlama ekibinin daha

29

Proje Ekibinin Oluturulmas

birinci modlden yeni haberi olmutur ve grenilecek eylerin says artmtr. Planlarda gecikme olur ve zaman darald iin Pazarlama ekibinin modller hakkndaki bilgi kalitesi der. Ynetim yeni bir programlama arac iin karar verir ve kimseye sylemeden arac alr. Ara yazlm ekibine verilerek bu rn ile bir eyler ortaya karmas istenir. Hakknda yeterli aratrma yaplmad ve yazlm ekibine danlmad iin rnn kapasitesi tam olarak kullanlamaz ve anlalamaz. Yazlm ve tasarm ekibi birbirinden kopuktur ve programlama sreci baladktan sonra mteriden gelen istekler doru biimde yazlm ekibine aktarlamaz. Sonuta ortaya kan rn mterinin isteine uymayan bir rn olacaktr. Firma blmleri ayn dili konuuyor olmaldr. Bunun iinde herkesin UML mantn kavramas ve kullanmas gerekmektedir. 2.14.8 Yetersiz Alt Yap

Bir projeye balarken, yada bir yazlm firmas kurmaya karar verdiinizde aldnz risk seeceiniz ucuz ve yava bilgisayar sistemleri, kalitesiz kablolama, ikinci el monitrler gibi kalitesi dk cihazlara yapacanz harcamalar ile 3 yada 5 kat artmaktadr. Yetersiz bilgiye sahip yazlm uzmanlarnda bu kategoriye sokabiliriz. Temeliniz ne kadar salam olursa stne kacanz bina o kadar salam ve ok katl olur. Eer alt yapya gereken nemi verirsek, stne yapacamz projeler zamannda ve tam olarak teslim edilir. Altyap konusunda dikkat etmemiz gereken hususlar: Teknik altyap

Bilgisayar sistemleri, donanm, a, rtba, i-rtba gibi firmann bel kemiini ve haberleme aralarn ieren sistemlerdir. Bilgi altyaps

Firmann tm bilgi alma kaynaklardr. Fiziksel bir ktphane, i-rtbandaki saysal ktphane gibi kolay ulalabilecek bir yaps olmaldr. Saysal olanlar iin yeterli arama mekanizmalar gelitirilmi olmaldr. Her trl eitim belgeside bu sistem ierisinde olmaldr. Yazlm altyaps

rnnz gelitirmek iin kullandnz tm rnler ile yazlm sreci ile dorudan balants olmayan tm yazlmlarn bulunduu yazlm ktphanesidir.

Proje Ekibinin Oluturulmas

30

Tm bu altyaplarn yeri geldike gncellenmesi ve yedeklenmesi gerekir. Yanl ksmlarn deitirilmesi ve zaman dolan ve artk kullanlmayan bilgi kaynaklarnn ise sistemlerden kaldrlmas gerekir. 2.14.9 Yetersiz Belgeleme

Yazlm uzmanlar olarak belge yazmay sevmesekte bu iin yaplmas gerekmektedir. Yazlan kodlarn, yaplan analizlerin, senaryolarn, veritaban modeli gibi proje ierisinde retilen her parann bir belgesi olmaldr. Gruba yeni katlacak kiiler ancak bu belgeler sayesinde her eyi renebilir. Eer yetersiz belge gibi bir sorununuz varsa, acilen bir ekip toparlayp belgeleri tamamlamaya bakmanz gerek. Eer yazlm uzmanlarnn zaman yoksa, gnde 1 saat ayrarak belgelendirme ile ilgili bilgiyi bu ekibe geirmeleri gerekir. 2.14.10 Yazlm Ekibinden Kopmalar

Ynetimde yaplan yanllklar nedeni ile yada tamamen kiisel sorunlardan dolay, yazlm ekibinden ayrlmalar olduunda projenizden bir bilgi birikimi ayrlm olur. Bu bilgi birikimini yerine koymak ise zaman zaman olduka zor olmaktadr. Yeterli belgeleme yaplm bir firmada ok fazla skntya girmeden, ksa zamanda bu bilgi baka bir alana aktarlabilir ve proje normal olarak devam edebilir. Ayrlan kiininde bir sre daha devam edip bilgisini baka birisine aktarabilir. Eer standart belgeleme iyi bir seviyede uygulanrsa, ekipten kopmalar bir sorun olmaktan kabilir.

31

Blogdan Semeler

3 Blogdan Semeler Aadaki blmde www.analystdeveloper.com adresindeki Trke blogumda yaynladm ve bu kitaba uygun konulardaki yazlarm kopyaladm. Umarm iinize yarar. 3.1 topyalarm, Akm ve Ben

lkemizde tonlarca Muhasebe ve Personel Ynetim program yazan firma var. Bu firmalar yazdklar programlarda bir firmann ihtiyacn karlayacak muhasebe ilemleri ile hi bir yerde doru drst uygulanmayan personel ynetimi konularnda yazlm zmleri sunuyorlar. Peki soruyorum bir maliye denetisi/mfettii bu programlarn hepsini en ince ayrntsna kadar biliyor ve denetliyor mu? Yada bir firma denetlenmeye alndnda kullandklar veritabanlar ve programlar en kyda kede kalm inceliklerine kadar denetleniyor mu? Bu programlar maliye tarafndan onaylanm, lisans verilmi programlar mdr? Yada byle bir uygulama var mdr? Baka bir konuda mterilerin program satn aldklar bilgisayar firmalarndan istekleri. -imdi herkes olur mu yle ey diyecek ama- bu mteriler ne kadar gayri resmi yol varsa aldklar paket programlarda bunlar uygulamak ve kaytlarn tutmak, bu yzszlk yetmezmi gibi bir de bunlarn gizli ifreler ile korunmasn ve maliye mfettileri geldiinde o blmlerin grnmemesini istiyorlar. Zaten u anda piyasadaki tm muhasebe programlar veya zel sektr iin yazlm pek ok paket programda alavere dalaverenin binbir trls, bir mal 3, 5 kere satmalar, muhasebe hesaplarnn resmi-gayri resmi olarak ikiye ayrlmas, faturasz almalar, SSK demelerinin en dk cretlerden grnmesini salamak, SSKl alanlar ayda sadece 15 i gn alyor gstermek gibi daha akla gelebilecek binbir trl eytana pabucunu ters giydirme oyunu. Btn bu gayri resmi ilemlerin sonucunda devletin kaybettii vergi, SSKya tam olarak denmeyen primler sonucu emekli olduunuzda alacanz maan azl, firmann kard faturas bile olmayan kazanlar, haksz elde edilmi pek ok gelir, acaba bizlerden yani birey olarak her vatandatan bir eyler koparp gtrmyor mu? stne stlk maliye mfettileri tarafndan tesadfen! ortaya kartlan bu ilemler sonucu firmann zarar grmesi ve sicilinde kara bir lekenin bulunmas da cabas. 3.1.1 zm okmu Zor? Belki dneceksiniz - halledilmesi gereken bir sr baka konu varken, nce bu konudan m balanr- yada -adam sende, tonla yazlm firmas yazm muhasebe paketi imdi onlarn ekmeine ta m koyacaz- diye. Gerekirse koyacaz! Mterinin yzszlemesini ve tavizler verilmesini nlememiz lazm.

Blogdan Semeler

32

-Yok kardeim bizim paketimizde gayri resmi satlarn tutacak bir yap yok yapmay da dnmyoruz. -Ama olur mu X firmasnn muhasebe paketinde var bu olay. Misler gibi karyoruz vergiyi. -Ykl, gzm grmesin. Tarznda Erdener Abi muhabbetleri ekeceiz belki ama, eer tm firmalar belli kurallara uyarsa eminim bir ka sene iinde taviz alamadn gren mteri bu katlardan vaz geecek ve doru neymi vicdannn sesiyle karar verdiinde hem kendisi hemde vergi gelirlerini sosyal hizmetler iin kullanan devlet, refah seviyesini arttrm olacaktr. 3.1.2 Nedir Benim nerim? Bu yazmdan sonra gelecek yorumlar merakla bekliyorum. Bilirsiniz, padiahlardan biri vezirlerine savaa gidelim mi gitmeyelim mi, karar veremez tarzda bir soru sorar, vezirlerden bazlar hemen sazan gibi atlayp gitmeyelim yce devletlm derler kimileri de gidelim tabi ne olacak der. Gitmeyelim diyenlerin boynu vurulur ve savaa gidilir. imdi gelelim zm nerisine. Bu iin T.C. Maliye Bakanl eli ile yaplmas gerekir. Maliye Bakanl: 30 kiilik usta mali mavir/muhasebeci/mfetti/personel bordro ilerinden anlayan bir analiz ekibi, 100 kiilik daha nce muhasebe ve personel ynetim paketi yazm, yazlm firmalarnda alm, muhasebe ve personel ynetiminden anlayan programc, 10 kiilik yksek matematik bilgisine sahip uzman, 100 kiilikte gene muhasebe ve personel bordro modllerini kullanm, piyasadaki programlarda tecrbeli, test ekibi oluturacak. Bu 30 kiilik uzman takm bir muhasebe/personel bordro program nasl olmal, tm ayrntlar ile oturup bir analiz yapacaklar, Analizler tamamen ayrntl Modl Tabanl Gelitirme (MTG/CBD Component Based Development) CBD Head Quarter kurallarna gre yaplacak. Hi bir gayri resmi ileme izin verilmeyecek. Tabii ben sadece Muhasebe ve Personel Bordro zerinde durdum ama bu modller oatlabilir. Ekip, kendi iinde blmlere ayrlarak yazlacak modlleri belirleyecek rnein muhasebe iin olacak ufak modller: Hesap plan, Hareketler, Defter Basm vs gibi modller...10 kiilik matematik ekibi

33

Blogdan Semeler

programlarn rettii sonular matematiksel olarak ele alp doru sonularn ortaya kp kmadn kontrol edecek. Program kullanacak firmann, nn grebilmesi iin gerekli analiz raporlarn hazrlayacak.100 kiilik test ekibi MTG kurallarna gre test yapacaklar ve programlarn doruluunu ortaya koyacaklar. 30 kiilik uzman takm ve 10 kiilik matematik takm ile koordineli alacaklar. 100 kiilik programc ekibi de oturup bu program gelitirecekler. Bu kiilerin zellikleri neler olacak? Bu projeye seilen kiiler zel gvenlik taramalarndan sonra seilecek. Gvenilirlii nasl kantlanacak? ncelikle gelen bavurular deerlendirilerek ilerinden yukardaki artlara uygun olanlar seilecek. Daha sonra bu kiiler yakn takibe alnacak. Bu i iin MTten yardm alnabilir. 3 yada 4 ay boyunca hem kiinin gemi sicil kaytlar hemde yaam tarzndan tutunda, arkadalar ile ilikilerine varncaya kadar irdelenmesi gerekiyor. Her aday iin atanacak bir MT grevlisi, adayn yakn evresindeki herkes ile grmeler yapacak, eitli anket formlar doldurtulacak ve mmkn olan en fazla bilginin elde edilmesi salanacak. Tm bu ilemlerin sonucunda MT bnyesindeki psikologlar ve nsan Uzmanlar ile (eminim vardr) toplanan bilgiler tartlacak ve kiiye bir rapor verilecek. Bu rapor kiinin yksek derecede sr tutabileceini, gvenilir olduunu, yksek gvenlik gerektiren ilerde alabileceini onaylayan bir rapor olacak. (kahkahalar duyar gibiyim, glmeyin bu iler yabanc lkelerde byle dnyor. Bkz. Security Clearance). MTG yapsnda programlanan bu programlar belli arayzleri sayesinde herhangi bir ticari paket programa tak-altr yntemi ile entegre olabilecek. Devlet tarafndan yazlacak bu modller tamam ile cretsiz verilecek ve her yazlm firmasnn bu modlleri kullanmas tevik edilecek veya zorlanacak. (Tamam biraz sert oldu ama kar evrelerinin cepleri boalmaya baladnda ne kadar atlak ses varsa su stne kacandan emin olun.) Programn kaynak kodu sadece 100 kiilik uzman programc takm ierisinde olacak ve hi bir ekilde firmalara verilmeyecek. Sadece yazlan modller, arayzleri aklayc bir dkman ile birlikte verilecek. Bankalar ve SSK/Bakur veritabanlar ile ilikili programlar olacak. SSK/Bakur prim demeleri direk banka hesabndan SSK yada Bakura yaplabilecek. Firmalarn SSK dedii alanlar hi bir ekilde kredi kart sahibi olamayacak onun yerine hesabndaki paray zgrce harcayabilecei bir kart olacak (Debit Visa). Maa demeleri otomatik olabilecek, alanlarn banka hesaplarna otomatik denecek ve irket muhasebe kaytlarnda otomatik olarak muhasebeletirilecek. alan hesabna yatan maan internetten zaten kontrol edebiliyor. Personel Bordro modllerinde tm bilgiler SSK veritabannda tutulacak ama Muhasebe taraf firma iinde bulunabilir. Tek bir muhasebe paketi olduundan maliye

Blogdan Semeler

34

mfettilerinin ii olduka kolaylaacak. Kontrol mekanizmalar iin kurulacak maliye mfettileri takm bu modlleri en ince ayrntsna kadar bilecek ve bir firma gz altna alndnda gerekli raporlar ok hzl bir biimde ortaya kacak. Yada her firma on-line olarak denetlenebilecek. eitli alt ve st limitleri aan firmalar annda olaya mdahale ile ortaya kabilecek, nedenleri aratrlp, zmler sunulabilecek. 10 kiilik matematik ekibi burada da devreye giriyor. e giri k gibi ilemler on-line olacandan ve SSK demeleri tam olarak yaplacandan hem devlet hemde sosyal gvenlik asndan bize yarar salayacaktr. e girilerde evrak yetersizliinden dolay SSKya ge kayt olma ortadan kalkacak, daha salkl ve dzgn bir ileyi ortam sunulacak. e giri klarda sadece yannzda tadnz bar-kodlu, ipli veya manyetik kodlu SSK kartnz Muhasebe blmne vermeniz yetecek. Geriye kalan tm evraklarn hepsi on-line olarak (ya u on-line kelimesine trke bir karlk bulmak gerek) bulunacak ve tekrar adliye, salk oca, muhtarlk, gibi makamlar bo yere megul edilmeyecek. Zaten Mernis Projesi ile balayan vatandalk numaras gibi olaylar bu tr alt yaplara hazrdr. Salk oca konusu ise yle halledilebilir. Salk ocandan alnan belgenin sresi alt aydr ve her alt ayda bir salk ocana gidilip kontrolden gemek gerekiyor. Bylece Salk oca veritabanlarnda her zaman gncel bir salk raporunuz olacak. Aslnda bu Salk Oca ayr bir proje olarak ele alnmas gerekir fakat SSK tarafnda yaplacak ufak deiikliklerle bu kaytlar SSKda tutulabilir. Yazlm firmalar muhasebe ve personel bordro paketleri ile uramayaca iin baka konularda kendilerini daha ok gelitirebilir, bu iki pakete harcanan kaynak ve zaman ile daha baka ilerde ok daha baarl olunabilir. Tabii bu arada gelitirme yaplacak ortamn tasarlanmas, MTG alt yapsna uygun aralarn seilmesi, bilgisayar alt yapsnn salkl ve yeterli olmas gerekiyor.Yazlan programlar cretsiz verileceinden gelir yokmu gibi grnyor fakat modllerin ortaya kmas ve kullanlmaya balanmas ile lkenin kazanaca geliri bir dnn. Vergi karma ortadan kalkm, gayri resmi tm ilemler yok edilmi, SSK demeleri tam olarak yaplyor. Bence srf stanbulda kullanlsa ve %50 civarnda bir kaak nlense, yazlan programlarn tm maliyetleri 2 sene iinde amorti edilir. Ondan sonrada devletin kaaklar nlemedeki bu baars kr yapmaya balar. leriye dnk ve uzun vadede kr yapacak bir proje fakat bir yerlerden balamak lazm. Gnlk politikalarla ve ynetimlerle bu ilerin olmad aikr.

35

Blogdan Semeler

Personel Bordro modlnde devlet tarafndan yaplan yasa deiiklikleri sonucu deien kurallar hemen uygulanabilecektir. rnein Nema uygulamas kalktnda, yasann kt gn herkesin bu yasay uygulamas salanabilir. Daha bunun gibi pek ok yasa karld gn uygulamaya konulabilir. Fena utum deil mi? Aslnda hi de deil. Siz buna umak diyorsanz bide benim teki projelerimi dinleyin. 3.2 Agile Modelleme Deerleri

evik Modelleme Scott W. Ambler tarafndan Extreme Programming deerleri gz nne alnarak gelitirilmi ve iine alakgnlln eklenmesi ile son halini almtr. Extreme Programming deerleri iletiim, basitlik, geribildirim ve cesaret deerlerinden oluur. evik Modelleme yazlm gelitirme asndan uyulmas gereken kurallar ortaya koyar ve destekler. imdi bu deerlere bir gz atalm: 3.2.1 letiim Projede yer alan herkes arasnda ok iyi bir iletiim olmaldr. Baarl yazlm gelitirme'nin birinci gereklilii budur. letiim, szlkte yazd kadar ile kiiler aras belli iaret, hareket veya sembollerle bilgi alverii yaplan genel sistemin addr. letiim iki yollu bir sistemdir. Her iki tarafta bilgi sunar ve kazanr. letiimde aksamalar ortaya ktnda problemler de ortaya kar. rnein, bir yazlm uzman kendi yazd blmn henz tam olarak bitmediini i arkadalarna sylememesi baka bir yazlm uzmannn bu problemi ortaya kartmak iin ekstra zaman harcamasna neden olabilir. Yazlmclar yazacaklar sistemin prototipini mteriye sunarlar ama mteri onun prototip olduundan haberdar deildir ve gerek sistemin hazr olduunu zanneder. Durup dndnzde modelleme ileminin aslnda iletiimi arttrmak ve gelitirmek iin yaptmz grrz. Mteriniz, pek ok i kuralndan oluan karmaik bir i yapsn anlatrken sizin mant anlatan bir veri ak emas izmeniz, ilemi anlamnz kolaylatracaktr. Genellikle, konu hakknda be dakikada cizeceiniz bir model, o konu hakknda 5 saat okumaktan veya tartmaktan cok daha fazla sey retecektir. Modelleme, kendi fikirlerinizin daha rahat anlalmasna, baka kiilerin fikirlerini daha rahat anlamanza ve en sonunda genel olarak tm i hakknda genel bir kan olumasna neden olur.

Blogdan Semeler

36

3.2.2 Basitlik Pek ok yazlm kitab basitlikten sz eder fakat ierisinde geen konulara ve metodlara baktnzda, yazlm gelitirme iini zorlatrdn grrsnz. Genellikle yaplan yanllar unlardr. Karmak yaplar erken uygulamak: htiya olmadan modellenen karmak yaplar, yazlm uzmanlarnn fazla mesai yapmalarna neden olur. Karmak yaplarn yava yava sindirilerek ve paralara blnerek modellenmesi ve en gerekli ksmnn ilk olarak yazlmas gerekir. Mterinize vereceiniz ilk srmde, hayati nem tayan modllerle ve en az hata ile ortaya kmalsnz. Gereklilikler ortaya ktka, mteri de ne istediini daha net grecek, belkide karmaik bir modl programlamaktan kurtulacaksnz. Gelecekte kullanlacak blmler iin fazladan modelleme/kodlama yapmak: u anda zerinde caltgnz bankaclk sisteminin, hayat sigortalarn destekleyebilmesi iin belkide sadece bir gnlk bir modelleme gerekiyor, Neden yapmayalimki? Evet, bu sistemi modellemek olduka zevkli olacaktr fakat yazlmnz bugn olduundan daha karmaik bir yapya sokmayacak m?Yada yazlm uzmanlarnz gelecekte olacak deiikliklere cevap verebilmek veya her istee cevap verebilecek en iyi yazlm yapma egosu ile ok fazla modelleme ve kodlama yapma eiliminde olabilirler. Mteri isteklerini anlayarak, olabilecek en basit, en verimli, en ucuz zm sunmak hedefimiz olmaldr. Yarnn problemlerini yarn zmeliyiz. Eger bugnden en basit zm zerinde alrsak, yarn yeni bir fonksiyon eklemeye kalktmzda elimizdeki sistem ok basit olacaktr. Karmak altyaplar gelitirmek: Proje ekiplerinin yapt genel hata ilk aamada gelecekte kullanmak zere gelitirdikleri modller, snf ktphaneleri ve iskelet yaplardr. Ama bu paralar lazm olduunda elimizin altnda olmasdr. Fakat bu amacn ciddi zararlar vardr. ncelikle mterinizin kaynaklarn, onlara elle tutulur bir ilk srm vermeden harcam oluyorsunuz. Mteriniz sizden baz ilerini kolayca yapabilecei bir sistem istiyor fakat sizin ilk verdiiniz ey hata-yakalama alt yaps. Projenizi, hzl ve kullanlabilir bir fonksiyonellik sunmadnz iin riske atyorsunuz. Ayrca hatayakalama gibi alt-sistemleri projenin gidiat ierisinde zamanla da gelitirebilirsiniz. Sadece ihtiyacnz gerekten ortaya ktnda. 3.2.3 Geribildirim Yaptnz iin doru olup olmadn anlamann tek yolu farkl kiilerin gelitirdiiniz sistem stnde test yapmalar ve sonular paylamanzdr (geribildirim). Testi yapan kiilerden sonular doru

37

Blogdan Semeler

zamanda alp sebeplerini ksa zamanda bulmak ok nemlidir. Analizler sonucu ortaya kan modellerinizin doru olup olmadn ancak bu ekilde anlayabilirsiniz. Modellemeyi takm halinde yapn. Yazlm gelitirme ii yzme gibi deildir. Tek bana yapmak tehlikelidir. Dier kiilerle beraber altnzda sonulara daha hzl ular, problemlerin sebeplerini bulmak iin zaman kaybetmemi olursunuz. Modelinizi doru kiilerle inceleyin. Modellediiniz iin, o iten anlayan kiilerle birlikte incelenmesi gerekir. En gzeli modelleme srasnda bu kiilerin iin iinde olmasdr. Gereksinim modelleri son-kullanc ile beraber yaplmal, detayl tasarm modelleri ise programlamay yapacak kiiler ile yaplmaldr. Resmi toplantlar halinde dzenlenmesi ve proje banda ayda veya haftada bir yaplmaldr. Eer bu mmkn deilse (organize etmesi zaman alr)gayri resmi hzl toplantlar ile yaplacak incelemeler modellerinize ok eyler katabilir. Modelin uygulanmas. Eer hi bir ekilde bir toplant ayarlayamyorsanz, modelinizi dorudan koda dker ve ilk srmden sonra gelecek sonular beklersiniz. nemli olan testlerin zamannda yaplabilmesi ve hatalarn hzl olarak sebeplerine ulaabilmektir. Kabul testleri. Esas olarak modellerinizin mteri isteklerini yanstyor olmas gerekir. Mteriniz kabul testleri srasnda bu isteklerini deerlendirir ve geri dnen hatalar ile gene modellerinizi test etmi olursunuz. Geribildirim olaynda zaman kavramda ok ilgintir. Bir takm halinde altnzda, geribildirim saniyeler yada dakikalar iinde olabilmektedir. Gayriresmi toplantlarda ise geribildirim dakikalar yada saatler alabilmektedir. Resmi toplant geribildirimleri toplant srasnda gelsede zaten organize etmesi haftalar, aylar alabilmektedir. Uygulamay yapp ilk srm verdiinizde geribildirim saatler yada gnler iinde olur. Kabul testlerinden sonra geribildirim bir ka hafta yada ay ierisinde gelir. Zaman ne iin nemlidir? nk ksa zamanda gelen geribildirim, sizin modellerinizden sapma olaslnz drr. Takm halinde almann en byk yarar geribildirimlerin hzl olmasdr. Yada kat zerinde mkemmel grnen modelin kodlanmas ve ilk srmden sonra gelecek geribildirimlerin ilenmesi de metod olarak dnlebilir. 3.2.4 Cesaret Arkanza rahata yaslanp genel durumu kabul etmek ve bir eyleri gelitirmeyi, dzeltmeyi denememek yada birisinin ka gelip hatalar dzeltmesini beklemek ok kolay bir itir. BT endstrisinin bugnk aksayan taraflarnda cesaretsizliin byk pay vardr. evik Metodolojisi size dier insanlarla

Blogdan Semeler

38

beraber almanz, onlara gvenmenizi ve kendinize gvenmenizi tler. Bu cesareti arttrr. XP veya evik Modelleme, yapabileceiniz en basit modeli yapmanz syler, nk yarnn problemlerini yarn zmek gerekmektedir. evik Modelleme, gerekten dkmantasyona ihtiyacnz olduunda dkman yaratn der. Beyaz tahta yada not defteri gibi en basit aralar kullanarak modelleme yapmanz tler. Karmak yazlm aralarn ancak olabilecek en yksek yarar elde edebileceiniz zaman kullanmanz tler. Modelerimizin daha iyi grnmeleri iin zaman harcamamz tler. Birlikte altnz kiilere gvenmenizi, yazlm uzmanlarnnda tasarm aamalarnda karar verebileceini syler. Tm bu sylediklerimizin hepsi cesareti arttrr. Cesaretli ekipler, denemekten ve yanlmaktan korkmaz. Sonulara daha hzl ulalr ve kat edilen yol daha uzun olur. Dnn, firmanzda Modul Tabanl Analiz ve Gelitirme kurallarn uygulamak istiyorsunuz fakat endieleriniz var. Seim iin cesaret gerekir. Her iin her sektrn belirli riskleri vardr fakat risklerden kamak olsa olsa daha byk risklere yakalanmanza neden olur (yamurdan kaarken doluya tutulma kural). Cesaretli olmak sizinde hata yapabileceinizi anlamanza yardmc olur. Denemekten, yanlmaktan ve deneyim kazanmaktan korkmayn. 3.2.5 Alak Gnlllk En iyi yazlm uzman her eyi bilmediini kabul edecek kadar alak gnll olandr. Gelmi gemi en iyi Java yazlmcs olabilirsiniz fakat her bir Java API'sinin detaylarn tek tek bilmiyor olabilirsiniz. ok iyi Java bilmeniz, ok iyi arayz tasarmlama yada mkemmel veritaban tasarmcs yada en iyi mzisyen olduunuz anlamna gelmez. Sadece ok iyi Java bildiiniz anlamna gelir. ok iyi Java bilmeniz, yeni balayan raklardan hi bir ey renemezsiniz anlamna da gelmez. evik Modelleme ve programlama yapan kii proje ekibindeki herkesin bir uzmanlk alan olduunu bilir ve ancak dier kiilerin yardm ile kendi ilerinin baarl bir biimde biteceini grr.Alakgnlllk, dier kiiler ile birlikte almay imkan dahilinde klar. evik Modelleme yapan kii dier proje elemanlarnn farkl deneyimlerinin olduunu, kiisel pek ok farkllklar olduunu bilir ve sayg ile hareket eder. Patronlar "yksekte oturan kargalar", son kullanclar "aptal kullanc", dier departmanlar "kafay yemi" olarak deerlendirmek iletiim problemlerine yol aar, iletiimsizlik projenizi sekteye uratabilir. Zaman ve kaynak kaybndan baka bir ey olmad sizde gryorsunuz.

39

Blogdan Semeler

3.2.6 Bu Yaznn Amac Burada anlatlan modelleme kltr CBD, UML ve eXtreme Programming ile analiz ve modelleme yapan projeler tarafndan benimsenmeye balamtr. ok yeni olmas nedeni ile tamamen gelitirmeye ve deitirmeye ak bir konudur. Bu yazy Scott W. Ambler'in Agile Modelling (ISBN 0-471-20282-7) isimli kitabndan, sizin bu konular duymanz salamak ve hafzalarnzda birer k yakmak amal olarak evirdim. Bir ka yararl link: http://www.xprogramming.com/ http://www.extremeprogramming.org/ http://www.ambysoft.com/ Scott Ambler'in web sitesi 3.3 Dncelerim

Otobsle ie giderken hep fantastik dncelere dalarm. Program yazmann geleceini, bugn emekleme aamasnda olan teknolojilerin ileride nasl olacan tahmin etmeye alrm. Yeni kan Microsoftun a hizmetleri veya Sun Microsystemsin Java teknolojileri gibi sistemler yazdmz programlarn farkl platformlar zerinde alabilmelerini salyor. Ayrca farkl teknolojiden sistemlerin ortak dillerle konutuunu ve veri alverii yaptnada tank oluyoruz. Yazdnz programlardaki fonksiyonlar zaten bakalar tarafndan biryerlerde yazlm ve sizin kullanmanz bekliyor. Bir gn gelecek ve program yazmak artk ema izer gibi mevcut a hizmetlerini yada java bean programlarn birbirlerine balamaktan ibaret olacak. Kullandnz yazlm arac rtba zerinde mevcut her webservicein veya java-beanin yerini ve nasl kullanlacan gsterecek ve ayrca bu iki sistemi birbirine balamak iin gerekli kodu da ara kendi retecek. Siz sadece ematik olarak modlleri birbirine balayacak ve ortaya sadece bir ka fonksiyon aran ve geri dnen hata mesajlarn derleyen bir program kacak. rnein zel bir firma iin hayat sigortas modl yazyorsunuz. Hizmetlerini kullanacanz birimler SSK, Nfus mdrl, dier sigorta firmalar, bankalar ve yabanc lkelerin sosyal gvenlik birimleri. Kullandnz yazlm arac tm bu birimlerdeki kullanlabilir modlleri gsteriyor. Hayat sigortas iin gerekli mteri bilgilerini SSKnn sunduu a-hizmetinden alp kendi veritabannza kayt edeceksiniz ve kiinin dedii tm SSK primlerinide SSK fonlarndan alp zel irketin fonlarna aktaracaksnz, bu arada da kiinin dier bir zel sigorta firmasndaki tm sigorta bilgilerini kendi

Blogdan Semeler

40

tarafnza alacaksnz tabii dedii primleri de. Nfus mdrlnn hizmetlerini kullanarak kiinin ailesinde bir hastalk varm aratracak ve denecek primleri ona gre otomatik ayarlayacaksnz. altnz bankann servislerini kullanarak para transferleri gerekletireceksiniz. Modllerini kullandnz birimler sunduklar hizmetin cretini otomatik olarak firmann hesabndan trasfer edecekler. Yabanc lkelerin sosyal gvenlik modllerinden kiinin yurt dnda alma gnlerini ve dedii primleri grp kendi primlerinizde parametre olarak kullanacaksnz. Tm bu sistemi yazmak (modelleme + yazlm) 1 gnnz alacak. Kat, mrekkep, i gc kayb, gibi masraflar ortadan kalkacak ve evre korunmu olacak. Bu bir avantaj ama her trl bilginin sanallatrlmas ve tm sistemin bilgisayar ortamna sokulmas da bir dezavantaj. Bir firmay yada lkeyi ortadan kaldrmak istediinizde sunucularn uurmanz yeter. Tm bilgi sanallatnda orjinalliide bozulabilir. rnein tm tarihi bilgiyi sanal ortama kaydettiimizi dnelim. oklu ortam -ses ve grnt ile- renilebilme kapasitesi olduka artar fakat deitirilebilmesi ok kolay olacandan, bilginin orjinalliini korumas ok zor hatta imkanszdr. Ancak tek bir yolla bilgi bozulmayabilir. yi bir bilgi koruma algoritmas ile. Kuran- Kerimin ifrelendii 19 saysn duymusunuzdur. 200e yakn farkl yolla yaplan hesaplamalarn sonular hep 19un katlar olmaktadr. Bylece ierik zerinde oynama yapldnda kolayca anlalmaktadr. Buradan yola karak bilginin hem herkes tarafndan kolayca ulalabilmesini hemde deimeden hayat srecine devam edebilmesini salayacak ifreleri gelitirebiliriz. PGP gibi programlar ile bilginin ieriini ifrelemiyoruz sadece bilgi iine yerletirdiimiz baz kelimeleri veya harfleri sayarak elde edeceimiz sonularn doruluunu karlatryoruz. Var m byle bir program yazacak bir arkada. te size ok gzel bir proje. nsan ilikilerinin dier lkelere gre daha yakn ve samimi olduu lkemizde bu tr bir sanallama pek mmkn gzkmyor. Gzkmesin de. Ben rtbandan al veri yapmay hi sevmem. Zaten yapamamda nk kredi kart kullanmaya karym. rnein bir gitar alacaksam, gitar satan dkkanlar bir gezmek ve beendiklerimi almak isterim. Dkkan sahibi ile oturup bir ay imek ve gitar hakkndaki grlerini almak isterim. Bir ka tane reklama kanpta kafamda belirli bir marka yada model ile yola kmam yani. Bu kadar sosyallemeyi monitr karsnda yaayamayacam iin sanal alverii tercih etmem. Bence firmalar sanal alveri sitelerine harcadklar yatrm elemanlarna ve dkkanlarn gelitirmeye harcasalar daha fazla kazanrlar. Bu kadar konuuyorsun da sende bu meslein iindesin dediinizi duyar gibiyim. Bu dzen ierisinde yayoruz ve dzenin gereklerine gre hareket etmezsek elde edeceimiz deneyim azalr.

41

Blogdan Semeler

Tapnaklara kapanp dnya malndan elini eteini ekip ruhunu Allaha erdirebilirsin ama nemli olan bu sava ehir hayat iinde otobsle ie giderken vermek. Durak geldi ben iniyorum. 3.4 Programlamaya Yeni Balayacaklara

Merhaba, bu yazmda sizlere temel konulardan bahsetmek ve programlamaya yeni adm atacak arkadalar iin yol gsterici olacak bir ka fikirden sz etmek istiyorum. Amacm yeni balayan pek ok kiinin sorduu sorulara cevap vermek ve cesaretlendirerek yollarna devam etmelerini salamaktr. 3.4.1 Programlama Dili Seimi Nasl tek bir dil bilmek yetmiyorda insanlar ngilizce, Almanca greniyorsa bilgisayar dnyasnda da tek bir dil bilmek yetmiyor. Gnmz programlama ortamlarnda farkl dillerle yazlm paralar beraber alstrabilmek mmkn olduu iin, en az iki programlama dili bilmeniz iyi olur. Dilinizi seerken soracanz sorular: 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. veriyor. 13. Ne kadar para harcamay dnyorsunuz? rnnz birden fazla iletim sistemini destekleyecek mi? rnnz web, istemci/sunucu, tek bana calabilecek biimde tasarm edilecek mi? rnnz en son yazlm tekniklerini ve teknolojilerini uygulayabilir mi? Kullanmay dsndnz veritabanlarn destekliyor mu? Yazlm arac/dili iin eitim verecek kurulu var m? Diploma, sertifika veriliyor mu? Dnyada baka kimler kullanyor? rtbanda arama yaptnzda ka tane sonu dnyor? bulma sitelerinde, sizin dndnz yazlm arac/dili ile ilgili ne kadar i ilan var. rnnz dnya genelinde satmay dnyor musunuz? Ara/dil bu tasarma izin veriyor mu? Yazlm arac/dili reten firma ile birlikte baka hangi firmalar bu araca/dile destek

Buradaki aratrmalarn hepsini Trkiye apnda deil dnya apnda yapn. En son srmleri ve teknolojileri satn almaya bakn. kinci dil ile ilgili olarak tamamen kart bir firma/teknoloji sein. Mesela VB ve Delphi, Java ve C++, C# ve Perl, PHP ve XML vs. letim sistemini de deitirebilirsiniz. Mesela Linux/Kylix ve

Blogdan Semeler

42

Windows/C++, Unix/Python ve Windows/XML, Linux/PHP ve Windows/HTML vs. Listeleri uzatmak mmkn. 3.4.2 Nasl Balanr Dilinizi setikten sonra ilk yapacanz i, ortama olan gz alkanlnz kazanmak iin menlerde ve ekranlarda gezinmeniz olacaktr. Burada ortam dedigimiz programlama yaptnz dilin arayz olan IDE (Integrated Development Environment, Tmleik Gelitirme Ortam) hakknda bilgi sahibi olmak ve menlerde ne nerede bilgisini oluturmaya alyoruz. Eer ngilizce biliyorsanz menler zerindeyken F1 tuu ile yardm alabilir ve ne ie yaradn renebilirsiniz. Bundan sonra baslang seviyesi kitaplar ile yola karak adm adm dili renmeye balarsnz. Kitap diinda denemeyanlma yolu ile kk projeler yapp, dilinizin nelere imkan verdiini grenebilirsiniz. lk balarda cok fazla zaman harcayarak mmkn olan her eyi deneyin. Belli bir seviyeye geldikten sonra, belli konular daha derin renmeye balarsnz. Dili biraz grendikten sonra branlama iin, veritaban, donanm, sistem, ticari programlama gibi konulara eilebilirsiniz. 3.4.3 Kitaplar Her yeni balayana tavsiye ettigim yazarlar, hsan Karaglle, Memik Yank, Zeydin Pala dnda kullandnz dilin reticisinin kitaplar yada 3. parti firmalarn kitaplar ok yararl olabilir. lgilendiiniz konularda referans kitaplarnzn bulunmas ve ihtiyacnz olduunda konu balklarn kullanarak yardm almanz ok iyi olur. Eger merkezlere uzak yerlerde oturuyorsanz rtba zerinde sipari verebileceiniz yerler olduka fazla. Aldnzn kitaplarn yayinevlerinin sitelerinden kitapla ilgili dzeltmeler var m kontrol edin. Kitaplarn pek ouna pdf formatnda da eriebilirsiniz. Benim tercih ettiim bir yntem nk yerden tasarruf salyor. 3.4.4 rtba zerinde E-posta listeleri ok yararldr ve teknolojileri gnlk takip etmenizi salar. zellikle Microsoft, Rational, IBM, CA, Inprise gibi byk firmalarn gazete e-postalarna ye olmanz tavsiye ederim. Bu sayede yeni rnler ktnda veya seminerler olduunda hemen haberiniz olur, ayrca gidip bu firmalarn sitelerinde debelenmekten kurtulursunuz. Haber sunucular, programlamaya zel siteler'de iinizi grr. nemli olan bir ekilde teknolojileri takip etmek ve gncel konulardan haberdar olmak. Yahoo, Google gibi sitelerin gruplarna da bakabilirsiniz. Hangisinde daha fazla ye ve mesaj varsa ona ye olun.

43

Blogdan Semeler

3.4.5 Teknolojiler Setiginiz programlama dili ile son teknolojileri uygulamak mmkn m? Fazla kod deiiklii yapmadan hem internet ortamn hem istemci/sunucu yaplarn destekleyebiliyor musunuz? Yada daha da nemlisi setiginiz dil ile, bitmek tkenmek bilmeyen mteri isteklerine cevap verebilecek misiniz. Platformlar aras veri alverii konularna destek veriyor mu? Hangi veritabanlarn destekliyor? Yada sizin istediiniz veya kullanmay dndnz veritabann tam olarak destekliyor mu? Teknoloji demekle neyi kastediyoruz. ActiveX, SOAP, COM, DCOM, COM+, .NET, Web Services, RMI, IIOP, TCP/IP vs. gibi pek ok metod bahsettigimiz teknoloji alanna girer. Setiginiz dil ile bu teknolojilerden bazlarn desteklemek istiyor musunuz? 3.4.6 Analiz Program yazarken kullanacanz analiz metodolojileri en az kodlama yapmak kadar nemlidir. ster yolun banda bir programc aday olun ister programlama konusunda uzman olun metodoloji ve o metodolojiyi doru uygulamak ok nemlidir. yi yazlm, iyi bir analiz ile balar. Analiz sizin programnzla neler yapacanzn ve mterinin problemlerine nasl zm getireceinizin bir tasladr. Analiz i senaryolarnz ortaya karmanz ve mteri isteklerine daha iyi cevap vermenizi saglar. Analiz Metodolojileri nelerdir? rnein Modl Tabanl Analiz (CBD, Component Based Development), Nesne Tabanl Analiz (OOA, Object Oriented Analyse), Unified Modelling Analiz (bunun Trke'sine UM Analiz diyelim, pek iyi olmad ama!), eXtreme Programming (Yazlm dnyasnda XP olarak biliniyor fakat Windows XP ile kartrmayn). Bu metodolojileri doru biimde projelerinizde uygularsanz verimlilik ve zamannda yetitirmek asndan pek sorununuz olacan zannetmiyorum. Yukarda bahsettiim konular tek tek aklayan makaleler de yazacam. 3.4.7 Dzenli alma Kendinize bir hedef vermeden bilgisayarn bana oturmayn. Hedefinizi belirleyip ona gre yol aln. Projelerinize hep bir isim verin ve anlaml bir isim verilmi bir dizine kaydedin. Formlarnzn isimlerini ve balklarn muhakkak deitirin. Bu sayede farkl formlar farkl projelerde kullanmak istediinizde isim akmalar olmaz. simlerden formlarnzn ne ie yaradn kolayca anlayabilirsiniz. Her yiidin bir yourt yiyii olduu gibi yazlm gruplarnnda uyulmas gereken kurallar vardr. Bir yazlm firmasnda almaya baladnzda, ilk yapacanz ey firma standartlarn renmektir. Bu sayede ekip ii bilgi ali verii hzl ve kesin olur.

Blogdan Semeler

44

3.4.8 Dkmantasyon Yaptnz almalar, ufak projeleri ksacas ileride kullanabileceiniz her kod parasn yazya dkn ve ne ie yaradn, nasl caltn, amacnn ne olduunu ister kodun iine yorum satr olarak, ister bir Word dosyasna yazarak saklayn. Hangisi pratik geliyorsa. Bu tr bir alma ileride bir kod parasna ihtiyacnz olduunda kolayca bulmanz salar. 3.4.9 ngilizce Kaynaklar Yabanci dil bilmek pek ok konuda iimize yarad gibi, programlama konusunda da iimize yarayacaktr. Fakat yle sular seller gibi bilmeye veya konuurken aksanl konuucam diye azmz burnumuzu bkmeye gerek yok. Sonuta bizler Trk'z ve konuurken yabanc olduumuzun anlalmasda gayet doal ve gereklidir. Yabanc dil bilgimiz, konumuzdaki yabanc yaynlar takip edecek ve derdimizi anlatabilecek kadar olsa yeter. Bu nasihatlerden sonra gelelim yabanc yaynlara, rtba zerinde bir arama ile pek ok yayna ulaabilirsiniz. Bunlarn dnda Microsoft yaynlar ve kitaplar, Wrox yaynevinin kitaplar, Visual Studio ile gelen MSDN (Microsoft Developer Network, Microsoft Gelitirici A) tkzlar ok iinize yarayabilir. Inprise rnleri ile birlikte gelen yardm dosyalarda ok yararl olabilir. Ek olarak firmalarn sitelerinde her zaman deneme srmlerinin tkzlarnn adresinize postalanmas iin gerekli formlar bulup doldurabilirsiniz. Ayrca pek ok teknik dkman, gerek projeleri, egitimle ilgili yazlar bilgisayarnza indirebilirsiniz. Firmalarn Trkiye temsilciliklerinden birer balantya sahip olmanzda iyi olur. 3.4.10 Kurslar

Kurslarn piyasa tarafndan tannm ve verdikleri sertifikalarn dnya apnda geerli olmasna dikkat edin. almalarnzn kurs ile snrl kalmamas iin, evinizde de baz projeler gelitiriyor olmanz gerekir. Trkiye'de ou byk ehirlerde pek ok kurs mevcut. Kurs ile birlikte evrenizde oluacak arkada grubu iyi bir ynlendirme ile birlikte iyi projelere imza atabilir. Unutmayn evrenizdeki grup ileride i arkadalna dnebilir. 3.4.11 Amatr Ruhu

Hangi ile urayor olursanz olun, dnyann en kt eyi, ugratnz alanda her eyi bildiinizi iddia etmek olacaktr. te bu tr adamlardan uzak duracaksnz. Hayat zaten kendi iinde bir okul bizlerde bu okulun grencileriyiz. Her zaman renecek yeni eyler olacak. Bazen hi ummadniz bir raktan bir eyler kapabilirsiniz. Yada artk kendinizi programlama hakknda ermi olarak grdnz anda bir rak kp algoritmalarnzn yle yle yaparsanz daha hzl alacan sylemesi sizi yerin

45

Blogdan Semeler

dibine sokabilir. Ne yapmak gerekir, ra karnza alp teoremleri hakknda konuursunuz ve sonuta gerekten haklysa dediklerini uygulayp dersinizi alrsnz. Daha sonra bu dersi baska raklara aktarmak zere tabii. grenmekten ve doru bildiiniz eylerin aslnda yanl olduunu anladnzda deitirmekten ekinmeyin. Yanllar bulan kiileri tebrik edin ve daha fazla yanl bulmalar iin ynlendirin. Ancak bu ekilde ilerleme kaydedebiliriz. 3.4.12 Ben Neler Yapyorum

Gelelim bu kadar bilgiden sonra ben bunlar ne kadar uyguluyorum. Dil olarak seimlerim VB.NET ve C#. Bunlarla birlikte XML ve SOAP, Web Services gibi teknolojileri renmeye alyorum. letim sistemi olarak, Windows ve Red Hat Linux ortamlarn setim. Web Sunucu iin Linux zerinde Apache Web Server, Windows zerinde IIS kullanyorum, bir yandan ASP.NET ile taklrken dier yandan Linux zerinde Java Bean ve EJB nasl yaynlanr aratryorum. lerde Java dilini de orenme planm var. Veritaban olarak Linux/IBM DB2 ve Windows/SQL Server kullanmaya alyorum. UML, OO, CBD metodolojilerinde de calmalarm var. Ara olarak, Rational, CA, Microsoft, IBM, BEA rnlerini kullanyorum. Tabii ki tek bilgisayar yetmiyor. En az 3 adet lazm, bir tanesi ift iletim sistemli ve hepsi a ile birbirine bal. Bilgisayarlardan birini pten buldum. Sizde byle bir sistemi bir ka arkada birleip kurabilirsiniz. Birde rahata girip ikabileceiniz bir oda buldunuz mu, i proje bulmaya kalyor. Mahallenizdeki esnaf ile hi bu konular konutunuz mu? Toplumumuzun gelimesi ve yeni eyleri grenmesi birazda size bal. Mahalle esnafna bilgisayardan ve zel yaplmis programlarn yararlarndan bahsettiniz mi? E-posta, internet, iletim sistemi gibi konularda onlar bilgilendirmeyi hi dndnz m? Biraz da misyonerlik gibi bir greviniz var aslnda. Etrafnzdaki insanlara bildiklerinizi aktarmay hi dndnz m? 3.4.13 Sonu

Yukarda anlattm yntemler her yazlmcnn alet antasn gelitirmesi iin ok gzel yntemler. Fakat nasl evinizde bir tamirata giritiinizde alet antasndaki her arac kullanmyorsanz, yazlmc olarak alet antanz da o ekilde kullanacaksnz. reneceiniz her bilgi alet antanzda yerini alacak ve yeri geldiinde karp kullanmaktan ekinmeyeceksiniz. Bu arada aletlerinizde gelimeler de olabilir, zaman ierisinde bazlar yok olabilir. nemli olan srekli devinim iinde grenmeye ve gelimeye ak olmaktr.

Blogdan Semeler

46

3.5

Extreme Programlama

Her yazlm gelitirme metodu temelinde kullanlabilir, hatasz ve mteri gereksinimlerini tam olarak karlayan bir rn retebilmek iin ortaya kmtr. Bir bakma dinler gibi hepsi temelinde iyiye ve doruya yneltmeye alr insanlar ve bu yolda uygulanmas gereken bir dizi kuraldan bahseder. Yazlm gelitirme metodlarnda sonradan eklenen eitli yntemler ile metod artk takip edilmesi ve renmesi zorlam bir hal alr ki bu da projelerin uzamasna ve onaylama mekanizmalarnn ok zaman almasna neden olur. Neyseki din deitirmek kadar kat olmad iin kullanlan metodu degitirebilir veya farkl metodlarn eitli ksmlarn bir araya toplayarak yeni bir olgu yaratabiliriz. Yaps oturmu bir firmada metod deitirmek zor olacaktr. Ve heleki ya ilerlemi ve firmada masa, sandalye gibi demirba listesine girmi elemanlar varsa iiniz daha da zor. Kendi istedikleri olsun da patrona en ok ben biliyorum gibi gzkeyim konusundan baka dertleri yoktur bunlarn. Birde tabii adamn dinini deitirmek istiyorsunuz bir bakma. Yllardr takip ettii ve yazlm gelitirdii metodu deitiriyormu gibi gelecektir ona. Aslnda farkna varsa sadece ufak eklentiler olduunun, her ey daha da kolay olacak. Birden bire yazlm gelitirme metodunu deitirmek istediinizde direnilerle karlaabilirsiniz. Bunun iin ufak paketler halinde deiiklikleri sunmal ve ie yaradnn ispatn dier alanlara kantlamalsnz. Eski metodun bir ksmn tamam ile deitirmek yerine (yada en azndan bu cmleyi kullanmak yerine) deiiklikler ile gncellemek daha iyi bir yntem olacaktr. Yaplan iin ismini ayn brakn fakat ileyiini deitirin. Getirmeye altnz metodun ismini ise kesinlikle kullanmayn. Ben burada Extreme Programming metodunu uygulayacam artk derseniz batan kaybedersiniz. Bunun yerine sebep sonu yasasn kullann. Eger sebepler metodu deitirmeniz iin bir sinyal veriyorsa, ileyii deitirip sonularnda yaplan kara bakn ve daha iyi bir metod olduunu herkese kabul ettirin. Extreme Programming ismi kulaa uzaydan dme bir isim gibi gelsede ierik olarak uygulanan metodlarn gnmzde kullandmz metodlardan pek fark yok. Bir miktar da insann kendi zverisi ile zaten uygulad eyler. Bu tip mevhumlar gretemezsiniz zaten, insann kiiliinden gelen eylerdir. Ama grsel olarak uygulayabileceiniz pek ok XP yntemi mevcuttur. Narsistlik yapp sadece kendini dnen kiiler olacaktr. Onlara hak da veriyorum nk kendilerini satabilecekleri tek hnerlerini dierlerine gretmesini istiyorsunuz. Kiinin aklna acaba

47

Blogdan Semeler

ilerde beni utlayacaklar m? sorusunu sokar ki bu kii hi almasa daha iyi olur. Verdiimiz eylerden daha ok aldmz eyler ile ilgilenip daha fazla nasl gelitirebilirim diye dnmemiz lazm. lerleme ancak bu ekilde olur. Ama zor bir yoldur. Neyse biz konumuza dnelim. Anlatacam bir ka XP metodunu ben deneyip grdm ki gerektende yazlm gelitirme aamasnda ie yaryor ve hzl bir biimde sonuca ulatryor. Aslnda eski metod da hakkyla uygulandnda sonuca ulailabilir fakat insanolu yaayan bir organizma ve bir sre sonra rutin ilerden sklmaya balyor, stelik bir de yaplan i pek ok kontrol gerektiriyorsa ve bunu yapmasak ta olur gibilerinden suistimale aksa hi bir zaman hakkyla uygulanmyor. Bizim amacmz yaplan ii basitletirmek veya paralara blerek yapmak. 3.5.1 Benim Hikayem Bu blmde benim bamdan geen bir durumu aktaracam. Uzun gelirse buradan sonrasn okumanza gerek yok. rn destek blmne ilk getigim zaman bir baboluk sezinledim. Proje bitmis ve ben tek bama rnden sorumlu olarak tayin edilmitim. Bana yardmc olacak bir eleman verdiler fakat bu kiinin konu ile yakndan uzaktan alakas yoktu. Brakn olayn ileyiini programclktan anlamayan bir kii idi. Byk problemin farkndaydm fakat proje mdrm farknda deildi ve bana verilen kiinin ksa zamanda benimle ayn seviyeye kmas bekleniyordu. Burada ncelikle kabul edilmesi gereken planlarn uzayacadr. Proje mdrn ve bana verilen arkadai karma alp bir toplant yaptm. Ben tm bildiimi aktarsam bile rn destekte problemlere zm bulmak zaman alacaktr bu arkada iin, nk yeterli alt yaps yok. Bunu kabul etmeleri 2 saat aldi fakat kabul ettiler. nsanolu baz tmsekleri grmezden gelir ya bu da yle birey. Benim esas problemim hem i akn hemde programclk konusunu bana verilen arkadaa nasl anlatmam gerektii. Problemi paralayp zmek iin programclk konusunu eitimin dnda tutmaya karar verdim. Dnecek olursanz sizinle ayn seviyede alan birinin en az sizinki kadar bilgiye sahip olmas gerekir. Bu yzden arkadaa baz kurslar tavsiye ettim, proje mdr de onaylarsa kurslar cretsiz alabilecek. Ben, sonu olarak programclk retmek iin burada almyorum. 3.5.2 Model Duvar ncelikle tm sistemin ileyi emasn byk katlara izerek duvara astm. Tm kutular isimlendirip anlattm. Tabii ilk anlatmda ancak %25 orannda bir bilgi hafzada kalr. Daha fazlas iin

Blogdan Semeler

48

tekrar gerekir. emalar duvara asmam iyi oldu; problem olduunda hemen ilgili kutuyu gsterip anlatabiliyorum. Genel emalar dnda snf yapsn ve veritaban yapsn da duvara astm. Bylece emalar arasnda balant kurarak anlatabiliyorum. Bir resmini ekip burada gstermek isterdim fakat yasa gerei gstermiyorum. Burada kullandm 3 eit model tipi var. Birincisi sistemin ileyii ile ilgili olan Nesneleri Modeli. Bu modelde hem bizim sistemin i yaps hemde dier sistemlerle olan balantlar yer alyor. Genel yapy ku bak grmek iin ideal. kinci model Snf Yaps. Kendi sistemimiz iinde kullanlan tm snflar sahalar ve metodlar ile burada gsteriliyor. nc model ise Veritaban Modeli. Bunda da veritabannn yaps ve tablolar aras ilikiler ile hangi stored procedure hangi tabloya eriiyor gibi bilgiler var. 3.5.3 Sk Srmler Verebilmek kinci olarak tm projeyi derledim. Daha nceki srmlerde sadece deien ksm paketleyip kullanclara gndermiler. Fakat tm projenin derlenebiliyor olmas gerekir. Visual Source Safe eriimlerini kapatp tm projeleri indirdim ve derleme yaptm. Derleme srasnda hatal modller ve eksik modller ortaya kt bunlar temizlemek iki gn aldi. Daha nce NT4 zerinde derlenmi ve MTS nesneleri eski idi, tm bunlar yeni COM+ karlklar ile deitirmem gerekti. Tm projeleri derledikten sonra test ekibinden test etmelerini istedim, bu arada bulduklar hatalarda dzelttim. Sonu olarak eskisinden daha hzl alan ve tamam derlenebilen bir rne sahip olduk. Artk kk srmler halinde projeyi derleyebiliyorum ve her ay yeni bir srm kullanclara gnderebilirim. 3.5.4 Vss Organizasyonu VSS organizasyonu ok kt yaplmt. 45 adet ufak projeden meydana gelen bir istemci uygulamas, 18 COM+ uygulamas ve 4 adet srekli alan daemon uygulamas var. Fakat derleme srasnda hangi dllin hangi projede kullanldn anlatan bir belge bulamadm. 45 projenin her birini tek tek VB ile aarak References ksmndan hangi dll veya ocxlere eriim yapldni yazdm. Daha sonra her projeyi numaralandrarak bir derleme sras oluturdum. rnein: 01-ErrorLog 02-DbAccess 03-BRCheck

49

Blogdan Semeler

Bu srada derleme yapldnda proje sfrdan derlenebiliyor. VSSde de proje isimlerini deitirdim. Bylece her bakan bu srann ne olduunu tahmin edebilir. lk bata var olan Development, Test, Production gibi VSS dizinlerini de teke indirip hepsini bir dizin altnda topladm. Anlamyorum neden byle bir yola bavuruyorlar. VSS zaten eski srmleri tutuyor birde 3 farkl dizin ap her eyi tekrar ediyorsun. Tamam ile gereksiz bana gre. Etiketleme diye bir ey var. Eski srmden bir dosya istiyorsan History ksmndan indirebilirsin. VSS iin yaptm diger bir olay ise Shadow dizinleri. Shadow dizinlerini kullanarak en son srmn sabit disk zerinde bir dizine toplanmasn saglayabilirsiniz. Bunun iin srcsafe.ini dosyasna asadaki satrlar eklemek gerekiyor. Admin aracndan da yapilabilir; Tools-Options mensnden Shadow Folder sekmesine gideceksiniz. Keli parantez iindeki ksm kopyasn almak istediiniz VSS dizini. Benim 1-Builds olarak adlandrdm dizin 45 ufak projenin exelerinin Share edildii dizin. Bir projenin exe dosyasn sag klik ile tayp baka bir dizin zerine braktnzda bir men greceksiniz. Burada Share seerseniz, o dosyann bir kopyas bu dizinde de var olacaktr ve siz projeyi zerinde deiiklik yapp VSSe geri yolladnzda bu Share edilmi dosya her iki dizinde de gncellenecektir. NAnt gibi bir lksmz olmad iin bu yolla projenin exe, dll, ocx gibi ktlarn bir dizinde bu sekilde toplayip daha sonra Shadow yntemi ile VSS dnda normal bir dizine atabiliriz.

[$/1-Builds] Shadow = \\Yoda\Builds Shadow_SetTime = Current Shadow_SetTime iin 3 adet deger var. bunlar Current, Mod ve Update. Ne zaman projeyi VSSe geri yollarsanz bu Shadow dizinindeki ilgili dosya da gncellenecektir.

Blogdan Semeler

50

Tahmin edeceiniz gibi veritaban da VSSde mevcut deildi. Tm veritabann script olarak alp VSS iine yerletirdim ve her gncelleme iin ayr bir script dizini yarattm. Bylece veritabannda yaplan deiiklikleri takip etmek kolaylati. Ayrca programn alabilmesi iin gereken konfigrasyon verisi iin de scriptler hazrlayp bu dizinde tutuyorum. VSS ile iim bittiinde artk gvenilir bir kod kontrol sistemimiz olduunu syleyebilirdim. 3.5.5 stek Ve Hatalarn Ynetimi Program iin gereken deiiklik ve istekleri takip edecek bir access uygulamas gelitirerek herkesin kullanmasn saladm. Bu sayede kullanclarn ne gibi problemleri oluyor veya istedikleri deiiklikler var m kontrol edebildik. Gelen istekleri paralara ayrarak sk srmler iinde halletmeye altk. Kullanc isteklerinin hzl yapldn grnce daha fazla deiiklikler istedi bunlarda projelendirip yaptk. Hem kullanc kendini proje ekibinin bir paras olarak hissetti hemde bizim firma iindeki yerimiz salamlat. stek ve Hatalarn ileyiindeki baz brokrasileri ortadan kaldrdm. Bir deiiklik iin 15 ayr yerden onay almak gerekiyordu. Alnacak onaylar 5e indirip deiikliin merkezi olarak takip edilmesini salaynca hem deiiklikler abuk uyguland hemde srtnda imza atma yk bulunan kiiler rahatlad. mza atmak byk sorumluluk istiyor, eer birde attnz imzann ne iin oldugunu bilmiyorsanz daha da zor. Onay almak iin geen zaman uzuyor. 3.5.6 Belgeleme lk projeyi devraldmzda belgeleme asndan ok fazla eksik vard. Bu eksiklii gidermek iin bir UML Case Tool ile tm projeleri modelledim. Girdi/kt ve parametrelerine varncaya kadar tm fonksiyonlar emalar halinde izdim. Daha sonra da her fonksiyon iin bir aklama yazdm. Genel modller iinde geni aklamalar yazdm. Bir kere Case Tool ile bu ii yapnca, gerekli belgeleri kolayca rapor halinde yaratabiliyorsun. Ayrca tm modelleri html sayfalar halinde yaynlayarak herkesin grmesini saladm. I analistleri modelleri inceleyip yorumda bulunabiliyordu. Kod iine yerletirdiim yorum satrlar ile daha iyi okunabilir hale gelmesini sagladm. Ayrca her public fonksiyon iin Tools/Procedure Attributes mensnden bir aklama girdim. Bu dll ktphanelerinin baka projelerde kullanlmas halinde yardmc oluyor. Object Browser ile bir dll iindeki fonksiyonlar grntlediinizde fonksiyonlarn aklamalar da geliyor baka bir dkmana ihtiyacnz kalmyor.

51

Blogdan Semeler

3.5.7 Xp Ve Benim Yaptklarm XP presiplerini benim yaptklarmla karlastrdmzda nasl rtdne bir bakalm. letiim Proje ii iletiim ve kullanclarla olan iletiim %70 orannda artt. Basitlik Onaylama mekanizmasn basite indirgeyerek geen sreyi %300 orannda ksalttm. Ayrca VSS zerindeki almam derleme ilerinin ok ksa zamanda yaplmasna neden oldu. Geri Besleme Kullanclarn kendini ifade edebilecekleri bir ortam hazrlayarak, istek ve hatalarn bize dorudan gelmesini saladm. Cesaret Tm kodun yeniden derlenmesi ve VSSin yapsnn deitirilmesi konusunda byk risk aldm fakat dedi. Ar Ballk Tm bunlar yaparken insanlar bilgisizliklerinden dolay aalamak yada sulamak gibi terbiyesiz giriimlerde bulunmadm. Eer sfrdan baslam bir proje olsa idi yapilacak ok ey vard fakat bu proje zaten sonlanm bir proje, yaplacaklar da kstl oluyor. XPnin sadece bir ksmn uygulamak bile pek ok iin hzl ve tam anlamyla yaplmasna yetti.

3.6

Yazlm Uzman ve Salk

Bir yazlm mhendisinin en nemli arac sanrm bilgisayar. Ne kadar hzl olursa olsun genede daha hzlsn istiyoruz. Bulduumuz her yazlm kurduumuz iinde 6 ayda bir yeniden kurmak ta heralde dnyann en zevkli olay yada en azndan bana zevkli geliyor. Benim dnceme gre sadece bir adet bilgisayara sahip olmak yeterli!!! Ben byle diyorum ama bende 4 tane bilgisayar var, yaknda hepsini elden karp tek bir bilgisayar alacam. 3 adet dikkat edeceim husus var. CPU Bellek Sabit Disk Yatrmn byk bir blmn bu zerinde younlatrp alabileceimin en iyisini (byn) almaya alacam. Nedeni ok basit. Masann altnda elli tane bilgisayar olacana bir tane gl olacak ve Virtual PC (sanal bilgisayar) ile dierlerini halledeceim. Oyun filan nadiren oynadm iin ekran kartna da ihtiyacm olmayacak on-board beni idare eder.

Blogdan Semeler

52

Gelelim zrt prt programlar kurup kaldrmaya. Bir adet taban saylabilecek VPC Windows XP kurup hd dosyasn saklayacaz. Bylece yeni bir tane yaratmak istediimizde bunu kullanacaz. Kurup denemek istediiniz yazlmlar VPC zerine kurup deneyebilir iimiz bitince de VPC'yi tamamen ortadan kaldrabiliriz. VPC zerine kurulmu sistemler ile ana iletim sistemi arasnda a balants olduu iin VPC zerindeki kaynaklara erimek te mmkn. Ben Websphere MQ, IIS, SQL Server 2005 gibi a zerinden eriim gerektiren yazlmlar VPC zerine kuruyorum, ayrca beta srm yazlmlarda VPC zerinde kurup deniyorum. Dier dikkat edilmesi gereken konuda monitr. imiz yazlm olduu iin gnn byk bir blmn monitr karsnda geiriyoruz. Tabii gzler haat oluyor. Ara vermek bir yere kadar koruyor ama her zaman mmkn olmuyor. Kod yazmaya balaynca zaman anlamn yitiriyor ve ara vermek yle dursun, yemek dahi aklma gelmiyor benim. Bu durumda yatrm yaplacak dier bir parada monitr. Eer monitrnzde titremeler varsa frekans ayarlar ile oynayp dzeltebilirsiniz. normalde 60Hz ayarldr fakat monitr destekliyorsa ykseltmek sizin yararnza olacaktr. TFT monitrler de iyi bir zm olabilir. 6 ayda bir gz muayenesinden geerek durumunuzu deerlendirin, doktora bilgisayar kullandnzdan bahsedin ve doktorun nerdii gzl aln. Unutmayn ki kendinize yaptnz yatrm bu sektrden daha uzun seneler ekmek yemenizi salayacaktr.

3.7

Ekip Toplantlar

nsanolu sosyal bir varlk. Bulunduumuz evredeki insanlar etkileyecek kararlar almadan evvel bir toplant yapp enine boyuna tartrz. Toplant yapc bir olaydr fakat her zaman iyi sonular dourmaz. Uzun ve yorucu olabilir. Toplantya katlanlarn aktif olarak dinlemesi, neri ve deerlendirme yapmas ve zmler sunmas beklenir. Ayrca katlanlar seslerini de duyurmak isterler. Genelde birbiri ile elien fikirler tartlr. Eer alnan kararlar, kararn etkiledii tm gruplar tarafndan duyulmam ise grup iinde yada gruplar arasnda kopukluklara neden olur. Ekip mdrlerine olan gven krlr. Toplantlarn bir amac ekip iindeki balar glendirmek ve ortak bir hedef iin alldn gstermektir. Dier bir amacda verilebilecek en iyi karar vermektir. Ekip lideri yada mdr her zaman en iyi kararn ne olduunu bilemez ama grevi en iyi kararn ne olduuna karar vermektir. Bunun iinde kararlarn tartld ortam hazrlayp deerlendirmeyi herkesin huzurunda yapar.

53

Blogdan Semeler

yaammzn byk bir blm toplantlarla geer. zellikle proje balarnda analiz yaparken. Toplantlar pahallya mal olan olaylardr, sonunda da doru kararn verilip verilemeyecei kesin bile deildir. Toplantnn verimini anlamak iin kendinize sormanz gereken bir ka soru var: Toplantnn baarl olmas iin zerinize den her eyi yaptnz m? Toplantya katlan dier i arkadalarnz verimli bir toplant olduu konusundan hemfikirler mi? Toplant sonucunda alnan kararlar toplant maliyetlerini amorti ediyor mu? Ayn sonulara toplant yapmadan da ulaabilir miydiniz? (E-posta, telefon, gayri resmi konumalar vb.) Eer toplantlar verimsiz geiyorsa muhakkak anlarsnz. pheniz varsa aadaki gstergeler yardmc olabilir. Balang ve biti saatleri planland gibi yrmez. Kiiler ge gelir ve erken ayrlr. Kiiler toplantya hazrlanmadan gelir. Toplant girip kan kiiler tarafndan blnr yada cep telefonlar alar. Kiiler dierlerinin fikirlerini nemsemez ve baka konular zerinde alr. Duygusallap kiisel saldr yapanlar olabilir. Bir ka kii birleip kendi fikirlerini benimsetmeye alr yada toplantda sadece

bir ka kii konuur. nedenler: o o o ekibinden ise) o Ben bunu geen ay patrona syledim, kabul etmedi. (patron toplantda Bu fikre kesinlikle kar karlar (mteriyi kastederek) Biz onu geen sene denedik (tuhaf bir srtma ile) Tamda pazarlama ekibinden duyacam bir zm (konuan yazlm neriler dandik nedenlerden dolay geri evrilir. Benim en sevdiim dandik

olmayacak) *Benim favorim*

Blogdan Semeler

54

Birisi konumasn bitirip dieri sz aldnda konuulanlar gz ard edip tamam

ile baka bir konuda konumak. Kesin karara varmadan yada tm zmleri dinlemeden toplantnn bitmesi. Toplant sonucunda planlanan ilerin paylatrlmamas ve kiilerin ne yapacan

bilmemesi. (Bu ok kt bir durumdur) Toplant sonucunda iler paylatrlr ve herkesin yapaca i belirlenir fakat kimse

grevlerin baarlp baarlmadn kontrol etmez. Verimsiz bir toplant iiniz iin iyi deildir, para ve zaman kaybna neden olur. Yaratac stres ve elikilerde cabas. Ynetim ekibine olan gveni krar ve ekip iinde kopmalara neden olur. Peki toplantlar nasl verimli hale getireceiz. 3.7.1 Tmden toplantlardan vazgemek yi bir fikir ve en hzl biimde kara gemenize neden olur. Nede olsa toplant srasnda harcanacak vakit ve nakit kaybn annda nlemi oluyorsunuz. Ekip iinde iletiimi biraz ldrr ama zaten daha nceden de bir iletiim yoktu. Ekip liderinin sorumluluklar biraz artar ve kritik kararlar vermesi beklenir. Ekip lideri bu yk kaldrabiliyorsa sorun yok. Kararlar hzl verilir ve uygulamaya geilir. Eer toplantlara tm ekibi armak zor oluyorsa bir ka nerim var Lider Ekibi: Bu ekip firmann her blmnden konusunda uzman kiilerin bir araya gelmesi ile oluturulur. Lider ekibinde proje mdrleri yada ekip liderleri olmamaldr baka bir deyile ynetim ekibinden kimse bu ekibe katlmamaldr. Lider Ekibinin grevi her gn bir araya gelerek bir nceki gnn deerlendirmesini yapmak ve gnn problemlerini ve yaplmas gerekenleri tartmaktr. Deiim ve istekleri yneten bir ekip yok ise Lider Ekibi bu iide yapabilir. Ayak st koridor grmeleri: Hzl ve kesin bilgi ak ile yz ifadeleri ve vcut hareketlerinin kullanld bir grme tipi. Toplant srasnda maskelerle oturan yada hi konumayan kiilerin fikirlerini almak iin birebir. Bazen yz ifadelerinden ve vcut dilinden ok daha fazla bilgi almamz mmkn. Sorular ve beklenen cevaplar ksa olmal, "evet, hayr, yanl, doru" gibi cevaplar ve sonunda kiiye ufak bir grev vererek bitirme (bir belge yazma yada, ufak bir prototip hazrlama). Grev verdiiniz kiiye daha sonra bir e-posta atarak bu grevi verdiinizi dierlerinin de bilmesini salamay unutmayn.

55

Blogdan Semeler

Tartanlarn ayr tutulmas: Nasl evlilik messesesinde fikir atmalarndan dolay ayrlklar oluyorsa, firma iinde de birbiri ile tartan elemanlar bir sreliine farkl ilerde megul edip, dnmelerini salamak gerekir. Konu eer kiisel boyutlara gelmise zmek zor (kanser gibi) fakat nceden sezinleyebilirseniz ve vereceiniz ilerle konu zerinde dnmelerini salarsanz zm kolay olabilir. Evet EQ nemli bir olay fakat bir i iin IQ yeterli, atmalarn kiisel alnmamas ve firma karlarnn dolays ile alanlarn karlarnn gzetilmesi hatrlatlmaldr. atan kiilerin kendi fikirleri zerine bir rapor hazrlamas ve deerlendirme sonucu iyi olannn seilmesi ie yarayabilir. 3.7.2 Toplantlarn Belli Bir Dzen inde Yaplmas Dzensiz toplantlarn zaman ve para kaybna neden olduunu grdk. Bir toplantnn ekiciliini ve verimliliini arttrmak iin yapmanz gereken bir ka ey var. Kimse skc toplantlara katlmak istemez, katlsa da verimli olmaz. ncelikle toplaty ynetecek kii belirlenir. Toplant bakan konuyu bilen, kiminle tartacan ve kimlerin fikirlerine bavuracan bilen kii olmaldr. Toplant bakan not tutacak kiiyi ve toplantya katlacak kiileri belirler. Toplant sonrasnda verilen grevlerin yerine getirilip getirilmediini de kontrol eder. Toplant bakannn yapaca ilere bakalm: Toplantdan nce Problemi sade bir dille yazl olarak tanmlar. Problem iinde belli olmayan

yada deiken ksmlar listelenir ve olas problem senaryolarvarsa ortaya karlr. (bazen problemin boyutu deikenlere gre deiebilir ve etkileri farkl olabilir.) Yazcy belirler. Yazc toplantda sunulan nerileri ve bu nerilere verilen

cevaplarn notunu tutar. Toplantya katlacaklar belirler. Problem hakknda bilgisi olan ve zmleri

hayata geirecek herkes bu toplantya katlmaldr. Problemin anlalmas iin gerekli taban bilgiyi ortaya karr ve katlanlara

datr. Bazen bu taban bilginin ortaya kartlmas srasnda ok farkl zmler retilebilir. Probleme yunlamak yerine evresindeki deikenlere younlamak farkl bak alar ve zmler verebilir.

Blogdan Semeler

56

Toplantnn zaann ve yerini tayin eder. Toplant iin gerekli malzemeyide

salar (beyaz tahta, projektr, hesap makinesi, a balants, dizst bilgisayar vesaire.) Dier katlanlar, kimin Toplant bakan ve Yazcs olduu hakknda

bilgilendirir. Gerekli belgeleri gnderir ve yer ve zaman konusunda bilgilendirir. Toplantnn ajandas ve ak emas hakknda bilgi verir.

Peki katlanlarn ve Yazcnn grevleri nelerdir? Toplant Srasnda Her katlan kendini tantr ve alt alan belirtir. lk adm olarak problemin bir tanm yaplr ve konunun anlalmas iin belli Gnderilen belgeleri okumak ve toplantya getirmek. Sunulan belgelerde deiiklik gerekiyorsa Toplant Bakann uyarmak.

miktarda detaya girilir. Tam olarak anlalmayan bir konu zerinde tartmak hi kimseye yarar salamaz. Tm katlanlarn fikirlerinin tek tek dinlenmesi gerekir bylece herkes bir dierinin

deneyimlerinden yararlanabilir. zmler ortaya ktka tahtaya yazar ve bir numara verir. zm reten kiinin

isminin ba harflerinide zmn yanna yazar. Baz zmleri birletirerek farkl bir zm yaratr ve birletirilen zmleri

reten kiilere fikirlerini sorar. zmleri yarglamadan anlamaya alr. Yeni bir zm kmayana kadar bu ilem devam eder.

Bu arada Yazcda unlar yapar. Katlanlarn bir listesini oluturur. Olas zmleri listeler. Tartmalarn kaydn tutar. Bir ka zm retildikten sonra, bu zmlerin fizibilite almalar yaplr. Hangi zm firmaya en yararl olandr bulmaya allr. En iyi zm bulmak iin irdelenmesi gereken konular:

57

Blogdan Semeler

nemlilik derecesi zlebilirlik (gnn teknolojisi bunu yapabilir mi?) Maliyet Analizi (ne kadara mal olacak) Kaynak ve gc var m? Yeterli bilgi firma iinde mevcut mu? Bu zm baka problemler douruyor mu? (en nemlisi bu)

Tm zmler liste halinde katlanlara datlr ve 1'den 10'a kadar bir nemlilik derecesi vermeleri istenir. Sonuta herkesin verdii nemlilik dereceleri toplanr ve en yksek puan alan zmler zerine younlalr. Katlanlarn bu sonular tasdik etmesi ve tekrar dnmeleri istenir. Sonular tekrar deerlendirilir. Bir problemin mutlak bir zm olmayabilir. Bir ka zmn bir araya gelmesi ile daha k bir zm elde edilebilir. Yada iki farkl zm ayn anda uygulamaya konulabilir fakat bu daha fazla i demektir. En iyi zm belirlendikten sonra bir ekip veya bir kii bu zm hayata geirmek zere atanr. zm hayata geirecek kiinin yaptklarn takip edecek ve durumu raporlayacak bir kii de atanr. Toplant Sonrasnda Toplant srasnda tutulan tm notlar Yazc tarafndan elektronik ortama aktarlr. Sonuta karar verilen zm veya zmler listelenir ve kimin ne i yapaca belirlenir. Tm bu plan toplantya katlan herkese gnderilir. Toplant bakan bu plan takip eder ve kiilerle kontak kurarak ilerlemeler hakknda bilgi alr. 3.8 Eski Projeler

Bu gnlerde yeni projelere balamaktansa, eski projeleri adam etmekle yada yeni sistemlere uydurmakla vakit harcyoruz. Genelde devir aldmz projeler zamann artlarna gre gzel yazlm fakat artan veri ynlar ve eskiyen teknolojiler nedeni ile ya performanslar dm yada yeni sistemlerle konuamaz duruma gelmi oluyor. Bazende firmalarn ksr dnceleri ve gnlk politikalar yznden, gn kurtarmak amal alna iki eleman ile eski projeler canl tutulmaya allyor. Baz firmalar, brakn gelecek seneyi, nmzdeki haftay dnp planlamazken, btn i ykn bu iki elemana ykleyip bir eyler

Blogdan Semeler

58

bekliyorlar. Bu iki eleman sihirbaz mdr da sihirli deynekleri ile sistemi ayaa kaldrp, bir o kadar da hatay dzeltip program alr hale getirsin. Diyelim ki byle bir projeyi Proje Mdr olarak devir aldnz. lk yapacaklarnz neler olurdu bir bakalm. 3.8.1 Proje Hakknda Yeterli Dkman Var M? Benim devir aldm projelerin hepsinde dkmantasyon eksiklii vard. Belkide benim istediim kalitede dkmana hi bir zaman eriemeyeceim ama herkesin hayalleri var deil mi? Kimi zaman veritaban tasarmlarna rastlasamda genelde ii anlatan dkman bulmak zor olur. Hele hele birde UML model filan aryorsanz iiniz zor. Her zaman firma standartlarn anlatan bir ka dkman da bulunur ama bu standartlarda oluturulmu bir proje dkmanna ulamak her zaman imkan dahilinde olmaz. Genelde kaynak kodu, firma standartlar ve ok ansl iseniz birde veritaban tasarm dkman bulabilirsiniz. Projenin ne olduunu, mteri gereksinimlerini, senaryolar, i aklarn anlatan dkmanlarn olmamas sizin iin nemli bir riskdir. Programatik hatalar kod iinde dzeltseniz bile i aklar ile ilgili hatalar dzeltemezsiniz. Bu byk riski ortadan kaldramasakta alacamz bir ka nlem ileride iimize yarayabilir. Bunlar: i bilen ve i aklarnda yardmc olacak sektrden bir elemana eriim. Byle birisini bulursanz, bu kiinin tam zamanl olarak projede almas iin istekte bulunun. Bu kiinin grevi projenin i aklarn dkmante etmek olacaktr. Bir UML modelleme arac ile mevcut kaynak kodunu kullanarak model oluturmaya aln. Bu size genel olarak tm projede kullanlan nesneler ve aralarndaki ilikiler hakknda bilgi verecektir. Eer OO yazlm bir proje ise iiniz nisbeten kolay Baz UML aralar kodu Re-Engineering yaparak koddan model oluturabiliyor. Modelleme srasnda dank bir yap ortaya kyorsa, ufak modller halinde toparlamaya aln. Bl ve ynet mant ile daha kolay anlalabilir hale getirebilirsiniz. Yazacanz raporda bu riskten geni biimde bahsetmeyi unutmayn. 3.8.2 Kaynak Kodu Derlenebiliyor Mu? Tm kodu derlemeye aln ve bamllk emas kartmaya aln. Modl baznda derleme srasn oluturmaya aln. Kullandnz UML arac ile bu derleme srasn modelleyin. Eksik, kayp,

59

Blogdan Semeler

gereksiz modller var m tesbit edin. Kullanlan nc parti modlleri de tesbit edin. Eer kod sorunsuz olarak derlenebiliyorsa bu sizin balang noktanz olacaktr. Yeni bir VSS veritaban yaratp tm kodu buraya aktarn ama kodun tarihesini almayn. Eski VSS veritabann da daha sonra kullanmak zere yedekleyin. Yeni yarattnz VSS sanki yeni alm bir proje gibi olacak. Derlenemeyen kod varsa bunlarda risk oluturacaktr. Raporunuza bu riskleri de ekleyin. 3.8.3 Bir Mteri stekleri Ve Hata Veritaban Mevcut Mu? Daha nce kullanlm bir hata ve istek veritaban size projenin gidiat ve imdi bulunduu konum hakknda bilgi verecektir. Bir ka analiz yapp iyi ve kt modlleri yada hatalarn genelde nerelerde ktn tesbit edebilirsiniz. Bu veritabann yedekleyip yeni ve temiz bir tane oluturun. Aynen VSS gibi sfrdan balayacak. 3.8.4 Kaynak Kodu Bir Kod Kontrol Veritabanna Bal M? Eer daha nce VSS gibi bir kod kontrol uygulamas kullanlm ise, kodun tarihesinden ne deiiklikler yaplm grebilirsiniz. Bu deiiklikleri hata veritaban ile karlatrabilirsiniz. Ama bu eski kod kontrol veritabann kullanmayn. Tm kodu indirip derlendiine emin olduunuz ksmlar yeni bir kod kontrol veritabanna aktarn. Bylece balang iin elinizde bir temel olmu olacak. 3.8.5 Kullanan Mteri Var M? Bu proje mterilere kurulmu mu kontrol edin. Eer kurulmu ise mterinin isteklerini gz nne alarak bir plan yapn ve bir yaplacak iler listesi karn. Eer pilot olarak kurulmu ise bu pilot uygulamalarn tekrardan alr hale getirmek iin neler gerekli kartn. Mteri tarafnda balant kuracanz kiilerin de bir listesini yapn. 3.8.6 Kurulum Program Var M? Bu yazlmn bir kurulum program var m aratrn. Yoksa kurulum iin neler gerekiyor aratrn. Daha sonra piyasadaki kurulum hazrlama programlarn veya mevcut elde varsa yeni srmlerini aratrn. Yamalarn ve kurulumlarn mteriye sorunsuz ulatrlmas ve fazla bilgisayar bilgisi olmayan mterilerin rahata kurabilmesi iin mmkn olduunca basit bir kurulum hazrlamaya aln. 3.8.7 Yazlm in Kullanlan Aralar Son Srmler Mi, Lisanslar Tamam M? Kullanlan tm yazlm aralarn kontrol edip eksik lisansl olanlarn ve eski srmleri tesbit edin. Salayc firmalardan kiminle kontak kurulacan tesbit edin. Eer eksik lisanslar varsa bu bir risk tegil eder. Raporunuza bunlar eklemeyi unutmayn.

Blogdan Semeler

60

3.8.8 Yeterli Teknik Alt Yap Mevcut Mu? Kullanlan bilgisayarlar, sunucular, sabit disk kapasitesi, a ve internet eriimi proje iin yeterli mi aratrn. Projenin derlenmesi, veritabannn oluturulmas gibi ilem gc ve hafza isteyen operasyonlar ok zaman alyor mu kontrol edin. Yeterli hafza, sabit disk, ilemci iin istekte bulunun ve risk olarak bunlar raporunuza ekleyin. 3.8.9 Projede Kullanlm nc Parti Modl Var M? Bu proje dahilinde yazlmam veya hazr satn alnm modller, ActiveX nesneler yada assembly'ler, ayn firma iinde baka bir projede yazlm modllerin hepsi nc parti modllerdir ve sorumluluu bakasna aittir. Fakat genede proje iinde bunlar ynetecek bir elemana ihtiya vardr. Bu kii gerekli firmalar yada kiiler ile balant kuracak, yeni srmleri takip edecek, yamalar uygulayacak ve kan hatalar salayc firmalara bildirecektir. Bu aamada byle bir elemana sahip olmasanz da nc parti tm modlleri tesbit edip bir liste haline getirin, salayc firmalardan kontak kurulacak kiileride karlarna yazn. Yukarda bahsettiim eleman ekibinize dahil ettiinizde yapaca iler az ok km olur. Projede kullanlabilecek nc parti modl var m? zellikle almayanlarn yerine kullanlabilecek. Hazr satlan bir muhasebe modl, kredi kart kontrol modl, portal ablonlar vs. gibi piyasada hazr bulunan modllerin aratrlmas ve bir kar zarar analizi ile projede kullanlp kullanlamayacan aratrn. Hatal modlleri yeniden yazmak m daha karl olur yoksa hazr bulunan bir modl entegre etmek mi? 3.8.10 En Fazla Sorun karan Modller Hangileridir?

Hata ve istek veritabanndan ok sorun kartan modlleri bulun. Deitirilecek yada ok fazla zaman alacak ksmlar ortaya kartn. Bu modlleri nem sralarna gre dizip ie nereden balamanz gerektii konusunda bir plan ortaya kartabilirsiniz. 3.8.11 Genelde Sorunlar Basit Programatik Sorunlar M Yoksa Aklarnda M?

Gene hata ve istek veritabanndan sorunlarn programatik sorunlar m (rnein sfra blme, text box'larn yerlerinin deitirilmesi, veritabanna kayt srasnda bir sahann unutulmas vs) yoksa i aklarnda m (rnein bir sipari alma ve gnderme srasnda geen olaylar ve kullanlacak

61

Blogdan Semeler

fonksiyonlar)? Programatik sorunlar zmek kolaydr fakat i aklarndaki hatalar ancak ii bilen birisi tarafndan bulunabilir ve zlebilir. Eer programatik hatalar ounlukta ise iiniz nisbeten daha kolay. 3.8.12 Bir Proje Plan Mevcut Mu?

MS Project veya MS Excel gibi bir arala oluturulmu bir proje plan var m ve var ise gelecekte yaplacak iler yazlm m? Bylece ileride yaplacak ilere buradan da bir ka madde eklenebilir. 3.8.13 Hzl zlebilecek Hatalar Nelerdir?

Hzl zlebilecek hatalarn tesbitini yapp bunlar yeni mezun programclara yada stajyerlere verebilirsiniz. Bylece zamanla hem mevcut koda hemde i akna aikar olacaklardr. Biraz daha sistem hakknda bilgileri artnca dier hatalarda atayabilirsiniz. Onlar iin en iyi eitim bu ekilde olur sanrm. 3.8.14 Patronun stekleri Nelerdir?

Patronun hedefleri nelerdir, sizden neler bekliyor renmeniz, ileride doacak yanl anlamalar ortadan kaldracaktr. Sizin yapp yapamayacanz iler imkanlar dahilinde ortaya kmtr ve eer patron sizden gerek d, doa st bir ey istiyorsa gzel bir dille sizin byc olmadnz ve gelecei gsteren kristal topunuzun olmadn, byle bir ngr istiyorsa Medyum Keto yada Memi'i proje mdr olarak almasn tavsiye edin. Yada bir ara yolu dtnde Kbrs'ta Elmas Hanm'dan da danmanlk alabilir. Ama danmanlarn pahallya mal olacan sylemeyi unutmayn. Patron, proje mdr iin bir eit mteridir ve mutlu edilmesi gerekir. 3.8.15 Kompleks Modller Blnebilir Mi?

Fazla kodlamadan dolay yada fonksiyon fazlalndan imi modller blnp daha kolay ynetilebilir paralar haline getirilebilir. Bu tr imkanlar varsa kesinlikle uygulayn. leride ileri programclara atarkende iinize yarar. Kk paralarda hata aramak ve dzeltmek te daha kolay olacaktr. 3.8.16 Modl Testleri Yapabilmek in Test Senaryolar Oluturmaya Balayn

Test senaryolar size bir modln nasl altn ve ne tr hata durumlar oluacan belirtir. Bu dkmanlar hazrlamak uzun srer. lk oluturulan test dkmanlar yetersiz olabilir fakat zaman iinde bu yetersizlikler dkmana eklenerek tam bir test dkmanna kavuabilirsiniz.

Blogdan Semeler

62

3.8.17

Projenin Yeni Bir Teknoloji le Yazlmas Makul Mdr?

Byle bir neriyi patrona gtrrken ok dikkatli olmalsnz. Zira tm yk omuzlarnzda kalabilir. Fakat zaman zaman yazlmlar o kadar eskirki artk ne yazld dil salayc firma tarafndan destekleniyordur nede alt iletim sistemi. te yandan bu yazlm yazld srada hi kimse bu yazlmn emekli olaca zaman dnmemi ve planlara katmamtr. Her projenin bir hayat sreci vardr, projeler doduu gibi lrler de. Ama nedense bu lm zaman planlarda pek bulunmaz (en azndan yazlm dnyas iin). Eer patronda yeni teknolojiye gemekte gerekten hevesli ise ve bu gei projesine emek, zaman, para harcayacaksa iiniz biraz daha kolay. Tabii bu durumda yukarda yazdm planlarn ou deiiyor. Sizin iin yeni bir proje ve yeni bir balang olacaktr. 3.8.18 Ne Kadar Btemiz Var?

Bte konumalar en skc konumalardr. Manav gibi pazarlk yapma hneriniz yoksa hi girmeyin daha iyi. Ama Proje Mdr olarak girmek zorundasnz. Bte projenin ihtiyac olan insan says, hatalarn says, riskler, temel ihtiyalar (yemek, ay, kahve), donanm ihtiyac, yazlm ihtiyac, masa sandalye gibi mobilyalar, ofis kiras, elektrik ve su giderleri gibi daha burada unuttuum pek ok deikene dayal olarak hesaplanmaldr. Patronun kafasnda eski deneyimlerine dayanarak ve bu projenin yedii bteyi dnerek zaten bir rakam vardr. Sizin greviniz patronun beynini bu rakam bariyerinden kurtarmak ve daha mantkl bir dnce sistemine getirmek olmaldr. Bir mhendis olarak imkanlar, riskleri, ihtiyalar sralamak, piyasadan rnekler vermek ve ayaklar yere basan gereki bir plan sonucu ucu ak bir bte istemek gerekir. "Ucu Ak" tan kastm tam olarak kapal bir bte yerine esnek, ekleme kartma yapabileceimiz bir btedir. 3.8.19 Na Kadar Zamanmz Var?

"Zaman" her zaman dar olduumuz bir ihtiya. Genelde tam ihtiyacmz olduu anda biter. Ne kadar zamannz olduunu Patrondan renin ve gereki olup olmad konusunda; kendi planlarnz ile karlatrp bir rapor halinde patrona sunun. Riskler ve tam olarak belli olmayan mteri istekleri raporun ana kayna olacak ve bu riskleri ortadan kaldrmak iin sunacanz bir ka yntem -onaylanrsasizin zm yolunuz olacaktr. Zamannz iyi kullanmak sizin elinizde, eer iyi bir planlama yaparsanz ve kaynaklar iyi kullanrsanz her ey mmkn.

63

Blogdan Semeler

3.8.20

Yeni Eleman Alabilir Miyiz?

Eleman almlar eer onaylanrsa, iinize yarayacak elemanlar bulmak size kalyor. Vereceiniz ilanlarda hem kullanlan teknolojiyi hemde iin yapsn belirtin. Projenin boyuna gre alnacak bir ka Gereksinim ve Modelleme Uzman, Yeni mezun ve usta programclarn karmasndan olumu bir yazlm ekibi, sistem yneticisi, veritaban uzman ilk aamada ihtiyacnz olanlar. 3.8.21 Program Kaa Satlacak, Beklenen Kar Nedir?

Programn sat ve fiyat belirlemelerini yapacak pazarlama ekibi ile sk balantlar, yazlmn pazar gcn arttracaktr. Pazarlama ekibi retilen yazlmn tm art ve eksilerini bilmeli ve piyasadaki dier rakipler ile karlatrmal tablolar hazrlamaldr. Eer sizin rnnzde olmayan fonksiyonlar varsa, bunlar analiz edip genel i ak olarak belgeler ve yazlm ekibinden istekte bulunabilir. Gryorsunuz pazarlama ekibi bile yazlm ekibine istekte bulunarak projeye katk salayabiliyor. Gz ard edilmemesi gereken bir kaynak bence. 3.8.22 Hazr Mteri Var M?

Hazrda bekleyen mteriler de sizin iin bulunmaz bir frsat. Pilot firma olarak kullanp rn testleri yada kullanc kabul testleri yapabilirsiniz. Bu tr mterileri organize edecek bir elemanda atamanz gerekebilir. 3.8.23 Programn Desteini Verecek Ekip Var M? Eitimleri Yeterli Mi?

Destek ekibi genelde yazlm ekibi iinden gelir fakat ok skc bir i olduundan yazlm ekibinden kimse yapmak istemez. Aslnda yanl da bir uygulamadr nk bir yazlm uzmanna dediiniz maa destek elemanna deyeceiniz maadan ok daha fazladr. Yazlm uzmannn hem destek vermesi hemde program yazmas bekleniyorsa; bu da ileri ucuza getirme felsefesinden douyordur ki profesyonelliin ldnn ve batmaya balayan firmann gstergesidir. Destek ekibinin eitimi ok nemlidir ki mteri tarafnda destek verirken hzl ve doru olsunlar. 3.8.24 Medya le Balantlar Salayacak Biri Var M?

rnn tantmn yapacak, dergilerde, gazetelerde, televizyonda reklamlarn ve rportajlar ynetecek bir medya uzman gereklidir. Bylece rnn reklam yaplr MEdya uzmannn rn hakkndaki bilgisi pazarlama uzmanlar ile ayn olmaldr.

Blogdan Semeler

64

3.8.25

Programn Tantlaca Bir rtba Sitesi Var M?

rnnz rtba zerinde tantacak, mterilerin aradklarnda bulmasn salayacak, kullanm klavuzlarnn yer ald bir site ok iinize yarayabilir. Mterilerin kullanaca bir forum, bir eposta listesi ve bir hata bildirme formu mteriyi mutlu edecektir. 3.8.26 Programn Deneme Srmleri, renci Srmleri Olacak M?

rnnzn yaylmas ve mmkn olan en fazla kitleye eriebilmesi iin okullara, firmalara deneme srmlerinin yada kstl srmlerinin satlmas yada cretsiz verilmesi dnlebilir. Byle bir projeden genelde beklenen ksa zamanda piyasaya kmas ve satlmasdr ki zaten zarara uram bir projeden bir miktar da olsa geriye dn olsun. Fakat planlama aamalarna az zaman harcand ve gereklikten uzak olduu iin istenen sonu elde edilemez. Sonuta nemli olan plann geree yakn olmasdr. te yandan eminim bte kstl olacaktr ve ekstra eleman almak mmkn olmayacaktr. inin ehli, sistem zerinde biraz bilgisi olan bir ka yazlm uzman tm planlar hzlandrabilirdi oysaki. Ama tabii firma sahipleri kaz gelecek yerden tavuu her zaman esirgerler di mi? Proje mdr olarak bu bariyerleri krmak sizin elinizde. Bir mhendis olarak tm problemleri ve riskleri delilleri ile beraber ortaya koyup olas zmleri sunduunuzda epey bir yol katetmi olacaksnz. st ynetim ekibinin bu riskleri ve zmleri hazmetmesi iin bir ka gn zaman verin. Onaylarlarsa projeye balayabilirsiniz. 3.9 CMMI, ISO, SPICE, IEEE

Eer bir ekip iinde yazlm gelitiriyorsak her zaman yeni teknolojilere ayak uydurmak, yarm kalan ileri tamamlamak, mteri problemleri ile uramak gibi sorunlarla baetmek zorunda kalrz. Analist Yazlm Uzman olarak ta kendimizi gelitirmek ve bilgilerimizi oaltmak ile ykmlyz. Gelime eer temelleri iyi atlm ise mmkn olur ve izlenen yola gre, faydalar zaman iinde ortaya kar. Yllardan beri izlediiniz yntemler (bir ie yaramadn bile bile), okulda retilen metodlar, mhendislik yntemlerinin yazlm alannda yanl kullanlmas sonucu artk ie yaramaz hale gelmi, duraan ileyi modellerinin deitirilmesi gerekebilir. Tabii her deiim bir renme evresi ve eitim zorunluluu ile birlikte gelir. Fakat belli bir yntemi firma genelinde oturtmak uzun vadede ok daha faydal olacaktr. Her yiidin bir yourt yiyii vardr fakat firmalarnda belli bir yourt yiyii olmaldr. Firmann sahip olduu bu "kiilik" ve "kltr" alanlar tarafndan benimsenmelidir. Firmalar kendi ilerinde kk sosyal yaplardr ve her sosyal

65

Blogdan Semeler

yapnn haberlemeye ve paylamaya ihtiyac vardr. Ayrca her sosyal yapnn bir de kart (rakibi) vardr ki, ayakta kalabilmesi ve geliebilmesi iin bu gereklidir. Yani dman olmadan ilerleme olmaz. Firma iindeki yazlm gelitirme kltr ise bu sosyal yapnn bir nevi anayasasdr. Kurallara uymak ile ykml olan alanlar anayasa zerinde deiiklik yaplmas iin nergede bulunabilir. Tabii bu anayasann da uluslararas yasalara uygun olmas gerekir ki firmann dar ile olan ilikileri (hem yabanc hemde Trk firmalar) de belli ereveler iinde ve anlalabilir dzeyde olsun. Tepeden inme metodlar, aniden deien kurallar firma alanlarn korkutabilir, direnie veya blnmelere neden olur. Bunu hepimiz ok iyi biliyoruz sanrm. Fakat sindirilerek ve belirli politikalar uygulanarak yaplan deiiklikler daha kalc olur. Ayrca bu deiikliin, verimi arttrd grldn de kabul edilmesi ok daha hzl olacaktr. Bir iki dinazor kacaktr tabii fakat sebeplerin ok iyi analiz edilmesi ve yeni sistemin retilmesi iin zaman harcanmas gerekir. Firmaya yeni kiiler alnrken de firma kltr ve ahlak da ortaya konulmal ve grmeler srasnda adayn bu kurallara aina olup olmad veya renmeye ve uymaya istekli olup olmad, uymazsa sonularnn neler olaca tartlmaldr. Bu ekilde aday seimi aamas ok daha verimli olacaktr ve firmann gelecei garanti altna alnm olacaktr. Buraya kadar yazdklarm ltfen yava yava ve tekrar okuyun. Bir yazlm firmas hayal edip kavramlar oturtmaya aln. Bu kadar genel konumadan sonra, firma kltrnn nasl oluturulacana, anayasann nasl uygulanacana, dnyada mevcut uluslararas kurallara bir gz atalm. 3.9.1 Mteri Bir firmann varolu sebebi mterileridir. Mterisi olmayan bir firma dnebiliyor musunuz? Bu durumda mutlu edilmesi gereken en nemli birim mteridir. Mutlu mteri bedava reklam demektir. Bir yazlm projesinde de en nemli unsur mteri gereksinimleridir. imdi bir dnelim; yaptnz ka projede gerekten mteri ile yz yze geldiniz, mteriyi dinlediniz veya mteri ile bir fikir birliine vardnz yada mteriyi tam olarak anladnza inandnz? E o zaman bu kadar nemli bir unsuru neden proje dnda tuttunuz? Neden mteriyi iyice dinlemediniz? Cevap sanrm ok ksa ve klasik, nk dndnz tek ey sonuta ortaya kacak rnd. rne odaklandnz iin mteri ikinci plana itildi. Oysa ki en nemli unsur mteriler; firmanzn hayatta olma sebebi.

Blogdan Semeler

66

rn odakl sistemler ile mteri odakl sistemlerin en byk fark mteri odakl sistemlerin devinimsel olmalardr. Yani projenin hayat sreci boyunca mteri yeni bir eyler ister sizde bunlar uygulamakla ykml olursunuz. Dinamik yapsndan dolay rn odakl sisteme gre daha zor gelebilir fakat ileme modelini bir kere oturttuktan sonra sorun olmayacaktr. rn odakl sistemlerde ise rnn ne olaca, ne yapaca belirlenmitir. Belli bir mteri kitlesi belirlenmitir fakat mterinin rnden haberi yoktur. Eer tutarsa ne ala, kar yapabilir fakat batabilirde. Grlyorki mteri odakl bir sistemin hayatta kalabilme ans daha fazla ve riskleri daha az. Mteri rnden haberdar, ayrca gelitirme aamasnda katkda bulunduu iin memnun ve mesut. Demek ki firmamzn ileme modelinde ilk deitirmemiz gereken ey mterinin nemini anlamak ve rn yerine mteriye odaklanmak. Bylece ortaya kacak rn mteri gereksinimlerini daha iyi karlayacak ve kendi kendini satacaktr. te size mutluluun resmi. Abidin Dino gibi ressam olmasakta kendi alanmzda mutluluun resmini yaptk ite. 3.9.2 Kltr Firmann yazlm gelitirme kltr, ileme modeli ile yakndan ilgilidir. Eer firmann ileme modeli genel standartlar iinde ise kalite zaten kendiliinden gelir. Burada bahsettiim firma kltr, yazlm gelitirme metodolojileri ile (waterfall, agile, XP vs.) kartrlmamaldr. yazlm gelitirme metodu firmann ileyi modeli iine entegre olmu bir paradr ve ileme modelindeki kontrol mekanizmalar ile kontrol edilir. Metodolojinin aklar veya yetmeyen taraflar varsa eklenir veya deitirilir. Peki nedir bu ileme modeli? leme modeli bir firmann yapt ii ele al eklidir. Ayn sektrde olupta farkl yntemlerle i yapan firmalar vardr. rnein kimisi tahsilat aylk yapar, dieri pein alr, bir bakas bir al bir bedava der v.b. gibi. Yazlm firmalarnda ise kimisi paldr kldr kod yazmaya girer, kimisi nce analiz belgelerini yazar, kimisi kalite kontrol en sona brakr, kimisi mteriyi hi grmek istemez, kimisi de baz ileri taeronlara verir yada Open Source modlleri kullanmaya alr. Kontrol ve ileme modelini gelitirmek gibi konular zerinde de fazla durulmaz. Bir firmann ncelikle bir organizasyon emasna ihtiyac vardr. Bu emalarda yaplan en byk yanl; grevler yerine isimlerin yazlmasdr. Sadece grevlerin yer ald bir ema daha motive edici bir ema olacaktr. Her grevin ne i yapt ayrntl olarak aklanmaldr. Bylece eitli grevler iin atanan kiiler ne yapacaklarn nceden bileceklerdir. Ayrca atamalarn karar verilmesi iin kiinin bir st

67

Blogdan Semeler

pozisyondan yapt ileride rahata grebiliriz. Problemler iin nerelere bavurulacada kolayca grnr. Konumuz yazlm gelitirme olduuna gre bu konudaki ileme modellerine bakalm. eitli standart kurulular ve Amerikan ordusu bu konuya el atp bir standarda oturtmaya altlar, zamanna gre de olduka baarl oldu. lk balarda kan pek ok standart rn odakl idi fakat bu gnlerde artk mteri odakllar. Avrupada ISO (International Standards Organisation) bir standart karnca Amerikada bo durmayp IEEE (The Institute of Electrical and Electronics Engineers) ile baz standartlar kardlar fakat biraz blk prk ve acele ye gelmi bir standart. Amerika bu iin devlet eli ile olmayacan anlaynca Carnegie Mellon - Software Engineering Institue (SEI) ile anlap bu ii niversite baznda zmek iin giriimde bulundu ve ortaya CMM (Capability Maturity Model) kt. IEEE 12207 ok gzel bir ileme modeli ortaya koyuyor ve yazlm firmalar yada departmanlar iin ideal. Ayrca 12207'nin nasl uygulanacan anlatan 15504 numaral bir standartlar da var. ISO'da da ayn numaralarla standartlar mevcut. Maalesef link veremiyorum nk bunlar paral satlyor. SEI ise bir adm daha ileri gidip hem ISO ve IEEE sentezinde hemde EIA/IS (Electronic Industries Alliance Interim Standard), IPD-CMM (Integrated Product Development) ve Capability Maturity Model ileme modellerini ayn potada eritip CMMI (Capability Maturity Model Integrated) modelini ortaya kardlar. Amerikan ordusu tarafndan desteklenen bu proje imdiye kadar kan tm IEEE, ISO ve dier standartlarn katks ve eklenen yeni modllerle olutu. Hala da gelitirilmeye devam ediyor. Destek anlamalar gerei retilen her rnn halka almas zorunluluundan dolay SEI tm bu standartlar kendi rtba sitesinde yaynlyor. 724 sayfalk CMMI pdf dosyasn indirdiinizde elinizde hatr saylr bir ileme modeli oluyor ki bunu uygulayabilirseniz ne ala. lk 93 sayfay okuyup dier blmleri yeri geldike okuyabilirsiniz. CMMI'n iki farkl modeli var. Biri "Continues" yani devinimsel dier ise "Staged" yani merdiven modeli. (Gene felaket bir eviri oldu farkndaym :-) ) Merdiven modelinde bir organizasyonun deerlendirilmesi aadan yukarya her departman iin yaplyor. Yani size bal alan tm departmanlar belli kriterleri gemeden CMMI sertifikas alamyorsunuz. CMMI sertifika sistemi ilk ktnda bu model vard sadece. Genelde insan hayatnn sz konusu olduu sistemlerde bu model kullanlr.

Blogdan Semeler

68

te yandan Devinimsel model ise organizasyon departmanlarn tek tek ele alp deerlendiriyor ve CMMI sertifikas veriyor. Yeri gelmiken bu sertifikalardan da bahsedeyim. 5 adet CMMI sertifikas mevcut, bunlar: 0. Incomplete (Beyaz Kuak) 1. Performed (Sar Kuak) 2. Managed (Turuncu Kuak) 3. Defined (Mavi Kuak) 4. Quantitatively Managed (Kahverengi Kuak) 5. Optimizing (Siyah Kuak) Tavsiyem Continues modeli indirip bir gz atmanz ve ilk 93 sayfay okumanz. Bir baka modelde SPICE. SPICE size yazlm gelitirme modelinizi tetkik edecek bir sistem sunuyor. Bu tetkikler srasnda da yaplmas gerekenleri anlatyor. ISO ve IEC standartlar gz nne alnarak hazrlanm. Esas dkmanlar olmasada "draft" srmn indirip bakabilirsiniz. Gerekli Linkler:
http://www.sei.cmu.edu/publications/documents/02.reports/02tr011.html CMMI Continues Model http://www.sei.cmu.edu/cmmi/ CMMI Ana Sayfa http://www.sei.cmu.edu/cmmi/adoption/iso-mapping.html ISO9001:2001 ve CMMI arasndaki benzerlikler http://www.sqi.gu.edu.au/spice/ SPICE Ana Sayfa http://www.psmsc.com/ Practical Software Measurement http://www.sei.cmu.edu/sema/welcome.html Software Engineering Measurement and Analysis http://www.sei.cmu.edu/publications/documents/96.reports/96.hb.002.html Goal Driven Software Measurement

3.10 SOA ve Proje Analizi SOA, Service Oriented Architecture, yani Hizmet Tabanl Mimari. Yazlm gelitirme srecinde ilk balarda analiz yaparken ortaya kan "i senaryolarnn" ayr birimler olarak ele alnmas ve kendi bana var olabilecek hizmetler olarak tasarlanmas olarak yorumlayabiliriz. Her hizmet kendi bana bir i halleder. Nesne Ynelimli Analiz metodu olarak ne kullanrsanz kullann (Shlaer-Mellor, Hatley-Pirbhai, UML vesaire.) sonuta elinizde bir ka katmana yaylm hizmetler olacaktr. Veritabanndan, grafik arabirime (sunum katman) kadar uzanan bu katmanlar birbirleri arasnda veri alverii yaparak istenilen operasyonu baarmaya alr. SOA mimarisi ile tasarlanm bir uygulamada bakm ve onarm ileri daha ucuza mal olur diyebiliriz. Arayzlere dokunmadka ve giri k veri formatn deitirmedike ieride her trl deiiklii yapabiliriz. Ayrca SOA ile tekrar kullanm arttryoruz ki bu da tekrar eden ilemler iin ayn programn tekrar tekrar yazlmasn ortadan kaldryor.

69

Blogdan Semeler

yi bir SOA tasarmnn kalitesi ilk etapta yaplan analizin kalitesine baldr. Benim deinmek istediim konu bir Analyst Developer'n gerekli aralar temin ederek bu analiz aamasndan yznn ak ile kmasdr. Kalitenin anlalabilmesi iin baz llere de burada deineceim. 3.10.1 Metodu Belirleyin

Analiz aamasnda takip edeceiniz metod size analizin yaplmas iin gerekli izlenecek yolu verir. Bu metoda uyduunuz srece hata yapma yada baz admlar atlama olaslnz en aza inmi olacaktr. Metodu kendi isteinize gre de deitirebilirsiniz fakat yaplan deiikliklerin verimlilii nasl etkiledii test edilmeli ve metoda katt artlar gzler nne serilmelidir. Belli bir metod ile analiz yapmak ilk etapta yorucu gelebilir (daha nce gelii gzel analiz yapanlar iin), doldurulmas gereken formlar ve yazlmas gereken belgeler yk olabilir ama yarn bir eylere ihtiyacnz olduunda cevaplar bu belgelerde ve formlarda sakl olacaktr ayrca ortaya kacak rnde mteri gereksinimlerini tam olarak karlayacak bir rn olacaktr. 3.10.2 Setiiniz Metoda Uygun Bir Modelleme Arac Kullann.

rnein Hatley-Pirbhai ile analiz yapmaya karar verdiniz. Elinizdeki uygulamann Data Flow (Veri Ak) emalarn izebiliyor olmas gerekir. izilen emalarn ekip tarafndan paylalabilmesi ve yorumlarn online olarak girilebilmesi gerekir. Bylece ekipten gelecek yorumlar hzl bir ekilde modellere yanstlabilinir. Modellerin srekli el altnda olmas gerekir. 3.10.3 Karmak Operasyonlar Bln

Normalize her aamada uygulanabilecek bir yntem. Karmak operasyonlar atomize paralara ayrlarak kodlama sresi ksaltlabilir. Ayrca hata ayklama da ve testlerde problemlerin kaynann doru olarak bulunmasn kolaylatrr. Servisleri mmkn olduunca bln ve en ufak atomik paraya varncaya kadar katmanlar oluturmaktan korkmayn. Emin deilseniz dier ekip elemanlar ile tartarak en iyi zme ulamaya aln. 3.10.4 Hazr Modlleri Aratrn

Eer firmann yaps ve mterinin istekleri izin veriyorsa ak kaynak projelerden yararlanmaya aln. Ak kaynak projelerin lisans anlamalarn iyi inceleyin ve ak kaynak kullanacanz projelerin sahiplerini bu konuda haberdar edin. Projelerin tamamn olmasada baz paralarn kullanabilirsiniz.

Blogdan Semeler

70

3.10.5

Veritaban Ve Grafik Arayz Deiebilir

Yaptnz tasarmn hedeflerinden biri de zaman iinde veritabannn ve grafik arayzn deiimlerinden etkilenmemesidir. Tasarm tamam ile modler olmal ve sadece i kurallarn uyguladnz katman sizin iin nemli olmaldr. Veritaban ve Grafik arayz tmden pe atlp yeniden gelitirilebilmeli ve i kurallarn uygulayan katmana kolayca eklenebilmelidir. te hizmet tabanl mimarilerin nemi burada ortaya kyor. Bir ii analiz ederken veritaban tablolarn ve grafik arayz dnyorsanz, byk ihtimalle ortaya kacak tasarm da veritabanna ve grafik arayze sk skya bal olacaktr. Unutmayn yarn brgn teknoloji ilerler ve veritabanlar ile grafik arabirimleri deiebilir (oldu bile, ite Vista ile Avalon geliyor). Bu aamada programnzn tamamn m yazmak daha kolay olur yoksa sadece veritaban ile grafik arayzn m deitirmek kolay olur? Teknoloji ne kadar ilerlese de iin ileyi kurallar deimemitir. gene olduu gibi gider. Tabii ki zel sektr ileri, devlet birimlerine gre biraz daha statik yapdadr. Eer zel sektre program yazyorsanz (rnein bir hava yoluna bilet sat ilerini koordine edecek bir program yazyorsunuz) i kurallarn deimesi nadirdir. Fakat devlet birimlerine yazlan programlarda ki i kurallar genelde deiime urar. Yasa deiiklikleri, yeni yasalarn gelmesi, brokrasi ve ileyi deiiklikleri i kurallarnn deimesine neden olur. Buda hizmet katmannzdaki hizmetlerin deimesi demek olacaktr. Bu durum da SOA mimarisi pek elverili olmaz. O zaman i kurallarnn parametre haline getirilmesi ve hizmetlerin bu parametreler ile gdml olarak almas gerekir. Neyse konuyu dallandrmayalm, devlete program yazmak ilerin temelinden balanmasn gerektirir ve analizlerin ok uzun srmesi de bundandr. Bu paragraf toparlarsak; bir ii modellerken sadece iin verdii tepkileri ve girdi ktlar modelleyin. Veritaban ve grafik arayz en son gelmelidir. Analist Yazlm Uzmannn yapmas gereken hem ii bu ekilde modellemek hemde modellere uygun sistemi oluturmaktr. SOA mimarilerinde koddan mteri gereksinimlerine yani geriye doru takip ok kolaydr. Bu tr bir zellik testlerin yazlmasn da kolaylatrr ve kaliteyi arttrr. Her servis belli bir ii yapar ve belli i kurallarn uygular. Her servisin bir belgesi vardr. Belgenin format az ok Senaryolar belgesine benzer fakat biraz daha teknik bir belgedir. Belgede bulunmas gerekenleri aada listeledim. Her belgede olmas gereken, iindekiler, deiiklik ynetimi, onay ekibi ve datm listesini geiyorum. Servis Tasarm Alt balk: Servisin ismi

71

Blogdan Semeler

Bu alt balkta ksaca servisin ne yaptn yazmak gerekir. Alt Balk: Tip Servislerde kendi aralarnda katmanlara ayrlabilir. Eer bir DFD emas varsa katmanlar grmek kolaylar, yada i ve sistem senaryolar olarak ikiye ayrlm senaryolar gerekleyen servisler tiplerine gre isimlendirilebilir. Kurallar Bu servisde uygulanan i kurallarnn bir listesi yada i kurallarnn bulunduu dkmana link verilebilir. Servisin Girdileri Burada servisin ileyecei verinin yaps anlatlr. Ne tr bir girdi olacak tablo halinde yazlmaldr. Eer veritaban ekillenmeye balad ise verinin tipide belirmeye balamtr. Servisin ktlar Servisten beklenen verinin yapsda burada yazlr. Varsaymlar Eer servisin almas iin gerekli varsaymlar varsa burada listelenir. nceden var olmas gereken koullar yada alm olmas gereken servisler burada listelenir. Oluabilecek Hatalar Servisin oluturaca hatalarn listesi (exception yada bir hata listesi olabilir) burada listelenir. leride servisi kullanacak olan programc (yada bizzat siz) servisin geriye dndrecei hatalar kontrol etmekle hkmldr. arlan Dier Servisler Bu servisden arlan dier servisler burada listelenir ve Servis erik belgelerine link verilir. Tabii her arlan servisin bir de geriye dndrd hata durumlar var ve bunlarn kontrol edilmesi gerekiyor. Eer bu servisden 100 adet servis arldysa kontrol edilecek hata listesi bini geecektir. Bu durumda oluan hatalarn ynetimi iin bir sistem oluturulup her servis de uygulanmaldr. Hazr hata kontrol modlleri mevcuttur, yada ak kaynak bu tr projeler de var. Ak emas

Blogdan Semeler

72

Firma genelinde kullanlan metoda gre burada bir ema yer almal ve servisin yapt ii anlatmaldr. Servisi kodlarken kullanlacak en nemli ksmlardan biridir. Bu blm yazarken kesinlikle programlama dilinden uzak durmanz gerek, aksi takdirde yanl yorumlamalara yada i aknda oluacak farkl durumlara sebebiyet verilmi olunur. Eer yukarda belirttiim gibi modelleri oluturmak iin bir ara kullanyorsanz ve modeller i-rtba zerinden eriilebilir ise, bu servisin ilikili olduu modele bir link te verebilirsiniz. Bakm daha kolay olur. Test Senaryolar Yukarda bu servisin geriye dndrecei hata durumlarn yazdnz, imdide bu hata durumlarn meydana getirecek durumlar listelemeniz gerekiyor. Servis kodlanp test aamasna geldii zaman bu test senaryolarnda bulunan senaryolar kullanlacaktr. Eer TDD (Test Driven Development - Test Gdml Yazlm Gelitirme (felaket bir evirim oldu :-)) ) yapyorsanz kodlamaya bu test modelinden balayacaksanz demektir. Testler iin kullanlacak veriyide tablolar halinde yazn. Kullanld Yerler lerleyen zamanlarda bu servisin arld servisler buraya kaydedilir. Yada link verilebilir. Sz konusu servis deiiklie uradnda buradaki listede bulunan servisler de bu deiiklikten haberdar edilmelidir. Bylece deiikliklerden kimler etkilenecek sorusunun yantn annda alabilirsiniz bamzdaki salar da yerinde daha uzun durur. Grld gibi baz kurallara uyarak yazlm gelitirmek gerekten de hatr saylr bir kaliteye ulamamz salyor. Ortaya kan belgelerin ve modellerin ynetimi, eriimi, kontrol ve deiimi ne kadar kolay ve sorunsuz ise yaplan iin kaliteside o kadar artyor. 3.11 Analist Yazlm Uzman Analist Yazlm Uzman (Analyst Developer ksaca Anyazu diyelim (yeni kelime yaratmak deil amacm; yaz iinde kolaylk olsun diye)) ne i yapar. Gnlm takip edenler greceklerdir ki burada yazdm yazlar genelde belli bir kitleye hitap eder. Bana gelen linkler de baz arkadalarn Analist Developer ne i yapar diye Google'da aradklarn grdm. Kendi kendime ben neden byle bir yaz yazmadm diye hayflandm. Nede olsa sitemin isminden belli bir kitleye hitap ettiim belli oluyor fakat kitlenin ne yaptnnn snrlarn izmemiim. te bu yazmda merak edenler iin bir analist yazlm uzmannn neler yapabileceini irdeliyorum.

73

Blogdan Semeler

Profesyonel bir Anyazu olmak iin aratrma, renme ve uygulama art. Anyazu, yazlm dnyasnda kan her trl yenilik, teknoloji, metodoloji, ara, dil, standart ve sistemleri takip edip renmek, bu konularda kataloglar oluturmak, nerelerde kullanlabileceini belirlemek ve yeni srmlerini takip edip, deiikliklerin var olan sistemleri nasl etkilediini analiz etmek iin sonsuz bir istek ve aba ierisinde olmaldr. Yeni Balayanlara balkl yazmda tlediim baz metodlar uygulamanz tavsiye ederim. Bir nevi sektrn kalbini dinlemeyi renmek gibi. Gelecekte kacak teknolojileri nceden tahmin edebilme, hangilerinin piyasada daha uzun kalacan alglama gibi yetilere de sahip olmaldr. Tabii burada anlattklarm belli bir deneyimin sonunda ve bilgi birikimi ile olur. rnein "Dncelerim" yazm okuyun. Sanki Windows Workflow Foundation olayn grm gibiyim. Ama WWF'in benim istediim konuma gelmesi biraz daha zaman alacak gibi. Aslnda WWF ve BizTalk hemen hemen benim istediimi yapyor fakat konumuzu datmayalm. ncelikle Analiz olayndan balayalm. Bir sistemi yada mteri gereksinimlerini analiz etmek ve bu gereksinimleri yazlm ekibine doru olarak aktarmak ok nemlidir. Anyazu, nasl analiz yaplr, analizler nasl sralandrlr, mteri ile nasl konuulur, UML nedir ve nasl kullanlr, senaryo emalar nasl izilir bilmelidir. Bu aamada Anyazunun yapacaklar: Mteri isteklerini senaryolar halinde belgelendirir. (Senaryo Belgeleri) Sistemin snrlarn izer (Sistem Gereksinimleri Dkman) Harici sistemlerle olan balantlar belirler (Harici Arayz Dkman) Senaryolar aras ilikileri belirler (Use Case, UML emalar) Sistemin hacmini belirler (Function Point Analysis ve COCOMO II) Tm retilen ktlarn mteri tarafndan onaylanmasn salar. Tavsiyem kendinizi sistem analizi ve UML konusunda gelitirin. Ayrca Agile Modeling, XP gibi metodlar ile ilgili kitap yada rtba zerinde bulacanz kaynaklar kataloglamaya balayn. Baz ufak tefek metodlar i yerinizde uygulayn. Gzel sonular aldnzda herkes kullandnz metodun iyi bir metod olduuna kanaat getirecektir. Ayrca FPA ve COCOMO II konusunda da rtba zerinde aratrma yapp nasl kullanlacaklarn renin. Mteri gereksinimleri bir kere mteri tarafndan onaylandktan sonra tasarma geilir. Mteri gereksinimlerindeki deiiklikler artk Deiiklik Kontrol Ynetimi ekibinin sorumluluundadr. Proje yeni olduu iin mteri gereksinimleri devinimsel olarak deiime urayacaktr. Anyazunun grevi bu deiikliklerin sistemde ne gibi etkiler dourduunun, maliyetinin ne kadar olacann ve ne kadar

Blogdan Semeler

74

zamanda uygulanabileceinin analizini yapmaktr. Analiz sonucuna gre Deiiklik Kontrol Ynetimi deiiklii onaylar yada bir sonraki srmn kapsamna dahil eder. Anyazu tasarm aamasnda i kurallarn tek bir belgede toplar ve senaryo belgelerinden i kurallarn kartr. Bir UML arac ile sistemi modellemeye balar. Projenin yazlaca dilin nesne ynelimli olmasna gerek yok, bu modeller her trl analiz ve tasarm amac iin kullanlabilir. UML arac deyince aklmza Rational Rose (TM), yada MS Visio veya cretsiz yazlmlardan Argo UML geliyor. Aralar zerinde inceleme yapp hangisinin ekip iin de en verimli kullanlacan aratrn. Gerekirse COTS bir rnn alnmas iin istekte bulunun. UML emalarn hazrlarken ncelikle sistemde yer alacak nesneler tanmlanr. Her nesne bir snf olarak belirlenir. Daha sonra bu snflar arasndaki ilikiler senaryo belgeleri yardm ile belirlenir. Bu tr emalar en iyi "sequence diagram" (sral ilem emalar) ile analiz edilir. Sistemin analizi srasnda dier yazlm uzmanlarda bulunur ve analiz bir toplant odasnda, projektrden yanstlan UML arac ile yaplr. Gerekli nesneler, mesaj alverileri, senkron - asenkron ilemler ve ortaya atlan fikirler direk model zerinde uygulanr. Bylece toplant sonrasnda kat ynlar arasnda tekrardan analiz yapmaktan kurtuluruz. Toplantya katlan herkes yaplan deiikliklerin onayladna dair belgeyi imzalar. Tm deiiklikler Anyazu tarafndan listelenir ve toplantya katlanlara gnderilir. Model ortaya kmaya baladka hangi ekip elemanlarnn model zerinde deiiklik yapma hakkna sahip olaca da Anyazu tarafndan belirlenir. Tasarm modelinin Use Case'lerden balayp nesnelere kadar takip edilebilmesi gerekir. Model iinde oluturulacak linkler ve modelin HTML olarak yaynlanmas; sistem hakknda bilgi sahibi olmak isteyen yada referans vermek isteyen kiiler tarafndan youn olarak kullanlacaktr. Anyazu bu ii de yapar ve modelin bozulmadan kalmas iin dier yazlm uzmanlarn koordine eder. Anyazu veritaban modelini; sistemin analizine dayanarak ortaya karr ve veritaban uzmanlar ile beraber alarak standartlara uygun bir veritaban gelitirilmesine yardmc olur. Sistemde modellenen nesneler ile veritabanndaki tablolar ve sahalar farkl isimlerde olaca iin bir veritaban szl yaratr ve modele balar. Bu belgeyi ister tek bir belge halinde ister UML arac iinde entegre olarak barndrmakla ykmldr. UML aracnn bu tr belgeleri otomatik olarak retmesi ek bir kolaylk salayabilir. Anyazu, modelleme aamasnda ortaya kan pattern'leride belirler. Unutmayn Tasarm Patternleri model iinde farkediliyorsa uygulamaya girer, yoksa illa pattern uygulayacaz diye model

75

Blogdan Semeler

hazrlamyoruz. Eer belirgin ekilde bir pattern gryorsanz bunlar uygulamaktan ekinmeyin fakat illa bir pattern uygulayacam diye tasarmn kapsamn da daraltmayn. Konfigrasyon Ynetimi yazlm (Subversion, Clearcase, CVS, VSS gibi) zerinde her Use Case yada function point iin bir dizin yaratr ve yazlm uzmanlarna datlacak ileri belirler. Srekli Entegrasyon (CruiseControl, Draco, NAnt, FXCop, NUnit gibi yazlmlarn Subversion, CVS gibi konfigrasyon ynetimi yazlmlar ile entegre edilmesi) ortamn kurar ve alma prensipleri hakknda eitimleri verir. lerin atamas proje mdr tarafndan yaplr. Bu aamada Anyazu PM ile beraber alr ve her Use Case'in hacmi, alaca zaman ve ncelii hakknda bilgi verir. Anyazu padiahn yanndaki vezir gibidir yani. Sistem, yazlm uzmanlar tarafndan kodlanmaya balandnda; Anyazu kodun sistem gereksinimlerine gre yazlp yazlmadn tefti eder. Ayrca standartlara uyulup uyulmadn da kontrol eder. Kod iindeki yorumlardan dkmantasyon retmek (NDoc) ve gerektiinde bu yorumlar dzeltmek gene Anyazunun grevidir. Tabii burada yazlm uzmanlar; nasl olsa yorumlar yazan biri var diye dkmantasyonu biraz hafife alabilirler fakat yazdklar kodun ne olduunu anlatacak yorumlar eklemek grevleridir. Anyazu bu ekilde taklan yazlm uzmanlarn tatl dille uyarabilir. Anyazu hata ve istek veritabanlarnn kullanm, bakm, raporlanmas gibi konulara da bakar. PM veya st mdrlerin istedii raporlar oluturmakla ykmldr. stenmedii srece raporlara herhangi bir yorum eklemez. Anyazu projenin yada firmann her kademesindeki kiiler ile dorudan grr ve fikir belirtebilir, gerektiinde toplantlar organize eder. Problem yaratan konular varsa analizini yapar ve zm iin gerekli ekiplerin bir araya gelmesini salar. Kodda yazar vakit bulursa. Ama kod yazmak ana ileri ierisinde deildir. Yazlan kodun entegrasyonu ve d sistemler ile balantlarn kontrol eder ve test edilmesi iin gerekli ortam hazrlar. Gerekli ortam deyince aklnza bilgisayar kurmak gelmesin o iler iin sistem yneticisi var, daha ok d sistemlerin veri al veriinde kulland mekanizmalarn kurulumu ve testi (rnein Websphere MQ yada MSMQ gibi) ilerini yapar. Kullanlacak nc parti uygulamalar tesbit eder ve entegrasyonu iin gerekli kodu yazar yada analizini yapar. rnn kurulumu, testi gibi ileri koordine eder. Test senaryolarn yada kurulum tkzlarn hazrlamaz, sadece yaplacak ileri koordine eder ve sonular kartr. PM megul ise i paylatrmas

Blogdan Semeler

76

yapar ve sonulardan PM'i haberdar eder. leri paylatrmadan nce PM'den onay alr veya i paylam listesini PM'e devreder. Anyazu her ii iin onay alr. Onaysz bir i yapmaz. Onaylar, bir e-posta, imzal bir belge yada bir toplantnn sonularnda yazl olmasada oluabilir (toplantda ahitler olduu iin) fakat ayak st konumalar yada ay makinesi bandaki sohbetler onay veya atama olarak kabul edilmez. PM'e bal olduu iin yapaca her ii nce PM'e bildirir. stekler daha st kademelerden direk Anyazuya gelse bile PM haberdar olmaldr, bylece Anyazunun ne ile megul olduunu bilir. Gryoruz ki Anyazu tm proje birimlerini birbirine balayan bir etken. Arada kpr grevi grd iin, herkesin dilini iyi konumas gerekiyor. Ayrca PM iin bulunmaz bir kaynak. Sistem bilgisi ve kullanlan metodoloji bilgisi ile srekli PM ve dier proje elemanlarna destekte bulunuyor. Oluturduu dkmantasyon ve modeller sayesinde mteri gereksinimlerinin tam olarak yazlm ekibine aktarlmasnda byk bir rol oynuyor. Ayrca yazlan kodun da gereksinimlere uyup uymadn aratryor. Bir nevi kalite kontrol grevi de var aslnda. Ama bir kalite kontrol uzman kadar geni konulara bakmyor yada bir HCI uzman kadar herustik inceleme yapmyor. Anyazunun bir dizst bilgisayar olmas baz ileri kolaylatrabilir. Kullanlacak yazlmlarn beta yada deneme srmlerinin testi, sistem entegrasyonlarnn denenmesi, gibi proje ile ilgili iler dizstnde denenebilir. Ayrca Anyazu genelde ofis dnda olaca iin (mteri yannda, eitimde, nc parti yazlmlar salayan firmann ofisinde, toplantda vb. gibi) bir dizst ve kablosuz rtba eriimi arttr. Ayrca firmann haberleme kurallarna gre MSN Messenger, Skype, Google Talk, E-posta gibi mesajlama programlar kurulu olmaldr. Anyazunun temel amac her zaman ulalabilir olmak ve destek vermektir. Anyazuyu sadece analiz yapmak ve kod yazmak iin altryorsanz, gerek verimini alamyorsunuz demektir. Bu kadar iten sonra Anyazu ailesini ve varsa ocuklarn da ihmal etmez. Akam eve giderken eine bir iek alr, ocuklar ile hoa vakit geirir, bilgisayara elini srmez. Aile ile geirilen zaman bir meditasyon gibi bir sonraki gne hazrlanmak iin yeterli gc salayacaktr. Anyazu i yerinde geen geyikleri ve tartmalar eve tamaz. ok gerekirse einden yardm almak iin anlatabilir. 3.12 Nasl Daha iyi Kod Yazarz Bu yl yazlm dnyasndaki sekizinci senem (Commodore 64 ve Amiga dnemlerini saymyorum). Zaman iinde yazlm dillerinin daha da somutlamas (Design Patterns, Best Practices, OO

77

Blogdan Semeler

ve UML vb) bana tasarm ve mimari konularna daha fazla eilmem iin zemin hazrlad. 10 sene nce evrenkentte yazdm kodlara yle bir baknca "ben retmen olsam buna not vermem" diyorum. imdi yazlm aralarnn daha da gelimesi, ve bu aralara eriimin kolaylamas, ak kaynak yazlmlarn oalmas, tasarm, mimari, gvenlik, ynetim, nesne ynelimli gibi konular hakknda materyalin daha fazla bulunabilmesi 10 sene nce hayal bile edilemeyecek bir durumdu. Bu kadar ok kaynak serbest olarak eriilebilir olduu iin performans dk, anlalmas zor, bakm ve deitirmesi imkansz kod yazmak gnah olmal bence. Peki nasl mkemmellie ulaacaz? Yazdmz kodu nasl daha anlalr biimde reteceiz? Dkmantasyonu nasl daha okunur hale getireceiz? Nasl daha fazla renip uygulayacaz? te bu yazmda sizlere birka pf noktas vererek i kalitenizi arttracak konulardan bahsetmek istiyorum. Yazlm gelitirme olayn bir btn olarak ele aldmzda kod yazmann ok kk bir paray temsil ettiini gryoruz. Hatalarn en fazla yapld ve mteri isteklerinin programa dntrld gei sreci olduu iin de yanl anlalmalara ve uygulamalara en ak blm. Hal byle olunca buna bir de yazlmcnn yetersiz deneyimini ve ynetimin ilgisizliini katarsak ortaya kalitenin ok dk olaca bir rn kacaktr. Yazlm uzman kulland programlama dilini ok iyi biliyor olabilir. Yazlm yaplan ii de bilmek en az programlamay bilmek kadar nemlidir. rnein muhasebe kurallarn bilmeden nasl muhasebe program yazacaz? Yada dier sistemlerin girdi ktlarn renmeden nasl entegre bir sistem yazacaz? ou zaman program gelitirmek; favori text editrmz ap bir ka satr kod yazmak, veritabanna iki tablo yerletirmek ile balar. Bu baz firmalarda dahi byle. Bu tr bir projeye devam ettiinizi dnelim eminim 5 ay sonra ilk yazlan kodun tek satr dahi kalmaz. Dier bir konuda yazlan kodun mteri istekleri ile rtmesi. rnein yazdnz bir fonksiyonun hangi mteri istei tarafndan kullanldn biliyor musunuz? 3.12.1 Kitap Okuyun

Kullandnz yazlm dili ile ilgili en az bir referans kitap bulundurmalsnz. Aratrp en iyisini veya tavsiye edilenleri aln. Dil ile ilgili kitaplarn yannda insan ilikilerini anlatan kitaplar, proje ynetimini anlatan kitaplar, sre iyiletirme ile ilgili kitaplar, IEEE, CMMI yada ISO standart kitaplar, UML ve nesne ynelimli tasarm konularn anlatan kitaplar, kullandnz yazlm aralarn anlatan kitaplar, gvenli kod yazmak ile ilgili kitaplar saylabilir. Burada kitap reklam yapmayacam, eer ilgileniyorsanz benimle balatya geip bilgi alabilirsiniz.

Blogdan Semeler

78

Bu kitaplardan reneceiniz yntemler yazdnz kodun kalitesini olduka arttracaktr. 3.12.2 Listelere ye Olun

E-posta listeleri bedava destek alabileceiniz yerlerden bir tanesi. ounlukla retici firmalar tarafndan da kontrol edilmekte. Bir listeye ye olduunuzda muhakkak liste kurallarn renin. rnein nasl ye olacanz veya yelikten kacanz iyi bilin. Benim takldm listelere her gn bir ka kii direk listeye gnderdii UNSUBSCRIBE e-postas ile hem kendini rezil ediyor hemde yelikten kamyor. Listede her zaman saygl olun ve akay yeri gelince kullann. aka yaptnz belirtmek iinde :-) imlelerini kullann ki herkes aka yaptnz anlasn, aksi takdirde sonu gelmez tartmalara girersiniz. Konu d bir ey soracaksanz liste kurallarna gre postay iaretleyin. rnein benim ye olduum bir listede OT harflerini konu ksmnda grnce konu d olduunu anlyorum. Liste yeleri e-mal programlarnda bu balklara gre kurallar oluturabiliyor. Sorduunuz sorular cevaplannca teekkr edin ve daha sonra bir zet postas atp problemi nasl zdnz anlatn ki herkes yararlanabilsin. Listedeki insanlarla frsat doarsa tanmaya aln. Listeye sormadan evvel Google'da arayn.Yzde 95 ihtimalle sizin karlatnz problem birileri tarafndan zaten zlmtr. 3.12.3 Ak Kaynak Aralar Kullanmay renin

Eskiden kod yazarken Allah ne verdiyse harala grele yazyorduk. Ne bir dkmantasyon ne bir nite testi nede kurulum iin herhangi bir ey yapyorduk. Program edinen kiilerin en az bizim kadar bildiini varsayarak, kurulum srasnda problem yaamayacaklarn dnrdk. imdi o gnler geride kald. Artk kod yazarken gerekli aklama satrlarn XML olarak yazyoruz. Daha sonra ak kaynak programlar ile bunlar yardm dosyalarna dntrmek mmkn. nite testleri iinde bir sr ak kaynak sistem var. Program yazmadan nce testini yazyoruz artk. Sonrada bu testlerden gemek iin kod yazyoruz. Sonuta ortaya kan rn en azndan baz testleri yaplm olarak kyor. Kodun ne kadarnn nite testine girdiini anlayacak aralar da var. Testleri yaplmam ksmlar hemen grmek mmkn. Ayrca bu ileri tamamen otomatize edip sonular her derleme ileminde grmekte mmkn. Belli kurallara uyulup uyulmadn kontrol edecek aralar da mevcut. rnein herkes member deikenler iin m kullanm m? Bu aralarn bugn mevcut olmas bizim iin bulunmaz bir frsat. Belli bir programlama diline ynelik yazmadm iin ara isimlerini vermiyorum fakat .NET ile ilgili ara isimlerini isterseniz benimle balantya geiniz.

79

Blogdan Semeler

3.12.4

Srm Ve Konfigrasyon Ynetimi Konusunda Bilgilenin

Bir ekip iinde yazlm gelitirmenin sorumluluu, dier kiilerin ne yaptn bilmekten geer. lerin paylatrlmas, planlarn yaplmas ve almaya balamak iin kendi paynza den kod parasn alp deitirmek, nite testlerini yapmak ve en sonunda da dier kiilerin kullanmna amak gerekir. Kullandnz kod kontrol programnn zelliklerini renmek bir yana, proje iinde kullanlan konfigrasyon ynetimi metodunu renmek te ok nemlidir. Yaplan her iin, retilen her dkmann ksacas zaman iinde deiime urayacan bildiiniz her trl materyal kod kontrol sunucularnda tutulmaldr. Yazdnz kodun eski srmne dnmek yada farkl srmlerde paralel gelitirme yapmak ancak bu ekilde mmkn olabilir. 3.12.5 Bir Bilene Sorun

te herkesin korktuu bir olay. Genelde kiiler sulanmaktan yada kk dmekten korktuu iin soru sormaz. Ama soru sormadan da renme olmuyor. Yazdnz bir kodun daha iyi nasl yazlabileceini sordunuz mu hi? Yada bir problemi en iyi hangi yolla zebileceinizi renmek iin soru sordunuz mu? Eer korkularnz varsa yukarda anlattm e-posta listeleri sizin iin biilmi kaftan. Kendi isminizi kullanmadan soru sorabilirsiniz. Yada patronunuzun ismine GMail'de bir hesap ap onu kullann evet bu bir aka... Soru soracanz kiileri de iyi belirlemeniz lazm. En azndan yeterli bilgiye sahip olup olmadklarn anlamaya aln. Aldnz bilgiyi vakit geirmeden uygulayn ve sonular tekrar bir bilenle tartn. 3.12.6 Seminerlere Katln

Yeni rnleri grmek, yeni insanlarla tanmak, yaptnz i hakknda daha da fazla bilgilenmek ve sfatnzn daha da fazla tannmas iin en mkemmel yol. Peki yazdnz kodun kalitesini nasl arttracak? Ben genelde hands-on denilen oturup kod yazdmz seminerleri tercih ediyorum. Hem uygulama var hem renme. Bu arada da kodu nasl yazmlar grme imkanmz oluyor. Eer birinin daha iyi bir fikri varsa kp sylyor. rn tantm seminerleri de yararl eer kod yazmada kullandnz aralar ile ilgiliyse yada retkenlii arttracak aralar anlatlyorsa. Bu aralara eriiminiz olmayabilir fakat en azndan byle bir teknolojinin varlndan haberdarsnz.

Blogdan Semeler

80

3.12.7

Yeni nsanlarla Tann

nsan ilikilerine yukardaki paragraflarda deindim. Yeni insanlarla tanmak nnze yeni ufuklar aabilir. Bu kiilerden reneceiniz hi bilmediiniz hi grmediiniz yada pek nemsemediiniz konular problemlerinize farkl bir bak as katabilir. Yada siz onlara bir eyler katabilirsiniz. Yeni insanlarla tanmak benim hayatmda her zaman deiikliklere yol amtr. Ayrca i konular dnda birlikte yaplacak aktiviteler ok deiik i imkanlar aabilir. 3.12.8 Blog Yazn/Okuyun

Deminden beri yaptm olay... Eer benim blogumu okuyorsanz ne mutlu bana. Bir iki yorum da atarsanz ok mutlu olurum. aka bir yana rendiim konular ders notlar gibi bakalarna anlatmak amal yazdmda daha da pekitiriyorum. Hatta bazen farkl yollar bile bulmak mmkn oluyor. Ek olarak i verenler blogunuzu okuyup ne iler yaptnz renebilir ve buna gre size teklifte bulunabilirler. Blogunuzda belli konulara ynelin ve i hayatnzda karlatnz konular yazn. Tandklarmn bir ka blogu birden var, bir tanesi kesinlikle ileri ile ilgili konular yazmak iin dieri ise srf geyik olsun diye yazdklar yada aile fertleri ile resim paylamak iin kullandklar bloglar. Kod yazarken eitli problemlerin zmn genelde bloglarda buluyorum. Bir ka yazmadan sonra kodu alp kullanabiliyorum. Kimi zaman rnek projeler bile indirmek mmkn. Bylece yazdm kodun kalitesi artm oluyor. 3.12.9 Refactoring Refactoring Nedir renin yazlan kodun performansnn, bakmnn, okunabilirliinin ve yeniden

kullanlabilirliinin arttrlmas iin uygulanan bir dizi metoddan ibarettir.rnein tekrar eden rutinleri ayr fonksiyonlara ayrmak, ilgili rutinleri bir snf altnda toplamak, deiken isimlerini deitirmek, algoritmalar daha hzl alr hale getirmek vb gibi. Tm bunlar yaparkende zaten alan kodu bozmamak. Sonuta iin kalitesi artm oluyor. 3.12.10 nsan likilerini Scak Tutun

Firma iinde olsun, bal olduunuz sektrde olsun; tantnz insanlar ile ilikilerinizi scak tutmaya aln. Bir gn bir probleminiz olduunda gene onlara soracaksnz ama sadece probleminiz olduunda bu kiilerle balant kurarsanz biraz ayp olur. Ayrca soru sormayda renmek gerek. rnein benim blogumda bir ka tane yorum var, sadece hata ald ksm kopyalayp yaptrm. Ne bir aklayc not var nede takip ettii admlar anlatm. Neyse bende karttm kristal kremi baktm neymi hatas. Geriye mesaj atp 3 vakte kadar zeceksin dedim :-).

81

Blogdan Semeler

3.12.11

Deiime Ve Yenilenmeye Ak Olun

Deiik metodlar ve yeni rnleri kurmaktan, kullanmaktan ekinmeyin. Deimeyen ve yenilenmeyen beyinler bir gn gelir sistem d kalrlar. Deiiklik ve yenilik her zaman iyi olmayabilir ama bunun muhakemesini yapacak olan sizlersiniz.Benim en ok karlatm tipler "gndz programclar". Bunlar sadece yazlm sektr iyi maa dyor diye sektre atlm kiilerdir. Bir iki kurstan sonra hayata atlp kendilerini iin ehli gibiymi gsterip ahkam keserler. Bu kiiler kullandklar yntemleri deitirmek istemezler nk renmek ve uygulamak beraberinde yeni klfetler getirecektir. Zaten bildikleri yoldan amayp ilerini zamannda bitirmeye alrlar. Mkemmele ulamak gibi bir abalar yoktur. Refactoring deyince kfr zannederler :-) Birde "gece programclar" vardr. Burada anlattklarm yzde 70 yapan kiiler sanrm bu kategoriye giriyorlar. Gece programcs aratrp renmek, yenilikleri denemek iin sonsuz bir istek iindedir. Mkemmellie ulaana kadar her yolu dener. Sistemleri deitirmekten kanmaz. Sektrn her iki tip insana da ihtiyac var. Biri iyidir, dieri ktdr diye bir yorum yapmayalm. Projelerde bazen zamanlama n plandadr, kimi zamanda kalite. Duruma gre bu iki tip yazlm uzmannn dengeli bir karm kaliteli bir rn zamannda teslim etmenize sebep olabilir. 3.12.12 Firma Kltrn renin

Firma iindeki ileyi emasn iyi renin. Firma kurallarn iyi renin. Baz kurallar yazl olmayabilir ve zamanla renilecek kurallardr. Yazlm standartlarn, kullanlan aralar, ve a yapsn renin. Yazdnz kodun standartlara uyduundan emin olun. 3.12.13 Kiisel Bilgisayarnza Yazlm Aralarn Kurun

Yazlm olayna gnl vermi iseniz zaten bunu sylemeye gerek yok. Ama ben yle insanlar ile altm ki adam sadece firma duvarlar arasnda yazlm uzman olarak geiyor. Evinde bir bilgisayar dahi yok, varsa bile rtba amal kullanyor. Bir kiisel e-posta adresi yok. Seminerlerden, toplantlardan, etkinliklerden bi haber. Ben bu ii yapmaktan zevk alyorsam tabii ki evimdeki bilgisayarma gerekli aralar yklerim. Evde de baz projeler gelitirmek isterim. Ama daha ok denemek, daha ok yanlmak ve bilgiyi arttrmak deil mi? 3.12.14 Ak Kaynak Projelere Katln

Ak kaynak projeler size bir ekip iinde nasl alacanz ve ne tr aralar kullanacanz hakknda bilgi verir. Katlacanz bir projeyi eminim Sourceforge yada baka ak kaynak proje

Blogdan Semeler

82

sitelerinde bulabilirsiniz. Sonuta yazdnz kod bakalar tarafndan kontrol edilecei iin deiiklikleri takip edip en iyi nasl yazlr renebilirsiniz. 3.12.15 Hayal Kurun

Hayal kurmak beynimizin en retken ilerinden biridir. Hayal kurarken problemlere yeni zmler bulabilir veya yeni projelere balamak iin malzeme toplayabilirsiniz. Ben bir defter alp buna aklma gelen olas projeleri yazyorum. Geri ben projeleri hayata geirene kadar birileri benden nce yapyor ama olsun. Bu yntemin amac aslnda yeni projeler bulmak deil var olan projelerin belirli ksmlarnn nasl dzeltilebileceini aratrmaktr. rnein bir projede yle bir durumla kar karya kaldk. Bir dkmann onaylanmas iin 3 ayr kiinin onay vermesi gerekiyordu. 5 yl nce program tasarm edenler veritabannda ki Dokuman tablosunda bu 3 kii iin birer saha tanmlam. Gel zaman git zaman, onaylama sreleri organizasyonun yaps ile deimi fakat yeni sistemi karlayacak veritabannda yeteri kadar saha yok. Olayn zm basit. Ek bir tablo yaratp onaylayacak kiileri burada tutabilir ve her dkman iin istendii kadar ok onaylayacak kii tanmlanabilir. 3.12.16 Kod Teftii

Kod teftii bakasnn yazd kodun gzden geirilmesi ve aksaklklarn not edilmesidir. Proje ak kaynak ise, kodu dzeltmek te iin iine girer. Eer firma iinde yazlm gelitiriyorsanz, kodun yazarna bir not gnderip deimesi gereken yerleri ve nedenlerini bildirebilirsiniz. Kod teftiinin amac var olan kodu daha iyi alr hale getirmek yada proje standartlarna uydurmaktr. Agile metodlar ile gelitirme yapanlar Pair Programming olayn bilirler. Bu yntemde iki kii bilgisayarn karsna geer. Birisi kod yazarken dieride yazlan koda puan verir. 10'dan balayan bu puanlamada her hata da 1 puan dlr. Kodlama bitince programn ald puana baklr ve 10 puan almak iin neler yaplabilir tartlr. Gerekli olan dzeltmeler uygulanr. 3.13 Eer Test Edilmemise almyor Demektir Belkide ok zntlere yol aacak bir balk ama test edilmemi bir zelliin almadn ve rnnze yada firmanza verecei zararlar bir dnn. Bugn Sourceforge'dan bir modl indirirken ne kadar test yapldna bakyorum. Eer testler eksik ise ekliyorum yada o modl hi kullanmyorum. Eskiden yazdmz bir program test etmek iin ihtiya duyulan eylere bir gz atalm Test iin kullanlacak an oluturulmas Test kullanclarna hesap almas ve gerekli haklarn verilmesi

83

Blogdan Semeler

Gerekli verinin veritabanlarna yklenmesi Farkl senaryolar iin farkl veri oluturulmas Tm programn derlenip test ortamna kurulmas Test senaryolarnn yazlmas Test sonularnn analizi Hata ve isteklerin kayd ve organizasyonu Bu anlattklarm bugn dahi yaplyor ama entegrasyon yada kullanc kabul testleri iin. nite testleri iin bu kadar teferruata girmeye gerek yok. Bugn yazdmz bir program iin test oluturmaya kalkarsak bunu NUnit veya VSTS ile rahata yapabiliyoruz. Ayrca oluturulan testler hem ynetmesi hemde altrmas kolay testler oluyor. Kazandmz zaman ve artan kalite de cabas. Bu durumda yazlm uzman yazd kodun testlerini de oluturacak, testleri altracak ve dier testlerin etkilenmediini de kontrol edecektir. Bu olay artk bizim (yazlm uzmanlarnn) sorumluluumuzda olan bir olaydr. TFS bu olay bir adm ne alarak yle bir zellik eklemi. Check-out edilen kod ancak nite testlerinden geerse TFS'e geri gnderilebiliyor. Bu kapatlp alabilen zellik sayesinde TFS zerindeki kodun her zaman nite testlerinden geeceini dnebiliriz. Sanyorum bu tr aralar arttka, sre iyiletirme iin uygulamamz gereken ilemleri gnlk hayatmza sokmak daha da kolaylayor. Peki bir yazlm firmasnda srf TFS ve iyi bir yazlm sreci kullandnzda 3. seviye CMMI sertifikas almann kolaylatn biliyor musunuz? Bundan bir ka zaman nce bir grup toplantsnda NUnit testlerinin rn ile birlikte verilmesini tartyorduk. Bylece rn alan mteriler testleri altrarak rnn kalitesi hakkndaki sorularn cevaplayabilirlerdi. Mterinin teknik konulardaki yetersizliini dikkate almadk. Her zaman konudan anlayan bir programcy bnyelerine katp yeni bir i sahas oluturabilirler. Testleri kendi altran mterinin rne olan gveni biraz daha artar hatta tavsiyelerde bulunabilir. Bylece rn gelitirmek iin harcayacanz ArGe finansmann da bilgisayarlar gncellemek iin kullanabilirsiniz. Sizce nasl olmal? Yazdnz programlarda nite testlerini de dahil ediyor musunuz? Bu sistemleri otomatize ettiniz mi? Yazdnz programn kata ka nite testlerine tabii tutuluyor? Deneyimlerinizi duymak isterim...

Blogdan Semeler

84

3.14 Gereksinim Ynetimi ve Kalite 100. yazmdan sonra Grol Beyden aadaki e-postay aldm. Birilerinin bu tr konulara kafa yorduunu grmek sevindirici. SAYIN GRKAN BEY, Yeni yanz kutlar, nice gzel yalar sevdiklerinizle geirmenizi temenni ediyorum. 100.yaznzla ilgili bir sorum olacakt. Burada bahsi geen "gereksinim ynetimi", yazlm kalite gvencesi ierisinde bir para olarak m alglanmal yoksa, yazlm almalar yapan kiilerin oluturacaklar bir kontrol mekanizmas olarak m alglanmas gerekmektedir? Byle bir ynetim kavram veya bunun gelitirilmesi irketlerin hangi birimi tarafndan uygulanmaldr? Bir sorumda, nereceiz bir kitap varm bunlarla ilgili olarak? Daha nce vermi olduunuz neriler iin de teekkr ederim. Y ALIMALAR SEVG VE SAYGILARIMLA GROL GRSES Kutlaman iin teekkr ederim. Gereksinim Analizi basit olarak mterinin ihtiyalarn analiz ettiimiz adm diyebiliriz. Projenin banda mteri gelir ve problemlerini anlatr sende oturup bunlar analiz edersin. Ynetimini ise Business Analyst yada Analist Yazlm Uzman yapar. retilen her trl dkman belli onay kademelerinden geecei ve zaman iinde deiiklie urayaca iin bu arttr. Bunun kalite kontrol iinse retilen her trl senaryonun mteri tarafndan onaylanmas gerekir. Bylece ortaya kardmz her gereksinimin mterinin ihtiyac olan gereksinimler olduunu syleyebiliriz. Bouna rettiimiz bir ey olmamas gerekir. Gereksinim Ynetimi Yazlm Kalite Gvencesi iinde bir para olarak alglanabilir. rnein IEEE 829 (Yazlm testi dkmantasyonu) gibi bir standard uyguluyorsak birde bunlarn doru kullanlp kullanlmadn tetkik edecek denetleme mekanizmalar oluturmamz gerekir. Bu mekanizmalar Yazlm Kalite Gvencesi kapsamna girer. Yani bir uyguladmz metod var birde bu metodun doru uygulanp uygulanmadn test edecek baka bir metod var. rnein eitli dkmanlar iin belli ablonlar var ve bunlar kullanlarak dkmantasyon oluturmanz gerekiyor.

85

Blogdan Semeler

Ama tabii zaman iinde ekibin yada kiilerin kar koymas ile bazlarn deitirdiniz yada tamam ile ortadan kaldrdnz. te o zaman metodoloji polisi gelip size hesap sorar. Yazlm Gelitirme sreci iinde hangi metodu kullanrsak kullanalm, her admdan sonra bir test koyarak retilen materyallerin doruluunu lebiliriz. Kimi zaman mteri, kimi zaman test ekipleri yada genel konumak gerekirse projede pay olan herkes bir nevi test yapmaldr ki sonuta retilecek yazlm hem mterinin ihtiyalarna tam olarak vecap verebilsin hemde yazlm olarak doru alsn. rnein Master of Software Engineering okurken Verification & Validation diye bir ders grdk. Bu derste V&V programlarn mevcut metodoloji iine nasl entegre edeceimizi, Risk ynetimini, Inspection yntemlerini ve IEEE 829 kurallarn grdk. TQM konularna da girdik. Sonuta elde ettiim pratik yntemleri gnlk hayatmda kullanyorum. Okuduumuz kitaplardan bir tanesi V&V of Modern Software Systems yazarlar SchulmeyerveMacKenzie. Alp okuman tavsiye ederim. Projenin boyutuna ve firmann finansman yeterliliine gre bence bir Quality Assurance uzman muhakkak gerekli. Firma iinde kullanlan yazlm gelitirme metodolojisini ok iyi bilmelidirler ki kalite kontrol aamalarn entegre edebilsinler. Ayrca projeya katks olan herkes ile dorudan konuurlar. Bu iin outsource (taeron) edilmesi dnlemeyecek bir konu. Hem fikirleriniz alnabilir hemde taeronun kalitesinden emin olamayabilirsiniz. QA uzman birden fazla projeye de bakyor olabilir. QA uzmann her trl testleri yapacak kii olarak grmemek lazm. rnein oturup kullanlabilirlik testlerini yapmaz. bunun iin HCI uzmanlar vardr. Ama kullanlabilirlik testlerinin sonularn deerlendirmek kesinlikle ileri arasndadr. Gereksinim Ynetimi iin yazlmlar da mevcuttur. Gartner raporlarndan "Agile Requirements Definition and Management Will Benefit Application Development" raporunda belirtilen yazlmlar aynen listeliyorum. En ok bilinen/kullanlan gereksinim ynetimi aralar IBM Rational Requisite Pro (Bunu kullandm fakat Rational SoDA olmadan raporlamak ok g) Borland CaliberRM (Bunun bir de VS Team System eklentisi var, trial indirip kurdum harika bir ey) Serana Requirements / Traceability Management Telelogic DOORS

Blogdan Semeler

86

Daha az bilinen aralar ise: Apptero 2004 Axure Software Solutions Rapid Prototyper Compuware Reconcile (QA Center ve DevPartner ile kullanlyor) Goda Software Analyst Pro iRise Application Simulator MKS Requirements 2005 (Integrity Manager ile) Sofea Profesy SpeeDev RM SteelTrace Catalyze TCP Integral Requisite Analyzer Sistem Mhendislii zerine gereksinim ynetimi aralar: 3SL Cradle UGS Teamcenter ViewSet Pace Vitech Core Maalesef hepsinin linklerini veremiyorum. Google'dan aratabilirsiniz. Yukarda bahsettiim rapordan bir alnt yapaym. Raporu sitede verecektim fakat lisans olay yznden dokunmayaym dedim. Gartner avukatlar ile uramak istemem e-posta ile gnderebilirim. Gereksinimlerin toplanmas ve ynetimindeki esneklik, yazlm gelitirme srecinin ne kadar disiplinli olduunu gsterir. Gereksinim toplama ve ynetme ilerini otomatize etmi yazlm gelitirme firmalar deiiklik kontroln daha iyi destekler, testlerde verimlilik kazanr ve gelecekte ortaya kacak bakm ve deiiklik ilerinin ykn azaltrlar. te yandan kalite subjektif bir olgudur. Kiiden kiiye deiir. Bir kiinin sevdiini dieri beenmez. Pirsig ikilemlerinde yle laflar geer: . steyen olursa raporu

87

Blogdan Semeler

Eer bir nesne kaliteli ise neden bilimsel aralar ile kaliteyi lemiyoruz? Eer kalite subjektif ise ve sadece gzlemcinin kans ise o zaman kalite sadece neyi beendiinize verilecek k bir sfattr. IEEE ise olaya biraz daha aklk getirmi: Bir sistemin, modln yada srecin tanmlanm gereksinimlere yada mteri veya kullanc ihtiya ve beklentilerine uyma derecesidir. Weinberg ise hatalarn bulunmad durumlar kaliteli olarak varsaymtr. Umarm anlattklarm yararl olur yada daha fazla soru sormanz iin zemin hazrlar. 3.15 Dier Gereksinim Ynetimi Yazs ok fazla yazan bir adam deilim. Bir eyler yazmak iin hele ki sektr ile ilgili olacaksa ilham gelmesi yada birilerinin beni kzdrmas lazm. Ancak o zaman sular seller gibi yazabiliyorum. Tabii birde yazdklarmn kalitesi ve doruluu mmkn olduu kadar yksek olmal. Bu doum gn ve 100. yaz olmas vesilesi ile nemli bir eylerden bahsedeyim. Yazlm gelitirme alannda gereksinim analizi aamasn bilirsiniz. Mterinin ihtiyalarn veya problemlerini analiz ederek bilgisayar ortamnda nasl zm bulacanz aratrrsnz. Mterinin farknda olduu veya olmad tm gereksinimlerini ortaya karr eitli yntemler ile bunlar dosyalar ve sistemi modellemeye alrsnz. Bu gereksinimleri ne kadar iyi ynetirseniz sonuta ortaya kacak rnde o kadar hatasz olacaktr. Gereksinim Ynetimi Gereksinim analizi srasnda ortaya kabilecek rnlere bir bakalm. Senaryolar ak diyagramlar kurallar Hedef ve Kapsam belgesi Data definition diyagramlar Dahili ve harici arayz gereksinimleri eitli UML diyagramlar

Blogdan Semeler

88

Sistem gereksinimleri spesifikasyonlar Test senaryolar Prototipler Srm politikas Deiiklik istek belgesi Gvenlik politikas Risk dkman Bu listeyi daha uzatmak mmkn. Bunlar ilk etapta aklma gelen eyler. Daha kod yazmaya gemeden elimizde bir sr dkman oluuyor. Mteri isteklerini deitirebilir, yenilerini ekleyebilir veya baz gereksiz grd ksmlar silebilir. Bu kadar fazla rnn ynetilmesi kesinlikle mecburidir. Aksi takdirde ipin ucunu karrsak ve baz gereksinimleri mterinin istedii gibi deitirmezsek bu proje salncak hikayesine dner. Mteri odakl bir yazlm firmasnn en byk bilgi kayna mteridir. nk ii bilen ve her trl girdi ktsn tanmlayabilecek tek kiidir. Program hatasz yazabilmek iin mteriyi srecin her trl aamasna sokmanz gerekir ve mterinin azndan kan her trl bilgi kayt edilmeli ve iyi ynetilmelidir. Bunlar yazl dkman olduuna gre rahata bir kelime ilem program (Word, wiki, Open Offce vs.) ile hazrlayacanz ablonlar kullanarak belli bir biimde kayt edilmelerini salayabilirsiniz. Her trl dkmann bir ablonu olunca iler biraz daha kolaylar. kinci aamada bunlarn srm kontroln yapmalsnz. Bylece kim ne deitirmi grmek mmkn olur. rnein wiki ortamnda kimin ne deitirdiini grmek kolay olur yada Subversion gibi bir program ile srm kontroln yapabilirsiniz. Deiikliklerin onaylanmas iinde bir i ak dzenleyip belgelere uygulanacak deiikliklerin onaylanmasn salayabilirsiniz. Onay ya mteriden yada bu i ile ilgili firma iindeki birimden gelecektir. Deiiklik ancak onaylanrsa (deiiklik istek belgesi bu i iindir) esas belge iine gmlr. Son hali onaylanan belgeler zerinde deiiklik istenirse; bu deiikliin etkiledii dier alanlar ok iyi tanmlanmaldr. Eer maliyeti ve zaman arttran bir deiiklik ise baka bir srme braklabilir. Bu da srm politikas belgesinde belirtilmelidir.

89

Blogdan Semeler

Her yazlan fonksiyonun hangi senaryoda nasl kullanldn gsterecek ak emalar ile koddan gereksinimlere doru takibi kolatracak UML diyagramlar oluturmalsnz. lk srm verildiinde bouna yazlm kod var m yada bouna retilmi bir senaryo var m analiz edebilirsiniz. Bu size rettiiniz rnn gereksinimleri ne kadar kapsad hakknda bilgi verir. Evet, toparlamak gerekirse gereksinim ynetimi ok nemli bir konu ve nmz grerek kod yazmak istiyorsak art. Dnn petrol ykl bir tankeri ynetiyorsunuz ve sis iinde yol alyorsunuz. Bir yere arpsanz hem evre kirliliine hemde para kaybna neden olacaksnz. Ayrca kaybedeceiniz itibar da cabas. Byle bir riski almaktansa bir iki radar sistemine yatrm yapmak yada sisin kaybolmas iin beklemek en akllca i olur. Gereksinimleri akllca ynetirsek stesinden gelemeyeceimiz proje yok deil mi? 3.16 Serbest Yazlm Ak kaynak yazlm zerine podcasting yapan IT Conversations sitesinden bir ka ovu dinliyordum. ovlarn kalitesi ok iyi. Bilindii gibi sitemde genelde Microsoft teknolojilerine zerine yazyorum fakat yazlm mhendisi olmamn verdii sorumluluk ile her alandan bir eyler burada greceksiniz. IT Convesations sitesinden dinlediim Larry Augustin'in "The Next Wave of Open Source : Applications - Ak Kaynak Dnyasnda Bir Sonraki Dalga : Uygulamalar" isimli ovda serbest yazlm dnyasnda nmzdeki yllarda karmza kacak ve mevcut ticari yazlm paketlerinden bahsediliyor. Serbest yazlm dnyasnda iletim sistemi, derleyici gibi altyaplarn artk oturduu bir dnemde ticari yazlmlarn retimine doru kaylmas olduka normal bir durum. Yazlm satn alacak bir firma iin en nemli unsur bence mevcut sistemlere na kadar entegre olacadr. Burada sistem olarak bahsettiim mevcut bilgisayar sistemleri yada iin ileyi modelidir. Sat sonras destek, fiyat, kullanlabilirlik daha sonra gelir. Bir firmann Linux ortamnda mevcut olan ticari yazlmlar kullanabilmesi iin tabii ki tm alt yapsnn Linux olmas ve gerekli destei ya ierden yada dardan alyor olmas gerekir. Ne tr alt yap kullanrsak kullanalm genede bir sistem ynetcisine ihtiya var nasl olsa deil mi. Pek ok yazlm -ticari veya serbest yazlm- ihtiyalardan doar. Daha sonra kullanclarn gereksinimlerine gre ekillenir. Ticari yazlmlarda gerek kullanc ile yazlm arasnda baz bariyerler vardr. Her isteyen kurup deneyemez, gerekli eitim, dkmantasyon serbest olarak mevcut deildir, evrede kullanan bilgi alabileceiniz fazla firma yoktur yada firmalar bu bilgileri aklamaktan ekinirler. Bu gnmzde deimeye balayan bir model ama almas gereken pek ok bariyer daha mevcut.

Blogdan Semeler

90

Serbest yazlm dnyasnda ise yukarda saydmz bariyerler yok fakat bu seferde fonksiyonellik asndan bir fazlalk var ve buda kullanlabilirlii azaltan bir faktr. Ayrca gelitirme platformlarnn okluu gene kullancnn kafasn kartran bir etken. Dier bir etkende ak kaynak yazlmlarn birlikte alabilmesi iin harcanacak zaman ve naktin miktar. Bence eitli standartlar oluturulmal ve verinin btnll salanmaldr. rnein mteri tablosu her yazlmda ayn isimle ve ayn sahalar ile tanmlanmaldr. Tabii ki byle bir standard yazlm dnyasnda oturtmak pek mmkn deil. Her yazlm kendi iinde kk bir dnya ve kendi kurallarna gre ynetiliyor. Neyse konuyu datmayalm... Bir ka serbest yazlm birletirip ortaya karacanz biri rn satabilir ve desteini verebilirsiniz. Gzel bir i modeli ama balang aamasnda biraz zorlanabilirsiniz. Biraz dikkat ve koyacanz kurallar ile bunlar amak mmkn. Nedir bu zorluklar: Trke dkman eksiklii Entegrasyon Srm kontrol Kurulum zorluklar Marka eksiklii Fonksiyon fazlall Mteri gveni oluturma Genelde serbest yazlm projelerinde Trke dkman bulmak zordur yada arayzleri Trkeletirmek gerekir. Sk ve temiz bir alma gerektirecek bir alan. zellikle bu alanda retilen ktnn ok iyi test edilmesi ve yazm, imla vs. hatalarn giderilmesi gerekir. Yardm dosyalarnn da Trkeletirilmesi ve kullancya sunulmas arttr. Bir dier konuda eitim dkmanlar ve kullancya verilecek eitimlerin ekillendirilmesi. Entegrasyon pek ok adan ele alnabilir. Kullandnz ak kaynak yazlmlarn entegrasyonu, mevcut sistemlerle entegrasyon, ileme modeli ile entegrasyon vb. gibi. Sistemler aras veri alveriinin ok iyi analiz edilmesi ve her trl senaryonun test edilmesi gerekir. Kullandnz ak kaynak yazlmlar yeni srmler verdike sizinde bunlar uygulamanz gerekiyor mu aratrmanz lazm. rnein bir kere entegrasyon ile ilgili kodu yazdktan sonra srmleri

91

Blogdan Semeler

deitirmek istemeyebilirsiniz (aslnda bu olay modler bir yapda kod yazmadnz gsterir). Kendi iinizde de bu srm kontroln Subversion gibi bir programla zebilirsiniz. Kurulum iin gerekecek program sizin yazmanz gerekecektir. Bir ka ak kaynak program birletirdiiniz iin kurulum da size zel olacaktr. Mmkn olduu kadar kurulum olayn otomatikletirmek ve sistemin almas iin elle mdahale edilecek admlar azaltmanz gerekir. Kurulum aamas bir ak kaynak proje iin ok nemlidir nk kullanc ilk kurulum ile balar ve ilk izlenimler burada ortaya kar. Sistem destek uzmanlar iin de ne kadar az mdahale edilirse o kadar iyidir. Gereksiz fonksiyonlar krparak mteriye tam istedii zm vermeliyiz. Zaten fazla fonksiyon olmas sizinde banz artr. Zaman ilerledike bu fonksiyonlar ileme koyabilir Baz potansiyel mterilerin program pilot olarak kurup denemelerini salayn. Bylece programn kendi ilerine yaradn daha net grrler ve ak kaynak yazlmlara kar phelerini giderebilirler. Bir iki sattan sonra mterileri bir araya toplayacak toplantlar dzenleyip fikir alveriinde bulunmalarn salayabilirsiniz. Sizin hi ummadnz bir zellii farkl ekillerde kullanan mteriler kabilir. te size mis gibi i modeli. Yazlacak minimum kod ile bir rne sahip olmak ve bunu pazarlamak ne kadar kolay deil mi? Sat sonras destek ve eitim konularnda hallettiniz mi piyasada uzun yllar kalacak bir firma sahibi oldunuz demektir. 3.17 Reusing ve Refactoring Yazlm dnyasnn bu iki nemli konusundan biraz bahsetmek istiyorum. Sklmayn sonuna kadar okuyun. Sizin iin yararl olduunu greceksiniz. Bir yazlm gelitirme srecini dnn. Mteri size gelir derdini anlatr, projeyi almanz ister, yasal ilemlerden sonra oturup analiz yapmaya balarsnz. ncelikle bir "Hedef ve Kapsam" belgesi yazmanz ve mteriye onaylatmanz gerek. Daha sonra senaryo analizlerine ve firmann mterisi ile arasndaki diyaloglarn belgelendirmeye alrsnz. Mterinin aklna srekli yeni gereksinimler gelir sizde sre iinde dkmanlar gncelleyerek bunlara karlk vermeye alrsnz. Her yazlm projesinde kullanlacak genel paralar, sreler, modller ve belgeler vardr. rnein senaryolarn belgelendirilecei Word ablonlar vardr, eitli test verilerinin oluturulaca Excel belgeleri vardr, programlama alt yapsn oluturacak; kredi kart sorgulama, gvenlik, rol datm, ekran tasarmlar, baz i aklar, web temalar vardr. Tm bu malzeme proje daha ortada yokken hazrdr.

Blogdan Semeler

92

Mesela kek yaparken yumurta kullanyoruz ama oturup yumurtay yeni batan retmiyoruz di mi? Zaten ok zor olurdu, nce tavuk mu reticez yoksa yumurta m? ncelikle refactoring olayndan balayalm. Sadece yazlan kod iin deil, projenin her aamasnda kullanlabilecek bir yntem. Refactoring retilen parann daha kolay anlalmas, bakmnn kolaylatrlmas, hzlandrlmas, gereksiz yerlerinin krplmas, dkmantasyonunun iyiletirilmesi adna yaplacak bir dizi ilemdir. Tek dnmeniz gereken bu paray sizden sonra baka projelerde kullanacak kiilerin yardma ihitiyac olmadan (ve size kfr etmeden) rahata kullanabilmesi ve performansnn dmemesidir. rnein bir dkman ablonunu ele alalm. Projenin banda senaryolar yazarken Word' ap Allah ne verdiyse yazyordunuz. Sonradan farkettiniz ki aslnda her senaryo iin belli balklar var ve hepsinde ortak kullanlyor (farkl isimlerde olsa bile). Bir Word ablonu oluturup herkesin bunu kullanmasn salarsanz, firma ii iletiim 10 kaplan gcnde olacaktr ki Agile programlama yapanlar iin ba kurallardan bir tanesidir. Yada yazdnz bir fonksiyonu dnn. Hani yapmazsnz ama; ilk yazdnzda ok uzun ve karmak bir algoritma kullanm olun. Sizden sonra gelen programclar yle diyecektir. "Abi NASA'da rocket science zerine altm, fezaya 10 tane roket gnderdim, ama byle karmak bir algoritma ne grdm nede duydum". Byle konumalar duymak istemiyorsanz yazdnz fonksiyonu paralara blp yeniden dzenlemeniz, belki bir ka pattern kullanmanz, bir arayzde eitli fonksiyonlar toplamanz, algoritmalar hzlandrmanz ve nite testlerini geniletmeniz gerekir. Refactoring genelde srmleri verdikten sonra yaplr. lk srm verip mteriyi memnun ettikten sonra oturup daha iyi nasl yapabilirim diye dnmek, biraz kafa patlatmak ve nite testlerini bozmadan yeniden yaplandrmaya gidebilirsiniz. Bylece rn daha kolay anlalr, bakm kolay ve yeni zelliklerin rahata eklenebilecei bir hal alr ki hem sizin iin hemde sizden sonra gelecekler iin salam bir alt yap olur. Bir sonraki projenizi yaparken bu alt yaplar kullanr, retim zamann yarya indirebilirsiniz. te Reusing bu aamada devreye giriyor. Tasarm Pattern'leri, hazr modller, temalar, ablonlar, program paralar, fonksiyonlar, testler ve aklnza gelebilecek daha pek ok ey tekrar kullanlabilir. Oturup koca bir gvenlik modln tekrardan yazmaktansa bir nceki projede yazdnz gvenlik modln refactoring yaparak yeniden kullanlabilir hale getirmek daha ksa srecektir.

93

Blogdan Semeler

Kural olarak; yazdnz bir fonksiyonun tekrar kullanlabileceini tahmin ediyorsanz, refactoring yapmanz arttr. Bylece retim maliyetlerini azaltm oluruz. Firmann bykl yada projelerin saysda sizin iin bir kstas olmasn. Zaten topu topu iki projemiz var refactoring ile zaman harcamaya gerek yok diye dnebilirsiniz. Fakat daha fazla projeler almak, projeleri zamannda teslim etmek, bymek ve uzun sreli bir firma olma vizyonumuz varsa bu yntemleri muhakkak kullanmamz gerekir. Bylece piyasada adndan iyi sz edilen, kkl bir firma olursunuz. Ben her zaman deiimden ve yenilikten yanaym. 10 senedir kullanlan i srelerini deitirmekten kanmam. Tabii ki ncesinde bir analiz ve maliyet-fayda analizi yaparm. Bir heykeltra gibi olan yontmay veya yeni eyler ekleyerek gelitirmeyi her zaman dnrm. Biraz sanat biraz da mhendislik ile daha iyisini daha ksa zamanda retmek iin yollar ararm. rnein ak kaynak projelerde sizin kullanabileceiniz bir sr modl olabilir. Birileri sizin yaadnz problemleri zaten yaam ve zmdr. Hatta o zmleri refactoring yaparak herkesin kullanabilecei hale bile getirmitir. Arayp bulmak size kalyor. Yazlm Uzman olarak sizin kariyeriniz iin de iyi olan taraflar var. ncelikle yntemleri reniyorsunuz, bunlar tekrar uygulamak sizin iin ocuk oyunca olacaktr. zgemiinize refactoring ve reusing sonucu firmanza ne kadar yarar saladnz yazabilirsiniz. rnein "Falan projede uyguladm refactoring ve reusing yntemleri ile grevlerimi %30 daha az zamanda bitirdim. Projenin tamamlanma srecini de %15 hzlandrdm" gibi. Bu tr baarlar yazacanz n kapakta ok yararl olur. Bold yazlm kelimelerde dikkati ekmek iin iyi bir yntemdir. Ama ltfen drst olmaya zen gsterin. 3.18 Kariyer Olay Bilgi Teknolojileri alannda kariyer yapmak isteyen genlere bir ka t. Dier okuduum bloglardan ve kendi deneyimlerimden derledim. Rahatlk kariyerinizi ldrr. Eer zorlanmadnz bir alanda uzun zamandr alyorsanz her ayda bir zgemiinize yeni bir hner ekleyebilmeye dikkat edin. Eer ilk ayda yeni bir ey ekleyemezseniz ikinci ayda mutlaka yeni bir eyler ekleyebilin. Eer altnz yerde yeni eyler renmeye frsat yoksa ak kaynak projelere katlabilir ve bo durmadnz kantlayabilirsiniz. Ben bazen eitimlere katlyorum bazende ak kaynak projelere yardmda bulunuyorum. Yada yeni bir rnn kurulum konfigrasyon admlarn aratryorum. Kariyerinize karar verin. Hedeflerin belirlenmesi bu hedeflere ulalabilmesi iin atlacak ilk admdr. Hangi projeye girersem benim iin en iyisi olur, o projeden neler reneceim ve proje sonunda

Blogdan Semeler

94

zgemiime neler ekleyebilirim gibi sorular kendinize sorun. Eer firma iindeki kaymalardan dolay, size hi bir ey katmayacak bir projeye katldysanz artk o firmadan ayrlmann vakti gelmi demektir. Genelde bu durumlarda firma sahipleri eitli tevik veya vaatlerle sizi projede tutmaya alabilirler fakat kariyeriniz daha nemlidir. Ben Trkiyede alrken yurt dnda almak aklmn ucundan bile gemezdi. Ya tutarsa diye zgemiimi gnderdiim bir firma beni cepten araynca epey bir ok olmutum. 1 ay sonra yeni iimde baladm ve kariyerim iin ok iyi oldu. Taeron iler hayatn bir gereidir. Kapitalist sistemlerde iler yksek maliyetli blgelerden dk maliyetli blgelere doru kayar. Tabii ki taeronun kalitesi ynetim asndan kabul edilebilir ise. Bir firma iin kabul edilebilir olan kalite seviyesi dier bir firma iin kabul edilmeyebilir. Eer ilerin taeron firmalara kayacan sezinlerseniz o iten hemen ayrln. Yada kendinizin baka bir firmaya kiralanacan sezinlediiniz zaman vakit gelmi demektir. e girerken imzaladnz anlamalara dikkat edin. Piyasada elinizi kolunuzu balayacak anlamalar imzalamaktan ekinin. Sizin zgrlnze sayg duymayan bir firmada nasl alabilirsiniz ki. Eminim o firma e-postalar ve messenger loglarn da okuyordur. Hayatnz tamam ile i bulma ajanslarna balamayn. bulma ajanslarnn her zaman iyi balantlar olmayabilir. Sadece zgemileri gnderecekleri birer e-posta adresleri vardr. deitirmede en byk yardmc bence fuar ve toplantlardr. nsanlarla yz yze konuup iyi izlenimler brakma olana en ok bu tr organizasyonlarda ortaya kar. Ayrca kiisel bir kart bastrp kontak bilgilerinizi datmanz da iyi olur. rnleri grp deneyebileceiniz, deneme srmlerini alabileceiniz ve bilgiyi ilk azdan duyacanz yegane yer fuarlardr. E-posta ok ucuz bir yntem. Kariyer.net gibi sitelerde i ilan veren kurulular geriye ok fazla e-posta alrlar ve sizin e-postanzn okunma ans yok denecek kadar azdr. Ayrca i bavurusu yapan kiiler i iin gerekli yeteneklere sahip olmasalar dahi zgemi gnderirler. Buda okunacak bir sr eposta anlamna geliyor. bavurularnda eski yntemleri denemek iyi sonu verebilir. nce zgemiinizi gzel bir kada basn ve dosyalayn. Bir n yaz yazp neden o firmada almak istediinizi anlatn. Takm elbisenizi giyip sanz dzeltin ve firmann yolunu tutun. Bylece insan kaynaklar ile dorudan grm ve belkide iyi bir izlenim uyandrm olursunuz. e alnmasanz bile aklda kalacanz garantidir. Ben 98 ylnda ilk mezun olduunda gelen ilk Biliim fuarna gittim. Ama katlan firmalar kitapn almakt. Fuar bile gezmedim. Eve gelip fax programm atm ve sanyorum 75 tane firmann fax numarasn tek tek kaydettim. Birde Wordde zgemi hazrlamtm. Programn Auto-Send zellii ile 70 kadar firmaya zgemi gnderdim. Ertesi gn sanrm 20-25 kadar telefon aldm, Hepside

95

Blogdan Semeler

grmek istiyordu. Tabii bunlar organize etmek iin bir ajanda kullanmam gerekti. Ayn semtte olanlar ayn gnlere pe pee koymaya almtm. Sonuta bir tanesine girdim ve baladm almaya. O yllarda nemli olan para deildi sadece deneyim yapmamn gerektiini biliyordum bu yzden maa nemsemedim. 2 sene sonra ise artk ben Biliim fuarnda grevli olarak yer almaktaydm. evre oluturmak iin blog yazmak ve kullanc grubu toplantlarna katlmakta ok nemlidir. Eer evrenizde belli bir kullanc grubu yoksa bir tane siz balatabilirsiniz. evre oluturmak iin her trl frsat deerlendirmeye bakn. Sevdiiniz ii yapn, para arkasndan gelecektir. Piyasada ok insan grdm srf programclk iyi para veriyor diye programc olan. Tabii zaman iinde kaybolup gittiler bu kiiler. Programclk yapamasanzda IT alannda yaplacak pek ok i seenei var. rnein sistem analisti, modelleme uzman, sistem yneticisi, proje yneticisi vs. Herhangi birini seip kariyerinize o ynde ekil vermelisiniz. Beta ve deneme srmleri ile yeni eyler renmeye balayabilirsiniz. Eer eski teknolojilerde bir eyler yazyorsanz (ASP, VB6, COBOL vs.) yeni teknolojileri takip edin ve bir sonraki trendin ne olacan nceden sezinlemeye aln. Bylece yeni teknolojiler piyasaya ktnda sizde en az dierleri kadar bilgili olacaksnz. Tabii bu durum eski firmanz brakmanza neden olabilir ama zaten siz o firmada eski teknolojileri bilen kii olarak tannyorsunuz ve bu nyargy krmak biraz zor en iyisi ayrlmak ve yeniden balamak. Tek dezavantaj yeni teknolojiyi renmek iin i saatleri dnda zaman harcamanz gereklilii fakat kariyerinizin bir atlama yapmas iin sanyorum bu gerekli. Eski teknolojileri bilmek bir avantajda olabilir. Eer sizden baka tamir edecek kimse yoksa ksa kontrat usul alabilirsiniz. rn tamir eder, cretinizi tahsil eder ve olaydan ekilirsiniz. Kariyer iin daha syleyecek ok eyim var. Baka bir yazda onlarda yazacam. 3.19 spanyol Teorisi spanyol Teorisi: kolik yazlm ekibi, retkenlii daha nce duyulmam seviyelere getirmek iin, cretsiz olarak normal saatler dnda alabilir. Bu alma aslnda bir didinmedir. En sonunda da tm proje ekibi istifa eder. Peki bunun maliyeti nedir? Bu tr bir maliyet analizi hi bir zaman planlara dahil edilmemitir edilmeyecektir de. De Marconun Peopleware kitabn okurken benim piyasaya ilk atladm 98 yl gzmn nne geldi. Hele sayfa 18deki Reprise balkl hikaye bana B2 Yazlm iin OCT Biliimde (isimleri deitirdim) yaptmz projeyi hatrlatt. Proje mdr projeyi 6 ayda bitireceimizi sylyordu (kullandmz yazlm aracna gvenerek). Ama tabii buna kimse inanmamt. B2 Yazlmn mdr dahi zaten 6 ay iinde analizleri

Blogdan Semeler

96

bile bitiremeyeceimizi biliyordu. Tabii bize bunu sanrm 7. yada 8. ayda sylemiti. stne birde yazlm ekibinin kullanlan yazlm aracn fazla bilmediini eklemeliyim. Biz tabii ki yeni mezun olmu ve profesyonel hayata yeni atladmz iin canavar gibi baladk projeye harl harl yazdk. Yeni mezun olduumuz iin sylediklerimize nem veren de yoktu. Nede olsa tepede birileri bizim yerimize tm planlar yapm ve 6 ay gibi bir zamanla kagelmiti. Bizde acaba 6 ayda olur mu, diyerek harl harl yazdk. Proje mdr spanyol, alanlar ise olaya Fransz kalmt. Geceleri ofiste yattmz gnleri daha dn gibi hatrlyorum. Bir arkadamz srm ncesi ofise Pazartesi girip Perembe gn kmt. Proje mdr ne olursa olsun ilk bir ka modln srmn vermek istiyordu nk... Verdi de... Ama 6 ay sonunda deil. Bizimde migren arlarmz artt. Spor yapyordum dzenli, onu da brakmak zorunda kaldm. Salm bozuldu. Sizinde altnz iyerlerinde bu tr spanyol proje mdrlerine rastlamanz mmkn. Ksa dnem taktii ile yeni yetme biliimcileri kle gibi altrarak retkenlii arttracan zannedecek bir garip gr ierisinde oluyorlar. Kendinizi sakn bu tr proje mdrlerine kaptrmayn. Unutulmayacak en nemli kural: nsan bu kadar dar proje plan basks altnda daha iyi almyor sadece daha hzl alyor. Bu arada rnn kalitesi ve bizim i memnuniyeti de bayr aa gidiyor tabii ki. lk 3 ay sonunda 8 kiilik ekipten kopmalar balad. Bu projede gelecek grmeyenler baka iler bulup yollarna devam etti. 1 senenin sonunda kala kala orjinal ekipten iki kii kald. Ben ve Pazartesi gn girip Perembe gn kan arkada. ki de yeni eleman katld projeye. Eim Cumartesi Pazarlar beni grebilmek iin ofise yemek getiriyordu. zel hayat filan kalmamt. Bu arada proje el deitirdi, ofisi tadk, masalar ben monte ettim tekrar. Networknden, bilgisayarlarn kurulumuna kadar her eyi yaptm. Gene harl harl almaya devam. Garip bir zevk alyordum bu iten. Tabii bu arada proje neredeyse sonuna gelmiti, fakat test ekibinde yeterli kii olmaynca hatalarn bulunmas ve bunlarn dzeltilmesi gecikiyordu. Maalar gecikiyordu. nce yemek filerini kestiler, yol paras zaten epeyden beri yoktu. Maalar da en sonunda denmemeye balad. ki ay maa denmeyince benimde saks almaya balad artk. Sanrm burada esas yanl ben yapyordum. Yeter artk diyerek saa sola zgemi gndermeye baladm. Bu proje boyunca aldm cret benim iin nemli deildi aslnda. Piyasaya yeni atladm iin deneyim ve bilgilerimi geniletmek istiyordum. Tek yarar benim iin bu oldu. Ama tabii bu arada evlendim ve artk bir ev geindirmeye baladm. Aldm cretin nemi ykseldi. Tm faturalarm deyebilecek durumda deildim. Allahtan eim de alyordu. Pek ok planmz ertelemek zorunda kaldk.

97

Blogdan Semeler

Ne yazk ki bu filmin sonu Hollywood filmleri gibi gzel bitmedi. Projeyi daha sonralar ayaa kaldrmak iin giriimler oldu. Ben 1 sene sonra tekrar geri dndm fakat bu seferde benden baka kimse kalmamt. Gene network kurmalar, bilgisayar kurmalar, ofis mobilyas monte etmeler. Bunlar yaparken kendi kendime glyordum. Sen kandn Grkan diyerek. Ne yapp edip bir kii daha aldm projeye ama srf o kiiyi eitmek 3 ay ald. 3 ayn sonunda da yzde yz retken olmasn bekleyemezsiniz. Daha ok eleman gerekiyordu. Bir veritaban uzman, sistem yneticisi, bir ka yazlm uzman daha... Bu arada ofis yeni yere tand iin evden ofise tam 3 saat yol gidiyordum. Akam saatinde eve dnmek daha bir berbat oluyordu (gene 3 saat). Btn gn yorulan halk otobste vapurda patlayacak bomba gibi, suratlar be kar. Sonu hsran tabii ki. Firmann kayb ok byk oldu. Proje bitmedi. yi niyet bir yere kadar fakat ben gene bir i bulup ayrldm. Alacaklar gene kald. 4 senenin sonunda artk dersimi alm ve arkama bakmadan ileriyi planlamam gerektiini anlamtm. Planmz yaptk ve uyguladk. Benim bu projeye verdiim deer kadar firma bana deer vermi olsayd belkide sonular ok daha farkl olabilirdi. 3.20 Bavurusu ve Dikkat Edilecekler Bir i bavurusunda baarl olmak iin ne gibi zelliklere sahip olmanz gerekir veya iverenler nelere dikkat eder hi dndnz m? Joel Spolsky'nin "The Best Software Writing I" kitabndan ve benim deneyimlerimden derlediim u maddelere bir gz atn. Srekli renme isteiniz var m? Yeni kan teknolojileri ne kadar takip ediyorsunuz? Yeni bir eyler renmek ve bilgilerinizi gncellemek iin ne zaman bir aratrma yaptnz? Son 1 sene iinde ne gibi kurslara yada seminerlere katldnz? Belli bir renme plannz var m? Biliim Teknolojileri alannda ayakta kalabilmek iin en nemli ey sanrm yeniliklere ve renmeye ak olmak. Son aldnz kitaplara, kurduunuz programlara, gezdiiniz web sitelerine bir gz atn. Blogunuzda yazdnz yazlara bir bakn. Yeni bir eyler var m? Srekli renme istei iinde olduunuzu gsterecek bir kantnz var m? Neleri bilmediinizi biliyor musunuz? Zayf olduunuz konularn bir listesini yapabilir misiniz? Bu zayflklardan konuurken utanp sklmamay baarabiliyor musunuz? nsanolu kendi zayflklarndan bahsetmeyi pek sevmez. Ama iverene drste bunlardan bahsetmeniz ve bunlar kapatmak iin neler yapacanz sralamanz size bir art puan kazandrabilir. Elini tan altna koyabiliyor musun? Projenin veya rnn baarl olmas iin elinizden geleni yapacanza emin misiniz? zveri isteyen baz ileri sylenmeden yapabilir misiniz? Genelde BT

Blogdan Semeler

98

sektrnde almak demek, akam saatlerini ve hafta sonlarn ziyan etmek anlamna gelir. Hani bu ecnebiler derya "work smarter not harder" ok almaktan ziyade akll almak. Baz ileri otomatize ederek bunun nne geebilirsiniz. Buna ramen halen daha zveri isteyen iler olacaktr. Otomatize edilemeyen iler, yada birisinin banda beklemesi gerekecek iler her zaman olacaktr. Hakikaten bu tr iler ortaya ktnda elinizi tan altna koymaktan ekinmeyin. Ama tabii harcadnz zamann ve emein karln da alacanzdan eminseniz. Eitim durumunuz nedir? Bir niversiteden mi mezunsunuz yoksa alayl olarak m BT sektrndesiniz? Alayl veya mektepli olmann hi bir fark yok, nemli olan bildiinizi ispatlamak ve eitiminizle bunu ortaya koymak. Gittiiniz kurslar veya okuduunuz Bachelor Degree'nin nemi byk. niversite okumadysanz bunu i deneyimleriniz ile ve gittiiniz kurslar ile kapatmanz mmkn. niversite okuduysanz ve sektre yeni atlayacaksanz analitik problem zme ve aratrma gelitirme konularnda iyisiniz demektir. Her iki durumda da firmaya yararl olacanz belirtebilirsiniz. Proje ekibi iinde nasl allr biliyor musunuz? Hi Ak Kaynak bir projeye katldnz m? Birlikte alma, kod ortakl, Sourceforge, Subversion, CVS vs. gibi kavramlardan haberiniz var m? Ak Kaynak projelere katlmak veya zaten bakasnn yapt bir rn baka bir ekilde yapmak "bo i" gibi gelebilir. Ka tane ak kaynak blog uygulamas, ka tane CRM vs uygulamas olduu ortada. Tekerlei yeniden icat ediyor bile olsanz bunun size kazandraca deneyimler tartlmaz. Hem bir ekip iinde nasl alacanz reniyorsunuz hemde teknoloji ve kullandnz aralar hakknda yeni eyler reniyorsunuz. Bu rendiklerinizi i grmelerinde muhakkak belirtin. yi kod deyince aklnza ne geliyor? Yazdnz kodun iyi olabilmesi iin ne tr zellikler gerekiyor? yi kod yazabiliyor musunuz? Performans konusunu hi dndnz m? Kodlamadan nce testleri yazmak gibi bir ey daha nce duydunuz mu? Yazdnz kodda bir standart var m? FXCop gibi bir arala kodunuzu kontrol ettiniz mi? Refactoring hi yaptnz m? yi kod kiiden kiiye, firmadan firmaya deiir. Kimi zaman performans n planda iken, kimi zaman sadece o iin yaplmas nemlidir. Firmann stadartlarn hzl kavrayp uygulayabilmek te size bir yarar salar. Deiikliklere hzl ayak uydurabilmek bu adan nemlidir. Bo zamanlarnzda TV seyretmek yerine kod yazmay tercih ediyor musunuz? iniz ayn zamanda bir hobi olarak devam ediyor mu? Yaptnz iten zevk almanz o iin kalitesini ykselten en nemli etkenlerden biri (bunu birde firma sahiplerine anlatabilsek). Hobiler genelde bir bo zaman uradr ve beyni dinlendirmek iin yaplr. Ama bo zamannzda bile kod yazmaya yneliyorsanz bu sizin iinizi ne kadar sevdiinizi gsterir. ini bu kadar seven birisini ok fazla dnmeden ie alrdm.

99

Blogdan Semeler

Belge yazmak ile aranz nasl? Teknik adan yetersiz bir kiinin okuyunca anlayabilecei bir belge retebilir misiniz? Kodladnz modllerin ne yaptn genel olarak yazabilecek kabiliyetiniz var m? Blog yazyor musunuz? Tamam yazlm uzmanlar belge yazmay pek sevmez, hatta bu ii otomatize etmek iin aralarda var. Ama kodun iinde yeterli derecede yorum ve aklama yoksa, o aralarda pek bir ie yaramaz. Belge yazabilen bir yazlm uzmann deerlendirmelerde ncelikli tutardm. Analiz nasl yaplr, UML nasl kullanlr, mteri ile nasl konuulur, mteri istekleri nasl belgelenir ve koda dntrlr hi dndnz m? Bu konularda deneyiminiz var m? Bir rn ortaya kartabilmek iin ncelikle mterinin ne istediini iyi kavramak gerekir. Yoksa rn ortaya ksa bile mterinin istedii gibi bir ey olmaz. nsan ilikilerinde nemli olan dinlemeyi ve konumay iyi yapabilmektir. Karndaki kiinin psikolojisini, deer verdii eyleri, espri anlama kabiliyetini ksa zamanda kavrayp "nabza gre erbet" vermelisiniz. Anlaldn anlayan mterinin size olan gveni artar. (dnp bu son cmleyi tekrar okuyoruz). Anlaldn anlayan mterinin size olan gveni artar. Bu sorularn tmne evet cevabn vermeniz gerekli deil. Ben bir ngrmede bu konular sorar ve kiinin ekibe neler katacan, istediimiz zelliklere uyup uymadn bulmaya alrdm. 3.21 Yeni Kuracaklara Bir Test Aadaki test http://osc.gigavox.com/ adresinde 25 Nisan 2006 tarihinde yaynlanan, Greg Gianforte'nin yapt bir konumasndan alnmtr. Konumada kendi deneyimlerine yer veren Greg daha sonra dinleyicileri test etmek iin bu sorular soruyor. Benim ok houma gitti bu sorular ve sizlerin de yararlanacanz tahmin ediyorum. Vezir'de bahsettiim konular ile hemen hemen rtyor. Bu podcast'e direk link vermiyorum. nce sorular kendi deneyimleriniz ile cevaplamanz ve sonra podcast'i dinleminizi neririm. Haftaya cevaplar ve benim yorumlarm burada yaynlayacam. te sorular 1-Eer sfrdan yeni bir i yada yazlm firmas kurmak istiyorsanz ilk yapacanz i ne olmal? a-Bir i plan yazmak b-Bir sr kiiyi arayp pazarn sorunlarn/isteklerini renmek c-Bir prototip retmek d-Bir pazarlama uzmann ie almak 2-Bir fikriniz var, sonraki adm ne olmal?

Blogdan Semeler

100

a- plann uygulamaya koymak b-Bir ofis kiralamak ve kullanlm ofis mobilyalar almak c-Fikriniz iin patent bavurusunda bulunmak d-Fikrinizi 300 mteriye gndermek ve daha sonra arayp ne dndklerini sormak 3-yi bir rn ortaya karacak tm zellikleri listelediniz, sonraki adm ne olmal? a-Fikrinizi koruyacak bir avukat bulmak b-Kendinizin sataca bir prototip retmek c-Bir yerlerden para bulmaya almak d-Bir pazarlama uzman bulup rnnz satmasn salamak 4-Bir mteri aday buldunuz, sonraki adm ne olmal? a-Beta programna katlmalar iin ikna etmek b-Bir sipari vermeleri iin almak c-Henz bir rnnz olmadn sylemek d-leride ekleyeceiniz zellikleri anlatmak 5-rnnz mterinin istedii eyleri yapmyor, yaplacak en iyi ey: a-Bu zellikleri eklemeyeceinizi sylemek b-Bu istenen eklentiler iin mterinin para demesini salamak c-Siparii alp 4 hafta iinde rn getireceinizi sylemek d-stenen zelliklerin uygulanmasnn ne kadar zor olduunu anlatmak ve mevcut srm almas iin almak 6-Sektrn en fazla satan yayn organ rnnz hakknda bir makale yazacak ve yan sayfada ki reklam alann da size satmak istiyor, yaplacak en iyi ey: a-Reklam alann almak b-Reklam giderleri btesinin dolduunu sylemek c-Yeterli paranzn olmadn sylemek

101

Blogdan Semeler

d-Cehennemin dibine gitmesini sylemek 7-Bir pazar aratrma firmas, firmanz hakknda bilgi ve ayrntl finansal dkm istiyor ne yapardnz? a-Bilgiyi veririm b-Nazike redederim c-Muhasebecimize gnderirim d-Mesajlarn cevaplamam 8-nemli bir mteri aday sizinle grmek iin 1 hafta sonrasna randevu istiyor. Ama siz hala evdeki ofisinizden alyorsunuz, ne yaparsnz? a-Yeni baladnz ve ofisinizin olmadn syleyin b-Mteri gelmeden nce bir ofis kiralayn c-O hafta seyahatte olacanz syleyin 9-Bu ite tam zamanl alan tek kii sizsiniz. Mteri aday ka alannz var diye soruyor. Cevabnz: a-Ben bu firmann tek alanym demek b-5 c-20 d-50 10-lk satnz yaptnz ve bir miktar kar elde ettiniz, yapacanz ilk ey? a-Kendime zam yaparm b-Daha byk bir ofise geerim c-Bir kutlama partisi yaparm d-Bir danman ie alrm 3.22 Testin Cevaplar nceki yazmda Greg Gianforte'nin konumasndan aldm testi vermitim. te burada da Greg'in cevaplarn ve benim baz yorumlarm yaynlyorum.

Blogdan Semeler

102

1-B Eer sfrdan bir firma kuruyorsanz ve hangi sektre yazlm yapacanz da biliyorsanz, tek iiniz sektrn istedii bir yazlm retmek. Bunun zelliklerini de en iyi sektr verir. Sektrden kiileri tek tek arayp isteklerini dinlemek hatta gerekiyorsa bir kahve yada len yemei srasnda fikirlerini almanz bulunmaz bir kaynak olacaktr. Tabii bu tr kiileri bulmak zor olabilir. Kulplere, barlara, toplum rgtlerine, derneklere katlmak, toplantlarna gitmek veya rtba zerindeki sosyal toplama sitelerine ye olmak yapabilecekleriniz arasnda. 2-D Amacmz tam bir zellikler listesi hazrlamak ve bu listeyi hazrlarken de mteri gereksinimlerini gzden karmamak. 1. soruda hazrladmz listeyi sanki ortada bir rn varm gibi mterilere gndererek fikirlerini sorabiliriz. Ortaya tam bir zellikler listesi kar ki, rn gelitirmeye hemen balayabilirsiniz. Bu iki aamadan sonra oturup rn ortaya karmanz lazm. Yada en azndan bir prototip. 3-B Prototip fikirlerin hayata geirilmesi ve gizli kalm isteklerin ortaya kmas iin zemin hazrlar. Ayrca bu rn sizin satabilmeniz ok daha nemli. Hem iinizi severek ve motive olarak yapacaksnz, hemde ileride pazarlama uzmanlarna konuyu tam olarak anlatabilmek iin reniyor olacaksnz. Zaten firma ilk kurulduunda finansman asndan ok fazla kaynanz olmayaca iin bunu kendiniz yapmanz ok daha iyi olacaktr. 4-B En nemli olaynz bir sipari almak olduuna gre bunun iin en fazla abay sarfetmelisiniz. Sipari almanz demek bir gelir ak demektir ve buna hakikaten ihitiyacnz var. 5-B ve C Her iki kta oluyor bu soru iin. Eer istekler abuk uygulanabilir eyler ise mteriyi zmenin anlam yok. Bence mteriden bir hafta isteyip bir rapor karn ve her istein kaa mal olacan ve sresini belirleyin. Mteriye bu rapor ile gittiinizde bu istekleri ncelik srasna gre dizmesini nerin. Mterinin ncelik srasna gre sizin belirleyeceiniz miktardaki yeni zellii ikinci srmde gerekletireceinizi teyit edin. Mteri sralamay sizin raporunuzdan nce yapmyor nk fiyatlar ve zamanlar grdnde daha gereki bir sralama yapacaktr.

103

Blogdan Semeler

6-B Bu yayn organ zaten hakknzda bir makale yazacak, birde yanna reklam koymann bir anlam yok. Zaten finansman olarak dardasnz. Reklam giderleriniz 0YTL olabilir ve reklam giderleri btesinin dolduunu sylemek hite yanl olmaz diyor Greg. 7-B Hi bir aratrma firmas sizin kara kanz kara gznz iin hakknzda aratrma yapmaz. Bak bu firmada yeni balam, aman yardmc olalm, reklamn yapp isimlerini duyuralm demez. Byk ihtimalle rnnz satmaya altnz bir mteriniz hakknzda kredibilite soruturmas yapyordur ve aratrma firmasna bu grevi vermitir. Red edip istene bilgileri dorudan mterinize verebilirsiniz. 8-A Greg bu soru iin drst olun diyor nk eninde sonunda ortaya kacak bir yalan. Eer mteri hala sizinle grmek istiyorsa listede birinci sray almaya hak kazanm demektir. Aile iinde bir ortam bile hazrlayabilirsiniz. Bylece mterinin samimiyeti artar ve gveni ykselir. Samimi olmak daha sonra ard arkas kesilmeyen isteklerin gelmesine neden olabilir ama ilk balarda zaten buna ihtiyacnz var. ve arkadalk ilikilerini birbirine kartrmayn. Profesyonellik bu ikisini ayrmaya baardnz zaman balyor. 9-B Bir nceki soruda drst olun diyen Greg bu soru iin 5 kii var demenizi tlyor. Nasl olsa mteri rn alp kurana ve kullanmaya balayncaya kadar sizin firmanz byr. 10-C Greg parti yapn diyor fakat ben zaten bu kadar zor kazandm bir geliri parti yaparak ar ur etmezdim. z kaynaklarm arttrmak iin daha gl bilgisayarlar, iyi bir bilgisayar sandalyesi veya yeni programclar alarak devam ederdim. Kutlama tabii ki gerekli ama arya kamadan, mtevazi bir eyler yapardm. 3.23 Programlama rencisinin Derdi Yer Bayburt, Atatrk niversitesi 2. snfnda okuyan ve yazlm uzman olmak iin alan bir renci var karmzda. Esas programlama dersi retmeni gelemedii iin bir lise retmenini derse sokuyorlar. Bu retmenin verdii bir dev var.

Blogdan Semeler

104

-SourceSafe hakknda bilgi topla ve yaz... retmene net olarak ne istediini sorduunda itiraz yok diyor. nk retmen ne istediini biliyor. Fakat bu renci nereden balayacan bilemiyor nk rtba zerinde yeterli bilgi de yok. Belli ki retmen de bu konu hakknda derste konumam. Hani srm ynetimi gibi bu aralarla yaplan bir i hakknda sorsan pek ok bilgi mevcut. Fakat Microsoft Visual Sourcesafe hakknda hakikaten Trke kaynak rtbanda yok. Bende bulamadm. rencimizin de bu araca eriimi yok; kurup, kullanp ne olduunu anlayacak mali gc de!!! MS Sourcesafe'in ise artk kullanlmayan ve yetersiz bir ara olduundan ise hi bahsetmeyeceim. Halen daha bir retmenin bu konuda dev vermesi zc. Konu Subversion veya CVS olsa, hem rtbanda cretsiz mevcut, hemde kurup kullanmak iin bir sr dkmana erimek olas. Yazlm Uzman olmaya alan arkadamz bu iten ok sklm ve okul bittikten sonra yazlm uzman olmamaya karar vermi bile. Zaten finallerden ve devlerden u sralar kafay yemi durumda, birde stne stlk byle ne id belirsiz bir dev veriyorlar. Sorarm, acaba bu retmen Sourcesafe hakknda hi derste konutu mu? Srm Ynetimi gibi ok gerekli olduunu dndm bir konu derste ilendi mi? Programclk sadece kod yazmak mdr? Bu retmen Sourcesafe hakknda bilgi topla ve yaz derken nasl bir ey istediini biliyor muydu? Belki de srm ynetimi konusunu kast etti ama sorma ekli yanl. Belki de srm ynetimini Sourcesafe'den ibaret sanyor. Team Foundation Server, Subversion, CVS vs. nedir duymam mrnde. Bu retmen hakikaten bir eyler retmek iin mi orada bulunuyor yoksa salla ban al maan tarznda m taklyor? Eer yleyse gerekten daha da fazla zlcem. Zaten bu rencimize ve eitimin kalitesine ok zldm. Birde bu rencimiz gibi ayn snfta bu konu ile cebelleen bir sr baka renci var. Allah'm lmek istiyorum bu acya dayanamam. Valla sizi bilmem ama bu olay beni ok etkiledi. Hakikaten ok zldm. MEGEP projesi (www.megep.meb.gov.tr) erevesinde Tark Bey'e yardm ediyordum az da olsa. MEGEP ile okullarda yazlm uzman yetitirmek amal olarak ders programlar retilmiti. Fakat dandik ve Trkiye brokrasisine yarar bir biimde sonland. Ders mfredatn gelitirmek iin alan bir sr gnll kiinin 12 aylk emei boa gitti. Yazlan tonla dkman boa gitti. te Tark Bey'in blogundan bir alnt: Ocak 2006 - Aralk 2006 tarihleri arasnda MEGEP (www.megep.meb.gov.tr) iin tm zaman ve emeimizi harcadk. Ama imdi tam bir karmaaya srklediler bizi. cretimizi 27 saatten 18 saate

105

Blogdan Semeler

drld iin istifa dilekelerimizi verdik. Ama tabi bizi oyalama yntemi ile verilen grevleri zorla yaptrma yoluna gidiyorlar. 1- BTT (Biliim teknolojileri temelleri) dersinin son 5 modl olan programlama ile ilgili modllerim okullarda BASIC dersi imi gibi gsteriliyor. Bu sebeple yazdm onca ierik ilenmiyor. 250 sayfalk derleme kaynak boa gitti. 2- Access modllerinin ilk 2'si hari kalanlardan yazdm 3 modl boa gitti. istifa ettiimiz iin. 3- Erkek Teknik iin hazrladm http://etogm2.meb.gov.tr Modl takip projesi silindi. Kullanlamadan boa giden 2 aylk emek... Yani son bir ylda yaptm almalarn %90' "bo", faydasz hale geldi bir anda. Verilmeyen "telif" haklarmz da unutulmamal. Modl takip projesinin bir yanss http://www16.brinkster.com/tbagriyanik/modul adresinde de vard. Bu insanlar Trkiye'de bir eyleri dzeltmek ve daha da iyiye gtrmek iin neredeyse karn tokluuna emek sarfediyorlar. Yaptklar ii seviyorlar ve gnlden alyorlar. Fakat her zaman olduu gibi aptalca brokrasiler ve bakanlklarn anlalmas zor kararlar yznden emekler pe gidiyor. Trkiye'nin ileriye gitmesini istemeyen birilerinin bir oyunu mu yoksa bizim rettiimiz dandik kurallar ve ynetim ekillerinin bir rn m bu olanlar? Bu kadar nefretle okuyan renci ondan sonra hacker oluyor tabii. Aynen Anakin Skywalker'n korkularndan dolay oluan nefreti ve akabinde de karanlk glerin tarafna geii gibi. Tema ayn. Nefretle okuyan renci mezuniyetten sonra kendini hazr hissetmedii iin bir ie girmek yerine hacker oluyor. Kolay yolu tercih ediyor nk elinde yeteri kadar bilgi birikimi yok. YAZIK. Ne lke ekonomisine bir katks nede kendisine bir yarar oluyor. niversite kiilere nasl aratrma yapacan ve doru bilgilere nasl eriip

analiz edeceini reten bir kurum olmaktan kp, snavlarn ve devlerin rencileri bezdirmek iin kullanld, dl ve ceza yntemi ile szm ona eitimin yapld bir yer durumuna dnyor. Trkiye nasl biliim anda dier milletlerin yannda yer alacak? Alt yap olmaynca nasl stne salam yaplar kuracaz? Teknolojoyi bu kadar tketmeyi seven bir toplumsak neden retimi iin bir eyler yapmyoruz? Neden MEGEP gibi bir proje iin alan insanlarn emeklerini bir kalemde pe atyoruz? Neden Allah'm neden?????

Blogdan Semeler

106

3.24 Bana Rakibini Syle Bir i kurmak istiyorsunuz fakat ok fazla rakibiniz olacak bir pazarda i yapacaksnz. Mterilerin sizin rnnz kullanmas iin nelerden vazgemeleri gerekiyor? Bu soruyu mteri tarafndan ele alrsak; mteri sizin rnnze gemek iin vazgemesi gereken zelliklerden vazgeebilecek mi? Sizin rnn ne zellii var da mteriler imdiye kadar kullandklar rakip rn brakp, tamamen farkl olan sizin rnnz kullanmaya balasn ki? Kara ka? Kara gz? Yeni bir pazara adm attnzda yada ok iyi bildiiniz bir pazara firma olarak giri yaptnzda mterinin sizin rnnz kullanmas iin baz zelliklerden vazgemesini beklemek ok yanl olur. Mteri sizin rnnze gemek iin fedakarlk deil agzllk gsterir. Tketici psikolojisi zaten buna dayanr. Yani hem rakip rnde olan zellikler hemde sizin rnnzn ekstra zelliklerinin toplam mteride kullanmak iin bir arzu uyandrr. Piyasa takibi ve rakip firmalarn rn zelliklerinin takibinin nemi bu aamada ortaya kyor. Eer pazarda herkesin yaptn ve ek olarak bir ka zellik daha sunabiliyorsanz baarl olmanz iin yeterli zemin saladnz demektir. Geriye dnk uyumluluk ve rakip firmalarn rnleri ile uyumluluk bunlardan ikisi. Diyelim ki mteri X rnn kullanp bir veritaban yaratyor ve Y firmasnn veritaban uygulamasna gemek istiyor. Y firmasnn veritaban X rn ile tamam ile uyumlu olmaldr ki mteri karar verme aamasnda rahat davransn ve sanc yaamasn. Ayrca Y firmasnn rn ekstra hizmetler de sunmal ve bu hizmetler mterinin her zaman istedii fakat X rnnden alamad hizmetler olmal. Bir kere rn satp sunduunuz hizmetleri olduu gibi brakmakta iyi deil. Pazar takibi srekli kendini tekrar eden bir analiz sistemi ve rakipleriniz sizi alt etmek iin her trl yolu deneyecektir. Mevcut mteri tabannz rakip firmalarn rnlerinde bulunan zellikleri talep edecekdir. Bu taleplere cevap verebilmenin tek yolu nceden rn hizmetlerinin planlanp (mteriden gelecek geri beslemeler ve pazar takibi ile) srmlere ayrlmas ve mterilere sunulmasdr. Firmanzda rakipleri analiz edecek ve mterilerden gelecek yeni fikirleri deerlendirecek bir departmannz var m? rnde olacak zelliklere kim karar veriyor? Mteriyi de projeye dahil edip fikirlerini soruyor musunuz? nnzdeki 10 srm planlayacak kadar hizmeti listeleyebiliyor musunuz? Bu sorulara vereceiniz cevaplar sizin pazar paynz ve devamllnz byk oranda etkileyecektir.

107

Blogdan Semeler

Duraksama Dnemi Kimi firmalar sadece bakm cretleri ile ayakta kalmaya alr. Firma stratejisi olarak rnde her hangi bir gelitirmeye gitmezler. nk mteri tabanlar o kadar iyidir ki pazarn neredeyse %50sini ellerinde tutarlar. Yeni teknolojileri takip etmek yerine ellerinde olanla yetinir ve mevcut mterilerden gelen hatalar ile urarlar. Bu aamaya gelmi bir firma bence Duraksama Dnemine girmi demektir. Eski parlak gnleri yakalamak ve daha da bymek iin hem yeni teknolojilerin takibi hemde bunlarn rnde uygulanmas iin planlanmas gerekir. Pazarda kalmak iin gelime art. Duraksama Dnemindeki bir firmada almak ise pek zevkli bir i deildir. Genelde mteri destek ileri ile urar ve teknolojinin gerisinde kalrsnz. Bildiklerinizi dahi unutursunuz. Kod yazmak iin pek frsat olmaz. Artk baka maceralara doru kanat ama vakti gelmitir. Eer mutluysanz diyeceim yok tabii. Firma hacminin bymesi beraberinde kurumsallamay getirir. Profesyonelliin birinci kural mmkn olduu kadar ii sektrn nde giden firmalar ile kontrat yntemi ile yapmanz. Bylece btelendirmeyi daha rahat yapabilirsiniz. Bilgisayarlar, anz, sunucularnz ve kullandnz yazlm aralarn yenilemek amacyla tedariki firmalar iyi semeniz sizin iin iyi bir referans olur. Mteriye gven verir. Veri gvenlii ve politik sebeplerden dolay darya veremeyeceiniz ileri ise kendi iinizde profesyonel olarak zebilmek, ynetim anlaynn deimesine neden olacaktr. Daha nceleri tepeden tek bir kii tarafndan ynetilirken, imdi ynetimi tabana yayp firmay blmlere ayrmak ve her birimin kendi iinde kendi kurallarn kartmasn salamak gerekir. Tabii ki en nemli ey birimler aras haberleme olmaldr. Sonu Bir firmann pazarda geirecei evrelere ku bak bakmaya altm. nmzdeki engeller ve pf noktalarndan bazlarna deindim. Kurumsallama ve hacim bymesi ile ilgili deneyimlerimi yazmaya altm. Umarm yararl olmutur. 3.25 Yazlm Uzmanlndan Yneticilie Daha nce yazdm u yazya atlan bir yorum zerine bu yazy yazyorum. Genel olarak yeni mezun olmu ve yazlm uzman olarak ie balam bir kiinin yneticilie doru uzanan yolda katetmesi gereken aamalar deneyimlerimden yararlanarak yazmaya alaym. Hi kimse evrenkentten mezun olur olmaz yneticilie soyunmaz yada soyunmamaldr. Yksek lisans dahi yapm olsanz yneticilik iin gereken vasflar henz sizde bulunmaz nk yaadnz evre

Blogdan Semeler

108

sizin gibi insanlardan olumu izole bir evredir (okul ve retmenler) ve ilikiler yzeyseldir, amalar farkldr. Proje ynetimi ve insan ilikileri konusundaki deneyimin azl, firma ii kltrlerin bilinmemesi, stres durumlarnda ne yaplacann bilinmemesi, planlarn zaman iinde nasl deitirileceinin bilinmemesi, kalite arttrm ve testleri konusundaki deneyimin azl nmzdeki engellerden bir kadr. Yeni mezun olmu bir yazlm uzmannn ynetici olabilmek iin geirecei evrelere bir bakalm. 3.25.1 Mezuniyet Ve lk Projeler

Mezuniyetten sonra tek hedefiniz bir firmada almaya balayarak hnerlerinizi gelitirmektir. Evrenkentteki hocalarnzdan birer referans mektubu isteyin (ingilizce ve trke mmknse) ve zgemiinize referans olarak yazmak iin izin aln. Gireceiniz firmann yeni bir projeye balyor olmas daha tercih edilen bir durum olmaldr. Firma semek iin yeni ie girecek mezunlara yazdm u yazdan ve kariyerinize karar vermek iin u yazdan yararlanabilirsiniz. cret bu aamada nemli olmamal ve size retecei yetenekler n planda tutulmaldr. Unutmayn; okul bitti ama renme sreciniz bitmedi. En azndan 4 yada 5 projede yer alp gzlemlerinizi srdrmelisiniz. Bu arada kaln ve izgisiz bir defter edinin ve projelerde yaadnz olaylar, aksayan noktalar, bu aksayan noktalarn nasl zlebileceini, ynetimin davranlarn, projenin gidiatn, i arkadalarnzn davranlarn ve aklnza gelen her trl bilgiyi ve deneyimi not edin. Bu defter sizin kara defteriniz olacak ve hi kimsenin grmemesi gerekiyor. Her akam bu deftere yazdnz notlar tekrar tekrar okuyun. Yaplan yanllardan yada doru yntemlerden feyz aln. Eski yazdnz bilgiler yada deneyimler zaman iinde geerliliini kaybetmise bunlar da yenileyin ve nasl bir deiime uradn anlamaya aln. Bu aamada ynetime veya proje mdrlerine bir neri veya tavsiyede bulunmayn zira sizi dinlemezler ve bouna vakit harcam olursunuz. %100 kod yazp size verilen ileri zamannda bitirmek iin elinizden geleni yapn. Zaten tm planlar sizin iin yaplmtr ve bitirme zamanlar planlanmtr. Tek iiniz kod yazmak ve zamannda bitirmektir. Problem kartmak yerine problem zc olarak tannmaya gayret gsterin. Hounuza gitmeyen eylemler ve bir eyler sylemek istediiniz durumlar olacaktr ama kendinizi tutun. Problemleri zmek proje mdrnn veya ynetimin iidir. Sizin iiniz kod yazmak. Sektrde ilerleyip iyi bir yerlere gelebilmek sizin hedefiniz ve bu hedef dorultusunda bu sorunlara katlanyorsunuz.

109

Blogdan Semeler

Firma kltrn renin ve uygulayn. Standartlar, davran ekillerini, insan ilikilerini, st ast ilikilerini ve organizasyon emasn ok iyi renin. Firma kltrne ters gelecek davranlardan kann. Ancak fikriniz sorulduunda konuun aksi takdirde aznz amayn. Bu devrede okunacak kitaplar tamam ile yazlm ile ilgili olmaldr. Kullandnz yazlm dilini anlatan, veritabann anlatan, st seviye konular anlatan kitaplar edinmeye ve yeteneklerinizi gelitirmeye bakn. Code Complete, Writing Secure Code, Agile Modeling her zaman kitaplnzda bulunmas gereken kitaplardan. Yeni teknolojileri ve rnleri takip edin, kurun, deneyin. Personal Software Process, Best Software Writing I, Joel on Software ek olarak okumanz gereken kitaplardan. Okurken kara defterinize notlar aln ve projede uygulamak iin frsat kollayn. ngilizce bilmiyorsanz hemen bir kursa giderek renin. Yabanc yaynlar, bloglar, siteleri, kitaplar takip etmek iin bu gerekli. Takip edeceiniz bloglara bir ka rnek olarak benim takip ettiim bloglar vereyim (genelde .NET ve yazlm mhendislii ile ilgili): Yabanc bloglara rnekler

Coding Horror http://www.codinghorror.com/blog/ Scott Hanselmann http://www.hanselman.com/blog/ Joel Spolski http://www.joelonsoftware.com/ Mitch Denny http://notgartner.wordpress.com/ Scott Watermasysk http://scottwater.com/blog/ Secret Geek http://secretgeek.net/index.asp Seth Godin http://sethgodin.typepad.com/seths_blog/ The Server Side http://www.theserverside.com/ Phil Haack http://haacked.com/Default.aspx

Trke bloglara rnekler


Mehmet Doan http://www.unbf.ca/altiustu/ Bilgi Gvenlii http://www.bilgiguvenligi.org/ Ferruh Mavituna http://ferruh.mavituna.com/ Hseyin nal http://www.huseyinunal.net/

Blogdan Semeler

110

Tekno Seyir http://www.teknoseyir.com/

Daha pek ok blog bulabilirsiniz ve sizin sektrnze gre bunlar oaltmak mmkn. Aileniz ile yaadnz ve gelirinizin kstl olduunu varsayarak nemli bir tavsiye vermek istiyorum. lk bir ka maanz ile parann alabilecei en iyi bilgisayar aln. Evde bilgisayar banda geireceiniz zaman iyi deerlendirmek iin eitli yeni teknolojileri veya birbirine zt teknolojileri denemeniz ve grmeniz gerekiyor. Firmada imkan bulamadnz programlar yada rakip firmann rnlerini evde kurarak denemek size farkl bak alar katacaktr. Bunun iin bir plan yapn; rnein bir haftay belli bir programa ayrn ve genel olarak neler yaptn renmeye aln. Nasl kurulur, kaldrlr, ynetilir renin. Maanzn bir blmn ayr bir banka hesabnda biriktirin. Almak istediiniz eyler iin hedefler koyup paray bu ekilde kullann. Evin telefon faturasn (internet iin en fazla sizin kullandnz varsayarak) veya broadband demelerini siz yapmaya balayn. Ak Kaynak projelere katlp kendinizi gsterin. Yada bu tr bir projeyi siz balatn. Sourceforge, Codeplex bu tr projeleri bulabileceiniz yada balatabileceiniz tonla siteden ikisi. Genel bir bilgi asndan yazdm u yazy okuyabilirsiniz (bitiremediim bir yaz). Kara defterinizde proje vasfl fikirler eminim vardr. Bunlar biraz daha piirip proje olarak yapmaya aln. Salayacanz deneyim paha biilemez olacaktr. Firma iinde alma imkan bulamadnz teknolojileri veya dilleri bu ekilde alp renebilirsiniz. En gzeli firmada gelitirdiiniz rn birde ak kaynak olarak gelitirmek olur :-). Bu projeleri zgemiinize de yazn. Bir sonraki aamaya gemek iin baz gstergeler vardr. Zaman getike firmadaki kdeminiz artar, yeni gelenlere sistemi retmeniz istenir, sorun ktnda size sorarlar veya iinden klmas g ileri size verirler. Belli modllerin tm sorumluluunu size verirler, mteriye sunum yaptrrlar, kurulumlara ve mteri ziyaretlerine dahi gnderebilirler. Tm bu saydklarm bir st aamaya gemeniz iin birer gstergedir. Bir sonraki aama Kdemli Yazlm Uzmanldr. zetlersek

Yeni bir projeye balayan firmaya girin cret nemli deil Kaln izgisiz bir defter edinin, not tutun 4 yada 5 projede yer aln (ayn anda deil tabii ki)

111

Blogdan Semeler

Ak kaynak projelere katln/balatn Okunacak kitaplar edinin ve bloglar takip edin ngilizce renin (eer bilmiyorsanz) yi bir bilgisayar aln Maanz ar ur etmeyin, planl harcama yapn Bir sonraki aama iin gstergeleri iyi takip edin

Yukarda anlattklarm ilk 4 yada 5 ylnz alacaktr. Bu arada zgemiinizi srekli yenileyin ve yaptnz ileri sralayn. altnz firma size ykselme frsat vermiyorsa baka bir i aray iine girebilirsiniz. Eski firmanzla ilikilerinizi iyi tutmanz size ilerde iyi referans verecekleri garantisini salayabilir. Bu yzden firmanzdan ayrlrken tm kaplar kapatmayn ve muhakkak referans mektubu aln. Referans mektubunda firmaya giri ve k tarihleri, yaptnz iin vasf, grev aldnz projeler, baardnz iler, kullandnz teknolojiler ak seik yazmaldr. Mmknse hem ngilizce hem de Trke referans mektubu isteyin. 3.25.2 Kdemli Yazlm Uzman

Maanza zam istemeniz doaldr ama fazla umayn. Bir nceki aamann sonlarnda rendiiniz insan ilikileri sizin iin bir temel olacaktr. liki kurmanz gereken organizasyonlara bir bakalm.

Yazlm ekibindeki yeni kiiler Pazarlama Ekibi Mteriler Ynetim

Herkesin farkl dil konutuu, herkesin teknik bilgileri bilmedii bir ortamdasnz. Burada gelitirmeniz gereken yeteneiniz dinleme ve anlamadr. Ayn konuyu farkl azlardan farkl cmleler kullanarak duyarsnz. Hem sizin kelime hazneniz geniler hemde kiminle nasl konuacanz renmeye balarsnz. rettiiniz dkmanlar bakalarnn okumasn salayarak ne anladklarn test edin. Uzun bir renme devresi ve %70 kod yazm, %30 insan ilikilerinin analizi ile geecek bir dnem. Yapacanz ileri anlamak iin Anyazu hakknda yazdm yazy bir okuyun.

Blogdan Semeler

112

Stres ve risk ynetimi konusunda da deneyimlerinizi arttrmanz gerekiyor. ISO ve IEEE standartlarn inceleyerek bu konularda bilgi edinebilirsiniz. CMMI, SPICE, ISO, IEEE hakknda genel bilgilendirme iin yazdm yaz iinize yarayabilir. Ayrca zamannz iyi kullanabilmek iin yaptnz her iin ne kadar zaman alacan planlayp, i bittiinde de plan ile gerek geen zaman karlatrmanz ve dersler karmanz gerek. Bylece ileride size verilen grevler iin rettiiniz tahmini zaman izelgeleri daha gereki hale gelecektir. En azndan MS Project nasl kullanlr renin veya bir kursa giderek temel proje ynetimi hakknda bilgi edinin. altnz firma size bu kursu almak iin yardm salamyorsa hafta sonlarn kullanarak ve cebinizden deyerek gitmenizi tavsiye ederim (bir nceki aamadan biriktirdiiniz paray kullann). Temel kursu bitirince ileri seviye kursunu da aln ve rendiklerinizi harfiyen uygulamaya aln. Bir Yksek Lisans programna da katlabilirsiniz, eer yarm zamanl bir program bulursanz ve yeterli paraya sahipseniz veya firma sizi destekliyorsa kesinlikle tavsiye ederim. Project Management Body of Knowledge (PMBoK) isimli kitab internetten indirin ve okuyun. Linkteki biraz eski ama inize yarar. Yada http://www.projectmanagement.net.au sitesine ye olarak son PMBoK kitabn okuyabilirsiniz. Bu kitap genel proje ynetimi ile ilgili bir yayndr ve iinde yazlm alannda da kullanlabilecek pek ok bilgi mevcut. Geleneksel proje ynetimi metodlar dnda Agile Project Management with Scrum isimli kitab neririm. CMMI hakknda kaynaklar bulup okuyun. Software Engineering Institute'n sitesinde CMMI hakknda okuyacak pek ok dkman mevcut. En houma gideni rn gelitirenler iin retilmi bu dkman. Okunacak ok fazla materyal olduu iin okuma saatlerini planlamanz neririm. Bylece neyi ne zaman ve ne kadar sre ile okuyacanz bilirsiniz. zel hayatnzdan hi bahsetmedim ama psikolojik ve mental salnz iin gerekli bir unsur. Ailenize, sevdiklerinize veya hobilerinize zaman ayrn. Tabii eskisi kadar zaman ayramayabilirsiniz, bu doal. Ben hem Aikido hem Judo yapyor, perembeleri grubumla alyor, sallar da trmana gidiyordum. Bir gn ok fazla hobim olduuna karar verdim, artk zaten eskisi gibi de zamanm olmuyordu yapmaya ve Aikido ve Judoyu eledim, Sal trmanlar kendiliinden bitti, grubumda iki haftada bir ancak toplanyor. Bylece geleceim ile ilgili ilere (ekmek paras kazandmz ilere) daha fazla zaman ayrabildim. Gitar almak ve Scuba Dal geriye kalan tek hobilerim. Okunacak kitaplar Peopleware, Mythical Man Month, Team Software Process. nsan ilikilerini anlatan psikoloji kitaplar da iinize yarayabilir. Kara defterinize iliki kurduunuz insanlar ve zelliklerini not edin. Birileri ile tantrldnzda kimin tarafndan tantrldnz not edin. Sizi en fazla birileri ile tantran kii sosyal simsar dr. Sosyal

113

Blogdan Semeler

simsarlar evrenizi gelitirmek iin ok iinize yarar. Sosyal simsarlar iyi belirleyin ve ilikilerinizi daima salam tutun. zel gnlerde kart gndermek yada bir e-posta atmak ta ok zor deil. Bunun iin adres defterinizi srekli gncel tutmanz gerekiyor. Ben Outlook kullanyorum ve tm kontaklarm burada kaytl. evrenizi gelitirmek iin firma d seminerlere ve toplantlara katln, notlar aln, rn CDlerini isteyin, firmalardan kontak kuracanz kiilerin kartlarn almaya aln. altnz firmadan kartvizit isteyerek her gittiiniz yerde datn. Ne kadar fazla insanla tanrsanz sizin iin o kadar iyi nk firma iinde yeteri kadar farkl psikolojide insana rastlayamazsnz. Firma d aktiviteler ile ilikilerinizi glendirin. Kendinize bir grup oluturup bir mangal partisi, LAN partisi (oyun oynamak iin), veya gezi dzenleyebilirsiniz. dnda yaplan aktiviteler size farkl i imkanlar veya frsatlar sunabilir. zgemiinizi mmkn olduu kadar ok firmaya gnderin ve 3 ayda bir de yenisini gndermeyi unutmayn. D grnnze nem verin. Takm elbise ve gravat ile kod yazmak zordur. Rahat edeceiniz ve firma iinde kabul edilebilir bir d grn benimseyin ve stilinizi oluturun. Firmann yeni alaca projeleri veya ileri takip edin ve ynetici seviyesinde kk iler almak iin istekte bulunun. Aldnz kurslar ve planlama ile ilgili yaptnz ilerdeki baarnz referans gsterin. leri size vermeseler bile istekli olduunuzu gstermek iin iyi bir frsattr. Eer ynetimin size olan gveni belli bir seviyeye gelmi ise eninde sonunda bu ileri almaya balarsnz. Toplam Kalite Ynetimi konusunda bir ka kitap edinip okuyun. Ishikawa en iyi TQM yazarlarndan biri ve Japonya'nn kalknma planlarnn arkasndaki isim. Kitaplarndan What Is Total Quality Control? ve Guide to Quality Control tavsiye edeceklerim arasnda. Yaptnz ilerde kaliteyi nasl lebilir ve nasl ykseltirsiniz aratrn. Ortaya kan sonular projede uygulayn ve yararlarn test edin. Bu yntemleri kara deftere not edin. Deiiklik ve stek ynetimi konularnda da bilgilenmeye ve firma iinde bir sistem oluturmaya aln (eer yoksa veya yeterli deilse). Kdemli Yazlm Uzman olduunuz iin yapacanz tavsiyelerin dinlenme oran yksek olacaktr. Yapacanz tavsiyeleri yazl ve rakamlara dayal olarak rapor halinde verin. rnein doru bir Deiiklik ve stek ynetimi sistemi ile retkenliin %65 artacan ve isteklerin eskiye oranla %98 daha iyi ynetileceini basit hesaplamalar ile gsterin. En sona bir maliyet/yarar analizi koyun ve firmaya salayaca yararlardan bahsedin. Maliyeti dren bir unsur varsa vurgulayarak belirtin. Raporu ayn anda bir ka st dzey yneticiye gnderin. Yneticiler bu durumda iki ekilde

Blogdan Semeler

114

davranrlar. Eer ilerlemeye ak ve alttan gelen tavsiyeleri deerlendirebilecek kadar kendileri ile barksalar raporunuz iyi ellerde demektir. Fakat stnzdeki ynetici her eyin en iyisini ben bilirim tarznda burnu havada birisiyse farkl bir yntem izlemek gerekir. Gnderdiiniz rapora kzm veya hakarete uram gibi bile dnebilirler. O zaman fikirler sanki onlarnm gibi empoze edip sonulara kendilerinin varmasn salamanz gerekir. Raporunuz katta yazl olmaz belki ve bakas sahiplenebilir ama bu arada sizede bir yneticilik grevi debilir. Hi bir yntem ie yaramyorsa ayrlp kendi firmanz kurun ve o fikirleri hayata geirmeye bakn. te birdenbire CEO oldunuz :-). Eer sonu olmayan, vizyonu dar bir firmada olduunuzu ve ilerleyemeyeceinizi dnyorsanz yeni bir i arama zaman gelmi demektir. Kdeminizin ve maanzn ykselecei bir i aramaya balamanz tavsiye ederim. Kesinlikle ayn maaa yada ayn kdeme sahip baka bir ie gemeyin. Eski firmanzda kalp bildiiniz ie devam etmek sizin iin daha iyi olacaktr. Ancak kdem ve maa daha yksek olduunda atlama yapn. Zaman alabilir ama byk dnmeden hedeflere ulalmyor deil mi? Vizyonu dar olan firmaya vizyonunu geniletmek iin yardmda da bulunabilirsiniz. Genelde ufak firmalar bymekten ve byk projelere girmekten korkarlar. nk ynetimi bir bela olacaktr. Bu tr bir projeye girmeyi ve ynetici olarak bu ii yapabileceinizi dnyorsanz, geni kapsaml bir rapor hazrlayp sunabilirsiniz. lk balarda dierleri iin rktc olsa da zaman iinde firma tarafndan da benimsenecek fikirler ve projeler ile firmann vizyonunu geniletebilir ve kendinize yneticilik pozisyonu imkan yaratabilirsiniz. Ynetici olabilmek iin eitim art. Bunun iin yukarda bahsettiim kurslar muhakkak aln ve iyerinde de uygulayn. nsan ilikilerini gelitirmek ve dinlemeyi renmek, risk ynetimi ve stres ynetimi konularnda deneyim kazanmak ok nemlidir. Enterprise Risk Management isimli kitab tavsiye edebilirim. Bask altnda almak ve stres ynetimi deneyimi, problemleri nceden grebilme yeteneinizi gelitirir. Personal Software Process ve Team Software Process kitaplarnda anlatlan aralar uygulamak planlama konusunda gelimenizi salar. Benim syleyeceklerim bu kadar. Gerisi size ve yeteneklerinize kalm. Biraz yzeysel bir anlatm oldu ama sanrm temel baz bilgileri ve yollar gstermeye yeter. Kolay gelsin ve iyi seneler. 3.26 ISVler in 25 Kural ISV de ne yahu diyenler iin hemen aklayaym Independent Software Vendor yani Bamsz Yazlm Firmas. Genelde kk fakat ok iyi bir fikir ile yola karak rne dntrmeyi ve milyonlara satmay hedeflemi bir kii tarafndan en az finansal destek ile kurulan firmalara ecnebilerin verdii isim.

115

Blogdan Semeler

Leon Bambrick, Secret Geek isimli blogunda kendi rnleri Time Snapper'n fikir aamasndan nasl rn aamasna geldiini ve bu yolda edindikleri deneyimleri ISV'ler iin 25 kural altnda aklyor. Ayrca Scott Hanselman podcast'inde de Leon'a sz veriyor . Leon ilerde bu kurallarn aklamalarn bir kitap haline getireceinden de bahsediyor fakat yeni doan kzna daha fazla vakit ayracak sanrm. Benim ok houma gitti bu listede yer alan kurallar ve Vezir'de yazdklarmla rtyor. Kurallar ve kendi aklamalarm yazaym dedim. Belki birilerinin iine yarar. 1. Bir alan ad aln: Ben Google ve MSN Spaces bloglarmdan sonra alan ad alarak blog

hayatma devam etmek istedim. nk daha profesyonel ve kayda deer ilere imza atmak istiyordum. Blogum belki bir rn deil ama profesyonel dncenin bir rn. O zaman ngilizce aldm ismi nk ilk bata sadece ingilizce blog yapmay dnmtm. rnnzn ismine uyacak bir alan ad aln. Google'da bu kelimeleri satn aln ve aramalarda ilk sizin sitenizin kmasn salayn. Sadece rn iin bir isim aln ve firma ismini dnmeyin. 2. yi bir hosting firmas bulun: Kendi sunucularnz evinizde barndryorsanz bir sr

teknik ile de uraacaksnz demektir. Bu harcayacanz zaman bir hosting firmasndan alacanz hizmet ile geri kazanabilirsiniz. Hem daha ucuza gelir hemde mterileriniz iin kaliteli bir hizmet salam olursunuz. 3. Kullanlabilir bir web sitesi tasarmlayn: Herhalde bu konu hakknda fazla yazmaya gerek

yok. Bir yazlm rn alrken nce firmann sitesinden gerekli bilgileri almaya alrsnz. Mehmet Doan'n Alt st Tasarm adl blogunda yazd ipularna dikkat edin. 4. Temel web sitesi ierii: Sitenizde olmas gereken temel blmler. rn hakknda ksa

bilgi, rnn tm zelliklerini anlatan yardm blm, ekran resimleri, sipari blm, forum ve blog ksm vb gibi. ok fazla kark bir site yaparsanz mteriler korkup kaabilir. Mmkn olduu kadar sade yapmaya zen gsterin. Bir erik Ynetim Sistemi ile de gidebilirsiniz fakat statik sayfalar ile de gerekli mesaj vermek ve sade olmak mmkn. 5. Sitenizin trafiini kontrol edin: Site trafiini Google Analytics ile cretsiz kontrol

edebilirsiniz. Bylece siteyi ziyaret eden kiiler hakknda genel bilgi alabilirsiniz. 6. Sitenizde forumlar an, geri bildirimleri destekleyin: Forumlar mterilerin birbirlerine

yardm ettii bir ortamdr. Fakat forumlar babo brakmayn ve 24 saat kontrol altnda olmasn salayn.

Blogdan Semeler

116

7.

SSS listeleri dzenleyin: Ska Sorulan Sorular blmn gncel tutun ve forumlar ile

besleyin. Bylece belli sorular iin hemen cevap bulabilirsiniz. 8. En iyi ekran resimlerini kullann: D grn ilk bata mterileri etkileyecek unsur

olduu iin alacanz en iyi ekran resimlerini almaya aln. rnein Vista ile ekran resimlerini gncelleyin. 9. Alan ad iin e-posta dzenleyin: Alan adn aldktan sonra e-postalar da dzenleyin.

rnein admin@alanad.com, destek@alanad.com, siparis@alanad.com vb gibi aklda kalacak e-posta adreslerini dzenleyin ve ska kontrol edin. 10. Online alveri hesab aln: PayPal gibi bir sistem ile online al veri hesab aln. rnn

satlmasn kolaylatrmak ve dnya zerinde herkesin almasn kolaylatrmak iin atacanz en nemli admlardan bir tanesi. 11. Sitenizden deme yaplmasna izin verin: PayPal deme sistemini sitenize entegre ederek

sitenizden direk rnn satlmas iin bir blm yapn. 12. Bir PAD (portable application description) dosyas hazrlayn: Bir XML dosyas ve rn

hakknda baz bilgileri tutar ve sitenizin root dizininde bulunmas gerekiyor. Bu PAD dosyas indirme siteleri tarafndan kontrol edilir ve yeni srmleri bu ekilde otomatik olarak databilirsiniz. PAD dosyasn retmek iin http://www.padgen.org/ adresindeki arac kullanabilirsiniz. 13. Genel indirme sitelerine kayt olun: rnnz yeni srm kardnda otomatik olarak

indirme sitelerinde gncellenmesini salayn. 14. cretsiz ve profesyonel olarak iki ayr srm karn: rnn daha da fazla yaylmas iin

bir cretsiz srm karn ve profesyonel srmden tamamen ayr olarak yaynlayn. 15. Uygun bir son kullanc lisans anlamas dzenleyin (iki tanede olabilir): rtbanda

bulabileceiniz pek ok rnek var. rnnz iin uygun hale getirmek bir avukatn yardm ile olabilir. 16. Otomatik gncelleme fonksiyonu sunun: Otomatik gncelleme en ok aranan

zelliklerden biridir. Yeni srmler ktnda progam otomatik olarak indirilmeli ve gncellenmelidir. 17. Lisans aktivasyonu iin bir web servisi kurun: Bu web servisi her lisansn takibini

kolaylatracaktr. Yasad kullanmn da nne bir miktar geebilir.

117

Blogdan Semeler

18.

Lisanslarn ynetilecei bir otomasyon sistemi yapn: Yukardaki web servisi ile bir

veritabannda tutulacak lisanslar size mterileriniz ve kurulu alan rnleriniz hakknda bilgi toplayabilirsiniz. 19. yi bir kurulum hazrlayn: Mterilerin rn ile ilk karlamalar kurulum ile olmaktadr

ve iyi bir kurulum mterinin rn hakknda iyi izlenimlere sahip olmasna neden olur. 20. Assemblileri obfuscate edin: rnn kodunu obfuscate ederek Reflector gibi aralardan

saklayabilirsiniz. 21. na ve srm ilemlerini otomatize edin: nite testi, ina, kurulum hazrlama gibi

ilemleri otomatize ederek zamandan kazanabilirsiniz. Cruise Control, Subversion, NUnit gibi rnlerden bahsetmeme gerek yok heralde. 22. Zaman ve kaynaklarnz destek ve geri bildirimler ile ilgilenmek iin ayarlayn: Destek

mterilerin her zaman istedii bir ey ve geri bildirimler de rnnze fikir olarak katkda bulunabilir. Kesinlikle zaman ve kaynak ayrlmas gerekir. 23. Cafcafl, kullanlabilir, yardmc: rn arayzlerinde kullanlan teknoloji kullancy

yormamal, rnn kullanlabilirlii mteriye rn zelliklerini bulup kullanmak asndan yardmc bir rn olmal. 24. Promasyon stratejinizi planlayn ve ileme koyun: Nasl reklam vereceinizi, ve rnn

nasl datlacan planlayn ve ileme koyun. 25. Hepsini tekrar yapn: Tm bu ilemleri tekrar tekrar gzden geirin ve bu sreteki ileri

iyiletirmek iin neler yapabilirsiniz kontrol edin ve uygulayn. 3.27 Srm Ynetimi Bu yazmda Srm Ynetiminin byk bir firmada yada devlet organizasyonunda nasl ynetileceini ele alacam. Srm ynetimi bir rnn evrimsel geliimi iin muhakkak ele alnmas ve profesyonelce ynetilmesi gereken bir konudur. rnn ilk analizlerinden itibaren proje ile ilgili rnler ortaya kmaya balar ve kod yazlmaya baladktan sonra ynetim daha da karmak hale gelir. Konuyu iki basamakta ele alacak olursak: 1. 2. retilen belgelerin ve yazmalarn takibi rnn geirdii evrelerin ve dallanmalarn takibi

Blogdan Semeler

118

Olarak zetleyebiliriz. Ben retilen rnn srm ynetimi ile ilgili yazacam. Byk bir firmada yada devlet organizasyonunda yazlan rnlerin pek ok bamll vardr. Dier i birimlerin yazd modller, baka devlet organizasyonlar ile olan balantlar, yabanc devletlerin sistemleri ile olan veri alverii, zel sektr ile olan balantlar, nc parti sistemler, kullanlan iletim sistemi ve bamllklar, donanm bamllklar gibi pek ok sistemin ahenk iinde alaca ve yeni srm verdiinizde bu bamllklar krmayacak ekilde srm vermeniz gerekir. ncelikle srm ynetimi konusunda bir birimin gereklilii sz konusu. Bu birim Test birimleri ile balantl alr ve testlerde onaylanm olan uygulamalar sahada kullanmak zere kurmak iin gerekli ileri organize eder. Bu organize srasnda aadaki birimlerden gerekli kiiler belirlenir: 1. 2. 3. 4. Proje Yneticisi (rn gelitiren ekibin proje lideri) Teknik Lider (rn gelitiren ekibin teknik lideri) Lideri (rn kullanacak ekibin lideri) Saha Kurulum Mfettii (Kurulumun doru gerekletiini onaylayacak ve rn kullanan

kiilerden seilecek bir kii. Eer rn corafik olarak farkl yerlere kurulacaksa her ofisden bir kii.) 5. Kurulum Sorumlusu (rnn kuracak olan kii)

Hiyerarik bir yapda ilerin nasl yrdne bakalm. Adm 1. Teknik Lider olarak yapacanz i srm verme isteinizi bir "Deiiklik stek Formu" dzenleyerek Srm Ynetimi ekibine bildirmektir. Srm Ynetimi isteinizi inceleyip istenen tarihte olup olamayacana ve dier etkilenen uygulamalarn durumu ile etkilenme derecelerini aratrr. Sonuta bir deiiklik numaras verilir ve onaylanr. Bu aamadan sonra Teknik Lider olarak test ekibinin bulaca hatalar gidermek ve rn, kurulum tarihine kadar hazr etmek ile ykmlsnz. rnn son halini paketleyip bir kurulum rehberi ile beraber kararlatrlan bir a dizinine kopyalayacaksnz. Teknik Lider ayrca Liderini uyararak srmn yaplaca tarihi bildirir ve mesai yapacak alanlarn bilgilendirilmesini salar. Srmn verilecei hafta sonu, uygulama eriilemez olacaktr. Bu aamadan sonra artk Teknik Liderin ii bitmi oluyor. Adm 2. Srm zaman yaklatka srm ynetecek kii (Srm Ynetimi ekibinden bir kii) hangi uygulamalarn srm vereceini belirler. Test ekibinin onaylad ve srm zaman belirlenen uygulamalar listelenir. Test onay belgelerinde Proje Yneticisi ve Teknik Lider hakknda bilgi vardr.

119

Blogdan Semeler

Ayrca Deiiklik stei Formunda da bu bilgi mevcuttur. Bu bilgi uygulamann karsna yazlr. Bu ilem iin MS Project yada bir Excel dosyas kullanlabilir. rnek olarak bu Excel belgesine bakabilirsiniz. Srm Yneticisi test onay belgelerini inceler ve testlerden geememi uygulamalar geri evirir. Deiiklik stek Formlarn ilgili kiilere geri gndererek srm tarihini gncellemesini ister. Testlerden geen uygulamalar listede gncellenir. Adm 3. Srm Yneticisi yaplacak her ii adm adm belirleyebilmek iin tm yetkili kiilerin katlaca bir toplant dzenler. Bu toplantya srm verecek tm uygulamalarn sorumlu kiileri ile etkilenecek fakat srm vermeyecek tm uygulamalarn sorumlular katlr. Srmn hafta sonuna denk gelmesi ve kimsenin sistemleri kullanmad bir anda yaplmas nemlidir. Zaten sistemi kullanan kullnclar nceden uyarlmtr. Yaplacak ilerin listelendii belgeye buradan bakabilirsiniz. Bu toplantlar srm tarihi yaklatka sk aralkta tekrarlanr. Adm 4. Srm yneticisi grev listesindeki her grevin kimin yapacan ve kontak telefonlarn bir liste halinde yaynlar. Herkes bu listeye sahip olmaldr ve srm gn bolca kullanlacaktr. Bizim burada yaptmz bir uygulama da bir telekonferans hatt organize etmektir. Herkes bu konferans hattn arar ve 24 saat hatta kalr. Bylece olan olaylardan herkes haberdar olur. Eer srm baka ehirlerdeki ofisleri de etkiliyorsa bu tr bir haberleme ileri ok daha kolaylatrmaktadr. Adm 5. Mesai yapacak olan kiiler belirlenir ve grev listesinden ne zaman ofiste olacaklarn kontrol etmeleri istenir. Ayrca mesai iin izin alnmas gerekiyorsa bu izinler nceden alnr. Bina girii iin zel bir gvenlik durumu sz konusu ise gvenlik birimi bu olaydan haberdar edilir. Adm 6. Srm Yneticisi, Geriye Dn ilemlerini de organize eder. Eer yeni srmler sahaya kurulduktan sonra testler srasnda bir hata karsa sistem eski haline geri dndrlr. Kurulum Ynetimi ekibi srm gn ortaya kacak hatalara hazrlkl olmak iin her rnn mevcut srmn hazrda bulundurur. Srm gn kan hatalardan dolay kurulamayan yeni srm uygulamalarn proje mdrleri durumdan haberdar edilir. Saha Kurulum Testlerinde kan tm hatalar ekran resimleri ile beraber kaydedilir ve bir numara verilir. Eer srm gn zlemeyecek bir hata ile karlalrsa o srm iptal edilir ve eski srm kurularak sistemin devamll salanr. Tm bu admlar srm gnnn sancsz gemesi iin tekrar tekrar gzden geirilir ve mmkn olduunca grevler en ayrntl biimde yazlr. Srm gn uzun ve yorucu bir gn olacandan yiyecek ve iecek temini iin nceden hazrlk yapn.

Blogdan Semeler

120

Srm gn her ilem baar ile sonulanrsa gelecek 2 hafta iin uygulamalar gz altnda tutulur ve kacak hatalar gzden geirilir. 3.28 Firmanz Korumak Emre Bey'in att bir yorum zerine bu yazy yazyorum. Emre Bey'in derdi gnmzde ok yaygn olan veri ve rn hrszl ile ilgili. Yasalarn yetersiz kald yada uygulanmasnn mmkn olmad durumlarda (finansal yetersizliklerden dolay) rn ve kaynak kodunu korumak iin neler yapabilirsiniz? Yazlm firmanz ve rnnz merakl yazlm uzmanlar ve hrszlara kar nasl koruyacaksnz? Finansal olarak zaten kk bir iletmesiniz ve dava ap avukat masraflar ile uramak ta istemiyorsunuz. Zaman ve nakit kaybn en aza indirerek rnnz ve firmanzn geleceini korumak istiyorsunuz. Teknik adan ne yaparsanz yapn elbet bir delik bulunacaktr. Ya sosyal mhendislik yolu ile yada sistemdeki bir ak yznden gznzn nuru rnnz darya szacaktr. Gene de teknik adan yaplabilecek pek ok ey var. Ne kadar ok kapy kapatrsak o kadar sznty nlemi oluruz. te yandan yazlmclarn esnekliini kstlam oluyorsunuz ve bir yazlmc iin pek iyi bir durum deil. Yaplacak teknik kstlamalara bir bakalm. Uyar: Bu yazlanlar uygularsanz firmanzda Darth Wader olarak adnz kabilir. 1- Tm disket ve CD srcleri kaldrn Firma iinde yazlm amal kullanlan ve yazlmn bulunduu a dizinlerine eriebilecek her bilgisayarn disket ve CD srclerini kaldrn. Bylece bir kapy kapam oluyoruz. Benim u an altm departmanda CD ve disket srcleri bilgisayarlarn zerinde fakat iletim sisteminden hi birine eriim yok. BIOS seviyesinde kapatlmlar. Baz bilgisayar kasalar vidalar sklp aldnda sistem yneticisine bildiri gnderecek ekilde tasarm edilmitir. Bu kasalar kullanrsanz bir miktar daha koruma salam olursunuz. 2- USB portlarn kapatn USB portlarna taklacak herhangi bir ara kodun darya szmasna neden olabilir. USB portlar muhakkak kapatlmaldr. Ayrca varsa infrared portalar da kapatlmaldr. 3- BIOS ifrelenmeli

121

Blogdan Semeler

BIOS sistem yneticisi tarafndan bir ifre ile korunmaldr. Bylece kimse BIOS zerinden USB portlarn aamaz yada IDE srclerini etkin hale getiremez. Kasalar ap pilleri kartnca pek geerli bir koruma olmuyor ama haftalk kontroller ile denetlenebilir. 4- Tek bir sistem yneticisi Genel olarak bir yazlm evinde herkes sistem yneticisi olarak tanmlanr ki herkes istedii her yere ulaabilsin. Fakat ok yanl bir uygulama. Ben kendi bilgisayarlarmda bile sistem yneticisi olarak i yapmyorum. Biraz daha profesyonel olmak iin bir domain kurun ve tek bir sistem yneticisi atayarak kullanclar ynetin. Verilecek haklar ve eriimleri sk denetleyin. 5- Security Policy ayarlar Windows zerindeki Security Policy ayarlar ile kullanclarn uygulama kurma ve kaldrma haklarn kapatn. Bylece bir ekilde anza bir uygulama girse dahi kurulumu ok zor olacaktr. Domain kurarak bu ayarlar domain baznda yapn. 6- Hi kimse lokal admin olmamal Eer COM+ gelitiriyorsanz olabilir tabii ama hi kimse kulland bilgisayarda lokal admin olarak i yapmamal. 7- nternet balants olmamal nternet verimlilii dren en byk etkenlerden biri bence. Ben kod yazarken ne Outlook nede MSN Live Messenger aktr. Zaten gerek te yok nk en son srm MSDN kurulu makinemde. 8- Domain kurun ve kullanclar iyi ynetin Her kullancy admin olarak tanmlamaktansa bir domain kurup kullanclara verilecek haklar belirleyin. stisnalar olacaksa neden olacan ve nasl ynetileceini de belirleyin. 9- Anza balanacak makineleri takip edin Linux iin www.arpalert.org adresinde ArpAlert diye bir rn mevcut. Bu rn ile anza bal makinelerin MAC adreslerini bir veritabannda tutuyorsunuz ve kaytl olmayan bir makine balandnda size haber veriyor. Gnmz MAC Spoof yntemleri ile biraz geersiz bir rn oluyor ama hi yoktan iyidir. Kablosuz alar iinde iyi saylabilecek bir yntem. 10- Kod deponuzu koruyun

Blogdan Semeler

122

Kod deponuz, hangi rn olursa olsun kesinlikle kilitli kaplar ardnda olmaldr. Ayrca kullanclarn yapt ilemleri takip edip uygunsuz bir ilem grdnzde soruturma yapn. rnein bir kullanc tm kod deposunu indirmeye kalkarsa arkasnda muhakkak bir apan olu vardr. Her gn sonunda bir yedek alp gvenli bir ekilde saklayn. Yedein bir kopyasn firma dnda bir yerde hatta farkl bir ehirde tutun. 11- Gvenilir kiiler ile aln Bulmas ve anlamas zor bir zellik. Kiilerin gvenilirlii ok deiken de olabilir. Haysiyetli ve helal st emmi yazlm uzmanlar ile alrsanz riskiniz daha da azalacaktr. Deneme yanlma yolu ile bulacanz bu kiiler firmann kk ekibini oluturabilir. 12- Log tutun ve loglar inceleyin Herkes log tutar ama bunlar inceleyen ok azdr. Kilit ilemler yaplrken muhakkak log tutun ve bunlar gn sonunda inceleyin. eitli otomatik uyar mekanizmalar kurup yaplan baz ilemlerden annda haberdar olmaya bakn. 13- Darya giden postalarn kontrol Firmanzn sunucularndan kacak her trl e-posta incelenmeli ve onaylanmaldr. Bylece bir yazlm uzman kodlar zipleyip e-posta ile gndermeye kalkarsa durdurulabilir. Kodu almak isteyen yazlmc kodu yazcdan basabilir ve bir ekilde kodu darya karabilir. Teknik adan ne kadar kstlama getirirseniz getirin bir ak elbet olacaktr. Bu kadar ok kstlama yazlm uzmanlarn da bunaltabilir. Hani bu kadar yazdm ama ben bu tr bir firmada almak istemezdim. Eer firma sahibi beni hrsz olarak gryorsa neden alaym ki... Sanrm teknik adan yaplacak ey ok fazla ve takibi ve teftii iin nakit ve vakit harcamanz gerekecek. Sonu Sadakat kiilerin karlkl gvenlerinin artmas sonucu doan bir unsurdur. Eer siz firma sahibi olarak alanlarnzn geleceini garanti edebilirseniz alanlar da size sadk olacaktr. Yapacanz satlar ile firmanza salayacanz gelir aklar ve akabinde bunun herkesin abas ile olduunu anlatacak toplantlar veya kutlamalar yapabilirsiniz. Bylece alanlar kendilerini daha da fazla firmann bir paras olarak grrler. Gelecek vaad etmeyen bir firmada hi kimse durmak istemez. Firma kltrn ve sadakati misyon haline getirseniz dahi birileri mutlaka kodu almak iin yeltenecektir. Gizlilik anlamas bu aamada imdadmza yetiebilir. Bu anlama kiilerin altklar rn

123

Blogdan Semeler

hakknda darda konumalarn ve herhangi bir ekilde kaynak kodunun darya szdrlmas halinde yasal ilemlerin uygulanacan ak seik belirten bir anlamadr. (baknz Non-Disclosure Aggrement yada Confidentiality Aggreement). En iyi zm bir gizlilik anlamas imzalatmak ve gvenilir kiiler ile almak. Yaplan her ilem iin log da tutabilirsiniz. Anlamay imzalayan ve her ilem iin log tutulduunu bilen yazlm uzmanlar kodu almaya yeltenmeyecektir (en azndan ben yle umuyorum). Bu iki anlama rneini yaknda blogumda vereceim. Baz anlamalarda ayrlan kiilerin rakip firmalarda almasn nleyecek maddeler bulunur. rnein A firmasndan ayrlp ayn tr rn gelitiren B firmasna geip almamz engellenmek istenebilir. Bu hayatmda grdm en rezil uygulama. Zaten yasal bir dayana da yok. Ben kendi bildiim ileri yapmak ve kariyerimde ilerlemek iin tabii ki ayn ii yapan daha byk bir firmaya geicem. Bu kanlmaz. Karlkl gven ve sadakatin gelimesi iin salanacak ortamn yaratlmas ve kiilerin zveri ile alt bir firmada bu tr yaptrmlara gerek kalmamas lazm. Uygulanacak her trl yaptrm, yazlm uzmanlarnn alma artlarn bozar. Kodun kalitesini dahi drebilir. Kontroln dozajn iyi ayarlayp alanlar tiksindirmeden bu ii halletmek gerekiyor. Firmada alan herkes istisnasz bu anlamalar imzalamadr. stisna yapmaya balarsanz dier alanlar bu durumdan rahatsz olabilir. Dier bir yntem yazlm ve irket genel alarn birbirinden fiziksel olarak ayrmak. Hatta her bir test seviyesi iin birer a kurmak iyi olabilir. rnein benim altm departmanda Gelitirme, Fonksiyon Testleri, Kullanc Kabul Testleri, Entegrasyon Testleri, Performans Testleri iin birer a mevcut. Bu alar birbirinin hemen hemen ayns. Fakat domain olarak ayrlar. Aralarnda fiziksel olarak balant var fakat firewall bunlar denetliyor. Masrafl ama gnmzn Virtual PC imkanlarn dnecek olursanz aslnda uygulamas o kadar da maliyetli deil. Benim altm yerde Performans testlerine kadar olan tm alar ve bilgisayarlar sanal. Ynetimi de ok kolay oluyor. Bir temel "image" hazrlayp her kurulumda bunu kullanabilirsiniz. Kod alnrsa yada kaak olarak yerlerde satlmaya balarsa yapacanz en mantkl hareket, rnn bir sonraki srmnde ekleyeceiniz zellikleri gelitirmektir. yle ki mteriler yerlerde satlan eski srm yerine yeni srm iin aersinler. Arayzlerde yaplacak yenilikler veya sistemde temelden yaplacak deiiklikler buna neden olabilir. Evet masrafl ama pazarda kalabilmenin ve hrszlarla mcadele etmenin baka bir yolu.

Blogdan Semeler

124

3.29 Yazlm ve Kiilik Code Complete kitabndan ok gzel bir blm ve benim yorumlarm yazmak istedim.

Kiisel karakteriniz yazlm retmedeki kabiliyetinizi dorudan etkiler.

Yazlm reten insanolu olduuna gre kiisel karakterin yazlm retme kabiliyetine dorudan yansmas kanlmazdr. Hayatn nasl yaadn, evrenle ilikilerin, ahlaki seviyen, davran biimlerin yaptn ii dorudan etkiler. rnein evinde dank yaayan bir kiinin yazd kod da dank olacaktr vb gibi.

Bu karakterlerden yazlm alannda en iinize yarayacak olanlar arballk, merak,

entellektel drstlk, yaratclk, disiplin ve entellektel tembelliktir. Arballk yaptnz hatalar kabullenme ve ders alma etkilenmesini yaratr. Yapt hatalardan ders alan yazlm uzman bu hatalar tekrar etmiyorsa yapt iin kalitesini ykseltmi demektir. Ayrca dardan gelecek yardmlar da arballk ile kabul eden kii gene deneyimini ve yapt iin kalitesini ykseltecektir. Entellektel drstlk ise yaptnz ite size gelen yardmlara hakettikleri saygy gstermek, sizinle beraber alanlara her zaman saygl davranmak demektir. rnein Ahmetin size yardm olmas iin yazd bir fonksiyonun tepesine kendi isminizi yazmanz ayptr. Ya da blogumdan dmdz kopyaladnz bir yazy isim yada link vermeksizin forum sitenizde yaynlamanz ahlakszlktr. Yaplan iin kredisini kimin hakkysa verin, dnyann sonu gelmez merak etmeyin. Yada birileri kp ta bunu da buradan kopyalamsn dediinde yerin dibine girip rezil olmak daha iyi gelebilir veya hi yakalanmayabilirsiniz de. Hi yakalanmayacanz dnyorsanz sizi Allaha havale ediyoruz, yok yakalansam bile banane diyorsanz size ar damar nakli neriyoruz. Entellektel tembellik, tembellik yaptnz anlarda bile bir problemi dnmek ve farkl zmler aramaktr. Yada yaratclnz kullanarak reteceiniz bir i fikrine eitli kullanm alanlar bulmaktr. Dardan tembellik yapyor gibi grnrsnz fakat beyniniz tam gcyle alyordur.

Sper yazlmc olmann Allah vergisi bir yetenek ile ilgisi yoktur. Aksine kendini adamak ve

kiisel gelime ile ilgisi vardr. Yazlm ve bilgisayar dnyasnn her geen yl biraz daha ilerlediini ve yeni teknolojilerin ve tekniklerin mantar gibi trediini dnrsek, kendimizi gelitirmek iin harcayacamz zamann deerini sanrm daha iyi anlayacaz. Dnn ki iyi bir bilgisayar iin yatrm yapyoruz ama kendimizi

125

Blogdan Semeler

gelitirmek adna bir yatrmda bulunmuyoruz. Kimin belli bir kurs plan var? nmzdeki yl iin eitim planlarnz belirlediniz mi? Hangi kitaplar alacanzn veya hangi yeni teknolojileri renmek iin alacanzn plann yaptnz m? Yoksa nnze ne pilav koyarlarsa yemek iin elde kak bekliyor musunuz?

lenmemi zeka, deneyim, salam karakter ve altnc his yarar salad kadar zarar da

verebilir. Eer at gzlkleri ile doru bildiiniz eylere balysanz ve deitirmek iin gelen yorumlar kulak arkas ediyorsanz bu artk sizin yeni teknolojileri renme ateinizi sndne iarettir. Yada bulunduunuz ortamn monotonlou ve kemiklemi ileme modeli sizi de etkilemi demektir. Bu kabuun dna kmak ve yeni bilgi ve teknikler iin araya girmek iin vakit kaybetmeyin. Sezgileriniz ile hareket ederken unutmayn ki bir mayn tarlasnda yryorsunuz. Sezgilerinizi hemen ilan etmeden evvel, nce bir kodunu yazn sonra nite testini de yazn ve size kazk atmayacak bir arkadanza gsterin ve test ettirin. Test edilmi ve onaylanm bir dnce artk bir rn haline gelmitir ve kullanma hazrdr. Atalarmzn syledii gibi baz dncelerin pimesi iin stne bir gece uyumak gereklidir. ok salam karakteriniz esneklie izin vermiyorsa sizin iin tehlikeli olabilir. Yllarca o salam karakterdeki doru zannettiiniz davran biimleri yanl olabilir yada zaman ierisinde geerliliini kaybetmi olabilir. Deiime ak olmak her zaman iyidir. Zeki olabilirsiniz fakat yntem bilmiyorsanz aklnza gelen fikirleri hayata geirmek zor olabilir. lenmemi zekann ilenecei yegane yer eitim kurumudur. (evrenkent, kurs, hayat, evre, aile, kitaplar, kaldrm fakltesi vs.) Bilgiye ak ve a olmak yeterlidir. renilen yntemlerin nasl kullanlaca ve teorinin pratie nasl uygulanaca dnmeniz gereken tek eydir. Yani renirken u yaklam ele aln ben bunu nasl hayatmda/iimde/ailemde kullanrm ki bana faydas olsun. Bunun bir sonraki aamas ise bu yntemi ok gzel kullandm, acaba daha iyi ve verimli hale gelmesi iin bir eyler yapabilir miyim? sorusunun sorulmas ve akabinde sre iyiletirmeye gidilmesidir.

Pek ok yazlmc kendini gelitirmek iin aktif olarak yeni bir bilgi yada teknik aray iine

girmez. Bunun yerine yaptklar i ierisinde tesadfen bulduklar yeni bilgilerle yetinirler. Eer zamannzn kk bir blmn yeni kitaplar veya teknikleri anlatan yaynlar okumaya adarsanz bir ka ay yada ylda kendinizi srden rahata ayrt edebilirsiniz.

Blogdan Semeler

126

Kendini yazlm uzman sanan pek ok kii var ve senin bunlardan farkn ayrt etmek g m oluyor? Hem iveren hemde kendin iin bu ayrm yapmak g oluyorsa artk bunun iin bir eyler yapmann vakti geldi demektir. Her gn belli bir ksm zaman yeni bilgi ve teknolojileri renmek iin harcamalsn. Bir gnlk tutup bu rendiklerinin ve renmek istediklerinin bir seceresini tut. Ayrca planl olmas asndan 3 aylk yada 6 aylk planlar yap ve ne reneceini planla. Ylda en az iki kez bir kursa katl. Yada bir niversite ile anlap ylda bir ders al konunla alakal. ok gemeden greceksin ki srden ayrlm ve daha yeil otluklar iin yelken amsn.

yi karakter sahibi olmak doru alkanlklar semekten geer. Alannda mkemmel bir

yazlm uzman olmak istiyorsan doru alkanlklar se gerisi zaten gelecektir. Yazlm sektrnde kullanlan ve yazl olmayan standartlar vardr. Bu standartlar bulup karmak ve kendi iinde kullanmak yaptn iin kalitesini ykseltir. Kalite ykseldike sana maa art yada mevki ykselmesi olarak geri dner (dnmyorsa firma deitirmek arttr). Kendi uyguladn bu yntemlerde sre iyiletirmesine gidip zamann gerekliliklerine gre deiimler yapmak daha da ilerlemeye neden olur. Yaam tarzn ve hayat standardn ykselmeye devam eder. Yeni rendiin teknikleri de bir ekilde i hayatnda kullanp verim alabiliyorsan ne mutlu sana. Code Complete kitabn her okuduumda aklmda yeni fikirler beliriyor yada bir problemime zm buluyorum. Bu kitab her kese tavsiye ederim. 3.30 Yazlm Srecinde Kalite Yazlm mhendisliinin yegane amac yksek kalitede bir uygulama retmek olagelmitir. Bunu baarabilmek iin test edilip onaylanm bir metod, yksek kaliteli uygulama gelitirme aralar ile birletirilerek yazlm srelerinde kullanlmaldr. Gnmzde yazlm aralarnn ok ilerledii bir gerek; demek kaliteyi yakalamak iin metodu doru ve yerinde kullanmamz gerekiyor. Ayrca metoda ne kadar sadk kalnd ve tam olarak kullanlp kullanlmad da bir etken olarak karmza kyor. Soru 1: altnz yerde hangi metodun kullanldn biliyor musunuz? Projelerin bir harala grele ile balad ve Allah ne verdiyse kod yazmaya giriildii bir yerde mi alyorsunuz? Yoksa belli bir dzende mteri gereksinimlerine bal kalnarak, dkmantasyon ve srm ynetiminin kullanld bir ortamnz m var? altnz yerdeki yazlm gelitirme metodunu iyice renip, ilerin nasl datldn, nasl test yapldn, kod yazarken nelere dikkat edildiini renin. Belli bir dzen yok mu? O zaman siz bir dzen getirin. Metodun gerekliliklerini renip uygulayn. Bu durumda hatalarn en ok hangi aamada olutuunu bililmsel olarak ortaya koyabilirsiniz.

127

Blogdan Semeler

stenen kalitenin elde edildiini anlamak iin proje boyunca oluan hatalara gz atlabilir. rnein Use Case (Senaryo) kullanarak analiz yapyorsunuz diyelim. Senaryolar bir kez onaylandktan sonra gerekecek her trl deiiklik bir hata demektir. Yada Yazlm Gereksinimleri Tanmlama belgesinde onaydan sonra oluacak her deiiklik te hata statsne girer. Testler srasnda kodda yakalanan hatalar da bu durumdadr. Hata projenin her aamasnda ortaya kar; sadece kod zerine odaklanmayn. Her senaryo bana ka hata dtn, testler srasnda 1 saatte ne kadar hata yakalandn lp projenin kalitesi hakknda bir fikre sahip olabilirsiniz. Ayrca Hata Dzeltme Hz (HDH) her senaryo iin lldnde senaryolarn boyutlar ve ierdikleri zorluk seviyesi ortaya kartlabilir. Eer bir senaryo iin HDH zaman uzunsa, kompleks bir senaryo ile urayoruz demektir (yada ok basit olduu iin analizcilere angarya gibi gelen bir itir). Proje plannda bu senaryo ve bal olduu fonksiyonlar iin daha fazla zaman ayrmanz yada senaryoyu dzeltmesi iin analizcileri drtmek gerekir. Projelerin kompleks ksmlarn anlamak iin maliyet analizi de yapabilirsiniz. Modl yada senaryo bana maliyet analizi en fazla kullanlan tekniktir. Proje maliyetlerinin ou son iki aamada ortaya kar. Bunlar 1. 2. rn mteride kullanlmaya balamasndan sonra destek aamasnda ve rnn farkl mterilere ve sistemlere uydurulmaya allmas srasnda

Bu aamalarda ortaya kacak hatalar da dzeltilmesi en maliyetli ve zor hatalardandr. Zaten kompleks ve zorlu olan bu iki aama, ortaya kan hatalar ve uzun sren HDH zamanlar ile iinden klmaz bir hal alr. Bu sebepten dolay zaten ou proje yneticisi bu iki aamay proje planlarna dahil bile etmezler. Bylece kaliteyi ykseltmi gibi gzkrler ama aslnda projenin en nemli ksmn es gemilerdir. Soru 2: rnn doruluu hakknda ne biliyorsunuz? Bir program doru olarak almaldr. Peki doruluunu nasl anlayacaz. yle; mteri gereksinimlerine gre doru alyor mu test ederek (basit deil mi? Tabii mteri ne istediini biliyorsa). Bu testler srasnda ortaya kan toplam hata rakam diyelim ki 3000 olsun. Proje bandan beri yazlan kodun da 150,000 satr olduunu dnelim. Bu durumda 150,000*X=3000*1000 formlnden her 1000 satr iin 20 hata olduu ortaya kar. Tabii bu hatalarn hepsi rn mteri tarafnda kullanlmaya baladktan sonra mteri tarafndan girilen hatalardr. Kalite lm iin bellli bir zaman srecinde bu hatalar toplanr, rnein 1 sene gibi. rn mteride kullanlmaya baladktan sonra her

Blogdan Semeler

128

1000 satr iin hata seviyesinin %1,5 ile %2 arasnda olmas gerekir ki rn kaliteli bir rn olarak farzedebilelim. Eer hata says st limitlerde geziyorsa ki rneimizde yle, hata saysn alt limitlere ekmek iin alma yaplmaldr. Ayrca modl bana den hata says ve modllerin boyutu gz nne alnarak, kompleks fonksiyonlara daha fazla zaman ayrlmasnn salanmas gerekir. Soru 3: rnn ilk srmnden sonra gelen istekleri ve hatalar ne kadar zamanda dzeltiyorsunuz? rn mteriye sunulur ama proje bununla bitmez. Bir destek ekibi 7/24 problem zmek iin didinir durur. Bu aamada oluan hata, istek ve entegrasyon problemlerine cevap verme hz rnn kalitesini belirler. Madde halinde sralarsak: 14. 15. zaman ve 16. rnn farkl sistemlere entegre edilmesi veya deien ana sistemle birlikte rnn de rn mteriye sunulduktan sonra kan hatalarn dzeltme hz stenen deiikliklerin analizi, uygulanmas, testi ve mteriye sunulmas srasnda geen

buna ayak uydurmas iin yaplacak deiikliklerin uygulanma hz. Genel bir lm birimi olmasa da bu zamanlarn llp grafik haline getirilmesi ileride kacak hata, istek ve entegrasyon istekleri iin tahmin edilecek zamanlarn daha gereki olmasn salayacaktr. Projenin boyutuna ve younluuna, mteri saysna ve hizmet veren programc, testi, analizci vb gibi proje sahiplerine bal olarak her proje iin farkl bir gsterge ortaya kmas doaldr. Soru 4: rn ne kadar gvenli? rnn korsan saldrlarna kar ne kadar gvenli olduu da bir kalite gstergesidir. Korsan saldrlar direk programa, veritabanna veya belgelere yaplabilir. Bu enin kendini koruyabilmesi ve saldrlardan yara almadan kurtulmas rnn gevenliliini gsterir. Kod ve Rol seviyesinde gvenlik mekanizmalarnn kurulmas, ifreli bilgi alverii iin ortamn ayarlanmas, sistemlere ulaan kiilerin izlenmesi ve kayt edilmesi gerekir. rnn alt sistem yneticiler tarafndan gz altnda tutulmal ve pheli durumlarda otomatik uyarc modller eklenmelidir. rnein her isteyen cumhurbakannn vergi kaytlarn grmemelidir. Gvenlik tam olarak llecek bir birim deildir ama gnde 10 kere saldrya urayan bir sistemin her seferinde yara almadan kurtulduunu bilmek mteri iin rahatlatc bir unsurdur.

129

Blogdan Semeler

Soru 5: rnn kullanlabilirlii hakknda ne biliyorsunuz? Her yeni yazlm rn yada eklenen zellik beraberinde belli bir renme sreci getirir. Bu renme srecinin uzunluu: 1. 2. 3. Kullancnn entellektel bilgi seviyesine rn ile yararl bir eyler yapacak seviyeye gelmek iin geen zamana Yararl bir eyler yapacak seviyeye gelmekten tam retken olacak zamana kadar geen

sreye baldr. Kullanlabilirlik tamam ile mteriden mteriye deiecek bir etkendir. Fakat rnn arayz tasarm, komutlara kar verdii cevaplar, tahmin edilebilirlii, hata durumlarnda verdii yantlar ve bir kme durumunda zerinde alt veriyi bozmadan bir nceki haline geri dnebilmesi kullanlabilirlii arttran unsurlardr. Mteri genelde rn hatalar ile beraber renir ve bu hatalara kar defans gelitirir. Yani program mteriyi ynetmi olur fakat verinin btnl veya sistemin gvenlii tehlike altna girer. Bu tr durumlara yer vermemek amac ile kullanlabilirlik testlerinin bamsz kiiler tarafndan yaplmas gerekir. Yazlm srelerinde bu metriklerin yerletirilmesi ve kullanlmas olduka g bir itir. Hele ki firmada gemite herhangi bir metrik tutulmadysa daha da zor olacaktr. Fakat unu dnnki eer lm yapmazsak ilerlediimizi anlayamayz. Ben rnein her body building salonuna gidiimde bir defter ve bir kalem bulunduruyorum ve kaldrdm arl not ediyorum. rnein 1 aylk Trkiye tatilinden sonra eski performansma kavumam bir ay gibi bir zaman ald. Arlklar yazmasaydm bunu bilemeyecektim. te yandan limitlerini bilmek ve biraz daha snrlar zorlamak iin de tuttuum kaytlar kullanyorum. rnein uzunca bir sre ayn kiloda biceps yapyorsam bir daha ki antrenmanda 1 kilo arttryorum ve aldm tepkilere dikkat ediyorum. Proje zaman izelgelerinde bu ekilde kompres yoluna gidilebilir ama mutlaka bir nceki metrik lmler gz nnde bulundurulmaldr. Yoksa yaplan kompres anlamsz olacaktr. 5 gn srecek bir ii 2 gnde bitirebilmek iin yaplan kompres eer metod olarak nceki metriklere dayanmyorsa pek bir anlam ifade etmez. Sonu

Blogdan Semeler

130

Bir firma iinde yazlm sreci boyunca her proje iin belli metriklerin tutulmas gerekir. Bu kayt tutma alkanl ileride alnacak projelere ve zaman izelgeleri iin tahmin edilecek srelere bir k tutar. Proje baznda kaliteyi lmek iin belli rakamlar almamz salar. Bu metrikler sayesinde elle tutulur bir kalite anlayna sahip oluruz ve daha da arttrmak iin neler yapmamz gerektiini daha ak grebiliriz. Yoksa yazlm srecimiz bir kr dvne dner ki piyasada uzun sre kalmay dnen bir firma iin hite iyi bir ey deil. Uzun sreden kastm yle 15 yada 20 yl deil. 100 yada 150 sene ortamn deiikliklerine ayak uydurabilmi ve rn ile srekli devinim iinde gelimi ve kaliteyi de n planda tutmu bir firmadan bahsediyorum. 3.31 Yazlm Uzman Olamayacanzn 10 Kant Tech Republicde yazan Justin James 10 maddede neden yazlm uzman olamayacanz aklam. Bakalm neymi bu 10 madde. 1: Kendi kendine renmek yerine kurslar tercih ediyorsunuz Yazlm Uzman ilk ie baladnda gerekli tm bilgiyi biliyor olduu varsaylr. Firmann belirli bir eitim politikas olsa bile gerekte firmann yardm ile alacanz eitimler hi bir zaman gereklemez. En iyi ihitimalle bir iki kitap almanz iin bir denek ayrlr. Ynetim ekibinin dncesine gre yazlm uzman problem zmeyi bilen akll bir kiidir ve bu yzden de eitime ihtiyac yoktur. te yandan kurs masraflar karlanan yazlm uzmannn her zaman firmay terkedip gitme ihtimali olduu iin firmann yatrm yapmas pek dnlemez (olsa iyi olurdu tabii ama gerek hayat bu). Bu durumlar gz nne alndnda kendi kendinize renebiliyor olmanz gerekir. Eer bu disiplin sizde yoksa yazlm uzman olmay aklnzdan bile geirmeyin. 2: Normal alma saatlerini seviyorsunuz Yazlm projelerinin ge bitme olayn herkes bilir. Zamannda biten projeler bile projenin hayat boyunca ou kereler ge kalma durumuna dmtr. Eer 9dan 5e bir ite almay seviyor ve yazlm projelerinin uzun alma saatlerine ve gecelemelerine dayanamayacanz dnyorsanz yazlm uzman olmay aklnzdan karn. Patronunuz, rnn zamannda mteriye ulatrlmasn, sizin olunuzun spor msabakasndan yada televizyonda seyretmek istediiniz programdan daha nemli tutacaktr. 3: Kk maa artlarn kdem ykselmesine tercih ediyorsunuz Teknolojik deimeleri uygulamayan bir firmada almyorsanz, imdi bildiiniz eyler seneye ya geersiz yada az deyen konuma gelecektir. Bugn gzde olan teknolojiler seneye isimleri bile

131

Blogdan Semeler

hatrlanmayan garip teknolojiler olabilir. in srr hzl biimde deimektir. Yeni teknolojileri hzl (herkesden nce) renip konu hakknda otorite olmaya bakn. Hi yeni bir teknoloji renmeden ayn koltukta oturup, maanza gelecek zammn hayat standardnza yeteceini dnyorsanz yanlyorsunuz. Ya deneyimlerinizi ilerletip ayn firmada kdem ykseltmeli yada baka bir firmaya geerek aldnz maa ykseltmelisiniz. 4: Ekip almasnda insan ilikileriniz pek iyi deil Yazlm uzmanlar her ne kadar a-sosyal insanlar olarak bilinsede bir araya geldiklerinde hararetli konumalar yaparlar ve kendileri gibi olan insanlarla hemen kaynap sosyalleirler. Hangi dkkanda indirim var veya dn akamki diziden bahsetmedikleri iin dardan kulak misafiri olanlara Franszca gibi gelir ama aslnda ok sosyal insanlardr. Ekip iinde alamyor ve iletiimin dk olduunu dnyorsanz yada ekip arkadalar ile balant kuramyorsanz; problem genellikle sizdedir. Ayn deneyimleri yaamam kiilerin balant kurmalar beklenemez. 5: Kolayca sinirleniyorsunuz Yazlm dnyas pek ok engellerle doludur. Belgeler genelde tam deildir, sizden nceki yazlmc okunmaz bir kod yazmtr, proje mdrnn anlalmaz kurallar vardr, herkesin uymas beklenen... liste daha da uzatlabilir. Sonu olarak kimse srekli bela okuyan ve ekrana kfr eden birisi ile ayn at altnda olmak istemez. Eer 8 saatlik bir uran sonunda konuyu 10 dakikada zebileceinizi grp deliriyorsanz bu kariyer sizin iin deildir. 6: Ekip elemanlarnn fikirlerine kapal iseniz Yazlm gelitirmede genelde problemlerin birden fazla zm vardr her yiidin bir yourt yiyii olduu gibi. Eer gelen kritikleri ve dier zmleri gz ard ediyorsanz nemli bir noktay gzden karyor olabilirsiniz. Sektrde yani olan ve deneyimleri sizden az olan birinin yapaca bir tavsiye size pek ok ey kazandrabilir. Tabii bu tavsiyeye nem verip uygularsanz. 7: Detay adam deilsiniz Programlama olay komplex bir olaydr ve dikkat ister. Eer Conan The Barbarian filminden daha karmak bir filmi izlerken kayboluyorsanz yada bir yeni nesil ev kredisi formunu doldururken zorlanyorsanz yazlm uzmanl byk ihtimalle sizin iin deildir. Bazen unutulan bir virgl, baar ile baarszlk arasndaki izgiyi izer. Eer bu virgl arayp bulacak yapya ve sinir esnekliine sahip deilseniz kariyeriniz belli limitler iinde yer alr.

Blogdan Semeler

132

8: Yaptnz iten onur duymuyorsunuz Kitaba gre yazlm retmek ve orta derece ile geecek bir i kartmak mmkndr. Problem, kitaplarn srekli gncelleniyor olmasdr. Yazlm gelitirmek bir fabrika ii deildir. Fabrikada iler belirli bir prosedre gre gider ve beyin seviyeniz ne olursa olsun prosedr uyguladktan sonra i ortaya kar. Yazlm gelitirme daha ok bilimsel bir itir ve bamsz dnce gerektirir ki bu da yaptnz iten gurur duymanz salar. Bir ii yanl yoldan yapp retime geildiinde ancak yeteri kadar almasn salayabilirsiniz fakat gz ard ettiiniz o hata problem amyor gibi grnsede ileride problem aacaktr. Yazlmc olarak yaptnz iin gurur duyulacak bir i olduunu dnmyorsanz rettiiniz rnn kalitesi dk olacaktr ve kariyerinizin sreklilii ile doru orantl olacaktr. Siz ayrldktan sonra arkanzdan konuulmasn istemiyorsanz (geri aznla ku tutsan arkandan konuacaklardr) haysiyet ve onurunuzu korumak iin yaptnz iin tam olmasna dikkat edin. En azndan sizin iiniz rahat olur. 9: nce ate edip sonra soru soran tiplerden misiniz? Yazlm uzman bir para kod yazmadan nce bir planlama aamas geirir ve kod yazmaktan daha fazla zaman planlamaya ayrlr. Eer kod yazma aracnz ap Allah ne verdiyse kod yazmaya balyorsanz %100 ihtimalle iki ay sonra yazdnz kod tamam ile deiecektir. Konu hakknda dnen, planlayan yazlm uzman ise daha az hata ile daha ksa srede kod yazacaktr. ou programclarn neden 10 parmak yazamadnn nedeni de budur; iin zor ksm ne yazacan bilmektir. Eer dnen bir insan deilseniz yazlm uzmanl sizin iin bir kariyer deildir. 10: Geek tipini sevmiyorsunuz Hakl kimi nedenlerden dolay, mhendis veya teknik kiilerin yaknnda olmaktan holanmyor olabilirsiniz. Eer Dilbert gibi bir kiilikten ekiniyorsanz yazlm uzmanln dnmeyin bile. Tabii ki her yazlm uzman byle deil ama sektrn byk bir ounluunu oluturuyor ve aralarnda haliniz yaman olur. alma hayatm boyunca ok rastladm bir insan tipi bir i fazla para dyor diye o ie girenler. Daha nce ah olan ve iki yazlm kursundan sonra yazlm uzman kesilen ve sektrde para kazanan pek ok kii tanyorum. Yaptklar ilerin kalitesi ise yerlerde srnyor. Bir kann proje ortasnda iine son verildiine de ahit oldum. Tamam yazlm sektr ok ball bir sektr ama zldm bir konu varsa o da bu kiilerin rettii rnlerin bizim tarafmzdan ileride tamir edilecek olmas. lla yazlm uzman olmaya da gerek yok bence. Yazlm sektrnn daha bir ok dal var ki bu dallarda hakikaten adama ihtiya var. rnein, yazlm tasarmcs, i analisti, sistem destek uzman, veri

133

Blogdan Semeler

taban uzmanl, donanm uzmanl, test uzman vs. liste daha da uzatlabilir. Bu dallarda ki aklar genelde yazlm uzman tarafndan kapatlmaya allyor yada firmalar yazlm uzmanlarndan bunu bekliyorlar. Yanl bir uygulama ve tasarmn ve analizin kalitesini dryor. Siz ne dnyorsunuz? Bu liste daha da uzatlabilir mi? Yazlm uzman olmann baka gereklilikleri var m? Yorumlarnz bekliyorum. 3.32 Stres ve Yazlm Sektr Trkiye yazlm sektrnde gz ard ettiimiz ok nemli bir proplem var. Stres. Kaliteyi, retkenlii, devamll ve ikili likileri sekteye uratan bir unsur. Stres beraberinde depresyon ve moral bozukluu getiriyor ki buda zerinde allan ilere dorudan negatif olarak yansyor. Ben stres olayn yazlm sektr baznda ele alyorum ama hangi sektr ele alrsanz aln stresin zararlar her zaman yukarda sylediim gibi olacaktr. Yazlm sektrnde stresin pek ok nedeni var. Proje teslimat zamanlar, mterilerin bastrmas, proje mdrnn geree dayanmayan istekleri, alma ortamnn yetersizlii, liderlerin bilinsiz davranlar, konu hakkndaki bilgisizlik ve beraberindeki korku hemen aklmza gelen bir ka tanesi. Stres faktrn alglamak burada proje mdrne dyor nk proje ekibini dardan gren ve objektif olarak deerlendirebicek tek kii konumunda. Eer gerekten ikili ilikilerde iyi ve insan psikolojisini alglayabilecek seviyede ve deneyimdeyseniz, projenizde i dnda nelerin olup bittiini, ne tr d etkenlerin projeyi etkilediini, performansn ne zaman kp ne zaman alaldn grebilirsiniz. Proje ynetimi sadece MS Project'i ok iyi bilmekle olmuyor yani. Bir lider olduunuzu, arkanzda sizi takip edecek bir ekip olduunu, bu ekibin baarsnn sizin baarnza yansyacan, ekibin srekliliinin sizin elinizde olduunu, alacanz kararlarn ekibi etkileyeceini srekli hafzanzda tutmanz gerekir. Ekibin psikolojisi de sizin projeyi nasl ynettiinize bal olarak deiir. Proje liderinin psikolog olmasna yada Tibet'te bir manastrda eitim grmesine de lzum yok. altnz insanlarn ruhsal durumunu anlayacak kadar veriyi alglamaya hazr olmak ve bu veriyi analiz edecek kadar ikili ilikilere nem vermek yetecektir. Sektre yeni girmi arkadalara verdiim tlerden bir tanesi kendilerini bu ie adamalar ve renme hevesini hi bir zaman kaybetmemeleridir. Fakat proje mdrleri de bu "kendini adama" olayn grp ekibin omuzlarna daha fazla yk bindirmesi kanlmas gereken bir olaydr. Yeni mezun ve hevesli bir yazlm sektr alannn daha iin bandayken strese kaplmas ve akabinde yapt iten soumas aslnda projeye vurulacak en byk darbedir. Ne kiiye ne projeye ne de firmaya uzun vadede

Blogdan Semeler

134

bir yarar olmaz. Eski bir ka yazmda bahsetmitim, aslnda bu olay niversite zamannda hocalarn davranlar ve verdikleri devlere ve rencileri ynlendiremeyilerine kadar dayanyor. MSN'de sohbet ettiim ve daha ikinci snfta yazlm olayndan soumu renciler var. Tabii ki stres daha niversite zamannda ortaya knca yazlm sektr daha da byk bir darbe alm oluyor. http://www.analystdeveloper.com/progs/f4357de46951_13AB8/angry.jpgStresi yenmenin

birinci yolu stres hakknda konumaktr. Proje mdr bu tr konumalara ortam hazrlamal ve herkesin rahata konuabilecei, fikirlerini, problemlerini rahata dkebilecei bir zemin hazrlamaldr. Bu zemin hazrlanrken proje ekibinin nelerden holand, hobileri, ilgi alanlar, deer verdikleri eyler, nefret ettikleri eyler vs gz nnde tutulmaldr. Unutmayn projeniz ancak ekibinize verdiiniz deer kadar deerlidir ve ekibinize gsterdiiniz sayg kadar saygy hakeder. Bir firmann sreklilii alanlarna yapt yatrm ile doru orantldr. alanlarn da sektrdeki devamll ve kariyerlerindeki ykselmesi yaptklar ie verdikleri deer ve altklar firmaya duyduklar gven ile doru orantldr. Bu formllerden yola karak uzun sre sektrde kalacak ve baarl ilere imza atacak bir organizasyonun kurulmas ok kolay grnyor deil mi? Evet ok zor deil. armayn. Stres faktrn ortadan kaldrmak iin atacanz her adm, proje ekibi ve firma arasndaki balar glendirecektir. nsanlar mutlu olmaya baladka verimleri de artacaktr. ten atlmayacan bilerek her trl problemini dile getirmeye alan alanlar; stresi yaratan unsur ortadan kalkmam bile olsa bir rahatlama devresine girer. Bu rahatlama problemlerle boumak iin gereken gc yenileyecektir. Stres yaratan faktrlerin aka tartlmas problemlere daha farkl zmler bulmamz da salayabilir. yerinde azalan stres kiinin aile ortamna ve arkada ilikilerine de yansyacaktr ki mutluluun artmasna neden olur. Yatakta, sokakta ve ite performansnz artar. yerinde mutlu olup olmadnzn en nemli gstergesi, son 1 ay iinde zgemiinizi yenileyip yenilemediinizdir. ok fazla stres olan ve eitli yollar denenip te sakinletirilemeyen bir alannz varsa ne yapacaksnz? Bu kiinin alma ortamn tamamen deitirmek gerekebilir. rnein evden almas iin bir ortam hazrlanabilir. Eer ortam deiiklii yeterli gelmiyorsa bir psikologdan yardm alnmaldr. Psikolog deyince tyleri diken diken olan varsa imdiden syleyeyim bu deli olduunuz anlamna gelmiyor. Sadece yar deli olduunuz anlamna geliyor ki zaten yazlm sektrnde yar deli olmak faydal bile :-). aka bir tarafa eer profesyonel yardma ihtiyacnz varsa bunu ancak en iyi siz bilebilirsiniz. En azndan deneme amal bile olsa bir psikoloa grnn. Elde edeceiniz yararlar zararlarndan eminim fazla olacaktr.

135

Blogdan Semeler

Bir magazinde okumutum; bir kiinin sosyal olarak aktif ve zihinsel olarak dingin olabilmesi iin gnde en az 8 farkl kii ile konumas gerekiyormu. Bu konumalarn mahiyeti ne olursa olsun, farkl insanlarla farkl konularda yaplacak sohbetler beyin cimnastii olacaktr. Odaklandnz i problemlerinden bir miktar uzaklamanz ve problemlerle yeniden bouacak gc kazanmanz salayacaktr. Problemsiz bir hayat geirmenin yolu yok, nemli olan problemler karsnda nasl tepki verdiimiz ve zmlere ne kadar hzl ulatmz. Eer stres karsnda ayakta durabiliyor ve hakknda konuabiliyorsak zm iin gerekli yolun yarsn katetmiiz demektir. Bugn stres yaptmz olaylarn yarn belki de glp geilecek eyler olduunu greceiz. Stresden uzak ve mutlu bir hayat dilerim. 3.33 Yurtdna Yazlm retelim Dn akam MSN zerinde Serta Bey ile gzel bir sohbet yaptk. Konumuz Trk yazlm firmalarnn dardan i almalar idi. Sohbet srasnda bir ka noktaya deindim fakat etraflca blogda yazmak iyi olur diye dndm. Hem bylece gelecek kollektif yorumlar ile bizim dnemediimiz eyler de ortaya kabilir diye dnyorum. Burada yazdklarmn hepsini uygulamak zorunda deilsiniz, hatta eksikler bile olabilir. Bu yzden yorumlarnz bekliyorum. Ayrca aada saylan ilerden yapabileceiniz varsa, kontak bilgilerinizi bana gndermenizi yada yorumlara yazmanz rica edeceim. Belki bu ilere girmek isteyen kiilere profesyonel destek verebiliriz. Daha sonra yorumlardan derleyeceim bu ileri yapabilecek kiileri yazya ekleyeceim. Birde zaten darya bu tr yazlm ileri yapyorsanz ve oturmu bir sisteminiz varsa ltfen firma bilgilerini yorumlara ekleyin. Alt yap Firmann belli bir yeri olmas ve alt yapsnn salam olmas gerekiyor ki mterilere bir gven verebilsin. Aadaki listede bir ka yardmc yntem listeliyorum.

Tantc site

Firmanz tantmak iin profesyonel bir tasarmc ile oturup web sitesi hazrlayn. Bu site sizin darya alan kapnz olacaktr. Ayrca aylk bir cret ile Google arama sonularnda st sralarda yer alabilirsiniz.

Blogdan Semeler

136

Referanslar

Yaptnz ileri bir bir sralayn. Bu ilerden aldnz referanslar ve iyi yorumlar sitede yazn. Eer mmknse mterilerinizin kontak bilgilerini verin ki potansiyel mteriler direk hakknzda bilgi alabilsin.

Yazlm ortam ve teknolojiler yazlm ortamn, aralarn, iletim sistemi, veritaban, bilgisayarlarn

Kullandnz

kapasitelerini, yedekleme stratejinizi, gvenlik nlemlerinizi listeleyin. Size i vermek isteyen ve sizi hi tanmayan bir kuruluun hakknzda en fazla bilgiyi alabilmesi iin her trl ayrnty yazn.

Kod Kontrol

Kod Kontrol iin kullanlan ortam en nemli ortamlardan biridir. rnein her proje iin sanal bir TRAC makinesi kullanabilirsiniz. Trac subversion, wiki, hata veritaban, ViewVC yada WebSVN gibi yazlmlar ile kurulu geliyor. IP ayarlarn yapp, modem zerinden port forward ayarlarn yaptktan sonra internete ak hale gelir.

Srekli Entegrasyon

Kod kontrol sisteminize, deiiklikleri takip edecek ve derleme ile kurulumlar yapacak otomatik bir sistem kurmanz gerek. Zaman dar olduu iin mmkn olduu kadar ii otomatikletirmek gerekiyor. Yazlm uzmanlarnn tek ii kod yazmak olmaldr. Derleme, kurulum gibi ilerle vakit harcamayn. Bu ii Cruise Control ile yapabilirsiniz. (Bu tavsiyeyi vermekten artk dilimde ty bitecek.)

nite Testi

Kod yazarken nite testlerinide ihmal etmeyin. Kodun doruluunu ortaya karacak yegane yntemlerden biridir. Hatta nite testlerini mteri bile yazabilir eer isterse. Kesinlikle yaplmas gereken bir i

ngilizce

Darya i yapld iin doal olarak herkesin ingilizce bilmesi gerekiyor. Yada projeyi ynetecek kiinin ok iyi ingilizce bilmesi art. Eer analizleri Trke'ye evirecek zaman varsa yazlm uzmanlarnn ingilizce bilmesine gerek yok.

Bloglar

137

Blogdan Semeler

Web sitenizde, firmada alan herkesin bir blogu olmaldr. ayc Emine teyze bile bir blog sahibi olmaldr. Blogunda ay ve kahvenin nasl yapldn, retime nasl katkda bulunduunu, firmann kafein ihtiyalarnn nasl karlandn, beslenmenin nasl olduunu yazmaldr. Birde Kuru Kahveci Mehmet Efendi ve Mahdumlarndan bir reklam koydunuzmu, darya sadece yazlm deil kahve de satyor olabiliriz.

Teslimat

Derlenmi yazlmn ve kaynak kodunun nasl teslim edilecei ve test ortamlarnn nerede olaca konusunda aratrma yaplp, test amal hosting hizmeti alnabilir. Eer web tabanl projeler yapyorsanz bu ideal. Windows Forms tabal yapyorsanz, mteri ile anlamaya bal olarak, kurulum dosyalarn iletebilir ve mterinin test etmesini salayabilirsiniz. Teslimat zamanlarnn iyi belirlenmesi ve sk aralklarla yaplmas yerinde olur. rnein her hafta Cuma gn gibi.

Evden alma

Kurulan bu alt yap yazlm uzmanlarna evden alma imkan verecektir. Kaynak kodu gizlilii ve szmalar nlemek iin herkesin bilinlendirilmesi gerekir. Evden almak herkesin hayali olduuna gre de idealdir. Yanlz cretlendirme konusunda sknt yaanabilir. Yazlm uzmanlarna hangi bazda cret verilecei (saatlik, her satr kod iin, zlen hatalar iin vs.) tartlmal ve herkesin ulaabilecei biimde duyurulmaldr. Sizce aadaki iler iin yazlm uzman ne kadar cret almaldr?
o o o o o o o o o o

Her satr kod Karmak GUI tasarm Orta derece karmak GUI tasarm Dk derece karmak GUI tasarm Yksek ncelikli hata giderme Orta ncelikli hata giderme Dk ncelikli hata giderme 1 saatlik cret Hatann sebebini arama (hatann ncelii ile doru orantl) Bu listeye eklemek istediiniz baka bir ey var m?

Blogdan Semeler

138

Diyelimki proje ynetimi iin hazrladnz diyagram btn alt ileri en ince ayrntsna kadar ieriyor. Yukarda oluturduumuz fiyatlandrma politikas ile projenin maliyetini kartabilirmiyiz? Analiz Sreci Analiz srecinde mteri ile srekli irtibat halinde olmanz gerekiyor. Yada belkide analizler size hazr halde gelecek. Eer analizler hazr ise ncelikle bir yerlere imza atmadan projenin maliyetini eldeki verilere dayanarak kestirmeye almak gerek.

Metodoloji

Kullandnz metodolojinin ne olduunu ve admlarn listeleyecek, kolayca web zerinden gezilebilen bir ablon hazrlayn. Bylece mteri yazlm srelerini grp ne aamalardan getiini grebilir. Metodoloji belkide gven kazanmak iin en nemli unsurlardan biridir. RUP, Agile, MSF gibi bir metodoloji veya kendinizin gelitirecei bir water fall modeli bile olabilir. Yeterki belgelenmi olsun ve her adm tespit edilmi olsun.

Prototip

Zaman varsa veya proje plannda ngrlm ise bir prototip ile mterinin karsna kabilirsiniz.Bu prototip size mteriyi anlamak iin daha fazla imkan sunar.

Belge Sunucusu

Yazlan ve izilen her trl belge bir belge sunucusunda tutulmal ve mteriye eriim verilmelidir. Hi bir yazl belge kaybolmamaldr. MErkezi bir alma sistemi kurularak kim ne deiiklik yapm grlebilmelidir. Proje Plan

Riskler

Risksiz bir i yok ama bunlarn farkna varmak heleki nceden sezinlemek neredeyse imkansz. Risk durumlarnda ynetim yapmak ise gerekten bir hner ii. Bir yazlm projesinde olabilecek belli bal riskler var. Bunlar:
o o o o

Felaket durumunda operasyonun durmas Virs ve d etkenlerden dolay aksama Yazlm uzmanlarnn brakp gitmesi Mterinin operasyonu durdurmas

139

Blogdan Semeler

o o o o o

Yeni srm yazlm aralarndan dolay aksama Alt ilerin belirlenen zamandan uzun srmesi Kapsam deiiklii Donanm deiiklii letiim hatlarnn aksamas

Bu risklerin pek ou nlenebilecek riskler. yi bir planlama ile riskler en aza indirilebilir. Proje gidiat iinde ortaya kan riskler de iyi bir ynetim ve mteri ile anlamalar sonucu giderilebilir.

Maliyet

Yukarda deindiimiz maliyet unsurlarndan baka projede kullanlacak lojistik desteinde bir maliyeti vardr. Artk Tuvalet katlarndan tutunda Emine teyzenin getirdii ay ve kahveye kadar. Bunlar da proje maliyetlerine eklemek gerekmektedir.

ler

Proje plannda ortaya kan ilerin en ince ayrntsna kadar ayrlmas ve mteri tarafndan onaylanmasna dikkat edin. leride ortaya kacak srprizlerden kamann tek yolu budur.

lerin ufak paralara blnmesi

leri paralara blmek iin Data Definition Diagram yada fonksiyon baznda blmleme yapabilirsiniz. Gereken zamanlar tahmin ederken yazlm uzmanlarna danmay unutmayn.

lerin Datlmas

leri datrken herkesin yapabilecei ie gre datm yapn ve fazla yklemeden kann. Hedeflerin Belirlenmesi

Gnlk Srmler

Ecnebilerin "Nightly Build" dedikleri bu nane, kodunuzun her akam kod kontrolden ekilerek derlenmesini ve nite testlerinin altrlmasn salk verir. Eer raporlar baarl olursa (tm dnk nite testleri alyor, yeni nite testleri de %80 alyor gibi), gne gzel baladk demektir. Eer sabah gelipte 2 gn nce yazdnz nite testinin artk dorulama yapmadn grrseniz (ve bunun sorumlusu siz deilseniz) artk b**ktan bir gn sizi bekliyor demektir.

Blogdan Semeler

140

u ok gzel olurdu. Blogunuzun altnda bir blmde o gn ka tane nite testinizin getiini ve ka tane eklediinizi gsteren bir panel olsa ve her derleme ileminden sonra gncellense gzel bir gsterge olurdu. Var m byle bir proje yapacak olan?

Hatalarn zlmesi

Mterinin girdii veya dahili olarak bulunan hatalar snflandrldktan sonra sorumlu kiilere atanr ve belirlenen sre zarfnda zmlenir. Ne kadar basit deil mi? Deil tabii ki nk her zaman gzden kaan bir nc faktr (ecnebilerin devil in the details dedii gibi) ortaya kp ya zaman uzatr yada hatann giderilmesi sonucu 4 yeni hata ortaya kartr. Bu tr durumlarda verilecek reaksiyon, analitik problem zme yetenei ve sistem bilgisine dayanr. Yaplan iin herkes tarafndan bilinmesi problem zmeyi kolaylatrr. in banda i iletiimi sk tutarsak bunu salayabiliriz. Ben bir modl yazyorsam; bunun ak emasn ve kodun dalland durumlar belirtmem; ksacas bir teknik tasarm belgesi hazrlamam gerekir. Dier bir yazlmc ise benim kodumu tefti ederken bu belge ve kaynak kodu ile tefti eder. Kod Teftii nemli bir konudur ve atlanmamas gerekir. Kod teftiini mteri de yapabilir isterse.

Mteri ile iletiim

Mterinin size istedii zaman ulaabilmesi ve isteklerini aktarabilmesi gerekir. Her zaman eriilebilir olmaya zen gsterin. Mteri isterse yazlmclar ile dorudan grebilir. Fakat operasyon mdrnn bu iletiimlerden haberdar olmas gerekir. nk ileride ekibin karlarn koruyacak kii O'dur. Eer bir yazlm uzman olarak mteri tarafndan direk arandysanz bunu bir belge haline dntrp operasyon mdrne iletiniz ve hi bir soruyu yantlamaynz. Daha sonra geriye dnp cevaplar vereceiniz syleyin. Mteri sizi sadakatnz lyor bile olabilir. Kod Kontrol ve Mteri eriimi

Firma sunucular

Sunucularnz yle bir kurunki mteri kendi projesine istedii zaman tepeden bakabilsin. Kod kontrol, hata ve istek veritaban, belge sunucusu ve test ortamlar her zaman mteriye ak olmaldr. eitli raporlama seenekleri ile mteriye gidiat hakknda bilgi verilebilir. Sizinde uramanza gerek kalmaz bu raporlar iin. Yani dnn sourceforge.net gibi bir sistem fakat kurumsal olarak planlanm ve herkese ak deil. Bu arada Sourceforge.net sistemini satn alp kullanabileceinizi biliyormuydunuz.

Subversion veya TFS

141

Blogdan Semeler

Alt yap iin, operasyonun byklne gre bu iki rnden birini sein. Sanal makine kullanmak ta ynetimi kolaylatrr. effaf Ynetim

Eriilebilirlik

Bu firmann ynetimi o kadar effaf olmalki mteriler bir bakta bunu sezinleyebilsin. Mdrlerin aktif katlm, herkesin bloglar, forumlar vs herey gz nnde olmaldr. Byk kurumlarn u anda yaptklar da bu deil mi? Kullanc Kabul

Testler

Kullanc kabul artlarn iyi gzden geirmek ve bu artlarn yazlm iinde dorulandna emin olmak gerekir. Testler iin belirli test senaryolar hazrlamak ve i aklarnn sonunda meydana gelecek ktlarn belirtilmesi gerekir.

Performans

rnn performans testlerinin de yaplmas gerekir. Genelde otomatik aralar ile yaplan bu testler rnn yk altnda nasl tepki vereceini lmek ve optimum alaca donanm gereksinimlerini belirlemek iin gereklidir.

Kabul artlar

Mterinin ne srecei kabul artlarnn yeterlilii ve olabilirlii en ince ayrntsna kadar aratrlmaldr. Ayrca mterinin istedii bir art ile sizin o arttan anladnz anlam ayn olmayabilir. Bu tr yanl anlamalar ortadan kaldrmak iin bu artlarn enine boyuna mteri ile konuulmas gerekir. Teknoloji Destei Kullandnz yazlm ve donanm ile ilgili gerekli destei almanz gerekir. Ayrca yedek olarak bir ka bilgisayar bulundurmak ta operasyonun devamll iin arttr. Microsoft Programlar, CA VIP programlar, Linux destei, IBM Programlar vs gibi bir programa katlp hem rnleri ucuza almak hemde gerektiinde destek almak iin anlamalar yapn. Yazlmc bulmak in zor yanlarndan biri de sanrm yazlm uzman bulmak. Ama yazlmclar da ulalamaz kaynaklar deiller. Nereye bakmak gerektiini iyi bilmek gerekir. Genelde yazlm sitesi portallarnda,

Blogdan Semeler

142

sosyal gruplarda, bloglarda, forumlarda aktif olan kiileri bulup birer zgemi isteyebilirsiniz. Yada liselerde yazlma merakl rencileri bu iler iin ynlendirebilirsiniz. O yzden bu bloga yorum yazarsanz ne i yapabileceinizi yazn yada en aznda blogunuzun adresini verin. Mteri Bulmak Dier bir zor ite bu. Fakat yukarda saylan ileri yapnzda mterinin de sizi bulmas kolaylar. Bir video konferans sistemi ayarlayp mteri ile yz yze konumay salamanz gerek. Bir sigorta irketi ile anlap projenin batmas durumunda teminat gsterecek bir belge edinmeniz de gerekir. Mteri zaten bunu isteyecektir. Mteri ancak size gueteri kadar gvenirse sizinle alacaktr; sizinde imkanlar dahilinde bu teminatlar sunmanz gerekir. Ecnebilerin "outsorcing" dedii olay biraz irdeledik. Yorumlarnz ve yapabileceiniz ileri bekliyorum. Hatta bir alma grubu oluturup bu tr bir alt yapnn kurulmas iin fikir alveriinde bulunabiliriz. Ne dersiniz? 3.34 Bir Baka Gzlem Paylama atm ve bir gn gibi ksa bir srede yazdm gitar akorlarn gsteren basit programa bir sr yorum geliyordu. Tabii klasik olarak bu yorumlar genelde karalama yorumlar idi. Bu kiilerin eitim seviyesinin dk olduu ve ailelerinden aldklar terbiye eitiminin yetersiz kald braktklar yorumlardan aikar. Gel gelelim bu olay yeni ressamn hikayesine benziyor. Yani herkes hatalar bulmak ve stn krmz kalemle izmek iin yaryor fakat bu hatalar dzeltmeye yeltenmiyor. zgr Yazlm ve ak kaynak felsefesini de bu yzden seviyorum, aar bir hata varsa otur dzelt ve yamay projeye gnder ki herkes yararlansn. Eer dzeltecek bilgin yoksa hatay ilgili kiilere iletebilirsin ama bununda yollar var. Aadaki alnt o blog girdisine ek olarak yazdm ksmdr. Millet olarak ok byk bir problemimiz var aslnda ama bu konulara girmekten nefret ediyorum. Arkadalar Gitar Akor Veritaban kendi kullanmm iin VB6 ile bir gnde yazdm basit bir program. Akcas programn bir tek amac var, o da akorlar basite gstermek. Hani satacam bir program da olmad iin ne arayzne nem verdim ne de programn performansna. Ben kullanyorum ve burada paylama atm ki byle basit bir eye ihtiyac olan bakalar da varsa onlar da yararlansn. Programn ticari bir amac bulunmad iin kimseye beendirmek gibi bir iddiamda hi bir zaman olmad. Bu sebeplerden dolay mkemmel bir program ve cilal bir

143

Blogdan Semeler

arayz olmas beklenemez. Benim iimi yeterince grd iinde daha sonra zerinde herhangi bir gelitirme yapp zaman kaybetme gereide duymadm zaten. Yeri gelmiken bir gzlemime de burada yer vermek istiyorum bu vasta ile. 5 senedir ngiltere ve Avustralya'da yazlm uzmanl yapyorum. Bu lkelerde tandm ve sektrn ileri gelenleri ile yaptm sohbetler srasnda birbirlerini eletirenler elbette oluyor ancak bu eletirilerin aktarlma tarz ile Trkiye'de insanlarn eletirilerini aktarma tarz ok farkl. Trkiyede sadece yazlm konusunda deil, her konuda insanlar birbirini krmak veya srf karalamak iin dandik bir sebep bulup kartmada, srekli birbirine elme takma konusunda gereinden fazla istekli grnyor. Sitenin ieriine ve vermeye alt mesaja bakmakszn bulduklar kk bir ayrnt ile urap zaman kaybetmek ve kaybettirmek daha ok biz Trklere has bir zellik gibi grnyor. Dier lkelerde bir kii eer bir problemi aktaryorsa yannda 1 veya 2 tanede zm nerisi sunar ve cmle sonunda seimi yine sana brakmay da ihmal etmez. Bu tip insanlar ykc olmak yerine yapc olmay, problem zmeyi ve konu hakknda konumann edebini biliyorlar. te bizim renmemiz ve hayatmzn her aamasnda uygulamamz gerekenin de bu davran tarz olduuna inanyorum. Aslnda bu tarzn eitim ile de ilgisi var. Yani eitim derken illaki niversite veya yksek lisans demek istemiyorum. lerini iyi bilen, srekli okuyan, sektrn takip eden insanlarn kendi ileri konusunda ki kltrleri yaptklar ilere ve sohbetlerine de yansr doal olarak. Eminim birbirimize bu tarzda yaklarsak lke olarak u ankinden daha hzl bir ekilde ileriye gidebiliriz. Millete zmemiz gereken bilin altmza ilemi tabiri caiz ise boktan bir psikoloji. Ama sanrm bunun zm dndm kadar kolay deil. lkokuldan balayp eitim sreci ierisinde, ailede, yaanlan evrede ve girdiimiz her ortamda uygulanmas, dzeltilmeye allmas ve tatbik edilmesi lazm ki bu psikoloji dzelsin. Yani her konu hakknda ahkam kesmenin bir anlam yok veya en iyisini ben bilirim demenin de. Kzdm konu; bu kadar ananevi gelenek grenek, bilmem ka yllk tarih ve bilgi birikimi, bir sr bu konuya uyacak atasz var hi mi feyz almadk bunlardan. Neden yobazlayoruz ve herkesi hereyi karalamaya alyoruz. te yandan acaba bu kaba yorumlar brakan kiilerin benden beklentileri ok mu yksekti de bu basit program grnce moralleri bozuldu? Yoksa zaten bu kiileri

Blogdan Semeler

144

memnun etmek hayatn her kademesin de zor mudur? Tez konusu olacak bir olgu bu, psikoloji yksek lisans yada doktoras yapan var m aranzda? Neyse ben gene bu konuya tekrar parmak basarak deerli zamanm boa harcam oldum. Ama baz eyleri de syleme ihtiyac duyuyorum ki belki deiime, ilerlemeye katkm olur (bir umut dediler) umuyorum. Tabii bu ama ok ulvi bir ama ve kaba yorumlar brakan kiilerin anlama kapasitesinin bir miktar stnde ama ne yapalm.

145

UML ve CBD ile yazlm gelitirme

4 UML ve CBD ile yazlm gelitirme UML ngilizce Unified Modelling Language (Genelletirilmi Modelleme Dili) kelimelerinin ba harflerinden meydana gelir. Modelleme srasnda kullanlacak bir dizi ematik gsterimi tekil eder. Genelde Nesne Ynelimli sistemlerin analiz ve modelleme aamalarnda kullanlr. Nesnelerin birbirleri arasndaki ilikilerini ve kendi i yaplarn gsterir. Bir standart olarak Object Management Group (OMG) tarafndan dnyaya yaylmaktadr. Sahibi de OMGdir. u anki en son versiyonu 2.0dr. Programlama dilinden ve iletim sisteminden bamsz bir modelleme dilidir. CBD ngilizce Component Based Development (Modl (ben PETEK diyorum) Tabanl Gelitirme) kelimelerinin ba harflerinden oluur. Nesne Ynelimli olmayan sistemlerde Hizmet Bazl Mimarileri (Service Oriented Architecture SOA) uygulayabilmek amal gelitirilmi bir yapdr. Fakat Nesne Ynelimli sistemlerde de kullanlabilir. CBDde her modln bir arayz, bir veritaban, kendine has zellikleri ve i kurallar vardr. Modller bir araya gelerek daha karmak modlleri ortaya kartabilirler. Her modln girdileri, ktlar ve hata durumlarnda rettikleri hata mesajlar vardr. Genelde IBM Mainframe sistemi iin gelitirilmi fakat Windows veya Unix bazl sistemlerde de kullanlmaktadr. CBD kavram olarak her trl projeye uygulanabilir. ncelikle OO analiz konularndan balayarak bir giri yapmak istiyorum. Sras ile UML ve CBD konularna geeceiz. lk olarak OO analiz srasnda aama aama ne tr belgelere ihtiya duyuluyor buna bakalm. 4.1 Gereksinimlerini Modelleme Aamas

Bu aama i problemlerine zmler bulunmas ve zmlerin yazlmlar yolu ile hayata geirilmesine nclk eder. i analiz edecek olan ekip Analistidir (Business Analyst). analistleri sektrden aldklar i bilgisini yazlmcya aktarrlar. Bu aktarm srasnda kullanlacak haberleme dili UML olmaldr. Bu sayede aktarlan bilginin anlalabilirlii arttrlm olur. Analizler ilk olarak Senaryolarn ortaya karlmas ile balar. analistlerinin retmesi gereken belgelere bir bakalm. Burada anlatlan her belgeyi retmek gerekli deildir, projenin gerekliliklerine gre deitirilebilir yada yenileri eklenebilir. 4.1.1 Senaryo Belgesi Senaryolar analizi yaplan i ile mterileri veya bulunduu piyasann hareketleri ile aralarnda geen olaylardr. Olaylarn tmnn dorudan ii etkilemesi gerekir. in verdii tepkiler ve sonular burada tanmlanr ve Senaryolar olarak belgelendirilir. Senaryolar ortaya kartlrken takip edilecek Yazlm Uzmanl zerine

UML ve CBD ile yazlm gelitirme

146

metod mteri yada kullanc grubu ile yaplacak aylk toplantlardr. Bu toplantlarda senaryolar gzden geirilir, kullanlacak sistemler belirlenir ve senaryolar ortaya kartlmaya allr. Kullanc grubunun kadrosu her toplantda ayn olmaldr ve deimemelidir. Proje ekibinde her senaryodan bir analist sorumlu olmaldr. Tm senaryolar ynetecek ve toplantlar organize edecek bir Gereksinimleri Analisti (konusunda uzman ve deneyimli) bulunmaldr. GA hem toplantlarn plann hem de

konuulacak konular ortaya karr ve ekibi bu konulardan haberdar eder. UML ve OO analiz konularnda eitim verecek dzeyde olmas gerekir. Bu belgenin ingilizce ismi Use-Casedir. 4.1.2 leme Modeli Belgesi Bu arada Analisti tek tek senaryolar ele alrken leme Modelinide ortaya karr. leme Modeli analizi yaplan iin nasl ilediini ve senaryolarn nasl birbirleri ile balantda bulunduklarn ve aralarndaki ilikileri anlatr. Her senaryonun girdi ve ktlar gz nne alnarak Genel leme Modeli oluturulur. Bu belgenin ingilizce ismi Business Process Modeldir. 4.1.3 Kurallar Kt Belgesi Ortaya kan mevcut ve yeni i kurallar bu belgede numara verilerek kayt edilir. kurallar, analizin ilk aamalarnda, Senaryo belgeleri iinde ortaya kartlrken, belli bir miktar getiklerinde ayr bir belgede toplanmas gerekir. Bir ka senaryo ayn i kurallarna balantl olarak alyor olabilir. Her senaryo belgesi iin ayn i kuraln tekrar tekrar yazmak yerine bu belgedeki kayt numaras ile armak daha mantkl olur ve zamandan kazandrr. kurallar, Deiim ve stekler Kontrolne baldr. Bu belge zerinde yaplacak deiiklikler ok iyi gzden geirilmeli ve projenin dier ksmlar zerindeki etkisi ok iyi tanmlanmaldr. Bu belgenin ingilizce ismi Business Rules Registerdr 4.1.4 Szlk Belgesi Proje iinde ortaya kan deyimlerin ve bilinmeyen kelimelerin bu belgede toplanmas gerekir. Senaryo, Modeli yada Kurallar Kt iinde szlkte kaytl kelimeler geiyorsa szlk belgesine bir balant verilmelidir. Eer belli devlet yasalarnn kullanm sz konusu ise onlarda bu belge iinde yer alr. Projede kullanlacak hesaplama formlleri ve bu formllerin parametrelerinin nerelerden geldii de belirtilir. Szlk, Deiim ve stekler Kontrolne bal olmayan bir belgedir ve srekli gncellenebilir. Buna ramen her proje ekibi yesinin deiikliklerden haberdar olmas gerekir ve Proje Yneticisinin deiiklii onaylamas gerekir. Bu belgenin ingilizce ismi Glossary of Termsdr

Yazlm Uzmanl zerine

147

UML ve CBD ile yazlm gelitirme

4.1.5 Genel Proje Gereksinimleri Belgesi Bu belgede proje iin gerekli alt yap anlatlr. Alt yap hem gelitirme hemde hayata getiinde alaca ortam kapsar. Eer proje sonucu ortaya kan rnn alaca bilgisayar alt yapsnda zel bir gereksinim varsa belirtilmelidir. Kullanlacak yan aralar (yazc, nokta vurulu yazc, barkod okuyucu, yazar kasa, tart aletleri, kontrol sistemleri vb.) ve bunlarn kulland port numaralar ve balant ekilleri aka belirtilmelidir. rnn alaca bilgisayarlarn ekran znrl, hafza miktar, disk kapasitesi gibi bilgilerde bulunmaldr. Kullanlacak nc parti yazlmlarn tm ayrntlar belirtilmelidir. rnein projenin hayata geebilmesi iin bir Web sunucu gerekiyorsa tm ayrntlar ile gerekli herey aklanmal ve destei istenen teknolojiler tanmlanmaldr. rnein PHP destei isteniyorsa Web sunucunun bu destei verebilmesi veya bir ISAPI dll yardm ile eklenebilir trden olmas gerekir. letim sistemleri ve gerekli paralarnn tanmlanmas gerekir. rnein projeniz Windows XP service Pack1 ile gelen winhttp.dll dosyasn kullanyorsa rnn kurulduu test ve kullanm ortamlarnda bu ngereksinimin olmasna dikkat edilmelidir. Satn alnmas gereken yazlmlarn yapmas gereken ilerde burada tanmlanr. Eer mmknse firmalarn adresleri, telefonlar veya rtba adresleri ile kontak kurulacak kiilerin listesi burada yaplr. Yazlan projenin mevcut projeleri etkileyip etkilemedii ve ne gibi deiikliklere yol aaca da burada bir zme kavuturulur. Sistemin arayzleri belirlenerek d sistemler ile nasl haberleecei ve giri/k verilerinin neler olaca tanmlanarak d sistemlerin bu gereksinimleri destekleyip desteklemedii aratrlr. rnein eer yeni sistem, Sistem B ile konuamyorsa hizmet X mteriye sunulamaz. Bu durumda test ve kullanc ortamlarnda Sistem Bnin varlndan ve istediimiz ii yaptndan emin olmalyz. Eer projeniz mevcut sistemler zerinde deiiklik gerektiriyorsa bu deiimin ierii ayrntl biimde tanmlanmaldr. rnn kullanc tarafndan ne kadar zamanda renilebilecei ve kolaylkla hazmedilebilmesi iin ne gibi gelitirmelerin yaplmas gerektii tanmlanmaldr. rnn a kaynaklarn ne kadar kullanaca ve gnlk ka ilemin gerekleecei ve ka kullancnn rn kullanaca bilgileri tanmlanmaya allr. Kullanclarn

corafik olarak nerede olacaklar ve ne ekilde rn kullanacaklar belirtilir. Eer gvenli bir biimde korunmas gereken bir veri zerinde allyorsa, gvenlik sistemlerinin nasl kullanlaca, kullanc haklar ve kstlamalar, veri tabanna eriim ve a kaynaklarn kullanm haklar belirlenmelidir. rnn lisanlama ileyii ve lisanslarn kontrol belirtilmeli ve bunlar kontrol edecek sistemler burada ortaya kartlmaldr. Kurulum, kullanc yardm klavuzlar, ve her trl kullanc belgesi bu belgede belirtilmelidir.

Yazlm Uzmanl zerine

UML ve CBD ile yazlm gelitirme

148

Grlyor ki analiz aamasnda, ileride koda dnmeyecek her trl bilgi bu belge iinde toplanyor ve tm bu gereksinimler hem test ekibi iin hemde yazlm gelitirme ekibi iin bir temel yardm kayna oluyor. Bu belgenin ingilizce ismi Non-Functional Requirementsdr. 4.1.6 Nesne Modeli Belgesi Bir ii analiz ederken ortaya kan snrlardan darya her uzantda farkl bir sistemin hizmetleri kullanlr. Analiz edilen i kendi iinde de belli paralara ayrlr. Her parann (nesne) bir arayz ve haberleme iin kulland mesajlar vardr. Nesne Modeli, tm i nesneleri ve dardan heberleilen tm nesneleri gsteren modele denir. ok genel bir gsterim eklidir ve veritaban modeli ile yada snf emalar ile kartrlmamas gerekir. Grn olarak snf emalarna benzer fakat snf isimleri firmann bir blmn yada baka bir sistemin parasnn ad olur. Byk sistemi kolayca grmek, darya ne gibi mesajlar gidiyor ve ne gibi sistemler ile al veri iinde olduumuz belirlemek iin idealdir. Nesne Modeline giren her sistem ve/veya paras yazl olarak anlatlmaldr. Bu emalarn bir UML arac ile izilmesi arttr. Bu belgenin ingilizce ismi Business Object Modeldir. 4.1.7 Tool-Tip Kayt Kt Belgesi Tool-Tipler her hangi bir ekran nesnesi (text-box, buton, drop-down, liste kutusu) zerine fare ile gelindiinde yada durum barnda (status bar) ortaya kan ksa yardmlardr. Kullancy sunulan bilgi, yada girilecek veri konusunda bilgilendirirler. Tm Tool-Tiplerin kayt edilerek belgelendirilmesi gerekir. Her Tool-Tip bir numara verilerek kaydedilir. Bu belgenin ingilizce ismi Tool Tips Registerdr. 4.1.8 Mesaj Kayt Kt Belgesi kurallarna gre kullancnn girdii verinin kontrol ve sonrasnda kacak mesajlar kapsar. Mesajlar Bilgilendirme, Uyar, Hata (Informational, Warning, Error) olarak e ayrlr ve her hatann bir numaras olmaldr. rnein bir programda i kuralna gre 8 karakterden az ifreye izin verilmiyordur fakat kullanc ifresini tanmlarken 5 karakter girmitir. Butona bastnda i kuralna gre girilen ifre kontrol edilir ve kriterlere uymad saptanr, ve kullancya bir hata mesaj ile bilgilendirme yaplr. Bu mesajda kullancdan en az 8 karakter girmesi istenir. Mesajda ki tamam tuuna basnca girilen ifre silinerek boaltlr ve imle ifre kutusuna konumlanarak yeni ifre girii iin beklemeye geer. te tm bu ilemler ncesi ve sonrasyla belgelendirilmelidir. Bu belgenin ingilizce ismi Message Registerdr. 4.2 Kullanc Arayz Gereksinimleri Ve Tasarm Belgesi

Tm yukardaki belgeler ilk srmlerini verdiinde Kullanc Arayzlerini planlamaya geebiliriz. Kullanc Grubu toplantlarnda Senaryolarna gre adm adm gidilerek sunumu ve girii yaplacak Yazlm Uzmanl zerine

149

UML ve CBD ile yazlm gelitirme

verinin dzeni ortaya kartlr. Ekranlarda neler isteniyor, dzeni nasl olmal gibi problemlerin kullanc tarafndan nerilmesi ve tartlmas gerekir. Ekran aklar ve standard emalar ile belirlenmelidir. ok karmak sistemlerde mantksal olarak sistemi blerek ve her paraya bir isim vererek ii kolaylatrabiliriz. Bylece gelecekte yazacamz modllerde ortaya kar. Her ekran konrolnn (buton, text-box, liste kutusu) ismi, aklamas, yapt i, Tool-Tip numaras ve Mesaj numaras bu belgede yer almaldr. Bu belge ilk srmn verirken ekran prototipleri gelitirilebilir. Kullanc Grubu Toplantlarnda bu prototipler kullanlarak onay alnmaya allr. Bu belgenin ingilizce ismi User Interface Requirementsdr. 4.3 Sistem Modelleme Aamas

4.3.1 Uygulama Mimarisi Belgesi Bu belge uygulama iin nemli olan modlleri listeler ve zelliklerini anlatan belgelere balantlar verir. Aadaki gibi bir tablo eklinde olabilir. sim Tip Hizmetin yada modln genel Hizmet/Modl ismi API Uygulama/RDBMS Dier Balant Bu hizmet yada modl anlatan belgeye balant.

Ayrca her modln sistemde hangi mimari katmana oturduunu da gsterir. Ayr bir balk altnda incelenir ve projede retilen her modln hangi katmanlarda yer aldn ve dier katmanlardaki modller ile nasl haberletiini gsterir. rnek olarak:

Yazlm Uzmanl zerine

UML ve CBD ile yazlm gelitirme

150

v0.4 28/4/2003

Boundary Layer
Email
to receive alerts and notifications

Complaints User Interface Complaints Dashboard operational


monitoring and management information for complaints

DRAFT only

see preliminary dialogue map for an outline of proposed web pages / screens

(No data access allowed only access to solutions or infrastructure components)


tied to user interface handles transaction, session / state no business data minimal business logic (just calls to lower components)

(No user interface allowed - only business and control logic, data encapsulated in components)

Solution Layer

Complaints Orchestration

Security Services

Case Reporting
fill in case plan template

Complaints Process Mgmt Complaint Details


record/update a complaint get previous complaints search (by type, text, status etc) basic statistics (current day only) Allocate complaint Send complaint for Authorisation Accept / Reject complaint

Client Mgmt
Get Client details Add New client

Letter Constructor
draft a letter to the client / contact

Reference Data (codes)

Generic Process Mgmt


Allocate escalate Accept / authorise Reject

Generic Case Management


Create Work item allocate / reallocate

Authoring Tool Complaints Op Reporting


provide dashboard facilities

Audit Trail

Enterprise Business Component Layer


(No user interface allowed - minimal business logic and only COMMON rules, no control logic, no knowledge of other components or direct calls, data encapsulated in components)

Client Registration
Provide name and address information

Staff
Using Staff information available through SAP services (contact name and phone etc)

Document Management Case & Work Management


Create Case Create Work Item (& connect to case) Allocate & Re-allocate work Manage generic case/work status Close / complete work or case

Event Notifier

Profiles Organisation
maintain organisation hierarchy (until available in SAP) positions within teams officers occupying positions provide view of profile hierarchy (for work allocation purposes) maintain profile hierarchy

Outwards Correspondence
Send and archive letter retrieve and re-edit

Inwards Channels
manage all inwards communication from fax, scanning, email etc

Client Relationship Management


record all contact with client provide a list of all recent contacts (regardless of channel or purpose)

Applications Infrastructure Layer

Kurulum yaplacak yapyda burada belirtebiliriz. rn kuracamz donanm ve yazlm yapsn bir ema ile anlatmamz gerekir. rnek olarak:

Yazlm Uzmanl zerine

151

UML ve CBD ile yazlm gelitirme

Bu ema kurulumun genel bir plann gsterir. Fazla ayrnt verilmez. Kurulum yaplacak yapnn a mimarisi genel olarak tanmlanr. rnn paralarnn hangi platformlara kurulaca hakknda da bilgi vermek gerekir. Modllerin kimi paralar veritaban sunucusu zerinde alyorken, dier bir paras istemci tarafnda hizmet veriyor olabilir. Dank sistemlerde her modl farkl bir sunucuda alyor olabilir ve aralarndaki haberleme iin belli kanallar kullanyor olabilirler. Tm bu ayrnty da A Kurulumu bal altnda bu belgeye dahil edebilirsiniz. rnek olarak bu emada bir rnn paralarnn farkl sistemler zerine nasl kurulaca ve haberleecei belirtilmitir:
Note that this broad design is likely to change during the detailed design phase of any redevelopment At this stage it is a summary of all the Phase 1 (ie. Within 12-18 months) recommendations
F/W F/W As at 30/4/2003

All external clients & agents (via browser)


internet

External Web Server(s)


ATO Portal May use Complaints services

One or several midrange servers


Complaints Orchestration Complaints Op Reporting Generic Case Mgmt * Generic Process Mgmt * Case & Work Mgmt Staff Organisation

Mainframe

Client Registration

CRM (CP)

* = could also be replaced by Change Program capabilities

Case Reporting * Complaints Process Mgmt Complaint Details

Internal Web Server(s) Internal user


Complaints UI

Client Mgmt Profiles

COLA (message based middleware) Complaints Dashboard Security Email (Outlook) Authoring Tool (MS Word) Audit Trail

= New or altered facility this phase

Yazlm Uzmanl zerine

UML ve CBD ile yazlm gelitirme

152

Eer standart d bir haberleme protokol kullanlacaksa bununda belirtilmesi gerekir. Bu belgenin ingilizce ismi Application Architecturedr. 4.3.2 Harici Arayz Gereksinimleri Belgesi Gelitirdiimiz sistem ile d sistemler arasndaki haberlemeleri ele alan bir belgedir. Giri/k verilerini, mesajlar ve verinin dzenini belirler. D sistemler senaryo emalarnda AKTR olarak belirirler. ncelikle kendi rettiimiz arayz ve balant kuracamz d sistemin arayzn tanmlayarak ie balamamz gerekir. Balant kuracamz arayzden hangi hizmetleri kullanacaksak bunlar da ayrntl belirtmemiz gerekir. Eer balant kurmak istediimiz d sistemde bizim istediimiz hizmetler yok ise bu hizmetleri ayrntl biimde yazarak istememiz gerekir. Bu belgenin ingilizce ismi External Interface Requirementsdr. 4.3.3 Veritaban Tasarm Belgesi Bu belge gelitirilecek rnn veritaban hakknda ayrntl bilgi ierir. Her tablo ve saha aklamalar ile beraber yazlr. Kullanlacak Stored-Procedure ve SQL programcklar yazlr ve test edilir. Bir Entity Relationship emas ile tablolar arasndaki ilikiler gsterilir. Veritabannn uygulanaca sisteme zel durumlar varsa bunlarda belirtilir. Anahtar sahalar, tablolarn byme hz, ngrlen ilem kapasiteleri ve tahmini kayt kapasiteleri belirtilmelidir. Belgenin ilk srmden sonra deiiklik istenirse tm kontrol Veritaban Yneticilerine braklr. Bu belgenin ingilizce ismi Database Designdr. 4.3.4 Hizmet Modeli Belgesi Her modln sunduu eitli hizmetler vardr. Mesela aritmetik modl isminde bir modlmiz olsun. Bu modln sunduu hizmetler Toplama(), karma(), arpma() ve Blme() olsun. Siz Muhasebe modln yazarken Aritmetik modlnn sunduu bu hizmetleri kullanacaksnz, bu hizmetleri oturup tekrar yazmaya gerek yoktur. Her hizmetin bir giri verisi ve k verisi ile hata durumlarnda retecei mesajlar vardr. Hizmetler o modln arayzn olutururlar ve d dnya ile balant kuraca kaplardr. Herhangi bir sistem yada kullanc bu hizmetleri kullanarak modl ile haberleir ve istedii ileri yaptrmaya alr. Bu arada veritaban ile ilgili ilemleride gerekletiriyor olabilir. Aritmetik modl, yaplan her ilemin kaydn ve kimin yaptn veritabannda saklayabilir.

Bir modln arayzne ait tm hizmetlerin genel olarak anlatld belgeye Hizmet Modeli denir. Tm hizmetler bir tablo iinde sralanr ve kendi operasyon belgelerine balantlar verilir. Bu belgenin ingilizce ismi Service Modeldir. Yazlm Uzmanl zerine

153

UML ve CBD ile yazlm gelitirme

Component XYZ

interface 1 COMPONENT SPECIFICATION

interface 2

Figr 1: ki arayz iine toplanm hizmetler grnyor. 4.3.5 Nesne Devamll Belgesi Bu belge proje iinde varolan nesnelerin ne tr biimlere dntn gsterir. rnein bir snf nesnesi bir veritaban tablosuna yada XML belgesine dnebilir. Modelleme srasnda ortaya kan snf ktphaneleri yada modller ve modllere ait hizmetler, veritaban tablolar veya XML belgeleri ile karlatrmal tablolar halinde retilmelidir. Bu belgenin ingilizce ismi Object Persistence Documenttir. 4.3.6 Hizmet Operasyon Belgesi Bir modl arayz veya snf ierisinde hizmet olarak bulunan fonksiyonlarn giri, k ve hata mesajlar ile tm algoritmasnn anlatld belgedir. zm getirilen Senaryolara, gereklenen i kurallarna balant verilir. Yani tekrar tekrar yazmak yerine i kural yada senaryo belgesinin yeri ve sayfa numaras belirtilir. Giri ve k verileri formatlar ile beraber verilir. Hata durumlarnda retilecek mesajlar belirtilir. Bu belgenin ingilizce ismi Service Operation Documenttir. 4.4 Prototipleme Aamas

Tm bu belge retimi devam ederken ekran prototipleri de tasarm edilir ve kullanc grubu toplantlarnda onaya sunulur. Toplantlar sonucunda ekranlar deiiklie urayacaktr. Kullancnn aktif katlm ile sunumu yaplacak verinin dzeni belirlenir. Prototipler Visio gibi bir programlama yaplabilecei gibi yazlm gelitirme iin kullanacanz ara ile de yaplabilir. Hem bylece elinizde yazlm srecinde kullanabileceiniz hazr temalar olmu olur. 4.5 rnek Proje ile OO ve UML

Bu blmde UML ile adm adm bir projenin nasl uygulanacan analiz aamasndan balayarak test ilemlerine kadar ele alacaz. rnek firma olarak kullanacamz firma bir personel tama firmas. Bnyesinde barndrd minibs, otobs gibi aralar ile personeli evinden iine, iinden evine; belli gzergahlar ierisinde tayan bir yapya sahip. Ayrca kiilerin zel olarak ara kiralamak istedii

Yazlm Uzmanl zerine

UML ve CBD ile yazlm gelitirme

154

durumlarda da yardmc olmakta. Firmamzn ismi AntTur olsun. Bu arada yazlm firmamzn ismide BG Yazlm olsun. arkadan ba harfleri. Projeye ksa olarak ATOS diyelim (AntTur Otomasyon Sistemi). AntTurun sahibi Ahmet Bey bize gelerek, bnyesinde alan aralarn kaytlarn tutmak, hangi firmalarn servislerini ektiini grmek, hangi gzergahlardan gittiini, ne kadar benzin ve yol masraf yaptn, bota olan aralarn listelerini grmek gibi bir dizi ilemi otomatize etmek istediini belirtti. Ayrca mteri ile firma arasndaki ilikileri daha yakn tutmak iin dnd bir dizi yeni ilemi de kullanma rtba zerinden amak istediini belirtti. Bunun iin piyasada hazr bir program bulamadn ve bu projeyi yapp yapamayacamz sordu. Tabii ki bizde stesinden gelebileceimizi syleyip bu ii aldk. BG Yazlm ve Ahmet Bey arasnda geen ilk toplantda mteri istekleri kaba taslak ortaya kmt. Yaplacak i mevcut isteklerin detaylandrlp, mteriye dnmesi iin zaman tanmak ve yeni isteklerin ortaya kmasna zemin hazrlamaktr. BG Yazlmdan lker Bey, bu projeye atanm ve proje yneticisi olarak grevine balamtr. lker Bey ilk olarak 2 ayn Ahmet Beyin ofisinde geirecek ve personel tama iini analiz edecek, problemlerin ne kadarnn bir bilgisayar program ile zlebileceini aratracaktr. Her hafta sonunda ynetim kuruluna yada bal olduu birime rapor vererek analizin ne aamada olduunu, daha fazla zamana ihtiyac olup olmadn, ortaya kan mteri ihtiyalarnn bir listesini ve bu ihtiyalarn zlebilirlik derecelerini de raporunda belirtecektir. lker Bey ayn zamanda Sistem Modelleme ve Analiz konularnda firmadaki en yetkili kiidir ve UML ve OO hakknda firma ii eitimleri ynetmektedir. lk raporda yer alacak i senaryolar Genel Senaryolar olacaktr. Bu genel senaryolar oluturulacak sistemin yapsn ana hatlar ile ortaya koyar. Baka bir deyile mteri isteklerinin, analizci gz ile nasl zme kavuturulacan ortaya koyar. Analiz aamasnda senaryolar 3 aamada incelenir ve sras ile detaylandrlarak oluturulur. 1. Genel Senaryolar 2. Mteri Hedefleri 3. Detay Fonksiyonlar 4.5.1 Senaryolar (Use Cases) Burada UMLin ingilizce kelimelerinden biraz bahsedelim. Bu kitapta bahsettiim senaryo terimi UMLde ad geen Use Casedir. Genel Senaryolar dediimiz ise Summary olarak adlandrlr. Yazlm Uzmanl zerine

155

UML ve CBD ile yazlm gelitirme

Mteri Hedefleri User Goal ve Detay Fonksiyonlarda Sub-function olarak geer. Bu terimlerin aklamalarn ileride greceiz. Kavramlarn hepsini birden ayn anda vermektense yeri geldike

rnekler ile aklamak, konunun anlalmas iin daha iyi olacaktr sanrm. lker Bey ilk haftalk almasndan sonra mteri isteklerini hemen hemen ortaya karm ve balklar halinde belirlemitir. Srekli mteri tarafnda iin ierisinde bulunmu ve ii analiz etmeye almtr. kard sonular Ahmet Bey ile paylam ve gerekten bu problemlere zm arayp aramadn sorgulamtr. Ahmet Bey kartlan her sonutan haberdardr. Yava yava mteri istekleri ortaya km ve bu isteklere bilgisayar ortamnda zm aranmaya balanmtr. lker Bey burada ortaya kartlan senaryolar daha sonra yazlm ekibine aktaracaktr. imdi lker Beyin ilk hafta sonunda Ynetim Kuruluna verdii rapora bir gz atalm. lk raporda yer alacak genel senaryo balklarna dikkat ediniz. Bu genel senaryolar ynetim kuruluna konu hakknda bilgi verecek ve planlama aamalarnda yardmc olacaktr.Konu: AntTur Tamaclk Ltd. ti. Projesi ATOS. Balang: 5 Mart 2003 Sre: Analizi ve steklerin Modellenmesi Sayn Ynetim Kurulu yeleri, Eylem planm ierisinde mteri tarafnda geirdiim zaman zarfnda Genel Senaryolar ortaya kartlm ve mteri isteklerine bilgisayar ortamnda zm aramaya allmtr. Yazlmdan yapmas beklenen 123alan aralarn ynetimi alan ofrlerin ynetimi Servisleri ekilen firmalarn ynetimi (Servis ekmek tamaclk dilinde bir firmann

personelini evinden iine, iinden evine tamak anlamnda kullanlyor.) 456Servislerin gzergahlarnn ynetimi Yolcularn ynetimi Aksayan servislere/ofrlere puan yntemi uygulanmas ve bu servislerin neden

aksadnn aratrlmas. 789Firmalardan kontak kurulan kiilerin kaytlarnn tutulmas Servis arac sahiplerine yaplan demelerin ynetilmesi Kar zarar analiz raporlar

Ant Tur ve Mterileri arasnda olan ilikiler Yazlm Uzmanl zerine

UML ve CBD ile yazlm gelitirme

156

Servis durumlarnn rtba zerinden takibi (allan her firmann yneticisi servislerin

gelip gelmediini rtba zerinden kontrol edebilsin) Mterinin isteine gre servis arac bulmak ofrlere vardiyal iler bulmak Ara sahiplerini bakm zamanlar konusunda uyarmak Yeni aralarn sisteme girilebilmesi iin sorulacak sorularn baslmas rtba zerinden, ara sahipleri iin kayt olabilme imkn Ekstra ilerin ara sahiplerine bildirilmesi ve onay alnmas

Bundan sonraki 2 aylk eylem planm iinde genel senaryolardan detay senaryolara inilecek ve detay senaryolarn yazmna balanacaktr. Bu arada veritabanda modellenerek ortaya karlacaktr. Projenin %10luk Genel Senaryolar safhas bitmi ve Ahmet Bey tarafndan test edilmitir. Sayglarmla lker Dastanl Bu raporda dikkat edilmesi gereken konulara bir bakalm. ncelikle lker Bey ve Ynetim kurulu arasndaki bilgi ak ok st seviyede ve detay bilgi barndrmyor. Bylelikle Ynetim Kurulu yeleri iin devam ettiini ve ana hatlar ile konunun ne olduunu biliyorlar, zaten daha da fazla bilgiye ihtiyalar yok. Personel Tama ii konusunda ve bu i ierisinde kullanlan deyimler hakknda da bilgi sahibi oluyorlar (servis ekme). Projenin Senaryolar Detaylandrma safhasna geldiinide gryorlar. Bundan sonra Ynetim Kurulunun tek ihtiyac yzde rakamlardr. Proje yzde ka bitti, finansmann yzde ka harcand, yazlmclar yzde ka ilerini bitirdi vs gibi. lker Bey konumu itibar ile Ant Tur ile BG Yazlm arasndaki kpr grevini grr ve bilgi akn salar. Buradaki iletiim ne kadar akkan ve gl olursa daha sonra ileride kacak aksaklklarn ou nlenmi olur. Son paragrafta Ahmet Beyin genel senaryolar test ettiinden bahsediliyor. Evet Ahmet Bey kartlan bu senaryolardan haberdardr ve hepsini okuyarak doruluunu kabul etmitir. Bylece her senaryonun byk sistem ierisindeki gvenlii arttrlmtr. Yani senaryolardan hepsi gerekten mterinin zm arad konulardr, bouna rettiimiz bir senaryo yoktur. Burada eXtreme Programingden bahsedelim. Bu metodolojide her aamadan sonra bir test yer alr. Ama rn ortaya kartldnda hi bir hatann (veya en az hatann) olmamasdr. Testler projede pay olan herkes tarafndan yaplr. Mteri, sistem analist, proje lideri, ynetim kurulu, programclar,

Yazlm Uzmanl zerine

157

UML ve CBD ile yazlm gelitirme

test ekibi, destek ekibi vb projeye en ufak bir katks olan kii test ilemlerinde yer almaldr. Tabii ki her biri farkl testler yapacak ve ortaya kacak rnn hatasz ve isteklere tam cevap verecek bir rn olmasna dikkat edeceklerdir. Ayrca standartlara uyulup uyulmadn da test edeceklerdir. lker Beyin bu ilk raporundan sonra yapaca i Genel Senaryolar yazmak olacaktr. Bu ilem gene mteri tarafnda ve belli standartlara gre yaplacaktr. Bu arada kat israfn nlemek ve aalar korumak amal olarak, retilen hibir belge yazcdan baslmaz, ve hi bir yere kada basl biimde tanmaz. Zaten kada baslm belgelerin srm kontrol ok g olur. Bir toplantya girdiinizde her kesin en son srm belgelere sahip olmas gerekir. Bu da ancak belgeleri saysal ortamda tutmak ile mmkn olur. Ahmet Beyin, Ynetim Kurulunun, lker Beyin ve yazlm uzmanlarnn birer bilgisayar olduuna gre ve hepside e-mektup kullanabildiine gre belgeleri kada basmak pek iyi bir uygulama deildir. Senaryolar yazlrken dikkat edilecek pek ok konu var. ncelikle senaryolarn BG Yazlm iinde belli bir biimi olmaldr. Oluturulacak ablon Word belgeleri ile bu problem rahata zlr. Ayrca bu senaryolarn hepsi belli bir dizin altnda toplanmal ve herkesin kolayca ulaabilecei bir yerde durmaldr. Belli zaman aralklarnda yedeinin alnmasda gereklidir. ablonun nasl doldurulaca bilgiside ablon iinde bulunmaldr. Projeye verdiimiz ksa isim gibi (ATOS) senaryolara da bir ksa isim verelim (SN). Her senaryonun bir ismi ve numaras olmaldr. Firma iindeki kltr ve bilgi ak bu koyulan kurallar sayesinde herkesin anlayabilecei bir seviyeye gelmi olmaktadr. Eer firmanz UML ve CBD gibi kavramlar kullanmaya balayacaksa, ncelikle eitim iin vakit ve nakit harcayp her alann ayn seviyede bilgiye sahip olmasna zen gsterin. Firma iindeki iletiimin ayn iletiim kanallar ve sistemleri kullanlarak yaplmas, retkenlii msbet biimde etkiler. Her eyin belli bir standartta olmas ve herkesin bu standartlar bilmesi haberlemeyi akkan klar. Burada biraz durup nemli bir konudan bahsetmek istiyorum. Firmanzda yeni almaya balayacak kiilere ne gibi ilemler uyguluyorsunuz. Firmanzn belli bir dzeni var m? Firmanzda kullandnz her rnn bir eitim kitap vb. var m? Firmanzda uyulmas gereken kurallar anlatan bir dosyanz var m? rtbanzda projeler ve eitim ile ilgili yeterli miktarda bilgi mevcut mu? Yeni kiilere yeterli eitimi veriyor musunuz? Eer bu sorulara samimi olarak evet cevab verebiliyorsanz, yolun yarsn katetmi oluyorsunuz. Dier yarsda mevcut bilgiyi gncel tutmaktan geiyor.

Yazlm Uzmanl zerine

UML ve CBD ile yazlm gelitirme

158

Yukarda bahsettiimiz 3 eit senaryo modelinin ana ablonuna bir gz atalm. Bu senaryo lker Beyin ilk raporunda geen ilk maddenin yazlm halidir.

Yazlm Uzmanl zerine

159

UML ve CBD ile yazlm gelitirme

ATOS.SN1 Ara Ynetimi


Senaryo # Use Case Name Kapsam Hedef Seviye Aktr(ler) Hedef Ama 1 Ara Ynetimi Sreci (effaf-Kutu) Genel Senaryo Son Kullanc (birincil) Bu senaryoda firma bnyesinde alan/alm tm aralarn bilgilerinin tutulmas hedeflenmitir. Ara zerinden ara sahibine ve firmaya da ulalabilir. Firma bnyesinde alan pek ok ara vardr. Bunlarn doru biimde ynetilmesi, yerletirilmesi, bakmlarnn yaplmas gibi konular organize etme gerei ortaya kmtr. Bu senaryo Ara Ynetiminin Genel Senaryosudur. Krmz 1- Ara hakkndaki mteri ikayetlerinin tutulmas zorunluluu var mdr? 2- Bir firmaya atanm bir ara ihale zaman dolmadan deitirilebilir mi? Ayn zelliklere sahip aralarn birbirinin yerine kullanlmas olabilir mi? Aralarn arza yapmalar halinde gerekli olabilir. Bir aracn veritabannda yer alabilmesi iin son bakm tarihinin son 6 ay iinde olmas gerekir. Baarl durumlar Minimum durumlar Tetikleyici Aralar ile ilgili her trl ilem iin bu senaryo dikkate alnr. biti Yok biti Yok

Olgunluk Varsaymlar Sorular

ndurumlar

Ana Ak 1- Aracn kayt edilip edilemeyecei aratrlr (son bakm tarihi 6 aydan geri olmayacak) 2- Aracn tm bilgileri ara sahibinden talep edilir 3- Ara kaydedilir 4- Son bakm tarihleri 6 ay geen aralarn sahipleri uyarlr. 5- Firmalara atanacak aralar kriterlere gre ortaya karlr. (koltuk says + ofrn oturduu semt) 6- Aralar her servis aksattnda puan verilir. Alternatif Ak 1Yok kurallar Ara son bakm tarihi 6 aydan geri olmamaldr Notlar likili emalar Belge Tarihesi Tarih Srm 6/Mart/2003 0,1 10/Mart/2003 0,1

Aklama lk srm oluturuldu akna 6. madde eklendi Yazlm Uzmanl zerine

sim/Soyisim lker Dastanl lker Dastanl

UML ve CBD ile yazlm gelitirme

160

Buradaki tasarm sadece bir neridir ve kendi isteinize gre ablonu deitirebilir, gerekliliklere gre yeni sahalar ekleyebilir ve MS Word ablonlarna header, footer ekleyerek firmanzn ismini, logonuzu, belgenin srm bilgilerini, sayfa numaralarn, belgenin bulunduu dizini, en son zerinde alan kii vb. gibi bilgileri de koyabilirsiniz. Hatta bir veritaban hazrlayp bu bilgileri tutacak bir program hazrlamak ta mmkn, nemli olan ne kadar zamannz ve naktiniz var? Senaryoda ad geen alanlara bir bakalm. 4.5.1.1 Senaryo bal

Senaryo bal proje ismi ve senaryonun ksaltlm hali ile senaryonun numarasndan ve isminden oluur. Ek olarak en sona srm numarasnda ekleyebilirsiniz fakat okta gerekli deildir.Yani: proje ismi + SN + senaryo numaras + Senaryo ismi + (srm no) rneimizde ATOS.SN1 Ara Ynetimi senaryo baldr. Proje ismi ve SN1 nokta iareti ile birbirinden ayrlmtr. 4.5.1.2 SN#

Senaryonun numarasn tutar. Her senaryoya birden balayarak bir numara vermek gerekir 4.5.1.3 SN isim

Senaryonun ismi burada belirtilir. Aklayc bir kelimeyi takiben bir fiilden oluur. Birincil Aktrn yapmak istedii ii belirtir. rnein Yeni Mteri Oluturma, Ara Ynetimi vs. 4.5.1.4 Kapsam

Senaryonun kapsam belirtilir. Kapsam ileride ortaya kacak modllerin (component) isimleri olarak dnlebilir. rneimizden anlalaca zere tasarm aamasna getiimiz zaman Ara isminde bir modlmz olacaktr. Kapsamlar, zerinde tartlan sistemlerde olabilir ( Sreci, Sistem, Alt-Sistem). Bu sistem iin oluturulan Senaryolar effaf-Kutu (white-box), yada Kara-Kutu (blackbox) olarak tanmlamamzda gerekir. effaf-kutu olan senaryolarn girdi ve ktlar ile iinde geen tm ilemler ve veri yaps tamamen Aktrler tarafndan bilinir. br taraftan Kara-Kutu senaryolarnn sadece girdileri ve ktlar bilinir. Bu konuyu Modl-Tabanl Gelitirme konusunda daha ayrntl anlatacam. Henz modllerimizi kodlayp, kullanma sunmadmz iin sadece bu kadar bilmemiz yeterlidir.

Yazlm Uzmanl zerine

161

UML ve CBD ile yazlm gelitirme

4.5.1.5

Hedef seviye

Hedef Seviye, senaryonun 3 aamal senaryolandrma snflarndan hangisine ait olduunu syler (Genel Senaryolar, Mteri Hedefleri, Detay Fonksiyonlar). Senaryolar bu ekilde snflandrmann amac, analizin belli bir dzen ierisinde olmasn salamak iindir. Konu hakknda genel bilgi sahibi olmak isteyen ynetici ekibi sadece Genel Senaryo snfndaki senaryolar okuyarak iin ne olduunu kavrayabilirler. Genel Senaryolar, sistemi tanmlayc 3 ana grevi yerine getirir. 1. 2. 3. Byk sistem ierisinde Mteri Hedeflerinin nereye oturduunu gsterir. Mteri Hedeflerinin hayat dnglerini belirtir. Bir kitabn iindekiler blm gibi daha alt seviye senaryolarn balklarn belirtir

Mteri Hedefleri ise gerekte birincil aktrlerin yapmak istedikleri ileri belirtir. Mteri Hedefi olan bir senaryo Aktr bu senaryoyu uyguladktan sonra sistemden mutlu bir ekilde ayrlacak m? sorusuna Evet yantn vermeye almaktadr. Detay Fonksiyonlar, Mteri Hedeflerinin yerine getirilmesi iin atlacak admlar belirler. Detay fonksiyonlar sadece gerekten ihtiyacnz varsa ekleyin. rnein Sisteme Oturum A, rn bul, Mteri bul gibi ilemler birer detay fonksiyondur. 4.5.1.6 Aktrler

Aktr, senaryo ile ilikili olan veya senaryoyu kullanan kii veya sistemdir. Unutmayn bir senaryoyu baka bir sistemde kullanabilir. Her senaryo iin en azndan bir adet birincil aktr olmaldr. Eer senaryoyu kullanan baka aktrler de varsa onlarda sralamak gerekir. 4.5.1.7 Hedef

Senaryonun hedefini belirtir. Sadece, senaryo ile yaplmas amalanan i anlatlr. Senaryo NE ie yarar sorusuna cevap verir. Bir paragraftan fazla olmamal ve senaryoyu okuyan kiiye genel bir bilgi vermelidir. Detay bilgi barndrmaz. 4.5.1.8 Ama

Senaryonun sistemde NEREYE oturduunu syler. Bir ii veya sistemi analiz ederken, o sistemi paralara blmek ve kk paralar halinde ele almak bize zaman kazandrr. Bu adan bakldnda her

Yazlm Uzmanl zerine

UML ve CBD ile yazlm gelitirme

162

senaryo byk sistemin bir parasdr ve genelde dier senaryolar ile iliki ierisindedir. Ayrca Ama senaryonun sistem iin NEDEN nemli olduunu da syler. 4.5.1.9 Olgunluk

Olgunluk senaryonun hangi srete olduunu gsterir. Renkler ile kodlama UML diline oturmu bir gsterim biimidir. Krmz: sreci senaryosu tanmlanr fakat henz detaylandrlmamtr. Turuncu: Senaryonun i ak ekillenmeye balar ve sorular blmnde sorular belirmitir. Turuncu seviyesi biraz uzun srd iin Turuncu1 Turuncu2... biiminde oaltlabilir. Sar: Senaryo, kontrol mekanizmalar iin yaynlanabilir bir hale gelmitir. Senaryonun bitirilebilmesi iin temel admlar ortaya karlm ve alternatif admlardan nemli olanlar tamamen geniletilmitir. Ayrca senaryonun byk sistem ierisindeki durumuda gvenli bir hale gelmitir (Gerekten sistemin bu senaryoya olan ihtiyac ortaya kartlmtr). Yeil: Senaryo bir sonraki sre iin hazrdr, fakat henz onaylanmamtr. ablondaki tm sahalar doldurulmu ve Soru ksmnda hi bir soru kalmamtr. Mavi: Senaryo onaylanm ve bitmitir. Son Gereksinim Modelinde yerini alr. Gm: Senaryo baka bir projede yeniden kullanlmtr. Kk deiiklikler yaplm olabilir. Altn: Senaryo birden fazla baka projede deiiklik yaplmadan kullanlmtr. 4.5.1.10 Varsaymlar

Senaryonun alabilmesi iin oluacak varsaymlar burada listeleriz. Her zaman karmza kmasada baz durumlarda gerekli olabilmektedir. 4.5.1.11 Sorular

Senaryonun tamamlanabilmesi iin ortaya kmas gereken konularn sorulduu blmdr. Yeil konumuna gelmi bir senaryonun Sorular ksmnda hi bir soru olmamas gerekir. 4.5.1.12 n durumlar

Senaryonun ilemeye balayabilmesi iin gerekli n durumlar belirtir. n durumlar gereklenmeden senaryo ileme balayamaz. Numaral bir liste eklinde ve hiyerarik bir yapda olmas gerekir.

Yazlm Uzmanl zerine

163

UML ve CBD ile yazlm gelitirme

4.5.1.13

Baarl biti durumlar

Senaryo bittikten sonra, sistemin alaca durumdur. Ana i ak sonunda yada Alternatif i aklar sonucunda oluacak her trl baarl biti durumu burada numaral liste biiminde not edilir. 4.5.1.14 Minimum biti durumu

Minimum biti durumlar, senaryonun biti durumu ne olursa olsun (baarl yada baarsz) her zaman doru olacak durumlardr. rnek olarak bir senaryo baarl veya baarsz biimde sonlanrsa, senaryonun altrldna dair sonu ktklerine bir kayt eklenir. Ktklere kayt ekleme ilemi her iki durumda da geerlidir. 4.5.1.15 Tetikleyici (semeli)

Tetikleyici bu senaryonun ilenmesini balatan olaydr. Bazen senaryonun ilk adm tetikleyici adm olabilir. O zaman burada tekrar etmenin gerei yok. Fakat tetikleyici olaylar birden fazla ise burada listelemek iyi olur. 4.5.1.16 Ana i ak

Senaryonun hedefine ulaabilmesi iin gerekli admlarn sralanmas ile oluturulur. Bu ak aktr ile sistem arasnda geen konumadr. Senaryonun ak n koullardan sonlanma koullarna doru olmaldr. Her hangi bir hata durumunu barndrmaz. Her trl n koulun ve tahmin edilemez hatalarn ortaya kmayaca var saylr. Her adm iin: aktr olabilir. 4.5.1.17 Alternatif i aklar Bir hedefin baarldn gsterin Aktrn nasl tepki verdiini yakalamaya aln, kullanc arayzn deil. Her adm bir aktr ile balar (Aktr u ilemi yapar, Sistem u bilgiyi gnderir) Aktrlerin isimleri ile kullanlmasna zen gsterin, nk ayn ii yapan birden fazla

Ana i aknda belirli durumlara gre sapmalar olabilir veya parametrik yaplarda ilemler parametrelere gre deiebilir veya senaryodaki problemin baka bir zm yolu olabilir. Buna gre alternatif zm yollarn ve hata durumlarndaki senaryonun verecei yant bu ksmda ele alyoruz. Buradaki numaral listeye bir bakalm. Yazlm Uzmanl zerine

UML ve CBD ile yazlm gelitirme

164

Diyelimki 3 admdan oluan bir ana i aknz var. Birinci adm iin 2 adet alternatif zmnz olsun. lk zm 1a olarak isimlendireceiz. kinciyi de 1b. Alternatif zmlerin admlarna 1a1, 1a2 de diyebiliriz fakat ok fazla kartrmamak iin bataki adm numarasn dryoruz. 1a. Ana akn 1. admna alternatif olabilecek 1. durum a1. Adm 1 a2. Adm 2 1b. Ana akn 1. admna alternatif olabilecek 2. durum b1. Adm 1 b2. Adm 2 3a. Ana akn 3. admna alternatif olabilecek 1. durum a1. Adm 1 a2. Adm 2 Evet yukardan da anlald gibi nc adm iinde bir adet alternatif zmmz mevcut. 4.5.1.18 kurallar

Burada senaryo uygulanrken dikkat edilmesi gereken i kurallarn listeliyoruz. Listelenen i kurallar zaman ierisinde deiebilir. Tm senaryolar krmzdan maviye doru yol alrken i kurallar da kendi iinde deiir ve geliir. Senaryolar mavi olduktan sonra i kurallarnn tm tek bir dosyada toplanr ve senaryolardan kartlr. Senaryolar maviden sonra sadece i kural dosyasna bir referans numaras tutarlar. Genelde i kuralnn numaras referans amal kullanlr. kurallar 2 trldr. Birincisi, dorulanmamas sonucu senaryoyu bitiren kurallar. Bunlar dorulanmas zorunlu kurallardr. kincisi, dorulanmamas sonucu senaryo ilemeye devam eder fakat aktr bu konuda bilgilendirilir. Bu tr i kurallarda semeli i kurallardr. kurallar tesbit edilirken semeli mi yoksa zorunlu mu olduu belirtilmelidir. 4.5.1.19 Notlar

Tm bu sahalardan herhangi birine girmeyen ve senaryoyu ilgilendiren her trl bilgi bu alana yazlr.

Yazlm Uzmanl zerine

165

UML ve CBD ile yazlm gelitirme

4.5.1.20

likili diyagramlar

Senaryonun daha iyi anlalabilmesi iin bir aktivite diyagram veya veri ak diyagram bu alana eklenebilir. Yeri geldike bu diyagramlar aklayacam. Senaryo belge ablonlarn tkzda bulabilirsiniz. Unutmayn farkl projeler veya firmalar iin farkl ablonlar gerekebilir. Gereksinimlerinize gre ablonlar deitirmekten kanmayn. Tm firma iinde ayn ablonu kullanmak iletiimin hzl olabilmesi iin daha salkldr. Firmadan firmaya ablon deiebilir ama firma iindeki projelerde kullanlan senaryo ablonlar ayn olmaldr. Buraya kadar bir senaryonun nasl ortaya ktn ve gelitirildiini ele aldk. imdi senaryolarda ad geen aktr terimini inceleyelim. 4.5.1.21 Aktr

Aktr sistemle senaryolar yolu ile ilikide bulunan birimdir. Aktr genel bir terimdir ve senaryolar iinde kullanabilmek iin ncelikle bir sfat kazandrlmas gerekir. rnein Son Kullanc bir aktrdr. Senaryoyu kullanacak olan birim bir grup insan da olabilir rnein Muhasebe Blm muhasebe ile ilgili senaryolar kullanacak bir grup insan simgeler. Aktrler baka bir program veya sistem de olabilir. rnein EFT modl sizin yazdnz Mteri Bul senaryosunu kullanmak isteyebilir. Mteri Bul ayn zamanda Muhasebe Blm tarafndan da kullanlyor olabilir. Aktre verdiimiz sfat UML dilinde stereotype olarak bilinir ve aktrn UML gsterimi Cin Ali eklindedir. Her UML nesnesinin bir stereotype vardr. Sras geldike bunlar greceiz. Aktr eer bir sistemi temsil ediyorsa sfat sistemin ismi olacaktr. ngilizce terimleri veriyorum fakat bunlar kullanmayn, maalesef UML modelleme programlarnda mecburen kullanacaksnz fakat Trke ne demek istediini ok iyi bilmeniz gerekiyor. Burada senaryo olarak bahsedilen analiz sistemi Use-Case olarak bilinir ve UML modellemede Use-Case Diagram olarak ekillendirilir. Senaryo emalar, aktr ve senaryolar arasndaki ilikiler ile senaryolarn kendi aralarndaki ilikilerini gsterir.

Operator

Firma

Figure 2: UML emalarnda aktrn gsterimi Yazlm Uzmanl zerine

UML ve CBD ile yazlm gelitirme

166

4.5.1.22

Senaryolar arasndaki iliki eitleri

include: Sistem olumaya balad zaman baz senaryolarda tekrar eden ilemler ortaya kabilir. Bu tr tekrar eden ilemleri farkl bir senaryo olarak ayrp ana senaryoya include balac ile balarz.

<<include>>

Puanla
(from Sofor Yonetimi )

Sofor Yonetimi
(from Sofor Yonetimi )

<<include>>

Odeme Belirle
(from Sofor Yonetimi )

Figure 3: Include balacnn UML gsterimi generalization: Sistemde ortaya kan senaryolardan iki tanesi birbirine ok benziyor fakat bir tanesi biraz daha fazla i yapyor ise oluur. Analiz srasnda sadece bir i kural yznden bir senaryoyu ikiye blmek gerekebilir. Bu gibi durumlarda sorun karan i kuraln senaryodan izole edip ayr bir senaryo gibi ele alrz ve generalization balac ile ana senaryoya balarz. Bu olay bize problemi zmek iin alternatif yollar grmemizi de salayabilir.

Yazlm Uzmanl zerine

167

UML ve CBD ile yazlm gelitirme

Firma Yonetimi
(from Firma Yonetimi)

Servis Bilgilerini Listele


(from Servis Yonetimi)

Guzergah Olustur
(from Servis Yonetimi)

Figure 4: Generalization balacnn UML gsterimi extend: Ana senaryoya bal bu tip zel senaryolar, ana senaryoya farkl davranlar ekleyebilirler. Fakat bu durumda ana senaryo genileme noktalarn (extension points) belirtmelidir. Ve balant zerinde bu genileme noktalarndan hangilerinin kulanld gsterilmelidir.

<<extend>> Uygun Servis bul


(from Arac Yonetimi)

<<extend>> Operator
(from Aktor)

Guzergah Olustur
(from Servis Yonetimi)

Servis Degistir
(from Arac Yonetimi)

Figure 5: Extend balacnn UML gsterimi 4.5.1.23 ve sistem senaryolar (business ve system)

Bu iki tr senaryoyu ayrd etmek zaman zaman g olmaktadr. Genel olarak Sistem Senaryolar yazlm ile olan ilikileri, Senaryolar ise bir firmann mterisi yada piyasa hareketleri ile olan ilikilerini ortaya koyar.

Yazlm Uzmanl zerine

UML ve CBD ile yazlm gelitirme

168

senaryolarn analiz srasnda ayrd edebilmek iin firmann mteri isteklerine nasl cevap verebileceini dnmeli ve bilgisayar sistemlerini veya veritabann deil, mteriye verilecek cevab dnmeniz gerekir. Dnn ki bilgisayar diye bir ey henz icat edilmemi ve siz mterinizle karlkl oturarak sohbet ediyor ve isteklerine zmler bulmaya alyorsunuz. Burada geen olaylar firma ile mteri ilikileri zerine kurulu ve senaryolar Senaryosu olarak ortaya kyor. Proje banda yaratlan Senaryolar sistemi anlamak iin yararl olmaktadr. Ayrca Ynetim Kurulu gibi yazlm alannda olmayan kiilere proje hakknda yeterli bilgiyi sunar. Sistem senaryolarnn doruluunu veya alternatif sistem senaryolarnn bulunmasna da yardmc olur. Mteriniz gittikten sonra bilgisayar bana geip (bu arada bilgisayar icat oldu) mteri isteklerini kaydedip, zmleri yaratyorsunuz. te burada yazlm ile aranzda geen diyalog iindeki senaryolar da Sistem Senaryolar olmu oluyor. Sistem senaryolar, planlama, proje maliyet analizi, modl tanmlama gibi ilemlerde yardmc olur ve bilgisayar sistemi ile olan balantlar gsterir. Her Senaryosunu baarabilmek iin bir dizi Sistem Senaryosu gerekir. 4.5.1.24 Senaryo oluturma srasnda yaplan yanllar

Bir ii analiz etmeye kalktnzda, aklnza srekli ekran tasarmlar ve veritaban tablolar geliyorsa yanl yapyorsunuz demektir. in analizi o i ile mterileri arasnda geen ilikilerin ortaya karlmas ile balar. Mterinin istekleri ve iin verdii tepkiler kayt edilir. Tm mteri istekleri olabilecek tm senaryolar ile ortaya karldktan sonra iin bu senaryolara nasl tepki verdiini yakalamanz gerekir. Ancak bu ekilde i sahibinin isteklerine cevap verebilecek bir program yazabilirsiniz. nce iin nasl dndn anlamanz gerekiyor hemde tm ayrntlar ile. Her trl ilem yazya dkldkten sonra, mteri ile i arasnda geen bu senaryolar analiz edip bilgisayar ortamnda zm arama aamasna geilmelidir. Kayt edilecek veri, sunumu yaplacak veri, ve formatlar ortaya karlr. Dikkat ederseniz bu aamaya kadar henz bir veritaban oluturmadk veya tek satr kod yazmadk. Veritabannn sahalar hemen hemen ortaya kt ama tablolar daha belli deil. Sunumu yaplacak veri belirlendi ama ekran tasarmlar daha yaplmad. Henz her ey planlama aamasnda ve daha yapmamz gereken pek ok i var.

Yazlm Uzmanl zerine

169

UML ve CBD ile yazlm gelitirme

4.5.2 Snf emalar (Class Diagrams) UMLin en fazla kullanlan ve dorudan yazlm ile ilgili olduu iin yazlm mhendislerinin en iyi bildii ema tipidir. Class olarak isimlendirilmesinin sebebi belli ayn zelliklere sahip veri ve fonksiyonlarn bir at altna toplanmasndan kaynaklanyor. Kafanzda bir model oluturmas asndan bir ka rnek vereyim. Bir ilkokul snf dnn. Bo bir oda, sralar, karatahta gibi eyler iinde mevcut. Bu, snf tanmlayan genel bir anlatm ve ilkokul snfnn class durumunu gsterir. lk ders ile birlikte renciler snfa doluur ve retmen eitime balar. Snf artk class durumundan object (nesne) durumuna gemitir. renciler snfn sahalardr (fields). retmen snfn bir fonksiyonudur ve retme fonksiyonunu gerekletirir. retme fonksiyonu iinde rencilerin rendikleri bilgiler deiir ve geliir. Bu arada ilk ders ile beraber snfta bir isim kazanmtr, rnein 3. snf ve nesne haline gelmitir. Bu snfn tr durumu var. Bunlar derste, tenefste veya tatilde. Ayrca derste ise hangi derste olduunu gsterecek bir de gstergesi var, rnein matematik, hayat bilgisi gibi. Ders gn sonunda 3. snfta ortadan kalkar ve tekrar bo bir oda haline gelir. Yani hafzadan silinir fakat kodu hala elinizdedir yada emas. Bo bir oda hali snfn emasdr. rencilerin nereye oturaca retmenin nerede duraca ve ilenecek derslerin haftalk programnn belirtildii tablo snfn plann oluturur. renciler snfn alanlardr. Yani veriyi tutan deikenleri. retmen ise snfn yegne fonksiyonudur. retme ii ile snfn alanlarnn barndrd bilgiyi yeniler veya yeni bilgiler ekler. lk ders ile birlikte bu ema somut bir hal kazanr ve ilemeye balar. te bu noktada nesne haline geer. lk tenefs zili alnca snfn durumu tenefste olur ve retme fonksiyonunu yrten retmen snf tenefse karr ve retme iine ara verir. Son dersten sonra snfa son verilir. Bir gn bir koro almas iin bir ka snfn tm rencileri toplanarak bir alma yapmaya karar verirler. Tm koro rencilerinin ayn zamanda kendi snflar vardr ve bu zel alma iin bir araya gelmilerdir. Snflarnda rendikleri tm disiplini ve bilgiyi beraberlerinde getirirler ve yeni bir snf olutururlar. Yani kendi snflarnda mzik dersinde rendikleri tm bilgi ve deneyimlerini bu yeni koro snf iin kullanrlar, fakat matematik dersindeki bilgileri koro snf iin gereksiz olduundan kullanmazlar. Kendi snflarnda rendikleri bilgiyi bu koro snfna miras olarak getirirler. Burada farkl snflarn bir araya gelmesi ile yeni bir snf kurulmu ve farkl bir i iin ura vermektedirler.

Yazlm Uzmanl zerine

UML ve CBD ile yazlm gelitirme

170

lkokul bitipte ortaokul baladnda snflarn tipleri deiir. Her ders iin farkl retmeler gelmeye balar. Yani bir snfn artk birden fazla fonksiyonu vardr. Snfn durumlar deimemitir hala tenefste, derste ve tatilde durumlar vardr. lkokuldan gelen bilgiler hala mevcuttur ve yenileri eklenmektedir. lkokul bilgileri miras yolu ile gelmitir fakat snfn yeri ve tipi deimitir. Her ders iin farkl snflara gidiliyordur. Buda oklu form (polymorphism) oluturur. Farkl snflarda farkl davranlar ile renen renci hala bir rencidir. Snf (class), nesnenin plandr. UML gsterimde snf aadaki gibi gsterilir. 3 blmden oluur. lk blmde snfn ismi yer alr. kinci blmde snfn sahalar ve nc blmde de snfn fonksiyonlar yer alr. Snf hafzada yer ald zaman artk bir nesne haline gelir.
Firma FirmaIsmi IhaleZamani AracSayisi IhaleKontrol() AracArttir()

Figure 6: IBM Rational ile snf gsterimi

Yazlm Uzmanl zerine

171

UML ve CBD ile yazlm gelitirme

Ihale Servis 1 n 1 Firma 1 1 1..n 1 FirmaPersonel

TicariFirma n n Arac 1 n 0..1 Kontak

OzelMusteri

1..n

0..n BakimAriza

Figure 7: AntTur snf emas 4.5.2.1 zellikler (properties)

Snfn alanlarn temsil eder. Snf kendi bnyesinde barndraca veriyi bu alanlarda saklar. Alanlar snfa zel (private), herkese ak (public), korumal (protected), paket (package) olarak drt tip eriilebilirlik derecesine ayrlrlar. Kullanlan programlama diline gre baka tipleride olabilir. UML emalarnda aadaki iaretler ile gsterilir. + ~ # herkese ak snfa zel paket korumal

UML modelleme programlama dilinden bamszdr fakat kullanacanz dile gre deiikliklere izin verecek kadar esnektir. Kullandnz programlama dilinin zelliklerine gre eriilebilirlik derecelerini

Yazlm Uzmanl zerine

UML ve CBD ile yazlm gelitirme

172

ekleyip kartabilirsiniz. UML modelleme yazlmlar, bir model iin dil seimi yaptnzda o dilin zelliklerini kullanmanza izin verir. Modelleme srasnda ben yanlzca + ve iaretlerini kullanyorum. Dier iaretler genelde modelleme srasnda ortaya kmyor. Ancak analizler ilerleyip kodlamaya geildiinde i kurallar ile birlikte yada ihtiyaca gre belirleniyorlar. 4.5.2.1.1 Alanlar (attributes)

Bir snfn zelliidir. UML gsteriminde tavsiye edilen biimi: <tip (+ - ~ #)> <alan ismi>: <veri tipi> <array genilii> = <ilk deeri> ,<zellik, yaz ile>} Bir rnek verecek olursak: - Soyisim: string*1+ = Yeniceri ,readOnlylk olarak (-) iareti ile bu alann eriilebilirlik derecesini belirtiyoruz. Soyisim: bu alann ismi yani snfn alana erimek iin kullanaca belirtetir. string alann barndraca veri tipini belirtir. *1+ alann bu tip veriden ka tane barndracan belirtir. Yeniceri alann ilk tanmlandnda alaca veridir. ,readOnly- ksm ek zellikleri tanmlamak iin kullanlr. Yeri geldike bu zellikleri anlatacam. 4.5.2.1.2 likiler (associations)

ki snf arasndaki ilikiyi belirlemek amac ile oluturulmu bir alandr. Gncel hayattan bir rnek verelim. Slale ve aile ilikisinde soyisminiz sizin hangi slaleye mensup olduunuzu belirtir. Soyisimleri ayn olan Ahmet, Mehmet, Hseyin evlenip kendi balarna bir aile oluturur. Soyisimleri ayn olan bu kii slalenin genetik mirasn barndrrlar ve yeni nesillere bunu aktarrlar. Soyisim burada iliki belirten alandr. Soyisim hem ailenin bir alandr hemde slalenin bir alandr. UML emalar zerinde ok farkl grnmesine ramen ilikiler ve alanlar aslnda ayn eydir. likilerin UML gsterim biimi alanlar ile ayndr. emalar da ise iki snf arasnda ok biiminde gsterilir. Okun gittii yn hedef snftr. Hedef snf zerindeki alanlardan bir tanesi, ilikiyi tanmlamak assndan esas snf zerine gelir.

Yazlm Uzmanl zerine

173

UML ve CBD ile yazlm gelitirme

Servis ServisNo AracPlaka : Arac

Arac AracPlaka : String n SonBakimTarihi KoltukSayisi Model Notlar

Figure 8: UML emalarnda ilikinin gsterimi Yukardaki emada Servis snf zerindeki AracPlaka sahasnn tipine dikat edin. Tip olarak Arac snf verilmitir. Yani 1. liki eitleri

Yukardaki emada ilikiyi Trkeletirerek okursak ortaya yle bir ey kar. Soldan saa: Her Servis pek ok araca sahip olabilir. Sadan sola: Her Ara sadece bir serviste alabilir. Her iki ilikide de zorunluluk yok. Yani Aralar ve Servisler kendi balarna var olabilirler. Bu tr ilikilere 1-To-Many yani Bire oklu ilikiler denir. 2. 3. Programda nasl gzkecek ki ynl ilikiler (bidirectional)

Yazlm Uzmanl zerine

UML ve CBD ile yazlm gelitirme

174

4.5.2.2 4.5.2.3 4.5.2.4 4.5.2.5 4.5.2.6 4.5.2.7 4.5.2.8 4.5.2.9 4.5.2.10 4.5.2.11

Fonksiyonlar (operations) Genelleme (generalization) Not ve Yorumlar Bamllk (dependency) Constraint kurallar Desing by contract Sorumluluklar Statik fonksiyon ve alanlar Aggregation and composition Arayzler

4.5.3 Sral lem emalar (Sequence Diagrams) Her yazlm paras bir ka snftan oluur. Her snfn kendi iinde belli servisleri olabilecei gibi tm yazlm parasnn darya sunduu hizmetler de vardr. Bu tr hizmetler arayzlerde toplanarak d kullanma alr ve arayzler vastas ile yazlm paralar kendi aralarnda haberleir. Bir senaryo belgesine gre bir iin baarlabilmesi iin farkl yazlm paralarnn sunduu hizmetlerin belli bir srada kullanlmas gereklilii vardr. Bu tr isteklere cevap verebilecek ema Sral lem emasdr. Nesnelerin hayat srelerini grmek iin iyi bir yntemdir. 4.5.3.1 4.5.3.2 4.5.3.3 Dng ve durumsal ilemler Senkron ve asenkron CRC kartlar

4.5.4 lem Ak emalar (Collaboration Diagrams) 4.5.5 Nesne emalar (Object Diagrams) Nesne emalar bir ilem srasnda nesnelerin durumlarn gsterir. Snfn kendisini deil snftan oluan nesneyi ele alr. 4.5.6 Paket emalar (Package Diagrams) Snflar nesne ynelimli sistemlerin temel yapsn olutururlar. Binlerce snftan olumu ok byk bir yapy ele aldnzda snf emalarnn okunmas zor olabilir. Paket emalar ile snflar Yazlm Uzmanl zerine

175

UML ve CBD ile yazlm gelitirme

mantksal olarak ayrarak gruplar ve okunmasn kolaylatrrz. Sadece snflar deil tm UML birimlerini paketlemek mmkndr. Paketleride baka paketler iinde gruplandrmak mmkndr. Analiz edilen sistemin karmaklna bal olarak paketler oaltlabilir. zlmesi g problemleri yada sistemleri farkl paketlere blerek ufak ufak zme yoluna gidebiliriz. Hem yaplacak i daha net ortaya kar hemde byk sistemin karmakl ile uramamz oluruz. Ayrca zme kavuturduumuz her ufak yap ta bize bir sonraki adm iin motivasyon verecektir. Paketleri .NET erevesi iinde isim alanlar (namespace) olarak dnebiliriz. Bu durumda paket iinde bulunan her snfn zel bir ismi olmas zorunluluu vardr. Kurumsal bir uygulamay paket emalar ile kurgulayabilirsiniz. Snf emalarndan daha sade ve anlalabilir olacaktr. 4.5.7 lem Durum emalar (State Machine Diagrams) Tek bir nesnenin mr boyunca girecei durumlar analiz etmek amal gelitirilmitir. 4.5.8 Aktivite emalar (Activity Diagrams) Okulda rendiimiz Ak emalarna benzer. Tek fark olarak bunda paralel ilemleri ematik olarak gsterebiliriz. 4.5.9 letiim emalar (Communication Diagrams) Sral ilem emalar gibi snflar aras ilikileri gstermek amal oluturulmutur. Sral ilem emalarnda her ilem belli bir sra iinde yer alr, fakat iletiim emalarnda snflar ve mesajlar istediiniz yere oturtabilirsiniz. Eski ismi Collaboration Diagramsdr ve lem ak emalar ile kartrlmamaldr. 4.5.10 4.5.11 4.5.12 Modl emalar (Component Diagrams) Zamanlama emalar (Timing Diagrams) Kurulum Ve Yaymlama emalar (Deployment Diagrams)

Kurulum ve yaynlama emalar sistemin hangi paralarnn hangi donanm ve yazlm zerinde alacan gstermektedir. Donanm belli bir bilgisayar yada bir kart olabilir, yazlm donanmn etrafnda sistemi yaynlamak amal bir iletim sistemi yada uygulama sunucusu veya web sunucusu olabilir.

Yazlm Uzmanl zerine

You might also like