P. 1
YazilimUzmanligiUzerine

YazilimUzmanligiUzerine

|Views: 37|Likes:
Published by sysrerun

More info:

Published by: sysrerun on Oct 12, 2010
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

11/03/2011

pdf

text

original

Sections

  • 1.3 Sonuçlar
  • 2.1 Sistem Sorumlusu
  • 2.13 Şeffaf Muhasebe
  • 3 Blogdan Seçmeler
  • 3.4 Programlamaya Yeni Başlayacaklara
  • 3.5 Extreme Programlama
  • 3.10 SOA ve Proje Analizi
  • 3.19 İspanyol Teorisi
  • 3.26 ISVler İçin 25 Kural
  • 4.5 Örnek Proje ile OO ve UML

Yazılım Uzmanlığı Üzerine

Standartlaşma, Firma Altyapısı, Ekip Oluşturulması, Blogdan Seçmeler ve UML ile Proje Geliştirilmesi

Gürkan Yeniçeri

i

Yazılım Uzmanlığı Üzerine
Sürüm 0.1 beta Bu kitap Özgür Yazılım mantığı ile yazılmıştır ve her şekilde dağıtılması serbesttir. Lütfen orjinal formatını koruyunuz. Orjinal formatı korumasanız da arkanızdan gelip niye böyle yaptınız diyecek değiliz. Bu kitabı kullanıyorsanız, yazara gurkan nokta yeniceri AT gmail nokta com adresinden ulaşarak bildirirseniz seviniriz. Gördüğünüz hataları veya istekleri de iletirseniz çok daha mutlu oluruz. Bu kitap zaman içinde değişikliğe uğrayabilir. Son sürümü için www.analystdeveloper.com adresine bakabilirsiniz. Blog, Forum ve Vezir Wiki sitelerindeki alıntılar ile bir takım eklentiler ve düzeltmeler, linkler ile zenginleştirilmiş yazılar rahatça okunabilecek bir formatta buraya toplanmıştır.

ii

Önsöz Bu e-kitap hem bir projenin nasıl yönetilmesi gerektiğini hemde bir proje grubunun nasıl yapılanması gerektiğini anlatmaktadır. Modül ve Nesne tabanlı analiz ve geliştirme yöntemlerinin nasıl bir projede uygulanabiliceğini örnekler ile göstermektedir. Bu kitabı yazmaktaki amacım, bilişim sektörüne gönül vermiş insanların sınırlama olmadan bilgiye ulaşmalarını sağlamak ve havada kalmış bir takım konuları bir standarda oturtmaktır. Modül ve Nesne tabanlı sistemler yakın zamana kadar tartışılan ve standarda sokulmaya çalışılan sistemlerdir ve şu anda dünyanın pek çok yerinde genelde devlet iştirakleri tarafından olmak üzere pek çok yazılım firması tarafından uygulanmaktadır. Temeli 1980’lere dayanan UML ve 1996 yılında standarda sokulan Modül Tabanlı Yazılım Geliştirme kuralları ile birlikte Nesne Tabanlı sistemler hayata geçmeye başladı. Böylece yazılım dünyasında modülleme yolu ile yazılım geliştirmek hem daha az maliyetli hemde yeniden kullanılabilirliği arttıran bir sistem olarak rağbet görmeye başladı. Bazı firmalar belirli işleri yapan modülleri hazırlayıp firmaların beğenisine sundular. Bazı firmalarda hem Nesne Tabanlı hemde Modül Tabanlı yazılım geliştirme araçları ile piyasaya çıktılar. Kitabın ilerleyen sayfalarında bu firmaların araçlarına yer vereceğiz. Umarım bu kitap bilişim sektörüne gönül vermiş herkes için bir yol gösterici olur ve herkesin yararlandığı bir kaynak haline gelir.

Bir sistem analisti nasıl analiz yapması gerektiğini öğrenecek. linkler ile zenginleştirdim. Bu yazıların Türkçe karakter hatalarını temizledim. Kitabın bu kadar geniş kitleye hitap etmesinin sebebi bir yazılım firması içindeki yapıyı tam olarak anlatabilmek ve yazılım firması kurmak isteyen genç girişimcilere birazda olsa yol göstermektir. yazılım uzmanları Modül ve Nesne tabanlı konular hakkında bilgi sahibi olacaklar. gerekliliklere göre ekleme yada çıkartma da yapılabilir. eski olan bazı yazıları teknolojiye göre güncelledim. Yazılım firması sahipleri kendi iç organizelerini düzenleyecek bilgiler bulurken.iii Kitap Kimin İçin Yazıldı Kitap yazılım firması sahiplerinden. Bir sistem yöneticisi yazılım ortamlarında nelere dikkat etmesi gerektiğini görecek. 3Blogdan Seçmeler Bu bölümde blogda yazdığım ve bu kitabın konuları ile örtüşen yazılara yer verdim. Bunlar: 1Yönetim ve Yapılanma Bu bölümde yazılım firması kurmak İşteyen girişimcilerin nelere dikkat etmesi gerektiğini anlatmaya çalıştım. Kitapta anlatılan metodlar olduğu gibi kullanılabileceği gibi. 4UML ve CBD ile Yazılım Geliştirme . Bir test uzmanı nasıl test yapılacağı konusunda metodolojileri öğrenecek. Pazarlama uzmanları nasıl ürünü pazarlamaları gerektiği konusunda yardımcı bilgiler. Kitabın Organizasyonu Kitap 4 ana bölümden oluşmaktadır. 2Proje Ekibinin Oluşturulması Yazılımı üretecek ekibin yapılanması ve aralarındaki haberleşmenin nasıl olacağı konusunda ayrıntılı bilgileri burada bulabilirsiniz. Altyapı ve firma düzeninin nasıl olacağı konusunda fikirler verdim. Firma yönetimi ile ilgili yapısal düzenlemelerin nasıl olacağını analtmaya çalıştım. Yazılım lideri veya yönetim gruplarında bulunan kişiler yapılanma ile ilgili fikirleri bu kısımda bulabilirler. yazılım uzmanlarına kadar geniş bir kitleye hitap edecek biçimde hazırlandı.

.iv UML ve CBD standartlarının tüm proje genelinde nasıl kullanılacağı ve dosyalanacağı konusunda bilgiyi örnekleri ile beraber bu kısımdan öğrenebilirsiniz. Böylece herkes eşit seviyede bilgiye sahip olmuş olacak ve veri akışı daha hızlı olacaktır. Her ne kadar farklı bölümlere ayrılmış olsada. her gruptan insanın kitabın tamamını okumasını tavsiye ederim. Yazılım geliştiriciler ve sistem analistler için hazırlanmış bir bölümdür ve teknik ağırlıklıdır.

İÇİNDEKİLER
ÖNSÖZ ........................................................................................................................... 2 KİTAP KİMİN İÇİN YAZILDI .............................................................................................. 3 KİTABIN ORGANİZASYONU ............................................................................................ 3 1 YÖNETİM VE YAPILANMA ........................................................................................ 1
1.1 1.2 1.3 PROJE ALT YAPISININ HAZIRLANMASI ................................................................................................................................... 1 İŞ ORTAMI VE SAĞLIKLI ÇALIŞMA......................................................................................................................................... 9 SONUÇLAR .................................................................................................................................................................... 12 SİSTEM SORUMLUSU ....................................................................................................................................................... 14 PROJE LİDERİ ................................................................................................................................................................. 14 ANALİZ EKİBİ ................................................................................................................................................................. 16 TASARIM EKİBİ............................................................................................................................................................... 17 YAZILIM EKİBİ ................................................................................................................................................................ 18 MÜŞTERİ TEMSİLCİSİ ....................................................................................................................................................... 19 TEST EKİBİ .................................................................................................................................................................... 20 EĞİTİM EKİBİ ................................................................................................................................................................. 22 PAZARLAMA EKİBİ .......................................................................................................................................................... 23 KURULUM YÖNETİMİ EKİBİ ............................................................................................................................................... 24 DEĞİŞİM VE İSTEKLERİN YÖNETİMİ..................................................................................................................................... 25 PİLOT FİRMA ................................................................................................................................................................. 25 ŞEFFAF MUHASEBE ......................................................................................................................................................... 26 YAPILAN YANLIŞLAR ........................................................................................................................................................ 26 ÜTOPYALARIM, AŞKIM VE BEN .......................................................................................................................................... 31 AGİLE MODELLEME DEĞERLERİ ......................................................................................................................................... 35 DÜŞÜNCELERİM ............................................................................................................................................................. 39 PROGRAMLAMAYA YENİ BAŞLAYACAKLARA.......................................................................................................................... 41 EXTREME PROGRAMLAMA ............................................................................................................................................... 46 YAZILIM UZMANI VE SAĞLIK ............................................................................................................................................. 51 EKİP TOPLANTILARI ......................................................................................................................................................... 52 ESKİ PROJELER ............................................................................................................................................................... 57 CMMI, ISO, SPICE, IEEE .............................................................................................................................................. 64 SOA VE PROJE ANALİZİ ................................................................................................................................................... 68 ANALİST YAZILIM UZMANI ............................................................................................................................................... 72 NASIL DAHA İYİ KOD YAZARIZ ........................................................................................................................................... 76 EĞER TEST EDİLMEMİŞSE ÇALIŞMIYOR DEMEKTİR ................................................................................................................. 82 GEREKSİNİM YÖNETİMİ VE KALİTE...................................................................................................................................... 84 DİĞER GEREKSİNİM YÖNETİMİ YAZISI ................................................................................................................................. 87 SERBEST YAZILIM............................................................................................................................................................ 89 REUSİNG VE REFACTORİNG ............................................................................................................................................... 91 KARİYER OLAYI .............................................................................................................................................................. 93 İSPANYOL TEORİSİ........................................................................................................................................................... 95 İŞ BAŞVURUSU VE DİKKAT EDİLECEKLER .............................................................................................................................. 97 YENİ İŞ KURACAKLARA BİR TEST ........................................................................................................................................ 99 TESTİN CEVAPLARI ........................................................................................................................................................101 PROGRAMLAMA ÖĞRENCİSİNİN DERDİ .............................................................................................................................103 BANA RAKİBİNİ SÖYLE ...................................................................................................................................................106 YAZILIM UZMANLIĞINDAN YÖNETİCİLİĞE...........................................................................................................................107 ISVLER İÇİN 25 KURAL ..................................................................................................................................................114 SÜRÜM YÖNETİMİ ........................................................................................................................................................117 FİRMANIZI KORUMAK ....................................................................................................................................................120

2

PROJE EKİBİNİN OLUŞTURULMASI ......................................................................... 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

3

BLOGDAN SEÇMELER ............................................................................................. 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 KİŞİLİK ........................................................................................................................................................124 YAZILIM SÜRECİNDE KALİTE ............................................................................................................................................126 YAZILIM UZMANI OLAMAYACAĞINIZIN 10 KANITI ...............................................................................................................130 STRES VE YAZILIM SEKTÖRÜ............................................................................................................................................133 YURTDIŞINA YAZILIM ÜRETELİM ......................................................................................................................................135 BİR BAŞKA GÖZLEM ......................................................................................................................................................142 İŞ GEREKSİNİMLERİNİ MODELLEME AŞAMASI .....................................................................................................................145 KULLANICI ARAYÜZÜ GEREKSİNİMLERİ VE TASARIMI BELGESİ ................................................................................................148 SİSTEM MODELLEME AŞAMASI .......................................................................................................................................149 PROTOTİPLEME AŞAMASI ...............................................................................................................................................153 ÖRNEK PROJE İLE OO VE UML .......................................................................................................................................153

4

UML VE CBD İLE YAZILIM GELİŞTİRME ................................................................. 145
4.1 4.2 4.3 4.4 4.5

Yönetim Ve Yapılanma

1

1 Yönetim Ve Yapılanma Kural koymak çok kolaydır ama gelin görün ki bu kurallara herkesin özveri ile uyduğunu düşünmek saçma olur. Koyulan kuralların belli yöntemler ile kontrolü ve raporlanması gerekir. Yönetimin yapması gereken iş sadece kural koymak değil, bu kuralların yerine getirilip getirilmediğini kontrol edecek mekanizmalarıda işleme sokmaktır. Bu bölümde bir yazılım firmasındaki alt yapıyı inceleyeceğiz. Firma bölümleri arasındaki veri akışının nasıl verimli hale getirileceğini araştıracağız. 1.1 Proje Alt Yapısının Hazırlanması Bir firmanın değeri çalışanlarına verdiği değer ile doğru orantılıdır. Alt yapısına ve çalışanlarına yatırım yapmak yerine zevki için para harcayan firmalar ise kısa vadeli firmalar olmaktan kurtulamazlar. Günlük çözümler ile hayatını sürdüren bir firma günün birinde mutlaka batar. İleriyi görerek yatırım yapanlar ise daha uzun piyasada kalacaklardır. Her firmanın bir sonu vardır. Fakat unutmayın ki bu sonlardan yeni kaynaklar üretmek ve yeni yatırım sahaları yaratmak tamamen akıl gücünüze kalmış bir olaydır. 1.1.1 Bilgisayarlar Bir işe başlarken yapılan yatırım özkaynaklarınızı arttırır. Bu açıdan düşünüldüğünde, alınacak her bilgisayar, kurulacak her sistem, cekilecek her kablo özkaynaklarınıza dahil olacaktır. Günümüzde bilgisayar sistemleri çok çabuk güncel-dışı kaldığından bilgisayar alırken dikkat edeceğiniz husus, güncelleme seçeneklerinin açık olması veya aldığınız firma ile yapacağınız anlaşmada, belirli periyodlarda sistemlerin yenilenmesi gibi maddelerin olmasına dikkat etmenizdir. Böylece elinizdeki bilgisayar sistemi zaman içerisinde eskimemiş olacak, verimliliğiniz düşmemiş olacaktır. Bilgisayar aldığınız firmanın köklü bir firma olmasına dikkat edin. Referanslarını görmek isteyin. Dikkat edeceğimiz hususları maddeler şeklinde sıralarsak:
    

Bilgisayarların tamamı yetkili bir firmadan alınmalıdır. Tüm özelliklerin her bilgisayarda aynı olmasına dikkat edilmelidir. 6 ay veya 1 senelik periyodlarda güncelleme için anlaşılması gerekir. Sistemler tamamen değişecek ise eskileri geri alma gibi maddelerde olmalıdır. Hasar veya fabrika hataları gibi arızalar sigorta kapsamında olmalıdır ve bilgisayar firması

bu bilgisayarları değiştirmelidir.

kabloların bina içinde kontrolü olmayan yerlere gitmesi yada kablosuz ağ yapınızın 15 yaşında bir bilgisayar kurdu tarafından “hack” edilmesi pek hoş olmasa gerek.Yönetim Ve Yapılanma 2  Her kullanıcının kendi bilgisayarı hakkındaki özellikleri bilmesi ve en verimli biçimde kullanabilmesi için bilgilendirilmelidir.      Her kablo etiketlenmeli ve hangi masaya hangi kablo gidiyor kaydı tutulmalıdır.1. Fiber optik.2 Ağ Yapısı Firmanız içerisindeki ağ yapısı kurulurken. Yedek “hub” ve benzeri ekipman her zaman bulundurulmalıdır. Masaların düzeni ve yerleşim planı ile birleştirilerek ne kadar kablo harcanacağı ortaya çıkarılır. Bir kaç madde halinde sıralarsak:   Önceden plan yapılarak kabloların nerelerden geçeceği tesbit edilir. uçları ve kablo pensesi her zaman bulundurulmalıdır. Bu modelleri iyi saklayıp ileride çıkacak problemleri hızlı bir biçimde çözmek için kullanabilirsiniz. bilgisayarların yerleştirilme planlarının iyi yapılması gerekir. Böylece Sistem Yöneticisinin zamanı bu tür işlerle bölünmemiş olur. Yansımayı azaltan ekran filtreleri kullanarak çalışanların gözlerinin korunması gerekir. uzun vadeli bir yatırımmış gibi düşünüp. Ağınızda çıkacak herhangi bir arıza içinde bu firmadan yardım isteyin. Bu nedenle çekilen her kablonun kağıt üzerinde bir modelinin olmasına özen gösterin. alanında iyi olan ve bir kaç referansı olan bir firma seçin. Ağ alt yapısı bir daha değişmeyeceği için. Yedek kablo. kablosuz yada 100mb CAT5 veya 1Gb CAT6 gibi teknolojileri inceleyip en iyisinin hangisi olacağına karar verebilirsiniz. Eğer bu konuda uzman bir firma seçecekseniz. Arıza arama ve giderme için kablo test cihazları bulunmalıdır. o sırada piyasada bulunan en iyi kabloların ve uçların kullanılmasına dikkat edin. Güvenlik konularına da dikkat edilmesi gerekir. Sistemin sağlığı açısından. Kablolamayı yapacak firma konusunda uzman olmalıdır. Kablolama işini Sistem Yöneticilerine yaptırmayın.   Hangi bilgisayarın hangi masada durduğu ve kimin tarafından kullanıldığı kayıt edilmelidir. 1. en son sistem ağ yapılarınıda kullanmayı düşünebilirsiniz. Maliyetleri kısmak için tüm bu . Önceden planlama ile kaç metre kablo harcanacağını tahmin edebilir ve maliyetlerinizi kontrol altına alabilirsiniz. böylece koblo uçlarındaki bağlayıcılar zarar görmemiş olacak ve ileride ek bir masraf çıkartmayacaktır. Monitörlerin gözü bozmayacak türden olması gerekir. Eğer profesyonel düşünce sistemi ile hareket edersek ve profesyonel firmalar ile çalışırsak ileride doğacak pek çok problemi daha oluşmadan ortadan kaldırmış oluruz.

Böylece yazılım ortamı sabit durur.1. . Tüm testler yapıldıktan sonra. Yarın sorun çıktığında arayacak birileri olacaktır. formatlayın yada kullanılamayacak hale getirin. Aldığınız yedekleri kullanarak firmayı tekrar ayağa kaldırmaya çalışın. Birincisi ürünü geliştirdiğiniz ortamlar. Pek çok yararını göreceksiniz. Tabii tüm bu saydıklarımın imzaladığınız anlaşmada olması gerekmektedir. Ürününüz hangi işletim sistemlerini destekliyorsa o sistemlerin yeni versiyonlarını takip etmek ve sağlayıcı firma tarafından artık desteklenmeyen sistemleri devre dışı bırakmak gerekir. Yılda en az bir kere yedeklerden geriye dönüş tatbikatı yapın. firmanızdaki her bilgisayarın eşit özelliklere sahip olması gerekir. belki sizin hiç aklınıza gelmeyecek alternatif çözümler üretebilirler.Yönetim Ve Yapılanma 3 işleri firma içindeki kaynaklar ile çözmeye çalışırsanız ileride doğacak arızalarda çok fazla zaman ve nakit kaybedebilirsiniz. Linux gibi açık sistemler kullanıyorsanız. yazılan kodun. Prensip olarak yapılacak her iş için o işle uğraşan profesyonel bir firma seçmenizi tavsiye ederim. Sanallaştırma ile maliyetleri bir miktar düşürmek te mümkündür. Tatbikat sonunda yedekleme ve bu yedekleri saklama metodlarınızı gözden geçirin ve eğer aksayan yönleri varsa düzeltin. Eğer sanallaştırma kullanılacaksa gerekli donanımın ihtiyaca göre planlanıp alınması ve gelecekte ihtiyaç olabilecek yükseltmelerin kolayca uygulanabilmesi gerekir. diğeri ise ürünü kurup çalıştırdığınız ortamlar yada test ortamları da diyebiliriz. Belki de sizin hesapladığınızdan daha az bir harcama ile bu işten kurtulabilirsiniz. test ortamında denenebilir. İşlerin yoğun olmadığı bir zamanda yedeği bulunan tüm sistemleri silin.3 İşletim Sistemleri Yazılım sürecinde kullanılacak işletim sistemlerini ikiye ayırabiliriz. her yeni kernel (Linux çekirdeği) çıktığında veya desteklediğiniz Linux sürümü yeni sürüme geçtiğinde ürününüzü derleyerek yeni paketler oluşturmalısınız. 1. İşletim sistemi için güncelleme ve yeni sürümler. Fiziksel olarak birbirinden ayrı sistemler olması gerekmektedir. “disc image” programları kullanmaya karar verirseniz. Ve en önemlisi de güncelleme için başınız ağrımayacaktır. “disc image” programları ile bir kopya oluşturulur ve ürün geliştirme ortamındaki bilgisayarlar güncellenir. Bir de yedekleme stratejilerinin çok iyi uygulanması ve sistemlerin. Uygulanması çok zor bir tatbikat gibi görünse de “eğer başarılı olursanız” bu tatbikatı hiç yapmamış firmalara göre bir üstünlüğünüz olacaktır. Öncelikle. veritabanlarının ve üretilen her türlü belge ve çıktının yedeklenmesine özen gösterilmesi gerekiyor.

yazılım araçlarının bir kısmını Computer Associates’den. Karar verme aşamalarına bir bakalım:   mi?    biliyorlar mı?  mu?  dönüyor?  var. bir kısmını Microsoft’tan. Tek dikkat etmeniz gereken şey satış sonrası desteğin ne kadar iyi olduğudur.Yönetim Ve Yapılanma 4 1. Application Server’ları BEA’den. analiz araçlarını Rational Software’den. Üzerinde en fazla zaman harcayacağınız.4 Yazılım Araçları İşte hayatınızı. istemci/sunucu. sizin kullanmayı düşündüğünüz yazılım aracını Ürününüzü birden fazla İşletim sistemini destekleyecek mi? Ürününüzü web. tek başına calışabilecek biçimde tasarım edilecek izin veriyor mu? Yazılım aracı/dili üreten firma ile birlikte başka hangi firmalar bu araca/dile destek Birden fazla yazılım aracıda düşünebilirsiniz.   veriyor. karar verirken en fazla düşüneceğiniz.1. işletim sistemlerini Microsoft ve Hewlet Packard’dan. sertifika veriliyor Ürününüz en son yazılım tekniklerini ve teknolojilerini uygulayabilir mi? Kullanmayı düşündüğünüz veritabanlarını destekliyor mu? Piyasadaki yazılım uzmanları. Web sunucuları Microsoft ve Apache’den. Middleware yazılımlarını IBM’den alabilirsiniz. Kendi alanında lider konumunda bulunan ürünleri toplamak iyi bir fikir gibi gelebilir. en fazla araştırma yapacağınız kısım bu olmalı. veritabanını Oracle’dan. Müşteriniz sancıdan kıvranırken size kolayca ve hızlı çözüm sunabilecekler mi? . ve firmanızın geleceğini belirleyecek en önemli karara geldik. Veya farklı firmaların ürünlerinden bir sentez de ortaya çıkabilir. Seçeceğiniz programlama dili yada aracı zaman içerisinde kaybolup gitmeyecek ve yeni teknoloji ve teknikleri uygulayabilir bir dil olmalı.  Ne kadar para harcamayı düşünüyorsunuz? Ürününüzü Dünya genelinde satmayı düşünüyor musunuz? Araç/dil bu tasarıma İş bulma sitelerinde. Örneğin. sizin düşündügünüz yazılım aracı/dili ile ilgili ne kadar iş ilanı Dünyada başka kimler kullanıyor? örütbağında arama yaptığınızda kaç tane sonuç Yazılım aracı/dili için eğitim verecek kuruluş var mı? Diploma.

audit (veritabanında hangi kullanıcı ne iş yapmış). güvenlik. 1. Tutulan kayıtların da belli bir format . ürününüzün ve teknolojinizin de güncel ve köklü olması gerekir.1. Bu zaman içerisinde belirli araçları/dilleri/teknolojileri deneyerek görmeniz. 1. kimlerin ne kadar kullandığı gibi bilgilerin güncel bir biçimde tutulması gerekir. kredi kartı doğrulama.6 Dışarıdan Alınmış Modüller Modül tabanlı geliştirme yapıyorsanız. kullanıcı adres bilgileri. firma içerisinde ve yazılım geliştirme sürecinde işleri kolaylaştıracak.5 Ek Yazılımlar Ek yazılımlar. veritabanı bağlantıları gibi bir dizi hazır modülü alıp kullanabilirsiniz. Belli kurallara uymadan yapılan işler zaman içerisinde yok olup giderler. sıkıştırma araçları. kendi bünyenizde yazılmış yada dışarıdan satın aldığınız ürünler olacaktır. Unutmayınki burada 10 yıl içinde piyasadan silinecek bir firmadan bahsetmiyoruz. Bu bağlamda oluşturulmuş. her çalışan bu kurallara uyarak yazılım geliştirme yapmalıdır.Yönetim Ve Yapılanma 5 Firmanızı kurduktan sonra ilk 2 yıl sizin için bir tampon zaman olacaktır. Kuracağınız firmanın köklü olabilmesi için. kullandığınız sistemler ile uyumlu çalışıyor mu. Firma kuruluşu sırasında.7 Analiz Yazılımları Projelerinizin analiz aşamasında harcayacağınız zaman daha çok olacağından. müzik dinleme programları. satış sonrası destek olaylarını araştırmanız sizin için iyi olacaktır. ilk 2 yıl yeni arayışlar içerisinde olmaya bakın. Sizin istediğiniz işleri daha ucuza yapan ceşit ceşit yazılım geliştirme araçları.1. bu bölümde yapılan her işin kayıtlı olması çok büyük önem taşımaktadır. işinizi yüzde kaç kolaylaştırıyor. güncelleme nasıl yapılıyor gibi konular takip edilmesi ve yazılması gereken konulardır. Hangi dilde yazılırsa yazılsın bir program müşterinin isteklerine cevap vermelidir. bence en önemli koşul budur. Her türlü ek yazılımın firma içinde nasıl kullanıldığı. hangi bilgisayarlarda yüklü olduğu. piyasada hazır bulunan müdülleri kendi ürünlerinize entegre edebilirsiniz. Hangi ürünleri seçerseniz seçin başarılı olmak için standartlaştırma ve dosyalama kuralları her zaman güncel ve uygulanabilir olmalı. Ceşitli metin editörleri.1. sohbet yazılımları ve yazılım geliştirme ile doğrudan bağlantılı olmayan her türlü program bu kategoriye girer. Tabii bu modüllerin bakım ve desteği için belirleyeceğiniz kişilerin yeterli eğitimi almasına dikkat edilmelidir. 1. veya satış sonrası desteği daha iyi olan başka bir firma bulursanız alt yapınızı değiştirmekten korkmayın. Hem zamandan hem iş gücünden kazanmış olursunuz. dile ve kullanacağınız araçlara karar vermiş bile olsanız. Dışarıdan alınan ek yazılımların güvenlik açıkları var mı.

Testler sırasında bu senaryo belgelerine göre tüm modüller bir arada test edilir. Önemli olan belli bir standardı oturtmaktır. Piyasada bu iş için yazılmış araçlar da mevcuttur. Dikkat etmeniz gereken kullanacağınız hata denetleme ve atama yazılımının örütbağı üzerinden erişilebilmesi ve müşterilerinize açık olmasıdır. ve firmanın her bölümünde okunduğunda. Rational ürünleri veya örütbağ üzerinde bulacağınız bazı ücretsiz yazılımlarda işinizi görebilir. Kullacağınız aracın yapısına biraz bakalım:    ulaşmalıdır. Tüm modelleme boyunca rafine edilerek geliştirilen UML modelleri yeni fikirlerin ortaya çıkması ve risklerin tanımlanabilmesi için geçerlidir. Örneğin IBM Visual Age ile Java dilinde yazmaya karar verirseniz IBM-Rational’ın Rose aracını UML modellemede kullanabilirsiniz. Her proje ve modül için sorumlu atayabilmelisiniz. Bu işlerin yazılım ekibindeki kişilere atanması ve sürecin takip edilmesi gerekir. tüm bu işin belli bir düzen içinde yapılması gerekir. metodolojiler ile ilgili genel bilgileri herkesin ulaşabileceği bir yerde tutmalı. UML modellerinin hayat süreci ürün ortaya çıkana kadardır. Ürün ortaya çıktıktan sonra elimizde sadece Senaryo belgeleri ve kod kalmalıdır. rahatça anlaşılabiliyor olması gerekir. Kaydedilen hatalar veya istekler atanan kişiye e-mektup yolu ile . belge şablonları geliştirmeli. Ayrıca ürün yazılmaya başlandıktan sonra. Analiz için belli başlı araçlar. Tamamı ile silmek yerine arşivleyerek saklamak daha iyi olabilir. hayata geçirildikten ve kodlandıktan sonra tutup tutmamak size kalmıştır. Herhangi bir ürün almasanız bile veya sadece Microsoft Office kullansanız bile.8 Hata Denetleme Ve Atama Yazılımları Proje analizi aşamasında yazılacak modüller az çok ortaya çıkar. Proje gerekliliklerine göre bu araçları kendiniz de yazabilirsiniz. Firma içerisinde bu iş için belli bir kültür oluşturmalı.Yönetim Ve Yapılanma 6 içerisinde olması. 1. genel bazı eğitimleri tüm firma çalışanlarının almasını sağlamanız gerekir. Sınıf şemaları dışındaki diğer tüm UML şemalarını ürün ortaya çıktıktan sonra ortadan kaldırabilirsiniz. Modelleri. çıkacak hataların kayıt edileceği ve gene yazılım ekibine atanması gibi işleri otomatize edecek araçlara ihtiyaç vardır. UML veya OO analiz metodolojilerini kullanacaksanız kullanacağınız yazılım diline ek olarak. Farklı projeler yaratıp modülleri belirleyebilmelisiniz. Analiz bölümünde standartla ilgili bir kaç şablon bulacaksınız. bu dil ile uyumlu bir UML modelleme aracına bakmanız gerekir. Tüm sorular cevaplanıp sınıf şemaları ve veritabanı tabloları ortaya çıktıktan sonra artık yazılan kod kendini ifade etmelidir.1.

11 Ürünün Dağıtımı Proje ekibinin ürettiği ürünü piyasaya sürmek için kullanacağınız kurulum geliştirme programları bir kaç platformu birden desteklemelidir. disket. Yapılan işin belgelerine linkler olmalı yada direk program içinde saklanmalıdır. Bundan sonra yapacağınız iş adım adım giderek gereklilikleri doldurmaktır. üretilen her türlü belgeyi burada muhafaza altında tutmanız ve gerektiğinde yedeklerinin alınması için gereklidir.9 Dizin Yapısı Projenin sayısal dosyalaması için dizin yapısı oluşturmak. 1.   1. Her proje elemanının ne kadar iş yaptığı görülebilmelidir. yarar ve zararları konularında bir belge hazırlayıp. Ayrıca her proje için geçerli olabilecek bir dizi belgeyide otomatik olarak yaratmaktadır.1. Programları satan firmalardan kontak kişiler. anlaşmalar ve ürünlerin ulaştırılması konularını organize edeceklerdir. Her projenin gereklilikleri farklı olduğu için dizin yapılarıda türlü farklılıklar gösterebilir. fiyat. yardım alma biçimleri. test. Ürününüzü dağıtma mekanizmalarınız ne kadar geniş . firma yöneticilerine ve ürünü kullanması beklenen kişilere gönderir. Fiyat teklifleri. Kitap ile gelen tıkızda proje dizinlerini otomatik olarak yaratan küçük bir programcığa rastlayacaksınız.10 Programlar Ve Sorumluları Hata veya istekler zorluk derecelerine göre sıralı listelenebilmelidir. örütbağ yada iç-örütbağ üzerinden kurulum yapmaya imkan verecek araçlar kullanmalısınız. Tıkız. yeni versiyonlar ve yamaların uygulanması. 1. Geriye dönecek yorumlara göre bir toplantı yapılarak sonuçlar tartışılır ve ürünün/yamanın kullanılıp kullanılmayacağına karar verilir.1. Bu araç ile proje ismini ve iki karakterden oluşan kodunu verdiğiniz zaman size temel sayılabilecek bir dizin yapısı oluşturmaktadır. Bitirme zamanları ve yazılım uzmanlarının üzerindeki işler gibi raporları alabilmelisiniz. Ürünler firmanıza ulaştıktan sonra. Aldığınız programları firma içerisinde kullananlardan seçilecek kişiler program ile ilgili her türlü gelişmeyi takip edecek. kurulum.1. “Her proje ve modül için yüzde kaç ilerleme var” şeklinde raporlar alabilmelisiniz.Yönetim Ve Yapılanma 7     Farklı projeden modülleri bir diğer projede kullanabilmeli ve o modül için ikinci bir sorumlu atayabilmelisiniz.

Bir kaç örnek vermek gerekirse Microsoft’un Visual Source Safe. Bu yamaların uygulama metodları mümkün olduğu kadar kullanıcıyı yormayacak biçimde olmalıdır. örütbağı üzerinden de aynı işlemleri gerçekleştirebileceğiniz araçlara yönelmeniz gerekir. merkezi sunucularda bulunmalıdır. Borland’ın StarTeam gibi yazılımları bu işi yaparlar. Ürünün derlenmesi ve son haline getirilmesi ile sürüm yönetimi konuları da bu sunucular üzerinden yapılabilir.12 Merkezi Çalışma Yöntemleri Proje süreci içinde üretilen her belge ve kod. . Bu sayede her proje elemanı diğer tüm ekiplerin neler yaptığından haberdar olur.1. IBM Rational’ın Clear Case. Böylece programcılar işlerine devam ederken bir yandan da ürün derlenerek zaman kazanılmış olur. 2. kim tarafından üretildiği. Belge yönetimi ve sürüm takibi Kod yönetimi ve sürüm takibi Ürününüzün yönetimi ve sürüm takibi Firma içinde analiz aşamalarında üretilecek her belgenin yeri. Yazılım uzmanları tarafından yazılan kodun merkezi bir sunucuda bulunması ve yazılım uzmanlarının çalışacakları kısımları belirleyerek sunucudan bu kısımları kendi çalışma ortamlarına indirmeleri ve işin bitiminde tekrar sunucuyu değişikliklerle güncelleyerek derlemeye hazır hale getirmelerini organize edecek araçlara da ihtiyaç vardır. Bunun için çeşitli yazılımlar geliştirilmiştir. 3. Paylaşım programları ile her proje elemanının bu sunucuya erişip koordineli olarak çalışmasını sağlayacak araçlarıda bünyenizde barındırmanız gerekir.Yönetim Ve Yapılanma 8 olursa hitap edeceğiniz kitle o kadar geniş olur. Bir yazılım firmasında takip edilmesi gereken üç ana unsur: 1. Kullandığınız programlama aracına göre kod sürüm takibi ve paylaşımlı çalışma araçlarını araştırın.Doc gibi yazılımlar veya bir istemci/sunucu şeklinde Miscrosoft’un Share Point Portal ve Share Point Team Services sunucu sistemlerini kullanabilirsiniz. Lotus Domino. Ayrıca zaman içerisinde üründe gelişmeler oldukça ortaya çıkacak yamalarında bir şekilde kullanıcılara ulaştırılması gerekiyor. Eğer coğrafik olarak yayılmış bir ekibiniz varsa veya evlerinden çalışan yazılım uzmanları ile çalışıyorsanız. hangi versiyonlarda ne gibi değişikliklerin yapıldığını yönetmeniz gerekir. 1.

Fare tutan elin parmaklarında ağrı ve bilek bölgesinde Tünel Kalpal rahatsızlığı. sandalye yüksekliği. Bilgisayarlar 24 saat açık bırakılabilir. sırt ağrıları. Kullanılan monitörlerin yüksekliği ve açısı ayarlanabilir kaideler üzerinde durması sağlanmalıdır.Yönetim Ve Yapılanma 9 1. omuzlarda kasılma.2 İş Ortamı Ve Sağlıklı Çalışma 1. Klasik müzik yada dinlendirici tür müzikler yayınlanabilir. sırt desteği yüksekliği. gerekli açılar ayrıntılı olarak gösterilmiştir. Her masaya ait en az 1 adet kilitli çekmece olması gerekir. Yılda bir kez fanların ve kasaların hava üfleyen elektrik süpürgeleri ile temizlenmesi gerekir. Bu . Böylece her çalışana göre masa yüksekliğinin ayarlanması sağlanır. 24 saat çalışan bilgisayar nem tutmaz ve ömrü daha uzun olur. Monitörlerde filtre olması ve bu filtrelerin topraklanması gerekir. klavyenin konumu. sistem oturumunu kapatıp monitörü de kapadıktan sonra enerji harcaması en aza indirilmiş olur. Kullanılacak koltuk yada sandalyelerin iyi bir sırt desteği olmalı.2. omurgada kayma. boyun bölgesinde tutulma. Monitörün konumu. Yazılım ekibinin odasında ses yankılanmalarını önlemek için duvarlara gözleri dinlendirici resimler asılabilir. Ofis için seçilecek masaların yüksekliklerinin ayarlanabilir olması gerekir. Böylece mesai bitimi sonunda güvenli bir yerde saklanması gereken dosyalar muhafaza altına alınmış olur. Bilgisayar alırken fanlarından çıkan sesin mümkün olduğu kadar az olmasına dikkat etmek gerekir. yazılım ekibi için mümkün olduğu kadar sessiz ve sakin bir ortam yaratılmalıdır. Bir kayıt stüdyosunda konuştuğunuz zaman kendi sesiniz hiç bir bozuntuya uğramadan ve yankılanmadan kulağınıza gelir. 30 tane bilgisayarın fan uğultusu oldukça fazla olmaktadır. Pazarlama ekibi ve yazılım ekibi aynı oda içerisinde bulunmamalı. Dahada ileri gidersek duvarlara ses yalıtımı bile düşünülebilir. göz bozukluğu gibi pek çok rahatsızlık masa başında yanlış oturmak ve belirli kaidelere uymamaktan dolayı kaynaklanmaktadır. yere olan açısı ayarlanabilir olmalıdır. Ayrıca monitör başında uzun saatler geçiren kişiler senede bir kez göz muayenesinden geçirilmeli ve gerekiyorsa dinlendirici gözlükler kullanılmalıdır.1 Masalar Ve Bilgisayarlar Masa başında çalışan herkes türlü rahatsızlıklar yaşamaktadır. Masa başı çalışanları için kitap ile birlikte gelen tıkızda masa başında nasıl oturulması gerektiği anlatılmıştır.

Bazı çalışanlar kendi özel modemleri ile internete çıkmak isteyebilir.4 Havalandırma Çalışma ortamı konsantrasyonu bozacak her türlü kokudan arındırılmış olmalıdır. E-mektup için kota uygulaması kullanılabilir. . 1. havalandırma cihazlarının kokuları gibi havanın kalitesini bozacak her türlü koku arındırılmalıdır. Yakınlardaki restoranın yemek kokuları.2. Masalardaki telefon hatlarına gizli modemler bağlanmış mı arada bir kontrol etmek gerekir. Havalandırma cihazlarında biyonik filtreler kullanılmalıdır. Cep telefonları için özel hatlar kurup ucuza aranmalarını sağlayabilirsiniz. Ayrıca pencerelerden gelen ışığın da ekranlara direk gelmemesine dikkat edilmelidir.2 Telefonlar Telefonlar firmanın durumuna göre şehirler arası yada milletler arası kapalı olabilir. 1. Işıklandırma ekranlardan yansımayacak biçimde yerleştirilmelidir.5 Proje Ortamının Güvenliği Bilgisayarların tıkız ve disket sürücüleri olmamalı. Yapılan telefon görüşmelerini kontrol edip milletler arası yada şehirler arası özel konuşmaları maaşlardan düşebilirsiniz.2. Nem oranı kontrol altında tutulmalıdır. Ayrıca firma bilgisi dışında bağlanmış bu modemler sisteminizi tehdit edebilir. 1. Masalarda akrobat masa lambaları kullanmakta faydalı olabilir. Hem hafta sonları ekibin enstrüman çalanları stüdyo olarakta kullanabilir. En az bir adet serbest kullanıma açık fax cihazı olmalıdır yada tamamen sayısal bir fax sunucusuda kullanabilirsiniz. Dışarıdan arayanlar sekreter hanımın işini bölmeden istedikleri kişiye ulaşabilirler. Dışarıdan gelecek saldırılara karşı açık bir kapı gibi olacaktır. Müşteriler yetkili kişilere doğrudan ulaşabilirler. Havalandırma cihazlarından çıkan soğuk havanın direk kişiler üzerine gelmemesi için ayarlamalar yapılır. odaklanmak ve konsantre olmak için idealdir.2. Sunucular bir odada kilit altında tutulmalı. Fakat bu floresanların sayılarının her zaman çift olmasına dikkat edilmesi gerekir.2. Emektup trafiği denetlenmelidir. 1. Yazılım uzmanlarının telefon numaraları müşterilere verilmemelidir.3 Işıklandırma Genelde bilgisayar ve yazılım firmalarında beyaz floresan kullanılır. Eğer tıkız ve disket sürücüler kullanılacaksa çok iyi bir virüs tarama programı kurulmalı ve her virüs veritabanı güncellemesi çıktığında güncellenmelidir. Her masada bir hat olması en idealidir.Yönetim Ve Yapılanma 10 tür bir ortamda yazılım yapmak.

sıcak su veya çay kahve makineleri ve evden yemek getirenler için bir masa bulunmalıdır. . Ekiplerden birer kişi yangın durumları için yetkili atanarak yangın çıkışları ve metodları hakkında bilgilendirilmelidir. aşı olmak istemeyen personel serbest bırakılmalıdır. Yangın tatbikatı için yetkili bir kurumdan yardım almak gerekebilir. hem firmanız hemde çalışanlarınız için iyi olur. Sigara binanın hiç bir yerinde içilmemelidir. her hafta bir profesyonel temizlik uzmanına yaptırılmalı ve personelin mutfağı temiz tutması için gerekli önlemlerin alınması gerekir. hayat üçgenleri belirlenmeli ve buralara tabelalar asılarak herkesin öğrenmesi sağlanmalıdır. Ek olarak ürününüzü üniversitelere veya liselere ücretsiz vererek gençlerin öğrenmesini sağlayabilirsiniz. aklı temizlemek ve iş problemleri ile savaşacak gücü tekrar toplamak için idealdir. Makinelerden arındırılmış sessiz bir oda yapılacak klasik müzik yayını ile mükemmel bir dinlenme odasına çevrilebilir. Deprem gibi afetler içinde tatbikat yapılmalı ve binanın güvenli yerleri. Mutfağın temizliği.6 Diğer Çalışanların ayrım yapılmadan yılda bir kez.Yönetim Ve Yapılanma 11 Yangın söndürme cihazları ve alarmları her hafta bir kez kontrol edilmelidir.2. Mutfak bölümünde buzdolabı. egzersiz bisikleti gibi aletler koyarak çalışanları fiziksel egzersiz yapmaya teşvik edebilirsiniz. Bu tür riskleri almak istemiyorsanız grip aşısını göz önünde bulundurmanızı tavsiye ederim. Ofis içinde seçilecek kişiler ilk yardım eğitimi almalı ve bu bilgilerini ihtiyaç halinde kullanabilmek için hazırlıklı olmalıdırlar. Bu sayede motivasyonu arttırmış olursunuz. Dinlenme odaları günün problemlerini unutarak. İlk okul. Ayda bir kez yangın tatbikatı yapılarak personelin yangın çıkışlarını nasıl kullanacağı ve hangi kurallara uyması gerektiği uygulamalı olarak öğretilmelidir. Tabii duş ve değişme odalarını da unutmayın. kış aylarına girerken grip aşısı yapılması. 1. mikro dalga fırın. Sigara içmek isteyenlere nikotin bantları verilebilir. Sanat ile uğraşan personel için çeşitli çalışma odaları sağlayabilir ve buralardan çıkacak sanat eserlerinin açık arttırma günleri ile satarak vakıflara yada derneklere yardım sağlayabilirsiniz. Dinlenme odaları da dahil olmak üzere hiç bir yerde sigaraya izin verilmemelidir. Grip aşısı isteğe bağlı olmalı. Binanın uygun bir odasına koşu bandı. Sigara içenleri işe almamak bile düşünülebilir. Bir kişiden yayılacak grip virüsü tüm projenizi 1 hafta geriye atabilir. lise veya çevrenizdeki yardıma muhtaç çocuklar veya aileler ile ilgili bu tür çalışmalar firmanızın ismini medyada duyurmanıza yardımcı olur.

3 Sonuçlar Bir firma kurulumu sırasında dikkat edilmesi gerekenleri sıraladık.) kullanmak isterse bu isteğini o modülün yöneticisine bildirir. . Burada yapmanız gereken firmanızın her birimini bir modül olarak ele alıp geliştirmek ve modüller arası ilişkileri çok iyi bir biçimde tanımlamaktır. Her modül için bir yönetici atayın. 1. bilgi vb. Ancak bu şekilde başarılı bir çalışma hayatı çizebilirsiniz. Bu sayede çalışanların motivasyonu artar ve ürün geliştirme bölümünden yeni fikirler elde edilebilir. Ve böylece arada bir ilişki başlar ve kaynaklar en verimli biçimde kullanılmak üzere yönlendirilir. Eğer başka bir modülün yöneticisi diğer bir modüldeki kaynakları (insan gücü.Yönetim Ve Yapılanma 12 Haftalık çalışma saatinin %20’si araştırma ve geliştirmeye ayrılabilir. makine. Bu yönetici kendi modülünün arayüzü olacaktır yani dış dünya ile bağlantı kapısı.

Yiyecekler için para tüm ekipten toplanır. daha önce nerelerde calışmış gibi bilgiler herkese ulaşır. yeni başlayan projelerden. başarılan işlerden. Bir kütüphane oluşturulup çeşitli yayınlardan ve kitaplardan herkesin yararlanması sağlanmalıdır. Firmaya yeni katılan insanlar takdim edilir. İlk aşamada proje ekibi için iç-örütbağ üzerinde bir web sitesi hazırlayıp. ne biliyor. Sunumlar hazırlanarak firma genelindeki bilgi paylaşımının en üst seviyeye çıkarılması sağlanır. Bazı yarışmalar açıp kazananlara ödül verilebilir. Şimdi bir proje ekibindeki sorumluluklara göz atalım. Sabah çayı: Her ekip ayda bir defa içlerinden seçecekleri 3 kişinin hazırlayacağı bir sofra ile 2 saat sürecek bir sabah çayı düzenleyebilir. b. ailesini. ne kadar bilgisayar bilgisi olduğunu öğrenmelidir. Bu 2 ay zarfında her kes birbirinin psikolojik yapısını. Herkes kendi bardağı ve çayı ile katılır. Ekip içindeki ilişkileri arttırmak ve iş dışında başka konuları konuşmak için ortam oluşturmalıdır. temel olarak özgeçmiş bilgilerinden başlayıp yayınlamak iyi bir fikir olabilir. Sanırım oldukça şeffaf bir yöntem oldu bu ama birbirimizden saklayacak neyimiz olacak ki. Verilen ödüllerin ve yarışmaların gene yapılan işle alakalı olması gerekir. Gün sonunda sofrayı kuran kaldırır. piknik. Bu sofrada genelde kahvaltı amaçlı yiyecekler bulunur ve sofra akşam iş çıkışına kadar ortada durur. yaşam tarzını. a. Ekibe verilen sorumluluklar yerine getirilmeye başlandıkça bu bilgiler güncellenir ve herkesin ne kadar iş yaptığı da gözler önüne serilir. .13 Proje Ekibinin Oluşturulması 2 Proje Ekibinin Oluşturulması Bir proje ekibinin birbirini tanıması için en azından 2 ay birlikte geçirmeleri gerekir. Bir araştırma geliştirme laboratuarı bu amaç için uygun olabilir. Böylece ekip içerisinde kim ne kadar. c. Genel sabah çayı: Gene aynı formatta bu sefer firma genelinde düzenlenir. dinlediği müzik türünü. mangal partileri gibi olayları organize etmek te iyi bir fikir olabilir. değerlerini. çaldığı enstrümanı. başarılması gereken hedeflerden bahsedilir. d. Bir aktivite kulübü oluşturarak firma içinde düzenlenecek yemek. Ekip ilişkilerini geliştirecek bir kaç aktiviteden burada bahsetmek istiyorum. Son teknolojilerin tartışıldığı bir ortamda hazırlanmalıdır. önem verdiği şeyleri. Her ay alınacak dergiler herkesin ulaşabileceği bir yerde durmalıdır. Piyasa takibi ve haberleri öğrenmek için bilgisayar dergilerine abone olunabilir. Daha sonra proje ekibinin görevlerini ve bu görevlerin kimler tarafından üstlenildiğini belirten bilgilerde yer almalıdır. f. Bu liste oldukça fazla uzatılabilir. e.

1 Sistem Sorumlusu Sistem sorumlusu firmanın ihtiyacına bağlı olarak kullanılacak tüm yazılım ve donanım’ın kurulumu ve bakımı konusunda bilgili olmalı yada öğrenmeye ve araştırmaya açık olmalıdır. Servis zamanlarında yada arıza hallerinde sağlayıcı firma tarafından yapılan her işlem kayıt edilmeli ve arşivlenmelidir. 2. Firewall tabir edilen güvenlik yazılımlarını çok iyi bilmesi gerekir. Kesintisiz güç kaynağına ait prizlerin diğer prizlerden farklı olması ve şarj cihazları veya elektrik süpürgesi gibi kesintisiz güç kaynağına zarar verebilecek cihazların bu prizlerden kullanılmamasına dikkat etmelidir. sistem göçmeleri halinde en kısa zamanda bir önceki yedeklere dönecek kadar bilgiye sahip olması gerekir. Proje Lideri ekibi bir arada tutmak ve zaman çizelgelerine uyulması için gerekli motivasyonu sağlayacak sosyal bir insan olmalıdır. Sistem sorumlusu e-mektup. Sınırlı bir internet bağlantısı ve sıkı virüs tarama programlarıyla denetlenen bir e-mektup altyapısını kurup yönetebilecek seviyede olmalıdır. Güvenlik ile ilgili konularda piyasa genelinde kullanılan yazılım ve donanımları bilmeside gerekir. örütbağ gibi kullanıcı haklarını firmanın prensiplerine göre ayarlamalıdır. Genel elektrik işlerinden anlamalı. Çalışanların fikrini almak ve bu bilgileri kullanmak. Eğer sistemde bir değişikliğe gidilecekse ve sistem sorumlusunun yeni sistem hakkındaki bilgisi az ise. sağlayıcı firma ile ilişkileri sağlam tutmalıdır. Kesintisiz güç kaynakları ve kullanımı hakkında bilgiye sahip olmalı. Her BT çalışanı ilk 4 yıldan sonra alıştığı. lehim yapmak. kablo çekmek gibi işleri bilmelidir. bildiği yazılımları kurup kullanmak ister. bir sürü paranızı yutup hiç bir iş yapmayan BT danışmanlarından daha etkili ve ucuz bir yöntem olacaktır. Eğer böyle birisi bulunamaz ise tüm analiz aşamalarında bulunacak ve işi en ince ayrıntısına kadar anlayabilecek bir kimse olmalıdır. Yapılan projelerin yedeklenmesi ve saklanması konularında titiz çalışmalı. yerleşim düzeni ve kablolama için gerekli şemaları çizebiliyor olması gerekir. Ayrıca Yönetim Kurulu ile proje arasındaki bilgi . Ayrıca Microsoft Visio gibi bir programı bilmesi.Proje Ekibinin Oluşturulması 14 2.2 Proje Lideri Proje liderinin firma içi tüm operasyonlar ve projesi yapılan iş hakkında geniş bilgiye sahip olması gerekir. yeterli eğitim verilmeli ve ancak sistem sorumlusu kendini yeterli gördüğü zaman sistem değiştirme işlemlerine başlanmalıdır. Tercihen iş ile ilgili sektörden gelmiş ve Bilgi Teknolojileri Yönetimi hakkında bilgisi olması istenir. Bu seviyeye gelmiş bir sistem sorumlusu da kullanılacak yazılım ve donanım hakkında fikir belirtebilmeli ve rahatça çalışabileceği bir ortam yaratılmalıdır.

Proje Sözlüğünün oluşturulmasında görev alır ve proje genelinde kullanılan terimlerin herkes tarafından öğrenilmesine dikkat eder. Diğer ekiplerin yöneticileri ile koordineli çalışır. İyi bir ekip iltişimi için önem verilmesi gereken bir konudur. gerekli her şey olmalı. Böylece maliyet analizi ve teslimat günlerini belirlerken gerçekçi tahminlerde bulunabilir. Firma ahlaki. 2. Diğer proje ekipleri ile bilgi alışverişini sağlar ve kontrol altında tutar. Proje Ekibine görevler atanırken 3 . Yeni yazılım uzmanlarına iş atanırken daha yeni oldukları düşünülerek atanmalı ve öncelikle ortama uyum sağlamaları ve projesi yapılan işi öğrenmeleri için yeterli zaman tanınmalıdır.1 Görev Süreçlerinin Tayin Edilmesi Atanacak görevlerin alacağı zaman belirlenirken PERT (Project Evaluation Review Technique. Yeni gelenler için hazırlanacak dosyada. Modül tabanlı geliştirme yapılıyorsa basit modüllerden işler verilerek kişinin işe alışması sağlanır. Yazılacak modüllerin ve arayüzlerin zorluk derecelerine göre zamanlarını tayin eder ve proje planı içinde yayınlar. Onların fikirlerini dinler ve tavsiyeleri göz önünde bulundurur. Proje Değerlendirmesi Teftiş Tekniği) ortalamasından yola çıkılabilir. Kendi projesinin teslim zamanı diğer projelerdeki modüllere dayanıyorsa bu uzantılarıda kontrol eder ve ekibine bildirir. gibi her türlü bilgi düzgün biçimde aktarılmalıdır. kuralları. iş tanımı vb. sadece yönetim ile ilgili bir eğitim alması yeterli olacaktır. Proje Lideri yeni gelenlere bilgi akışının sağlanması ve ekip içindeki yerlerini kolayca bulabilmeleri için de yardımda bulunur. Bu zamanların tayini sırasında proje ekibi ve yazılım uzmanları ile beraber çalışır. Eğer proje lideri firma içinden yetişmiş ve yazılım uzmanlığından yükselmiş ise daha da iyi olur. Bütçe konularında düzenlemeler ve maliyet analizlari konusunda yönetim kuruluna bilgi ve tavsiye verir. yönetim şeması. işe başlarken getirecekleri evraklardan. Riskleri belgeleyerek çözümler için onaya sunar.2. Proje Lideri yazılım aracı olarak kullanılan araçları ve dilleri de bilmelidir. Bu tür bilgiler güncellendiğinde tüm çalışanların bunları öğrenmesi sağlanır. proje standartlarına ve bina içinde uyulması gereken kurallara kadar her şey maddeler halinde bulunmalıdır. calışma prensipleri. Onay sonucu çıkan kararları işleyerek sonuçları tekrar yönetim kuruluna bildirir. Alt yapıları ve firma ahlakını çok iyi bildiği için. Projedeki her türlü riski takip eder ve kaynaklarını ona göre tahsis eder.15 Proje Ekibinin Oluşturulması alış-verişini de sağlar.

Yazılım ve tasarım ekibi ile birlikte çalışarak müşteri isteklerinin tam olarak modellenmesine ve yazılım ekibi tarafından iyice kavranmasına dikkat eder. Aşağıdaki formül bu verileri kullanarak görev zamanını belirlemek amacı ile kullanılır. Yazılım ekibinden gelecek her türlü soruyu cevaplamaya çalışır. Bu önerilerin ve değişimlerin yapılıp yapılmadığını kontrol eder. Haftada bir kere analiz ekibi ile yapılacak toplantı ile bu sorulara cevap bulmaya yada ortaya çıkan istekler doğrultusunda senaryolarda değişiklik yapma yoluna gidebilir. Bunlar “En İyi”. Yazılım ekibi senaryolar hakkındaki sorularını merkezi bir dosyada tutar.Proje Ekibinin Oluşturulması 16 farklı zaman tayini yapılır. “En Kötü” ve “Normal Bitiş” zamanlarıdır. GZ = (Eİ + 4NB + EK) / 6 GZ = Görev Zamanı Eİ = En iyi durumda görevin alacağı zaman NB = Normal bitiş süresi EK = En kötü durumda görevin alacağı zaman Bu formülden elde edilen GZ değeri Microsoft Project™ üzerinde görevlerin süreçlerinin tayin edilmesi amacı ile kullanılır. Tüm toplantı notları belli düzenler içinde veya tutanak biçiminde tutulur ve saklanır. Görev atanan kişinin deneyimlerinden yararlanılarak tayin edilir. Daha sonra bunları belgeleyerek proje ekibine ulaştırılmasını da sağlar. Müşteri isteklerinin tam olarak anlaşılması ve modellenmesi için hazır formlar ve şablonlar kullanır. 2. Yazılım ekibi ile müşteri arasındaki problemlere çözüm bulmak için uğraşır. Ortaya çıkan modellerin doğruluğunu senaryolar ile onaylar ve yanlış yerlerin değişmesi için öneride bulunur. Analiz toplantılarında İş Senaryolarını ortaya çıkararak detaylandırılmasında görev alır. . Kağıt kullanmayı azaltmayı amaçladığımıza göre 10 parmak yazabilen veya steno bilen bir eleman toplantı notlarını hızlı ve eksiksiz biçimde tutmalıdır.3 Analiz Ekibi Sürekli müşteri ile yüz yüze toplantılar yaparak iş akışının çok iyi bir biçimde aktarılmasından sorumludur.

Yeni gelenler bu toplantılara katılarak hem analizin nasıl yapıldığını hemde UML ve OOA konularının nasıl uygulandığını görürler. 2. Modelleme. sistem gereksinimleri ve müşteri istekleri karşılaştırılarak yapılır. Testler sonucu oluşacak değişiklikleri uygular ve önerileri dikkate alır. Örneğin saha 15 karakterlik bir tekst katarıdır fakat girilen verinin 100-110-111-121 şeklinde olması gerekir. Örneğin belli sahalara belli formatlarda veri girilmesi gerekebilir. Tüm analiz ekibinin. UML ve OOA konularına yeni başlayan firmalarda ise bu konularda eğitim verebilecek seviyede bir elemanın analiz toplantılarına yön vermesi ve yeni gelenleri eğitmesi gerekir. modeling wall) denir ve herkesin görebileceği bir duvar seçilir. Analiz ekibi ve yazılım ekibi modül testlerini ortak yapar. Bu gibi durumlarda ilgili iş kuralı numarası ile belirtilmeli ve bir “hyperlink” ile bağlanmalıdır.4 Tasarım Ekibi Tasarım ekibi. UML. Sahalar için bulunan iş kurallarına da referans verilir. Eğer bir UML aracı yoksa modeller kağıtlara çizilerek duvarlara asılır. Ekran tasarımları ve akışları için de önerilerde bulunabilir. analiz ekibinin ürettiği senaryoları UML kullanarak modeller ve analizi yapılan müşteri gereksinimlerinin elle tutulur bir kopyasını ortaya çıkartır. Veritabanı modeli ortaya çıkmaya başladıkça oluşan sahaların ne işe yaradığını gösteren “veri sözlüğünün” oluşturulmasını sağlar. Fakat kullanılan yazılım aracının ve dilin kapasitesini çok iyi biliyor olması gerekir. analiz metodları. Bu sözlükte veritabanında bulunan her sahanın açıklaması ve örnekleri bulunur. Modelleme sonucu ortaya çıkan modülleri teste sunar ve gerçekten gerekli olup olmadıklarını bulmaya çalışır. süreci boyunca değişime açık bir konudur ve genelde ilk tesbit edilen modüllerin %60’ı ortadan kalkar. Bu duvara model duvarı (wonderwall. Modül normalizasyon toplantıları. modelleri iç-örütbağı üzerinde yayınlar ve analiz ekibinin test etmesini sağlar. Modellerden veri tabanı ve sınıf şemalarını oluşturarak ilk veritabanı modellerini ortaya çıkarır ve yazılım uzmanları ile analiz ekibinin test etmesini sağlar.17 Proje Ekibinin Oluşturulması Ortaya çıkan ürünün. Sistem . En iyi eğitimde müşteri ile olan toplantılarda olur. OOA gibi konularda bilgi sahibi olması gerekir. Model Duvarı ekip içindeki iletişimi arttırmak için çok önemlidir. İş akışı içinde mantıksal olmayan yerleri ve müşteri isteklerine uymayan kısımları tesbit eder ve değişmesi için önerilerde bulunur. Tasarım ekibi UML tabanlı bir araç kullanıyorsa. müşteri öncesi testlerin yapar ve senaryolar yolu ile doğruluğunu ölçer. Ortaya çıkartılan modellerin bakımından da sorumludur.

modelleri hayata geçirerek gerçekleyen ve elle tutulur (göreceli. Servis belgesinin kullanılan yazılım araçlarından ve dillerinden bağımsız olması gerekir. ancak tıkıza yazarsak olabilir). İlk sürümde yer alacak modül ve servislerin belirlenmesi amacı ile tüm modülleri öncelik sırasına dizer. ne kadar hafıza. Projesi yapılan işi tam olarak anlayabilmek ve geliştirmeler için fikir yürütebilmek amacıyla bu şemaların çok iyi kavranması ve sindirilmesi gerekir. Projenin minimum kapasite ile çalışacak biçimde ilk sürümünü verebilmesi amacı ile planlama yapar ve bu modüller üzerine yoğunlaşılmasını sağlar. . yönetim sadece genel akışları kontrol edebilir. Modüllerin gereksiz yere şişmemesi ve çalışmaya başladığında performans sorunlarına yol açmaması için yapılması gereken bir analizdir. Mesela yazılım ekibi detay akışları incelerken.Proje Ekibinin Oluşturulması 18 gereksinimi. konu iyice tartışılmalı ve veritabanı ile program tasarımları gözden geçirilmelidir. gözle görülür yazılımlara dönüştüren ekibiniz. Yazılım uzmanları tasarım ekibinin oluşturduğu her türlü ürünü okuyarak öğrenmeli ve aklına takılan soruları rahatça tasarım ekibine yöneltebilmelidir. Böylece yönetim işine yaramayacak pek çok bilgiden kendini soyutlamış olacaktır. Yazılım uzmanları bu bilgiyi kullanarak Ünite Testi için gerekli veriyi hazırlayacaktır.5 Yazılım Ekibi Firmanızın kalbi. İş Akışı Senaryo (Sequence) Şemalarının oluşturulmasına öncülük eder ve tüm proje ekibinin bu genel akışlardan haberdar olmasını sağlar. Yani servisin yaptığı işler yazıya dökülürken yalın ve düzgün bir Türkçe ile anlatım yapılmalıdır. Modüllerin sunacağı servislerin belgelendirilmesi için bir şablon belirler ve her servis için giriş/çıkışların ve servisin yaptığı işin içeriğini ortaya koyar. Zira bu tür bir çelişme tasarımlarda bir değişikliğe yol açabilir. Servis belgelerinda kullanılan dil herkesin anlayabileceği bir şekilde olmalı ve okuyan yazılım uzmanı bildiği yazılım dili ile uygulayabilmelidir. ürünün çalışacağı sistem düşünülerek ne kadar cpu. ne kadar disk alanına ihtiyacınız olduğudur. Ortaya çıkan servislerin hangi senaryolar ile test edileceğini de maddeler halinde belirtir. Gerektiğinde müşteri tarafında işi öğrenmek için çalışması sağlanmalıdır yada eğitim günleri ile tüm işi öğrenmesi sağlanır. Önce genel iş akışlarından başlayıp detaylandırarak gitmek mantık olarak olayların anlaşılmasını kolaylaştırır. Yazılım ekibinin görevlerine bir bakalım. Daha sonra yazılım ekibi bu belgelerde anlatılan servisleri hayata geçirecektir. Veri ile çelişen durumlarda yada test senaryosunun gerçeklenemeyeği durumlarda. Analiz aşamalarında bulunmalı ve projesi yapılan işi en derin yönleriyle öğrenmelidir. 2.

Bu konuda pek çok önlem alabilirsiniz fakat en önemlisi ekibin bilinçlendirilmesi ve eğer ihtiyaç varsa. Yıllar boyunca emek verdiğiniz yazılımınızın 4 milyona yerlerde satıldığını görmek pek iyi olmasa gerek. Küçük modüllere ayrılmış bir projede her yazılım uzmanı bir modülün sorumluluğunu alabilir. Tasarım ekibinin belirlediği test senaryolarının ayrıntılarını yazar ve uygular. Tüm bölünen bu parçaların nasıl çalıştığını belgelendirerek diğer kişilerin anlamasını kolaylaştırır. Performans değerlendirme zamanlarında bu günlükten yararlanılır. diğer hangi servisler tarafından çağırıldığı. Modüller arası bağlantıları gerçekleştirir. Gerektiğinde değişiklikler için fikir sunar. Günlük tutarak yaptığı işleri yazar veya yapamadığı işlerin nedenlerini sıralar. Yaptığı planları yöneticisi ile paylaşmalı ve fikir almalıdır. Zaten ana servis ayrıntıları ile yazıya dökülmüştür. Kod içinde kullandığı yorum satırları ile kodun kendini anlatabilmesini sağlar. Masasının ve kullandığı cihazların temizliğinden sorumludur. piyasada firmanın yada kendisinin ismini kötü olarak duyuracak davranışlardan kaçınmalıdır. Modül tabanlı geliştirme konusunda bunların örneklerini göreceksiniz. Test için gerekli veriyi hazırlar ve veritabanına yükler. tasarım ve yazılım ekibine aktarılmasında kilit rol oynayacaktır. Her toplantıdan . Yazılım uzmanı üretilen her türlü kodun ve belgenin firma dışına çıkmaması için bilinç sahibi olması gerekir. Her yazılan servisin ve onun kullandığı alt fonksiyonların girdi ve çıktıları. Firmanın kurallarına göre kendini yeni sahalarda geliştirmelidir. Servislerin tek tek testini yapar. 2. Kodlama aşamasında ortaya çıkan ufak fonksiyonlar yorum satırları ile anlaşılacak biçimde detaylandırılır. Gerekiyorsa planlarını buna göre değiştirmelidir. Arıza hallerinde hemen sistem sorumlusunu konudan haberdar eder. Yazılım uzmanı kullandığı cihazlara karşı sorumluluk sahibi olmalıdır. Karmaşık fonksiyonları yada tekrar eden işlemleri bölerek ufak parçalar halinde yazmalıdır. bindikleri dalı kesmemeleri için eğitilmeleri gerekir.19 Proje Ekibinin Oluşturulması Ortaya çıkan modüllerin servislerini yazarak işe başlar. Servisleri kodlamaya başlamadan evvel test verileri ve yöntemi hazır olmalıdır. Belgelendirme işi uzun süreceğinden kod içine yazılacak yorum satırları da yeterli olabilir. bunların biçimleri. Müşteri ile yapılan analiz toplantılarında köprü görevi üstlenecek ve yanlış anlamaları ortadan kaldıracaktır.6 Müşteri Temsilcisi Ürününüzü pazarlayacağınız sektörden yada firmadan atanacak 2 kişi sürekli yazılım geliştirme süreçlerinde bulunacak ve aşamalara yön vererek kaydedecektir. hata durumlarında yarattığı hata mesajları ve kodları ayrıntılı biçimde yazılmalıdır. İşini zamanında bitirebilmek için planlamaya vakit ayırması gerekir. Firma kaynaklarını kötü amaçlarla kullanmamalı. Müşterinin ne istedigini tam olarak. Proje genel planından ve tüm servislerin teslim zamanlarından haberdar olmalıdır.

kullanılan yazılım araçlarının işlevselliği. Modül bazında kayıt edilmesi ve hatanın tam bir açıklaması ile ekran resimlerinin iliştirilmesi gerekir.  Modül testleri . kullanılacak işletim sistemlerinin genel yapıları. Ürün ortaya çıktıktan sonra iş akışı testlerini yapar ve hesaplamaların doğruluğunu kontrol eder. Bunlar:  Servis testleri Modül içinde barınan servislerin tek tek test edilmesi ve bu servislerin giriş ve çıkışları servis belgelerinden kontrol edilerek test edilir. Test ekibi testlere başladıktan sonra ortaya çıkacak hataları bir yerlere kaydetmelidir. Eğer ilk defa bu tür bir işde çalışacaklarsa. Analitik düşünce yapısına sahip olmalı ve problem çözme becerileri bulunmalıdır. Giriş seviyesi UML modelleme konuları öğretilmeli ve analizlerde kullanmaları sağlanmalıdır. Müşteri temsilcileri yaptıkları işi çok iyi bildikleri için kendi işleri ve hizmet sundukları sektörler arasındaki akışı en iyi onlar anlatabilir. Tüm bu verilerin kayıt edileceği bir ortam önceden hazırlanmalı yada satın alınmalıdır. Test ekibine doğrudan yardımcı olur. yazılım nedir ve bu yazılımdan neler bekliyorlar gibi konularda bilgi sahibi olmaları gerekir. Verinin bütünlüğü genel amaçtır ve hesaplamalar ile veritabanı operasyonlarının gerçekleşip gerçekleşmediği tesbit edilmeye çalışılır.7 Test Ekibi Test ekibine geçmeden önce bu ekibin kullanacağı alt yapıdan biraz bahsedelim. Bu belgelerin Tüm proje ekibine ayrım yapmadan dağıtılmasından da sorumludur. Proje başında tasarım ve analiz ekibine. firma içi standartlar ve kurallar hakkında bilgilendirilmelidirler. Mühendis yada yazılımcı olmalarına gerek yoktur. Firmadaki teknik alt yapı ve haberleşme metodları hakkında da bilgi verilmelidir. Bu ortam ileride müşteri sorunlarına çözüm ararken de kullanılacağı için güvenilir. yüksek kapasitede çalışabilecek ve örütbağı izerinden ulaşılabilecek bir ürün olması gerekir. Test ekibinin yapacağı testleri bir kaç sınıfa ayırabiliriz. Ekranların kullanılırlığını ve akışları konusunda genel testler yapar. Tüm sonuçlar. servis belgesindeki tahmin edilen sonuçlar ile karşılaştırılır ve uymayan durumlar tekrar gözden geçirilir. 2. ilişkili veri tabanı mantığı. tartışılan gündemi ve analizleri belgelendirecektir. Hatanın yazılım uzmanı tarafından tekrar edilebilmesi amacı ile kullanılan veride belirtilmelidir. Bilgisayar nedir.Proje Ekibinin Oluşturulması 20 sonra. ortasında yazılım ekibine ve sonunda da test ekibine yardımcı olur.

Müşteri aracı firmayı arayarak hesap bilgilerini ve şifresini doğruladıktan sonra almak istediği hisse senedini belirtir. Dikkat edilmesi gereken konu modüllerin birbirleri ile nasıl çalıştığı ve bir modülün çıktılarının bir diğer modül tarafından nasıl kullanıldığı ve doğru olarak veri akışının gerçekleşip gerçekleşmediği test edilir. Bu tür tetiklemelerin oluşup oluşmadığı test edilir. Bir modülün çıktıları başka bir modülün bir servisini tetikliyor olabilir. Son durumu ekranda gösterir ve personelimiz de bu son durumu telefondaki müşteriye söyler. Bu arada başka bir modül hisse senetlerinin fiyatlarını güncelledi. öncelikle müşteri modülü ile müşteri bilgilerine ulaştık. Tüm ekranları gözünüzde canlandırın. ve hesapları günceller. Analizler sırasında ortaya çıkan senaryo modelleride test amaçlı kullanılabilir. Buraya kadar geçen tüm olaylarda programın nasıl kullanıldığını hayal edin. Personelimiz bu bilgileri de alarak programa girer ve alım için son bir onaydan sonra alım tuşuna basar. Örneğin bir hisse senedi alma işine bakalım.21 Proje Ekibinin Oluşturulması Modüller arası ilişkiler gözden geçirilerek beraber çalışması umulan modüller birlikte test edilir. müşterinin banka hesabından ücreti düşer. Müsteriden iki kişinin teste yön vermesi de gerekebilir. Son olarak ta müşteri hesabını görüntüleyen Muhasebe modülü devreye girdi. Test için gerekli verinin senaryolar halinde hazırlanması ve veritabanı uzmanları tarafından yüklenmesi gerekir.  İş akışı testleri En uzun süren test budur. İş akışlarını çok iyi bilen Müşteri Temsilcileri tüm yazılımı bir bütün olarak ele alıp incelerler. Müşterinin atayacağı iki kişi hem iş akışlarını hemde ne istediklerini bilecekler. Yarım gün calışacak iki görevli testlere farklı bir göz ile bakmayı sağlayacaktır. Senaryoların genişlemesine . Bu tür iş akışları önceden Tasarım ekibi tarafından hazırlanmalıdır ve Servis Testleri sırasında belli parçaları yazılım uzmanları tarafından kullanılmalıdır. Kullanılacak modülleri bir sayalım. Bu arada hattın diğer ucundaki personel. Servis ve Modül testlerinden başarı ile çıkmış modüllerin tüm sistem içinde nasıl davrandıkları ve ilk gerçek hayat testleri bu aşamada yapılır. ayrıca bu kişiler bizim test ekibini de eğiteceklerdir. müşterinin bilgilerine ulaşmış ve alım için gerekli ekranlara girmiştir. Müşteri satın almak istediği hisse senedini ve miktarını belirtir ve alım için gerekli talimatı verir. İşin gerektirdiği biçimde ve Müşteri Temsilcisi tarafından yapılmalıdır. Bundan sonra programımız alımı yapar. daha sonra alım/satım modülünden istenen hisse senedine ulaştık. Müşterinin bankası ile bağlantı kuracak fon transferi modülü de para aktarımını gerçekleştirdi. Bu aşamada veri pek önemli değildir.

Belirsizlikler içinde sürklenmektense bir an önce başka bir firma bulup geçiş yapmanız geleceğiniz için iyi olacaktır. b. rakipleri araştırarak zayıf yönlerini belirlemeli ve ürünün özelliklerini tamamı ile pazarlama ekibine öğretmelidir. Yazılım ekibinin çeşitli konularda sertifikalandırılması ve bu eğitimlerin güncel işlerde kullanılabilecek olmasına dikkat eder. Eğer işe girdiğinizin ikinci günü sizden bir şeyler üretmeniz isteniyorsa anlayın ki firma düzeni pek oturmamıştır ve sizden yapmanız istenen işler de yarın şekil değiştirecektir.Yazılım ekibinin egitilmesi Yazılım ekibi için gerekecek eğitimleri belirleyecek ve alt yapısını hazırlayacaktır. d. . Mezuniyetten sonra hayata atılan iş arkadaşlarıma planlı programlı ve prensipleri olan bir firmada çalışmalarını tavsiye ederim. 2. Bu kişilerin zaman içerisinde belli bir döngüye girip test senaryolarına dar bir görüş açısı ile saplanmamaları için belli zamanlarda farklı kişiler ile değiştirilmeleri gerekir.8 Eğitim Ekibi Eğitim ekibi firma içinde gerekecek her türlü eğitim gereksinimini karşılayacak biçimde olmalıdır. yazılım araçlarından haberdar olmalı ve gerekli eğitimleri tasarım edebilmelidir.Eğitim odalarının hazırlanması Eğitim odalarının düzeni ve kullanılacak bilgisayar ve beyaz tahtaların bakımı konularından sorumludurlar. c.Belgelerin hazırlanması Eğitimler için gerekecek her türlü belge ve program önceden hazırlanmalıdır. Kayıplar yada yeni istekler yönetim kuruluna bildirilmelidir. Eğitim ekibi firma içinde kullanılan ürünlerden. Standart haline gelmiş eğitimler ile yeni firmaya katılanlara verilecek eğitimler kitapçıklar halinde hazır olmalıdır. Eğitim için kullanılacak bilgisayarları ve eğitim belgelerini hazırlamalıdır. Bu ekibin yapacağı işi bir kaç alt başlık altında incelersek: a. Firma içi eğitimler kadar dışarıdan da eğitim almak için gerekli organizasyonu yapar.Pazarlama ekibinin egitilmesi Pazarlama ekibini satışı yapılacak ürün konusunda bilgilendirmeli. Firma içi eğitimler dışında eğer gerekirse uzman eğitim firmalarından destek alması gerekebilir. Tüm ekipman kayıt altında tutulmalı ve her eğitimden sonra kontrol edilmelidir.Proje Ekibinin Oluşturulması 22 yardımcı olacaklardır. Firma ahlakını ve çalışma prensiplerini anlatan eğitimler çok önemlidir.

Reklamların hazırlanması için çalışır. Fuar veya sergi gibi etkinliklerde hem rakipler üzerine araştırma yapar hemde yeni müşteriler bulabilmek için çalışır. Rakiplerin satış fiyatları hakkında bilgi toplar ve tüm bilgiyi karşılaştırmalı tablolar halinde firma içinde yayınlar. Fakat bilinmesi gerekir ki bu tür tartışmalar sadece firmanın kaynaklarını boşa kullanmaktır. 2. Pazarlama ekibi müşteri pazarının belirlenmesi için çalışmalar yapar.23 Proje Ekibinin Oluşturulması e. hangi müşterilere satış yaptıklarını öğrenmeye çalışır. Reklamların hangi dergilerde veya televizyonda hangi saatlerde çıkacağını belirler. ürünlerinde ne gibi özellikler olduğunu. Çalıştığım firmalarda zaman zaman bu konuda tartışmalara tanık oldum. Bir alt proje gibi ele alınıp harcanan kaynak ve zaman planlanmalıdır. Reklam tasarımları için bünyesinde bir grafik tasarımcısı bulundurabilir. Ürünün her majör sürümü ile birlikte eğitim kitaplarıda yenilenmelidir. yeni güncellemeleri ve ekran değişikliklerini eğitim belgelerine yansıtır.9 Pazarlama Ekibi Pazarlama ekibi en az yazılım ekibi kadar önemlidir. Lisans takibi için çalışmalar yaparak hangi müşterinin ne tür lisanslara sahip olduğunu tutar ve yeni lisansların sağlanması için müşteri ile kontak kurar. Medya ile ilişkileri güncel tutmak için bir kaç köşe yazarı ile bağlantısı olması gerekir. Müşteri analizleri yaparak veritabanı oluşturma ve müşteri isteklerini kaydederek tasarım veya yazılım ekibine bildirmesi gerekir. Bu sayede grafik tasarımcısı ürünü nasıl tanıtacağını daha iyi anlar. Satış stratejileri belirlemek için rakiplerin yeni sürümlerinin ne zaman çıkacağı takip edilmelidir. Fuarlarda deneme sürümlerinin dağıtılması ve yeterli eğitim belgesi ile birlikte sunulması için . 30 günlük deneme sürümleri ve akademik lisansların sağlanması ve ürünün mümkün olan en fazla kişi tarafından kullanılmasını sağlamak için çalışır. Hangisinin daha çok gerekli olduğuna değil birbirleri arasındaki haberleşmenin -firmanın geleceği için. Yeni bir sürüm çıktığında köşe yazarları ile bağlantı kurup ürünün reklamının yapılması sağlanır.nasıl olması gerektiğine odaklanmak gerekir. Bu istekler tasarım ve yazılım ekibi tarafından tartışılarak genel sürümlerde uygulanabilirliği ortaya çıkartılmalıdır. Rakiplerin neler yaptıklarını. Sektör ile ilgili medyayı takip eder ve gerekli haberleri arşivleyerek firma içinde dağıtır. Öğrenci lisansı. Potansiyel müşterileri belirleyerek ziyaretlerde bulunur.Ürün eğitimlerinin hazırlanması Üretilen ürünün eğitim kitaplarını hazırlar. Müşteriyi isteği konusunda bilgilendirerek konu ile ilgilenildiğini göstermelidir. Sektörü yakından takip etmek için medya takip ajansları ile çalışabilir.

Proje Ekibinin Oluşturulması 24 gerekli organizasyonu da yapar. güncelleme yapılacağı gün programların çalışmayacağını belirtmek. Böylece müşteriler birbirlerinin bilgilerinden yararlanabilirler. Yapılacak iş projelerin bitim tarihleri ile koordineli olarak tüm mevzuatın düzene sokularak maddeler halinde yazılmasıdır. Gittikçe ilerleyen ve gelişen bu yapı ileride meyvelerini toplayacağınız bir ağacın fidesi olabilir. Ürünün elektronik ve yasal olarak korunması için düzenlemeleri yapar. ürün kurmak gerekiyor mu araştırmak. Değişiklik gerektiren durumlarda tüm bu ortamlar güncellenir ve müşteriler bu değişiklikten haberdar edilir. Yapılacak işler sırası ile:   Güncelleme için planlama yapmak. yazılım dışı. Kurulum işlemlerinin en ince ayrıntısına kadar belgelendirilmesi gerekiyor. Müşterileri uyararak. Firmanın örütbağ sitesi üzerinden gerekli reklamın yapılması ve yeterli belgenin yayınlanması için çalışmayı da yapar.10 Kurulum Yönetimi Ekibi Kurumsal çözümler sunan bir firma yapısına sahip iseniz yada ürünlerinizi sizin kendi sunucularınız üzerinden kullandırıyorsanız. Satış sonrası müşteri memnuniyeti testleri ve ziyaretleri ile sürekli müşteri ile bağlantıda olur ve böylece müşteri kendini yanlız hissetmez. 2. tüm kurulum işlemlerinin ve yeni sürümlerin kontrol altında olması gerekir. Özellikle 3-katmanlı yada n-katmanlı sistemlerde güncellenmesi gereken programlar bir kaç sisteme dağılmış olabilir hatta coğrafik olarak birbirlerinden uzakta bile olabilirler.       Güncelleme için gerekli. Anlaşma metinlerini düzenler ve hem ürün içinde hem de örütbağ sitesinde yayınlanmasını sağlar. BSA ile olan ilişkileri düzenler ve ürünün lisansız kullanılmaması için gerekli tedbirleri alır. Güncellenecek sistemin yedeğini almak. Güncellemeyi yapmak Tekrar yedek almak Yazılım Doğrulama Testi yaparak güncellemenin doğru çalıştığından emin olmak . Müşteriler için etkinlikler organize eder ve müşterilerinde kendi aralarında bağlar yaratır. Bu tür ilişkilerin artması aile gibi bir yapının müşteriler ve firmanız arasında doğmasına yol açar. Güncellenecek programların kurulumlarını hazırlamak ve bu kurulumların nerelerde çalıştırılacağını belirlemek.

2.11 Değişim Ve İsteklerin Yönetimi Projenin her safhasında değişim ve isteklerin yönetilmesi zorunluluğu vardır.25 Proje Ekibinin Oluşturulması  (EK) Eğer YDT sonuçları güncellemenin çalışmadığını gösteriyorsa. tüm alt yapı ve yazılım ile yapılan işi bilmelidir. Üretilen belge yada kod ilk majör sürüm numarasını aldığında o parça artık Değişim ve İstekler Yönetimi altındadır. Fakat bu işleri yöneten kişinin bunların takibini yapması zorunludur. Bu iş için ayrılacak elemanlar özel olarak seçilmeli. Yazılımınız olgunlaşmaya başladıkça pilot sistem var olan sistemin yerini almaya başlar. Tüm operasyonlara cevap verecek düzeye geldiğinde ise artık tamamı ile sizin yazılımınız işi ele almış olacaktır. Bu iş için bir kişi ayrılması şarttır. Noktanın sol tarafı 1 olduğu zaman artık ilk sürüm verilmiş demektir. Değişimden etkilenen her proje parçası ortaya çıkartılarak maliyet araştırılır. var olan sistem üzerine değil. problem anlarında kontak kuracakları kişileri bilmeli. bir Excel belgesi yada bir MS Project belges olabilir. Belki her masada iki kişi ve iki bilgisayar (biri sizin diğeri pilot firmanın) olacaktır ama ilk aşama için bu gereklidir. Önemli olan tüm tarih ve saatlerin en ince ayrıntısına kadar yazılmasıdır. Yazılım ekibinden bir kişi olası bir sorun durumunda bağlantı kurulması amacı ile destek hizmeti verir. . yedekleri geri yükleyerek sistemi bir önceki konumuna getirmek. Eğer çok fazla maliyetli bir değişim ise bir sonraki sürüme bırakılabilir. İstenen her türlü değişiklik ve istek bir toplantı yapılarak karara bağlanır.12 Pilot Firma Ürününüz belli bir seviyeye geldikten sonra bir pilot firma seçip yazılımı buraya kurmak ve iş akışı içindeki davranışlarını görmek yapılacak en iyi testlerden biridir. 2. Her çıkacak hata veya değişiklik istemi iyi bir hata takip programı ile firmaya aktarılmalı ve çözümler hızlı ve ayrıntılı biçimde bulunmalıdır. Değişim ve istekleri yönetecek kişi üretilen her türlü belge ve yazılım parçasından sorumludur. stres ve baskı altında rahatça ve soğukkanlı kalabilmeli. Ortaya çıkan ve testleri bitmiş modüllerin bu şekilde test edilmesi size ve ürününüze çok yararlı olur. Majör numaradan kastımız 1. yedek bir sistem üzerine kurulmalıdır. Bu ana maddeler ışığında tüm adımların en ince ayrıntısına kadar detaylandırılması ve bağlantı kurulacak kişilerin telefon numaraları bir belge halinde projede görev alan herkese ulaştırılmalıdır. Oluşturulacak belge bir akış şeması.0’dır. Kurulacak bilgisayarlar ve yazılımlar. Bu iş için atanacak kişiler ve kurulacak sistem önceden belirlenmeli ve pilot firmanın iş akışını aksatmayacak biçimde derlenmelidir.

Bu tür bir kuruluş keşfettiğinizde bir maliyet analizi yapıp karşı dava açarsanız zararınızın ne olacağını ve ne elde edeceğinizi iyi tartmanız gerek. sadece kayıtlı müşterilerin girdiği forum siteleri gibi tüm yardım araçlarını çok iyi kullanabilmelisiniz. onları korumak için daha fazla çaba gösterecektir. Kullandıkları makinelere ne kadar harcandığını bilen bilinçli kullanıcılar. Şeffaf muhasebe ile belirli bir bilinç seviyesine gelen çalışanlar. yardım siteleri. Bir an önce lisanslama yoluna gitmeniz gerekir. Birde maliyeti çok gibi görünse de bu tür kaçak yazılım kullanan bir kuruluşu reklam ve caydırma aracı olarak kullanabilirsiniz. 2.13 Şeffaf Muhasebe Firma içinde yapılan tüm harcamaların ve gelirlerin şeffaf bir biçimde çalışanların görmesini sağlayarak belli bir oranda bilinç oluşturabilirsiniz. çalıştıkları firmanın daha uzun ömürlü olması için ellerinden geleni yapmalıdırlar. Firma çalışanlarından gelecek tavsiyeler ile harcamalarda daha hesaplı davranılabilir. Ülkemizde bu konu hakkında çalışma yapan BSA (Business Software Alliance) lisanssız kullanım için oldukça ağır cezaların uygulanmasına öncülük etmektedir. üründe hemen hemen hazır.14. Ayrıca yazdığınız ürünün başkaları tarafından lisanssız kulanılmasını önlemek amaçlı olarak ispiyoncuların size rahatça ulaşabilmesi için bir ortam hazırlamanız ve avukatlarınızın bu konularda deneyimli olması gerekir.Proje Ekibinin Oluşturulması 26 2. Maliyet bilinci ile çalışan kişi daha dikkatli bir biçimde çalışır. Öte yanda ne yaparsanız yapın bir yerlerde birileri sizin el emeği göz nuru programınızı lisanssız olarak kullanacaktır. Bu gibi durumlarda yazdığınız ürünü satmanız mümkün değil. Şeffaf muhasebenin miktarını size bırakıyorum. 2. Eğer saklamayı arzu ettiğiniz harcamalar varsa bunları neden sakladığınızı bir kez daha düşünüp harcamayı o şekilde yapın. Bir yardıma ihtiyacınız olduğunda acil aranması gereken telefon numaraları.1 Lisanssız Yazılım Kullanımı Firmanızı kurdunuz. Astarı yüzünden daha pahallıya gelmesin yani. Firma çalışanlarının firmaya maddi zarar verecek davranışlardan da kaçınması gerekir. müşteriler sırada bekliyor fakat ne kullandığınız yazılım araçları nede işletim sistemleri lisanslı değil.14. Firma içinden .14 Yapılan Yanlışlar 2.2 Yeterli Yardım Ve Desteği Alamama Kullandığınız yazılım araçlarının üreticisi ile olan ilişkileriniz çok sıkı ve akışkan olmalı. Mutfak ve tuvaletler için yapılan harcamalar da dahil olmak üzere her harcama herkesin rahatlıkla ulaşabileceği bir yerde olmalıdır. Ayrıca bu harcama bilgisinin firma dışına çıkmaması için gerekli eğitiminde çalışanlara verilmesi gerekir.

yazılım uzmanlarınızın da güncellenmesi gerekir. Tuvaletlerin temizliği.4 Firma İçi Ahlakın Öğrenilememesi Firma içi giyim kuşam. En fazla para harcayacağınız yer uzmanlarınız olduğuna göre bu konularda ciddi çalışma yapılması gerekir. Oluşturulacak güncel bir kütüphane ile her zaman güncel bilgiye ulaşmaları sağlanmalı. hareket ve davranışların belli bir düzene sokulması amacı ile ceşitli standartlara gidilebilir. Sorunlar kısa zamanda giderilmezse diğer çalışanlar rahatsız olur ve işten ayrılmalara kadar gidebilir. Ayrıca eğer kontaklar yurt dışında ise.27 Proje Ekibinin Oluşturulması atanacak bir kişi tüm bu bağlantıları sağlayacak ve bilginin akışkan olarak firmanıza akmasına yardımcı olacaktır. yazılan programların yeterli belgeleri bulunmaz. Birde bu işlere bakan kişinin 6 ay sonra işden çıktığını düşünün. Mükemmel çalışıyordur belki ama müşterinin isteğini yerine getirmiyorsa ne işe yarar ki. yabancı dili iyi olan bir kişi bu işleri yürütmelidir. Projeleriniz zamanında yetişmez. Bu sayede tekrar eden hatalar zaman kaybetmeden çözüme kavuşturulabilir. buna dikkat etmek lazım. Yeni gelen kişinin olayı anlaması ve destek konularını ayağa kaldırması gene bir 6 ay alacaktır.3 Eğitimsiz Yazılım Uzmanları Nasıl bilgisayar sisteminizi ve programlarınızı güncelliyorsanız. Eğer kendi içinizde halletmeye karar verirseniz. Bu tür kuralları öğrenemeyen firma çalışanı sorun yaratmaya başlar. sanal belgeler ile de sürekli desteklenmelidir.14. Bu yapıyı da oluşturmak seneler alabilir. 2. Kullanıcıların bulduğu çözümler daha gerçek hayata yakın ve uygulaması kolaydır. Üretici firmalar dışında özel e-mektup listeleri de yardım almak için yararlı olabilir. Müşteri ile yüz yüze olmayan yazılım uzmanlarının takım elbise giymesi gerekmez ama müşteri toplantılarında veya analiz toplantılarında takım elbise şart koşulabilir. Yeterli desteği alamıyor iseniz kendi içinizde bu problemleri çözmeniz gerekir. 2. Eğitimsiz bir Yazılım Uzmanı firmanıza çok büyük zararlar verebilir. Sonuçta ortaya çıkan ürün de müşterinin isteği ile ilgisi olmayan bir ürüne dönüşür. İyi elemanlarınızı sebepsiz yere . tüm işlemlerin çok net bir biçimde belgelendirilmesine özen gösterilmelidir ve tekrar eden işlerin kısa programcıklar ile otomatize edilmesi bazı işleri kolaylaştıracaktır.14. mutfağın ve banyonun kullanımı belli standartlar ve hijyenik kurallar içerisinde olması gerekir. kayıt dışı pek çok rutin program veya iki kere yazılmış pek çok fonksiyon ile ürününüz şişebilir. yazılım ekibine yeterli eğitim verilmeli ve bilgi seviyelerinin aynı olması sağlanmalıdır. Yardım alınacak tüm yollar ve yöntemleri yazılmalı ve genel bir hata veritabanı oluşturulmalıdır. Fakat üretici firmanın desteklemediği bir çözüm olabilir. Bazen üretici firmadan da daha iyi olabiliyor bu listeler.Yeni bir aracın veya dilin firmanız içinde uygulanmaya başlanmasından evvel.

Tüm plan ve bilgi eşit biçimde paylaşılmalıdır.6 Bütün İşin Herkes Tarafından Bilinmemesi Bir projeye başlandığında. Yazılım ekibi kendi işini. Analiz ve yazılım ekiplerinin dönüşümlü olarak bu firmada çalışması ve işleyişi tam olarak kavramaları. 2. Ekibin bilgisi aynı seviyede tutulmalı ve yazılan programların aslında ne gibi işlere yaradığını gerçek hayatta görülmesi ve kavranması gerekir.14. Ekipten gelecek yorumlar dikkate alınıp hedef zamanlarının tekrardan belirlenmesi gerekebilir. İş kurallarını ve temel işleyişleri en hızlı bu biçimde öğrenir.5 Lidersizlik Proje liderine çok fazla iş verilmesi yada başka bir projeye atanması sonucu.7 Yetersiz Haberleşme Ve Bilgi Akışı Firmanızda. Aksi takdirde hedefsizlikten doğacak çok büyük gecikmelere maruz kalabiliriz. Bu gibi durumlarda proje liderine başka işler verip projeyi yürütmesi için başka bir lider arayışına girmeniz gerekir. proje içinden bir kişi belirlenir ve işlerin normal yürümesi temin edilir. 2. Performans kriterleri ve varılması gereken hedefler çok açık ve net bir biçimde herkesin görebileceği gibi yayınlanmalıdır. Böylece yazılım üretilirken ortaya çıkan parçaların işin hangi aşamasında kullanılacağı daha rahat hayal edilir. Ancak bu şekilde herkesin firmaya olan güveni sağlamlaştırılır ve ortak çıkarlar için birlikte çalışılır. proje ile ilgili her türlü bilgi en ufak birimlere kadar aktarılmalıdır.14. Her yazılım uzmanı. ekibin başıboş kalması ve kontrol edici mekanizmanın iyi çalışmaması nedeni ile projenin aksamasına neden olur. iş kurallarını öğrenmeleri. Fakat pazarlama ekibinin bu gidişattan haberi yoktur ve modül hakkında pazarlama için gerekli stratejik bilgiyi zamanında öğrenemez. iş içinde geçen terimleri ve müşterinin psikolojisini iyice kavramaları gerekir. Yanlış belirlenmiş hedeflerde problem yaratabilir. yonetim kendi işini yaparken.14. Örneğin ayakkabı tabanı üreten bir firmaya proje yapıyorsunuz. ortaya çıkan sonuçların her kes tarafından paylaşılması gerekir. Bir kaç örnek verelim: Yazılım ekibi günler geceler boyu ürünün bir modülünü ortaya çıkarır ve testlerine başlanır. 2. işin iyi kavranabilmesi için sektörde en az 1 hafta çalışmalı ve işi kaynağında öğrenmelidir. Ayrıca proje planının herkesin görebileceği bir duvara asılarak yayınlanması gerekir. pazarlama ekibi kendi işini. Bu gibi durumlarda liderin yerine geçici olarak geçecek. Böylece ne kadar yol alındığı her kes tarafından görülür. Sorun çıkaran kişi proje lideri de olabilir.Proje Ekibinin Oluşturulması 28 kaybetmeye başlarsınız ve proje için pek iyi olmaz. yukarda anlattıgım bölümler arasında haberleşme ve bilgi alış verişi cok iyi olmalıdır. İkinci modülde ortaya çıkar ve testleri başlar ama pazarlama ekibinin daha .

ağ. . Her türlü eğitim belgeside bu sistem içerisinde olmalıdır. Sayısal olanlar için yeterli arama mekanizmaları geliştirilmiş olmalıdır. kalitesiz kablolama.  Yazılım altyapısı Ürününüzü geliştirmek için kullandığınız tüm ürünler ile yazılım süreci ile doğrudan bağlantısı olmayan tüm yazılımların bulunduğu yazılım kütüphanesidir.  Bilgi altyapısı Firmanın tüm bilgi alma kaynaklarıdır. donanım. iç-örütbağ gibi firmanın bel kemiğini ve haberleşme araçlarını içeren sistemlerdir.8 Yetersiz Alt Yapı Bir projeye başlarken. Altyapı konusunda dikkat etmemiz gereken hususlar:  Teknik altyapı Bilgisayar sistemleri. Sonuçta ortaya çıkan ürün müşterinin isteğine uymayan bir ürün olacaktır. Firma bölümleri aynı dili konuşuyor olmalıdır. Temeliniz ne kadar sağlam olursa üstüne çıkacağınız bina o kadar sağlam ve çok katlı olur. Araç yazılım ekibine verilerek bu ürün ile bir şeyler ortaya çıkarması istenir. 2. ikinci el monitörler gibi kalitesi düşük cihazlara yapacağınız harcamalar ile 3 yada 5 kat artmaktadır. iç-örütbağındaki sayısal kütüphane gibi kolay ulaşılabilecek bir yapısı olmalıdır.29 Proje Ekibinin Oluşturulması birinci modülden yeni haberi olmuştur ve ögrenilecek şeylerin sayısı artmıştır. Yazılım ve tasarım ekibi birbirinden kopuktur ve programlama süreci başladıktan sonra müşteriden gelen istekler doğru biçimde yazılım ekibine aktarılamaz. üstüne yapacağımız projeler zamanında ve tam olarak teslim edilir. Yönetim yeni bir programlama aracı için karar verir ve kimseye söylemeden aracı alır. Fiziksel bir kütüphane. Hakkında yeterli araştırma yapılmadığı ve yazılım ekibine danışılmadığı için ürünün kapasitesi tam olarak kullanılamaz ve anlaşılamaz. Yetersiz bilgiye sahip yazılım uzmanlarınıda bu kategoriye sokabiliriz. Planlarda gecikme olur ve zaman daraldığı için Pazarlama ekibinin modüller hakkındaki bilgi kalitesi düşer. örütbağ. yada bir yazılım firması kurmaya karar verdiğinizde aldığınız risk seçeceğiniz ucuz ve yavaş bilgisayar sistemleri. Eğer alt yapıya gereken önemi verirsek. Bunun içinde herkesin UML mantığını kavraması ve kullanması gerekmektedir.14.

2. veritabanı modeli gibi proje içerisinde üretilen her parçanın bir belgesi olmalıdır. yazılım ekibinden ayrılmalar olduğunda projenizden bir bilgi birikimi ayrılmış olur. kısa zamanda bu bilgi başka bir çalışana aktarılabilir ve proje normal olarak devam edebilir. günde 1 saat ayırarak belgelendirme ile ilgili bilgiyi bu ekibe geçirmeleri gerekir.14.10 Yazılım Ekibinden Kopmalar Yönetimde yapılan yanlışlıklar nedeni ile yada tamamen kişisel sorunlardan dolayı. Eğer standart belgeleme iyi bir seviyede uygulanırsa. Bu bilgi birikimini yerine koymak ise zaman zaman oldukça zor olmaktadır. Ayrılan kişininde bir süre daha devam edip bilgisini başka birisine aktarabilir. Yeterli belgeleme yapılmış bir firmada çok fazla sıkıntıya girmeden. Gruba yeni katılacak kişiler ancak bu belgeler sayesinde her şeyi öğrenebilir. Eğer yetersiz belge gibi bir sorununuz varsa. Yazılan kodların. Yanlış kısımların değiştirilmesi ve zamanı dolan ve artık kullanılmayan bilgi kaynaklarının ise sistemlerden kaldırılması gerekir. 2.Proje Ekibinin Oluşturulması 30 Tüm bu altyapıların yeri geldikçe güncellenmesi ve yedeklenmesi gerekir. ekipten kopmalar bir sorun olmaktan çıkabilir. Eğer yazılım uzmanlarının zamanı yoksa. yapılan analizlerin. senaryoların. .9 Yetersiz Belgeleme Yazılım uzmanları olarak belge yazmayı sevmesekte bu işin yapılması gerekmektedir.14. acilen bir ekip toparlayıp belgeleri tamamlamaya bakmanız gerek.

1 Çözüm Çokmu Zor? Belki düşüneceksiniz . Bütün bu gayri resmi işlemlerin sonucunda devletin kaybettiği vergi. Peki soruyorum bir maliye denetçisi/müfettişi bu programların hepsini en ince ayrıntısına kadar biliyor ve denetliyor mu? Yada bir firma denetlenmeye alındığında kullandıkları veritabanları ve programları en kıyıda köşede kalmış inceliklerine kadar denetleniyor mu? Bu programlar maliye tarafından onaylanmış. 3. .1 Ütopyalarım. önce bu konudan mı başlanır.diye. firmanın kaçırdığı faturası bile olmayan kazançlar.halledilmesi gereken bir sürü başka konu varken. Umarım işinize yarar. haksız elde edilmiş pek çok gelir. -Şimdi herkes olur mu öyle şey diyecek ama.yada -adam sende.analystdeveloper. bu yüzsüzlük yetmezmiş gibi bir de bunların gizli şifreler ile korunmasını ve maliye müfettişleri geldiğinde o bölümlerin görünmemesini istiyorlar. Bu firmalar yazdıkları programlarda bir firmanın ihtiyacını karşılayacak muhasebe işlemleri ile hiç bir yerde doğru dürüst uygulanmayan personel yönetimi konularında yazılım çözümleri sunuyorlar.com adresindeki Türkçe blogumda yayınladığım ve bu kitaba uygun konulardaki yazılarımı kopyaladım. 5 kere satmalar. lisans verilmiş programlar mıdır? Yada böyle bir uygulama var mıdır? Başka bir konuda müşterilerin program satın aldıkları bilgisayar firmalarından istekleri.1. bir malı 3. Zaten şu anda piyasadaki tüm muhasebe programları veya özel sektör için yazılmış pek çok paket programda alavere dalaverenin binbir türlüsü. SSK’lı çalışanları ayda sadece 15 iş günü çalışıyor göstermek gibi daha akla gelebilecek binbir türlü şeytana pabucunu ters giydirme oyunu.31 Blogdan Seçmeler 3 Blogdan Seçmeler Aşağıdaki bölümde www. 3. acaba bizlerden yani birey olarak her vatandaştan bir şeyler koparıp götürmüyor mu? Üstüne üstlük maliye müfettişleri tarafından tesadüfen! ortaya çıkartılan bu işlemler sonucu firmanın zarar görmesi ve sicilinde kara bir lekenin bulunması da cabası.bu müşteriler ne kadar gayri resmi yol varsa aldıkları paket programlarda bunları uygulamak ve kayıtlarını tutmak. SSK’ya tam olarak ödenmeyen primler sonucu emekli olduğunuzda alacağınız maaşın azlığı. SSK ödemelerinin en düşük ücretlerden görünmesini sağlamak. tonla yazılım firması yazmış muhasebe paketi şimdi onların ekmeğine taş mı koyacağız. faturasız çalışmalar. Gerekirse koyacağız! Müşterinin yüzsüzleşmesini ve tavizler verilmesini önlememiz lazım. muhasebe hesaplarının resmi-gayri resmi olarak ikiye ayrılması. Aşkım ve Ben Ülkemizde tonlarca Muhasebe ve Personel Yönetim programı yazan firma var.

100 kişilik daha önce muhasebe ve personel yönetim paketi yazmış. vezirlerden bazıları hemen sazan gibi atlayıp gitmeyelim yüce devletlüüüüm derler kimileri de gidelim tabi ne olacak der.1. Defter Basımı vs gibi modüller. Analizler tamamen ayrıntılı Modül Tabanlı Geliştirme (MTG/CBD Component Based Development) CBD Head Quarter kurallarına göre yapılacak. Ekip. karar veremez tarzda bir soru sorar. -Ama olur mu X firmasının muhasebe paketinde var bu olay. refah seviyesini arttırmış olacaktır. gözüm görmesin. Bu işin T. Tarzında Erdener Abi muhabbetleri çekeceğiz belki ama. eğer tüm firmalar belli kurallara uyarsa eminim bir kaç sene içinde taviz alamadığını gören müşteri bu üç kağıtlardan vaz geçecek ve doğru neymiş vicdanının sesiyle karar verdiğinde hem kendisi hemde vergi gelirlerini sosyal hizmetler için kullanan devlet. Hareketler. -Yıkıl. test ekibi oluşturacak. Gitmeyelim diyenlerin boynu vurulur ve savaşa gidilir. kendi içinde bölümlere ayrılarak yazılacak modülleri belirleyecek Örneğin muhasebe için olacak ufak modüller: Hesap planı. 10 kişilik yüksek matematik bilgisine sahip uzman.10 kişilik matematik ekibi . Şimdi gelelim çözüm önerisine.. Maliye Bakanlığı eli ile yapılması gerekir. Misler gibi kaçırıyoruz vergiyi. Bilirsiniz. 100 kişilikte gene muhasebe ve personel bordro modüllerini kullanmış. Maliye Bakanlığı:     30 kişilik usta mali müşavir/muhasebeci/müfettiş/personel bordro işlerinden anlayan bir analiz ekibi.Blogdan Seçmeler 32 -Yok kardeşim bizim paketimizde gayri resmi satışlarını tutacak bir yapı yok yapmayı da düşünmüyoruz. Bu 30 kişilik uzman takım bir muhasebe/personel bordro programı nasıl olmalı. tüm ayrıntıları ile oturup bir analiz yapacaklar. yazılım firmalarında çalışmış.C.2 Nedir Benim Önerim? Bu yazımdan sonra gelecek yorumları merakla bekliyorum. Tabii ben sadece Muhasebe ve Personel Bordro üzerinde durdum ama bu modüller çoğatılabilir. 3. Hiç bir gayri resmi işleme izin verilmeyecek. muhasebe ve personel yönetiminden anlayan programcı. padişahlardan biri vezirlerine savaşa gidelim mi gitmeyelim mi. piyasadaki programlarda tecrübeli..

30 kişilik uzman takım ve 10 kişilik matematik takımı ile koordineli çalışacaklar. Security Clearance). arayüzleri açıklayıcı bir döküman ile birlikte verilecek. Daha sonra bu kişiler yakın takibe alınacak. önünü görebilmesi için gerekli analiz raporlarını hazırlayacak. Devlet tarafından yazılacak bu modüller tamamı ile ücretsiz verilecek ve her yazılım firmasının bu modülleri kullanması teşvik edilecek veya zorlanacak. Her aday için atanacak bir MİT görevlisi. Personel Bordro modüllerinde tüm bilgiler SSK veritabanında tutulacak ama Muhasebe tarafı firma içinde bulunabilir.) Programın kaynak kodu sadece 100 kişilik uzman programcı takım içerisinde olacak ve hiç bir şekilde firmalara verilmeyecek. Bu iş için MİT’ten yardım alınabilir. güvenilir olduğunu. Bkz. Tek bir muhasebe paketi olduğundan maliye . Programı kullanacak firmanın. Sadece yazılan modüller. adayın yakın çevresindeki herkes ile görüşmeler yapacak. MTG yapısında programlanan bu programlar belli arayüzleri sayesinde herhangi bir ticari paket programa tak-çalıştır yöntemi ile entegre olabilecek. çeşitli anket formları doldurtulacak ve mümkün olan en fazla bilginin elde edilmesi sağlanacak. Bu rapor kişinin yüksek derecede sır tutabileceğini. Tüm bu işlemlerin sonucunda MİT bünyesindeki psikologlar ve İnsan Uzmanları ile (eminim vardır) toplanan bilgiler tartışılacak ve kişiye bir rapor verilecek. arkadaşları ile ilişkilerine varıncaya kadar irdelenmesi gerekiyor.100 kişilik test ekibi MTG kurallarına göre test yapacaklar ve programların doğruluğunu ortaya koyacaklar. 100 kişilik programcı ekibi de oturup bu programı geliştirecekler. Güvenilirliği nasıl kanıtlanacak? Öncelikle gelen başvurular değerlendirilerek içlerinden yukarıdaki şartlara uygun olanlar seçilecek. çalışanların banka hesaplarına otomatik ödenecek ve şirket muhasebe kayıtlarında otomatik olarak muhasebeleştirilecek. 3 yada 4 ay boyunca hem kişinin geçmiş sicil kayıtları hemde yaşam tarzından tutunda.33 Blogdan Seçmeler programların ürettiği sonuçları matematiksel olarak ele alıp doğru sonuçların ortaya çıkıp çıkmadığını kontrol edecek. Maaş ödemeleri otomatik olabilecek. (kahkahaları duyar gibiyim. (Tamam biraz sert oldu ama çıkar çevrelerinin cepleri boşalmaya başladığında ne kadar çatlak ses varsa su üstüne çıkacağından emin olun. Firmaların SSK ödediği çalışanları hiç bir şekilde kredi kartı sahibi olamayacak onun yerine hesabındaki parayı özgürce harcayabileceği bir kartı olacak (Debit Visa). Bankalar ve SSK/Bağkur veritabanları ile ilişkili programlar olacak. Bu kişilerin özellikleri neler olacak? Bu projeye seçilen kişiler özel güvenlik taramalarından sonra seçilecek. SSK/Bağkur prim ödemeleri direk banka hesabından SSK yada Bağkur’a yapılabilecek. gülmeyin bu işler yabancı ülkelerde böyle dönüyor. yüksek güvenlik gerektiren işlerde çalışabileceğini onaylayan bir rapor olacak. Çalışan hesabına yatan maaşını internetten zaten kontrol edebiliyor.

Sağlık ocağı konusu ise şöyle halledilebilir. muhtarlık.Blogdan Seçmeler 34 müfettişlerinin işi oldukça kolaylaşacak. Bence sırf İstanbul’da kullanılsa ve %50 civarında bir kaçak önlense. Ondan sonrada devletin kaçakları önlemedeki bu başarısı kâr yapmaya başlar. İleriye dönük ve uzun vadede kâr yapacak bir proje fakat bir yerlerden başlamak lazım. Vergi kaçırma ortadan kalkmış. Çeşitli alt ve üst limitleri aşan firmalar anında olaya müdahale ile ortaya çıkabilecek.Yazılan programlar ücretsiz verileceğinden gelir yokmuş gibi görünüyor fakat modüllerin ortaya çıkması ve kullanılmaya başlanması ile ülkenin kazanacağı geliri bir düşünün. gayri resmi tüm işlemler yok edilmiş. bu iki pakete harcanan kaynak ve zaman ile daha başka işlerde çok daha başarılı olunabilir. Aslında bu Sağlık Ocağı ayrı bir proje olarak ele alınması gerekir fakat SSK tarafında yapılacak ufak değişikliklerle bu kayıtlar SSK’da tutulabilir. . İşe giriş çıkış gibi işlemler on-line olacağından ve SSK ödemeleri tam olarak yapılacağından hem devlet hemde sosyal güvenlik açısından bize yarar sağlayacaktır. çözümler sunulabilecek. Tabii bu arada geliştirme yapılacak ortamın tasarlanması. SSK ödemeleri tam olarak yapılıyor. İşe girişlerde evrak yetersizliğinden dolayı SSK’ya geç kayıt olma ortadan kalkacak. yazılan programların tüm maliyetleri 2 sene içinde amorti edilir. Böylece Sağlık ocağı veritabanlarında her zaman güncel bir sağlık raporunuz olacak. Zaten Mernis Projesi ile başlayan vatandaşlık numarası gibi olaylar bu tür alt yapılara hazırdır. Günlük politikalarla ve yönetimlerle bu işlerin olmadığı aşikâr. Kontrol mekanizmaları için kurulacak maliye müfettişleri takımı bu modülleri en ince ayrıntısına kadar bilecek ve bir firma göz altına alındığında gerekli raporlar çok hızlı bir biçimde ortaya çıkacak. bilgisayar alt yapısının sağlıklı ve yeterli olması gerekiyor. Yada her firma on-line olarak denetlenebilecek. İşe giriş çıkışlarda sadece yanınızda taşıdığınız bar-kodlu. çipli veya manyetik kodlu SSK kartınızı Muhasebe bölümüne vermeniz yetecek. nedenleri araştırılıp. 10 kişilik matematik ekibi burada da devreye giriyor. Geriye kalan tüm evrakların hepsi on-line olarak (ya şu on-line kelimesine türkçe bir karşılık bulmak gerek) bulunacak ve tekrar adliye. Yazılım firmaları muhasebe ve personel bordro paketleri ile uğraşmayacağı için başka konularda kendilerini daha çok geliştirebilir. gibi makamlar boş yere meşgul edilmeyecek. Sağlık ocağından alınan belgenin süresi altı aydır ve her altı ayda bir sağlık ocağına gidilip kontrolden geçmek gerekiyor. sağlık ocağı. daha sağlıklı ve düzgün bir işleyiş ortamı sunulacak. MTG alt yapısına uygun araçların seçilmesi.

geribildirim ve cesaret değerlerinden oluşur. Daha bunun gibi pek çok yasa çıkarıldığı gün uygulamaya konulabilir. Modelleme.2 Agile Modelleme Değerleri Çevik Modelleme Scott W. başka kişilerin fikirlerini daha rahat anlamanıza ve en sonunda genel olarak tüm iş hakkında genel bir kanı oluşmasına neden olur. Yazılımcılar yazacakları sistemin prototipini müşteriye sunarlar ama müşteri onun prototip olduğundan haberdar değildir ve gerçek sistemin hazır olduğunu zanneder. Ambler tarafından Extreme Programming değerleri göz önüne alınarak geliştirilmiş ve içine “alçakgönüllüğün” eklenmesi ile son halini almıştır. Her iki tarafta bilgi sunar ve kazanır. Şimdi bu değerlere bir göz atalım: 3.1 İletişim Projede yer alan herkes arasında çok iyi bir iletişim olmalıdır. pek çok iş kuralından oluşan karmaşik bir iş yapısını anlatırken sizin mantığı anlatan bir veri akışı şeması çizmeniz. 3. Siz buna uçmak diyorsanız bide benim öteki projelerimi dinleyin. Örneğin Nema uygulaması kalktığında. . kendi fikirlerinizin daha rahat anlaşılmasına. Başarılı yazılım geliştirme'nin birinci gerekliliği budur. bir yazılım uzmanı kendi yazdığı bölümün henüz tam olarak bitmediğini iş arkadaşlarına söylememesi başka bir yazılım uzmanının bu problemi ortaya çıkartmak için ekstra zaman harcamasına neden olabilir. Extreme Programming değerleri iletişim. işlemi anlamınızı kolaylaştıracaktır. Örneğin. hareket veya sembollerle bilgi alışverişi yapılan genel sistemin adıdır. Müşteriniz. basitlik. İletişim. İletişim iki yollu bir sistemdir. Fena uçtum değil mi? Aslında hiç de değil.35 Blogdan Seçmeler Personel Bordro modülünde devlet tarafından yapılan yasa değişiklikleri sonucu değişen kurallar hemen uygulanabilecektir. konu hakkında beş dakikada cizeceğiniz bir model.2. Genellikle. Durup düşündüğünüzde modelleme işleminin aslında iletişimi arttırmak ve geliştirmek için yaptığımızı görürüz. sözlükte yazdığı kadarı ile kişiler arası belli işaret. Çevik Modelleme yazılım geliştirme açısından uyulması gereken kuralları ortaya koyar ve destekler. İletişimde aksamalar ortaya çıktığında problemler de ortaya çıkar. yasanın çıktığı gün herkesin bu yasayı uygulaması sağlanabilir. o konu hakkında 5 saat okumaktan veya tartışmaktan cok daha fazla sey öğretecektir.

yazılım geliştirme işini zorlaştırdığını görürsünüz.2 Basitlik Pek çok yazılım kitabı basitlikten söz eder fakat içerisinde geçen konulara ve metodlara baktığınızda. en ucuz çözümü sunmak hedefimiz olmalıdır. Öncelikle müşterinizin kaynaklarını. Projenizi. hızlı ve kullanılabilir bir fonksiyonellik sunmadığınız için riske atıyorsunuz. Yarının problemlerini yarın çözmeliyiz.2. hayat sigortalarını destekleyebilmesi için belkide sadece bir günlük bir modelleme gerekiyor. Gelecekte kullanılacak bölümler için fazladan modelleme/kodlama yapmak: Şu anda üzerinde calıştıgınız bankacılık sisteminin. Genellikle yapılan yanlışlar şunlardır. müşteri de ne istediğini daha net görecek. yarın yeni bir fonksiyon eklemeye kalktığımızda elimizdeki sistem çok basit olacaktır. Eger bugünden en basit çözüm üzerinde çalışırsak. Neden yapmayalimki? Evet. olabilecek en basit. Karmaşık yapıları erken uygulamak: İhtiyaç olmadan modellenen karmaşık yapılar. Müşteriniz sizden bazı işlerini kolayca yapabileceği bir sistem istiyor fakat sizin ilk verdiğiniz şey hata-yakalama alt yapısı. 3. Testi yapan kişilerden sonuçları doğru . Ayrıca hatayakalama gibi alt-sistemleri projenin gidişatı içerisinde zamanla da geliştirebilirsiniz. Amaç bu parçalar lazım olduğunda elimizin altında olmasıdır. bu sistemi modellemek oldukça zevkli olacaktır fakat yazılımınızı bugün olduğundan daha karmaşik bir yapıya sokmayacak mı?Yada yazılım uzmanlarınız gelecekte olacak değişikliklere cevap verebilmek veya her isteğe cevap verebilecek en iyi yazılımı yapma egosu ile çok fazla modelleme ve kodlama yapma eğiliminde olabilirler. Fakat bu amacın ciddi zararları vardır. hayati önem taşıyan modüllerle ve en az hata ile ortaya çıkmalısınız. Müşterinize vereceğiniz ilk sürümde. yazılım uzmanlarının fazla mesai yapmalarına neden olur.2. sınıf kütüphaneleri ve iskelet yapılardır. belkide karmaşik bir modülü programlamaktan kurtulacaksınız.3 Geribildirim Yaptığınız işin doğru olup olmadığını anlamanın tek yolu farklı kişilerin geliştirdiğiniz sistem üstünde test yapmaları ve sonuçları paylaşmanızdır (geribildirim). onlara elle tutulur bir ilk sürüm vermeden harcamış oluyorsunuz.Blogdan Seçmeler 36 3. Gereklilikler ortaya çıktıkça. Karmaşık altyapılar geliştirmek: Proje ekiplerinin yaptığı genel hata ilk aşamada gelecekte kullanmak üzere geliştirdikleri modüller. en verimli. Karmaşık yapıların yavaş yavaş sindirilerek ve parçalara bölünerek modellenmesi ve en gerekli kısmının ilk olarak yazılması gerekir. Sadece ihtiyacınız gerçekten ortaya çıktığında. Müşteri isteklerini anlayarak.

Kabul testlerinden sonra geribildirim bir kaç hafta yada ay içerisinde gelir. Yada kağıt üzerinde mükemmel görünen modelin kodlanması ve ilk sürümden sonra gelecek geribildirimlerin işlenmesi de metod olarak düşünülebilir.4 Cesaret Arkanıza rahatça yaslanıp genel durumu kabul etmek ve bir şeyleri geliştirmeyi. Tek başına yapmak tehlikelidir. Modelin uygulanması. Gereksinim modelleri son-kullanıcı ile beraber yapılmalı. sizin modellerinizden sapma olasılığınızı düşürür. o işten anlayan kişilerle birlikte incelenmesi gerekir. Geribildirim olayında zaman kavramıda çok ilginçtir. Takım halinde çalışmanın en büyük yararı geribildirimlerin hızlı olmasıdır. aylar alabilmektedir. Modellemeyi takım halinde yapın. geribildirim saniyeler yada dakikalar içinde olabilmektedir. En güzeli modelleme sırasında bu kişilerin işin içinde olmasıdır. 3. modelinizi doğrudan koda döker ve ilk sürümden sonra gelecek sonuçları beklersiniz. Bir takım halinde çalıştığınızda. Uygulamayı yapıp ilk sürümü verdiğinizde geribildirim saatler yada günler içinde olur. Gayriresmi toplantılarda ise geribildirim dakikalar yada saatler alabilmektedir.2. BT endüstrisinin bugünkü aksayan taraflarında cesaretsizliğin büyük payı vardır. Önemli olan testlerin zamanında yapılabilmesi ve hataların hızlı olarak sebeplerine ulaşabilmektir. Modellediğiniz işin. Zaman ne için önemlidir? Çünkü kısa zamanda gelen geribildirim. Resmi toplantılar halinde düzenlenmesi ve proje başında ayda veya haftada bir yapılmalıdır. düzeltmeyi denememek yada birisinin çıka gelip hataları düzeltmesini beklemek çok kolay bir iştir. Yazılım geliştirme işi yüzme gibi değildir. Eğer bu mümkün değilse (organize etmesi zaman alır)gayri resmi hızlı toplantılar ile yapılacak incelemeler modellerinize çok şeyler katabilir.37 Blogdan Seçmeler zamanda alıp sebeplerini kısa zamanda bulmak çok önemlidir. Modelinizi doğru kişilerle inceleyin. Esas olarak modellerinizin müşteri isteklerini yansıtıyor olması gerekir. Eğer hiç bir şekilde bir toplantı ayarlayamıyorsanız. Müşteriniz kabul testleri sırasında bu isteklerini değerlendirir ve geri dönen hatalar ile gene modellerinizi test etmiş olursunuz. Diğer kişilerle beraber çalıştığınızda sonuçlara daha hızlı ulaşır. problemlerin sebeplerini bulmak için zaman kaybetmemiş olursunuz. Çevik Metodolojisi size diğer insanlarla . Analizler sonucu ortaya çıkan modellerinizin doğru olup olmadığını ancak bu şekilde anlayabilirsiniz. Resmi toplantı geribildirimleri toplantı sırasında gelsede zaten organize etmesi haftalar. Kabul testleri. detaylı tasarım modelleri ise programlamayı yapacak kişiler ile yapılmalıdır.

Denemekten. çünkü yarının problemlerini yarın çözmek gerekmektedir. Zaman ve kaynak kaybından başka bir şey olmadığı sizde görüyorsunuz. Birlikte çalıştığınız kişilere güvenmenizi. XP veya Çevik Modelleme. Çevik Modelleme yapan kişi diğer proje elemanlarının farklı deneyimlerinin olduğunu. Sonuçlara daha hızlı ulaşılır ve kat edilen yol daha uzun olur. Seçim için cesaret gerekir. diğer kişiler ile birlikte çalışmayı imkan dahilinde kılar. Çevik Modelleme ve programlama yapan kişi proje ekibindeki herkesin bir uzmanlık alanı olduğunu bilir ve ancak diğer kişilerin yardımı ile kendi işlerinin başarılı bir biçimde biteceğini görür. Tüm bu söylediklerimizin hepsi cesareti arttırır. Sadece çok iyi Java bildiğiniz anlamına gelir.2. Her işin her sektörün belirli riskleri vardır fakat risklerden kaçmak olsa olsa daha büyük risklere yakalanmanıza neden olur (yağmurdan kaçarken doluya tutulma kuralı). Karmaşık yazılım araçlarını ancak olabilecek en yüksek yararı elde edebileceğiniz zaman kullanmanızı öğütler.Blogdan Seçmeler 38 beraber çalışmanızı. çok iyi arayüz tasarımlama yada mükemmel veritabanı tasarımcısı yada en iyi müzisyen olduğunuz anlamına gelmez. 3.Alçakgönüllülük. Çevik Modelleme. Modelerimizin daha iyi görünmeleri için zaman harcamamızı öğütler. firmanızda Modul Tabanlı Analiz ve Geliştirme kurallarını uygulamak istiyorsunuz fakat endişeleriniz var. yeni başlayan çıraklardan hiç bir şey öğrenemezsiniz anlamına da gelmez. yanılmaktan ve deneyim kazanmaktan korkmayın. yapabileceğiniz en basit modeli yapmanızı söyler. onlara güvenmenizi ve kendinize güvenmenizi öğütler. Cesaretli ekipler. son kullanıcıları "aptal kullanıcı". Patronları "yüksekte oturan kargalar". Çok iyi Java bilmeniz. diğer departmanları "kafayı yemiş" olarak değerlendirmek iletişim problemlerine yol açar. Düşünün. Gelmiş geçmiş en iyi Java yazılımcısı olabilirsiniz fakat her bir Java API'sinin detaylarını tek tek bilmiyor olabilirsiniz. iletişimsizlik projenizi sekteye uğratabilir. denemekten ve yanılmaktan korkmaz. kişisel pek çok farklılıklar olduğunu bilir ve saygı ile hareket eder. Çok iyi Java bilmeniz.5 Alçak Gönüllülük En iyi yazılım uzmanı her şeyi bilmediğini kabul edecek kadar alçak gönüllü olandır. Bu cesareti arttırır. . gerçekten dökümantasyona ihtiyacınız olduğunda döküman yaratın der. Cesaretli olmak sizinde hata yapabileceğinizi anlamanıza yardımcı olur. yazılım uzmanlarınında tasarım aşamalarında karar verebileceğini söyler. Beyaz tahta yada not defteri gibi en basit araçları kullanarak modelleme yapmanızı öğütler.

Siz sadece şematik olarak modülleri birbirine bağlayacak ve ortaya sadece bir kaç fonksiyon çağıran ve geri dönen hata mesajlarını derleyen bir program çıkacak. diğer sigorta firmaları.org/ http://www.ambysoft.3 Düşüncelerim Otobüsle işe giderken hep fantastik düşüncelere dalarım. Yeni çıkan Microsoft’un ağ hizmetleri veya Sun Microsystems’in Java teknolojileri gibi sistemler yazdığımız programların farklı platformlar üzerinde çalışabilmelerini sağlıyor.xprogramming. Yazdığınız programlardaki fonksiyonlar zaten başkaları tarafından biryerlerde yazılmış ve sizin kullanmanızı bekliyor. Örneğin özel bir firma için hayat sigortası modülü yazıyorsunuz. Kullandığınız yazılım aracı örütbağ üzerinde mevcut her webservice’in veya java-bean’in yerini ve nasıl kullanılacağını gösterecek ve ayrıca bu iki sistemi birbirine bağlamak için gerekli kodu da araç kendi üretecek.39 Blogdan Seçmeler 3. Hayat sigortası için gerekli müşteri bilgilerini SSK’nın sunduğu ağ-hizmetinden alıp kendi veritabanınıza kayıt edeceksiniz ve kişinin ödediği tüm SSK primlerinide SSK fonlarından alıp özel şirketin fonlarına aktaracaksınız. Çok yeni olması nedeni ile tamamen geliştirmeye ve deiştirmeye açık bir konudur. sizin bu konuları duymanızı sağlamak ve hafızalarınızda birer ışık yakmak amaçlı olarak çevirdim. bankalar ve yabancı ülkelerin sosyal güvenlik birimleri. Ayrıca farklı teknolojiden sistemlerin ortak dillerle konuştuğunu ve veri alışverişi yaptığınada tanık oluyoruz.extremeprogramming. bu arada da kişinin diğer bir özel sigorta firmasındaki tüm sigorta bilgilerini kendi . Bir kaç yararlı link: http://www. Nüfus müdürlüğü.com/ http://www. Ambler'in Agile Modelling (ISBN 0-471-20282-7) isimli kitabından. Bu yazıyı Scott W. Program yazmanın geleceğini.6 Bu Yazının Amacı Burada anlatılan modelleme kültürü CBD. Kullandığınız yazılım aracı tüm bu birimlerdeki kullanılabilir modülleri gösteriyor.com/ Scott Ambler'in web sitesi 3. Hizmetlerini kullanacağınız birimler SSK.2. UML ve eXtreme Programming ile analiz ve modelleme yapan projeler tarafından benimsenmeye başlamıştır. bugün emekleme aşamasında olan teknolojilerin ileride nasıl olacağını tahmin etmeye çalışırım. Bir gün gelecek ve program yazmak artık şema çizer gibi mevcut ağ hizmetlerini yada java bean programlarını birbirlerine bağlamaktan ibaret olacak.

Örneğin tüm tarihi bilgiyi sanal ortama kaydettiğimizi düşünelim. Bu düzen içerisinde yaşıyoruz ve düzenin gereklerine göre hareket etmezsek elde edeceğimiz deneyim azalır. Çoklu ortam -ses ve görüntü ile. PGP gibi programlar ile bilginin içeriğini şifrelemiyoruz sadece bilgi içine yerleştirdiğimiz bazı kelimeleri veya harfleri sayarak elde edeceğimiz sonuçların doğruluğunu karşılaştırıyoruz. . Yabancı ülkelerin sosyal güvenlik modüllerinden kişinin yurt dışında çalışma günlerini ve ödediği primleri görüp kendi primlerinizde parametre olarak kullanacaksınız. Nüfus müdürlüğünün hizmetlerini kullanarak kişinin ailesinde bir hastalık varmı araştıracak ve ödenecek primleri ona göre otomatik ayarlayacaksınız. Böylece içerik üzerinde oynama yapıldığında kolayca anlaşılmaktadır. Ancak tek bir yolla bilgi bozulmayabilir. Bir kaç tane reklama kanıpta kafamda belirli bir marka yada model ile yola çıkmam yani. Bir firmayı yada ülkeyi ortadan kaldırmak istediğinizde sunucularını uçurmanız yeter. Zaten yapamamda çünkü kredi kartı kullanmaya karşıyım.öğrenilebilme kapasitesi oldukça artar fakat değiştirilebilmesi çok kolay olacağından. İnsan ilişkilerinin diğer ülkelere göre daha yakın ve samimi olduğu ülkemizde bu tür bir sanallaşma pek mümkün gözükmüyor. gitar satan dükkanları bir gezmek ve beğendiklerimi çalmak isterim. Tüm bu sistemi yazmak (modelleme + yazılım) 1 gününüzü alacak. Tüm bilgi sanallaştığında orjinalliğide bozulabilir. “Bu kadar konuşuyorsun da sende bu mesleğin içindesin” dediğinizi duyar gibiyim. mürekkep. Bence firmalar sanal alışveriş sitelerine harcadıkları yatırımı elemanlarına ve dükkanlarını geliştirmeye harcasalar daha fazla kazanırlar. gibi masraflar ortadan kalkacak ve çevre korunmuş olacak. Buradan yola çıkarak bilginin hem herkes tarafından kolayca ulaşılabilmesini hemde değişmeden hayat sürecine devam edebilmesini sağlayacak şifreleri geliştirebiliriz. Modüllerini kullandığınız birimler sundukları hizmetin ücretini otomatik olarak firmanın hesabından trasfer edecekler. Gözükmesin de. iş gücü kaybı. Ben örütbağından alış veriş yapmayı hiç sevmem. Kuran-ı Kerim’in şifrelendiği 19 sayısını duymuşsunuzdur. Bu bir avantaj ama her türlü bilginin sanallaştırılması ve tüm sistemin bilgisayar ortamına sokulması da bir dezavantaj. Dükkan sahibi ile oturup bir çay içmek ve gitar hakkındaki görüşlerini almak isterim. Bu kadar sosyalleşmeyi monitör karşısında yaşayamayacağım için sanal alışverişi tercih etmem. bilginin orjinalliğini koruması çok zor hatta imkansızdır. Örneğin bir gitar alacaksam. Var mı böyle bir program yazacak bir arkadaş. İşte size çok güzel bir proje. Çalıştığınız bankanın servislerini kullanarak para transferleri gerçekleştireceksiniz.Blogdan Seçmeler 40 tarafınıza alacaksınız tabii ödediği primleri de. İyi bir bilgi koruma algoritması ile. Kağıt. 200’e yakın farklı yolla yapılan hesaplamaların sonuçları hep 19’un katları olmaktadır.

Amacım yeni başlayan pek çok kişinin sorduğu sorulara cevap vermek ve cesaretlendirerek yollarına devam etmelerini sağlamaktır. Mesela VB ve Delphi. en az iki programlama dili bilmeniz iyi olur. PHP ve XML vs. istemci/sunucu. Günümüz programlama ortamlarında farklı dillerle yazılmış parçaları beraber çalıstırabilmek mümkün olduğu için. İkinci dil ile ilgili olarak tamamen karşıt bir firma/teknoloji seçin. 10. 9. tek başına calışabilecek biçimde tasarım edilecek mi? Ürününüz en son yazılım tekniklerini ve teknolojilerini uygulayabilir mi? Kullanmayı düsündüğünüz veritabanlarını destekliyor mu? Yazılım aracı/dili için eğitim verecek kuruluş var mı? Diploma. bu yazımda sizlere temel konulardan bahsetmek ve programlamaya yeni adım atacak arkadaşlar için yol gösterici olacak bir kaç fikirden söz etmek istiyorum. 3. sertifika veriliyor mu? Dünyada başka kimler kullanıyor? Örütbağında arama yaptığınızda kaç tane sonuç dönüyor? İş bulma sitelerinde. Ürününüzü dünya genelinde satmayı düşünüyor musunuz? Araç/dil bu tasarıma izin veriyor mu? Yazılım aracı/dili üreten firma ile birlikte başka hangi firmalar bu araca/dile destek Buradaki araştırmaların hepsini Türkiye çapında değil dünya çapında yapın. 5. Durak geldi ben iniyorum. 3. 7.4 Programlamaya Yeni Başlayacaklara Merhaba. Mesela Linux/Kylix ve . Dilinizi seçerken soracağınız sorular: 1.4. Java ve C++. 4. İşletim sistemini de değiştirebilirsiniz.1 Programlama Dili Seçimi Nasıl tek bir dil bilmek yetmiyorda insanlar İngilizce. 3. 11. 13. Almanca ögreniyorsa bilgisayar dünyasında da tek bir dil bilmek yetmiyor.41 Blogdan Seçmeler Tapınaklara kapanıp dünya malından elini eteğini çekip ruhunu Allah’a erdirebilirsin ama önemli olan bu savaşı şehir hayatı içinde otobüsle işe giderken vermek. veriyor. En son sürümleri ve teknolojileri satın almaya bakın. Ne kadar para harcamayı düşünüyorsunuz? Ürününüz birden fazla işletim sistemini destekleyecek mi? Ürününüz web. 12. 8. C# ve Perl. sizin düşündüğünüz yazılım aracı/dili ile ilgili ne kadar iş ilanı var. 2. 6.

donanım. Listeleri uzatmak mümkün.4 Örütbağ Üzerinde E-posta listeleri çok yararlıdır ve teknolojileri günlük takip etmenizi sağlar. veritabanı. Bu sayede yeni ürünler çıktığında veya seminerler olduğunda hemen haberiniz olur. Rational. Tümleşik Geliştirme Ortamı) hakkında bilgi sahibi olmak ve menülerde ne nerede bilgisini oluşturmaya çalışıyoruz. Inprise gibi büyük firmaların gazete e-postalarına üye olmanızı tavsiye ederim. Linux/PHP ve Windows/HTML vs.4. ticari programlama gibi konulara eğilebilirsiniz. Eğer İngilizce biliyorsanız menüler üzerindeyken F1 tuşu ile yardım alabilir ve ne işe yaradığını öğrenebilirsiniz. Özellikle Microsoft. dilinizin nelere imkan verdiğini ögrenebilirsiniz. Yahoo. Unix/Python ve Windows/XML.4. ayrıca gidip bu firmaların sitelerinde debelenmekten kurtulursunuz. programlamaya özel siteler'de işinizi görür. Dili biraz ögrendikten sonra bıranşlaşma için. IBM. İlgilendiğiniz konularda referans kitaplarınızın bulunması ve ihtiyacınız olduğunda konu başlıklarını kullanarak yardım almanız çok iyi olur. Google gibi sitelerin gruplarına da bakabilirsiniz. Önemli olan bir şekilde teknolojileri takip etmek ve güncel konulardan haberdar olmak.2 Nasıl Başlanır Dilinizi seçtikten sonra ilk yapacağınız iş. . belli konuları daha derin öğrenmeye başlarsınız. Memik Yanık. Kitapların pek çoğuna pdf formatında da erişebilirsiniz. ortama olan göz alışkanlığınızı kazanmak için menülerde ve ekranlarda gezinmeniz olacaktır. Zeydin Pala dışında kullandığınız dilin üreticisinin kitapları yada 3. CA. sistem. 3. Belli bir seviyeye geldikten sonra. Burada ortam dedigimiz programlama yaptığınız dilin arayüzü olan IDE (Integrated Development Environment. Aldığınızın kitapların yayinevlerinin sitelerinden kitapla ilgili düzeltmeler var mı kontrol edin.Blogdan Seçmeler 42 Windows/C++. Haber sunucuları. parti firmaların kitapları çok yararlı olabilir. Hangisinde daha fazla üye ve mesaj varsa ona üye olun. 3.3 Kitaplar Her yeni başlayana tavsiye ettigim yazarlar.4. Kitap dişinda denemeyanılma yolu ile küçük projeler yapıp. İhsan Karagülle. Benim tercih ettiğim bir yöntem çünkü yerden tasarruf sağlıyor. Eger merkezlere uzak yerlerde oturuyorsanız örütbağ üzerinde sipariş verebileceğiniz yerler oldukça fazla. 3. Bundan sonra baslangıç seviyesi kitapları ile yola çıkarak adım adım dili öğrenmeye başlarsınız. İlk başlarda cok fazla zaman harcayarak mümkün olan her şeyi deneyin.

COM. Nesne Tabanlı Analiz (OOA. İyi yazılım. TCP/IP vs. gibi pek çok metod bahsettigimiz teknoloji alanına girer. Unified Modelling Analiz (bunun Türkçe'sine UM Analiz diyelim. Bu sayede farklı formları farklı projelerde kullanmak istediğinizde isim çakışmaları olmaz.NET. Component Based Development). SOAP. Yukarıda bahsettiğim konuları tek tek açıklayan makaleler de yazacağım.43 Blogdan Seçmeler 3. eXtreme Programming (Yazılım dünyasında XP olarak biliniyor fakat Windows XP ile karıştırmayın). Hedefinizi belirleyip ona göre yol alın. Formlarınızın isimlerini ve başlıklarını muhakkak değiştirin. DCOM. iyi bir analiz ile başlar. IIOP. pek iyi olmadı ama!). 3. . Seçtiginiz dil ile bu teknolojilerden bazılarını desteklemek istiyor musunuz? 3.6 Analiz Program yazarken kullanacağınız analiz metodolojileri en az kodlama yapmak kadar önemlidir. İster yolun başında bir programcı adayı olun ister programlama konusunda uzman olun metodoloji ve o metodolojiyi doğru uygulamak çok önemlidir. Object Oriented Analyse). Analiz iş senaryolarınızı ortaya çıkarmanızı ve müşteri isteklerine daha iyi cevap vermenizi saglar. Projelerinize hep bir isim verin ve anlamlı bir isim verilmiş bir dizine kaydedin. Bir yazılım firmasında çalışmaya başladığınızda. Platformlar arası veri alışverişi konularına destek veriyor mu? Hangi veritabanlarını destekliyor? Yada sizin istediğiniz veya kullanmayı düşündüğünüz veritabanını tam olarak destekliyor mu? Teknoloji demekle neyi kastediyoruz. Analiz sizin programınızla neler yapacağınızın ve müşterinin problemlerine nasıl çözüm getireceğinizin bir taslağıdır. ilk yapacağınız şey firma standartlarını öğrenmektir. COM+. Bu metodolojileri doğru biçimde projelerinizde uygularsanız verimlilik ve zamanında yetiştirmek açısından pek sorununuz olacağını zannetmiyorum. RMI. Web Services.4. . Bu sayede ekip içi bilgi aliş verişi hızlı ve kesin olur. Her yiğidin bir yoğurt yiyişi olduğu gibi yazılım gruplarınında uyulması gereken kuralları vardır.7 Düzenli Çalışma Kendinize bir hedef vermeden bilgisayarın başına oturmayın.4. İsimlerden formlarınızın ne işe yaradığını kolayca anlayabilirsiniz.4. Analiz Metodolojileri nelerdir? Örneğin Modül Tabanlı Analiz (CBD. bitmek tükenmek bilmeyen müşteri isteklerine cevap verebilecek misiniz. ActiveX.5 Teknolojiler Seçtiginiz programlama dili ile son teknolojileri uygulamak mümkün mü? Fazla kod değişikliği yapmadan hem internet ortamnı hem istemci/sunucu yapılarını destekleyebiliyor musunuz? Yada daha da önemlisi seçtiginiz dil ile.

egitimle ilgili yazıları bilgisayarınıza indirebilirsiniz. ister bir Word dosyasına yazarak saklayın. Hangisi pratik geliyorsa. Ayrıca pek çok teknik dökümanı. ufak projeleri kısacası ileride kullanabileceğiniz her kod parçasını yazıya dökün ve ne işe yaradığını. 3. Hayat zaten kendi içinde bir okul bizlerde bu okulun ögrencileriyiz. Inprise ürünleri ile birlikte gelen yardım dosyalarıda çok yararlı olabilir. Çalışmalarınızın kurs ile sınırlı kalmaması için.8 Dökümantasyon Yaptığınız çalışmaları. programlama konusunda da işimize yarayacaktır. Microsoft Geliştirici Ağı) tıkızları çok işinize yarayabilir. örütbağı üzerinde bir arama ile pek çok yayına ulaşabilirsiniz. amacının ne olduğunu ister kodun içine yorum satırı olarak. Wrox yayınevinin kitapları. Visual Studio ile gelen MSDN (Microsoft Developer Network. 3. Bu tür bir çalışma ileride bir kod parçasına ihtiyacınız olduğunda kolayca bulmanızı sağlar. konumuzdaki yabancı yayınları takip edecek ve derdimizi anlatabilecek kadar olsa yeter.10 Kurslar Kursların piyasa tarafından tanınmış ve verdikleri sertifikaların dünya çapında geçerli olmasına dikkat edin. evinizde de bazı projeler geliştiriyor olmanız gerekir. Ek olarak firmaların sitelerinde her zaman deneme sürümlerinin tıkızlarının adresinize postalanması için gerekli formları bulup doldurabilirsiniz.11 Amatör Ruhu Hangi işle uğraşıyor olursanız olun. 3.9 İngilizce Kaynaklar Yabanci dil bilmek pek çok konuda işimize yaradığı gibi. ugraştığınız alanda her şeyi bildiğinizi iddia etmek olacaktır. İşte bu tür adamlardan uzak duracaksınız.4. Unutmayın çevrenizdeki grup ileride iş arkadaşlığına dönüşebilir.4.4.Blogdan Seçmeler 44 3. Firmaların Türkiye temsilciliklerinden birer bağlantıya sahip olmanızda iyi olur. Bazen hiç ummadığıniz bir çıraktan bir şeyler kapabilirsiniz. Yabancı dil bilgimiz. Yada artık kendinizi programlama hakkında ermiş olarak gördüğünüz anda bir çırak çıkıp algoritmalarınızın şöyle şöyle yaparsanız daha hızlı çalışacağını söylemesi sizi yerin .4. Fakat öyle sular seller gibi bilmeye veya konuşurken aksanlı konuşucam diye ağzımızı burnumuzu bükmeye gerek yok. Bu nasihatlerden sonra gelelim yabancı yayınlara. dünyanın en kötü şeyi. Her zaman öğrenecek yeni şeyler olacak. Kurs ile birlikte çevrenizde oluşacak arkadaş grubu iyi bir yönlendirme ile birlikte iyi projelere imza atabilir. nasıl calıştığını. Türkiye'de çoğu büyük şehirlerde pek çok kurs mevcut. Sonuçta bizler Türk'üz ve konuşurken yabancı olduğumuzun anlaşılmasıda gayet doğal ve gereklidir. gerçek projeleri. Bunların dışında Microsoft yayınları ve kitapları.

Web Sunucu için Linux üzerinde Apache Web Server. Mahalle esnafına bilgisayardan ve özel yapıışlmis programların yararlarından bahsettiniz mi? E-posta.NET ile takılırken diğer yandan Linux üzerinde Java Bean ve EJB nasıl yayınlanır araştırıyorum. Bu arada aletlerinizde gelişmeler de olabilir. . Araç olarak. Microsoft. zaman içerisinde bazıları yok olabilir. En az 3 adet lazım. UML. IBM. Web Services gibi teknolojileri öğrenmeye çalışıyorum. Windows üzerinde IIS kullanıyorum. işletim sistemi gibi konularda onları bilgilendirmeyi hiç düşündünüz mü? Biraz da misyonerlik gibi bir göreviniz var aslında. internet. Dil olarak seçimlerim VB.13 Sonuç Yukarıda anlattığım yöntemler her yazılımcının alet çantasını geliştirmesi için çok güzel yöntemler. Birde rahatça girip çikabileceğiniz bir oda buldunuz mu.12 Ben Neler Yapıyorum Gelelim bu kadar bilgiden sonra ben bunları ne kadar uyguluyorum. Veritabanı olarak Linux/IBM DB2 ve Windows/SQL Server kullanmaya çalışıyorum. Fakat nasıl evinizde bir tamirata giriştiğinizde alet çantasındaki her aracı kullanmıyorsanız.NET ve C#. yazılımcı olarak alet çantanızı da o şekilde kullanacaksınız. bir yandan ASP. Tabii ki tek bilgisayar yetmiyor. Daha sonra bu dersi baska çıraklara aktarmak üzere tabii. Etrafınızdaki insanlara bildiklerinizi aktarmayı hiç düşündünüz mü? 3. BEA ürünlerini kullanıyorum. Sizde böyle bir sistemi bir kaç arkadaş birleşip kurabilirsiniz. İlerde Java dilini de oğrenme planım var. Ancak bu şekilde ilerleme kaydedebiliriz. Öğreneceğiniz her bilgi alet çantanızda yerini alacak ve yeri geldiğinde çıkarıp kullanmaktan çekinmeyeceksiniz. 3.4. çırağı karşınıza alıp teoremleri hakkında konuşursunuz ve sonuçta gerçekten haklıysa dediklerini uygulayıp dersinizi alırsınız. Bilgisayarlardan birini çöpten buldum. Mahallenizdeki esnaf ile hiç bu konuları konuştunuz mu? Toplumumuzun gelişmesi ve yeni şeyleri ögrenmesi birazda size bağlı.45 Blogdan Seçmeler dibine sokabilir. iş proje bulmaya kalıyor. Önemli olan sürekli devinim içinde ögrenmeye ve gelişmeye açık olmaktır. Windows ve Red Hat Linux ortamlarını seçtim. bir tanesi çift işletim sistemli ve hepsi ağ ile birbirine bağlı. Ne yapmak gerekir. Yanlışları bulan kişileri tebrik edin ve daha fazla yanlış bulmaları için yönlendirin. İşletim sistemi olarak. CA. Bunlarla birlikte XML ve SOAP. CBD metodolojilerinde de calışmalarım var. Rational. Ögrenmekten ve doğru bildiğiniz şeylerin aslında yanlış olduğunu anladığınızda değiştirmekten çekinmeyin. OO.4.

Onlara hak da veriyorum çünkü kendilerini satabilecekleri tek hünerlerini diğerlerine ögretmesini istiyorsunuz.Blogdan Seçmeler 46 3. Aslında farkına varsa sadece ufak eklentiler olduğunun. Yapısı oturmuş bir firmada metod değiştirmek zor olacaktır. Yapılan işin ismini aynı bırakın fakat işleyişini değiştirin. Birden bire yazılım geliştirme metodunu değiştirmek istediğinizde direnişlerle karşılaşabilirsiniz. Birde tabii adamın dinini değiştirmek istiyorsunuz bir bakıma. Bir miktar da insanın kendi özverisi ile zaten uyguladığı şeyler. Eger sebepler metodu değiştirmeniz için bir sinyal veriyorsa. Yazılım geliştirme metodlarında sonradan eklenen çeşitli yöntemler ile metod artık takip edilmesi ve öğrenmesi zorlaşmış bir hal alır ki bu da projelerin uzamasına ve onaylama mekanizmalarının çok zaman almasına neden olur. insanın kişiliğinden gelen şeylerdir. işleyişi değiştirip sonuçlarında yapılan kara bakın ve daha iyi bir metod olduğunu herkese kabul ettirin. Narsistlik yapıp sadece kendini düşünen kişiler olacaktır. “Ben burada Extreme Programming metodunu uygulayacağım artık” derseniz baştan kaybedersiniz. Yıllardır takip ettiği ve yazılım geliştirdiği metodu değiştiriyormuş gibi gelecektir ona. Neyseki din değiştirmek kadar katı olmadığı için kullanılan metodu degiştirebilir veya farklı metodların çeşitli kısımlarını bir araya toplayarak yeni bir olgu yaratabiliriz. Ve heleki yaşı ilerlemiş ve firmada masa. hatasız ve müşteri gereksinimlerini tam olarak karşılayan bir ürün üretebilmek için ortaya çıkmıştır. Kendi istedikleri olsun da patrona “en çok ben biliyorum” gibi gözükeyim konusundan başka dertleri yoktur bunların. Eski metodun bir kısmını “tamamı ile değiştirmek” yerine (yada en azından bu cümleyi kullanmak yerine) “değişiklikler ile güncellemek” daha iyi bir yöntem olacaktır. sandalye gibi demirbaş listesine girmiş elemanlar varsa işiniz daha da zor. Extreme Programming ismi kulağa uzaydan düşme bir isim gibi gelsede içerik olarak uygulanan metodların günümüzde kullandığımız metodlardan pek farkı yok. Bu tip mevhumları ögretemezsiniz zaten. Bunun için ufak paketler halinde değişiklikleri sunmalı ve işe yaradığının ispatını diğer çalışanlara kanıtlamalısınız. Getirmeye çalıştığınız metodun ismini ise kesinlikle kullanmayın. Kişinin aklına “acaba . Bir bakıma dinler gibi hepsi temelinde iyiye ve doğruya yöneltmeye çalışır insanları ve bu yolda uygulanması gereken bir dizi kuraldan bahseder.5 Extreme Programlama Her yazılım geliştirme metodu temelinde kullanılabilir. her şey daha da kolay olacak. Bunun yerine sebep sonuç yasasını kullanın. Ama görsel olarak uygulayabileceğiniz pek çok XP yöntemi mevcuttur.

sonuç olarak programcılık öğretmek için burada çalışmıyorum.1 Benim Hikayem Bu bölümde benim başımdan geçen bir durumu aktaracağım. 3. Ben. Proje bitmis ve ben tek başıma üründen sorumlu olarak tayin edilmiştim. 3. Tüm kutuları isimlendirip anlattım. Problemi parçalayıp çözmek için programcılık konusunu eğitimin dışında tutmaya karar verdim. Burada öncelikle kabul edilmesi gereken planların uzayacağıdır. İlerleme ancak bu şekilde olur.47 Blogdan Seçmeler ilerde beni şutlayacaklar mı?” sorusunu sokar ki bu kişi hiç çalışmasa daha iyi olur. İnsanoğlu bazı tümsekleri görmezden gelir ya bu da öyle birşey. Benim esas problemim hem iş akışını hemde programcılık konusunu bana verilen arkadaşa nasıl anlatmam gerektiği. Düşünecek olursanız sizinle aynı seviyede çalışan birinin en az sizinki kadar bilgiye sahip olması gerekir. Proje müdürünü ve bana verilen arkadaşi karşıma alıp bir toplantı yaptım. Verdiğimiz şeylerden daha çok aldığımız şeyler ile ilgilenip daha fazla nasıl geliştirebilirim diye düşünmemiz lazım.2 Model Duvarı Öncelikle tüm sistemin işleyiş şemasını büyük kağıtlara çizerek duvara astım. Aslında eski metod da hakkıyla uygulandığında sonuca ulaşilabilir fakat insanoğlu yaşayan bir organizma ve bir süre sonra rutin işlerden sıkılmaya başlıyor. Bizim amacımız yapılan işi basitleştirmek veya parçalara bölerek yapmak. Neyse biz konumuza dönelim.5. Bu yüzden arkadaşa bazı kurslar tavsiye ettim. Anlatacağım bir kaç XP metodunu ben deneyip gördüm ki gerçektende yazılım geliştirme aşamasında işe yarıyor ve hızlı bir biçimde sonuca ulaştırıyor. Ürün destek bölümüne ilk geçtigim zaman bir başıboşluk sezinledim. Bunu kabul etmeleri 2 saat aldi fakat kabul ettiler. üstelik bir de yapılan iş pek çok kontrol gerektiriyorsa ve “bunu yapmasak ta olur” gibilerinden suistimale açıksa hiç bir zaman hakkıyla uygulanmıyor. Tabii ilk anlatımda ancak %25 oranında bir bilgi hafızada kalır. çünkü yeterli alt yapısı yok. Bana yardımcı olacak bir eleman verdiler fakat bu kişinin konu ile yakından uzaktan alakası yoktu. Ben tüm bildiğimi aktarsam bile ürün destekte problemlere çözüm bulmak zaman alacaktır bu arkadaş için. proje müdürü de onaylarsa kursları ücretsiz alabilecek. Ama zor bir yoldur.5. Uzun gelirse buradan sonrasını okumanıza gerek yok. Büyük problemin farkındaydım fakat proje müdürüm farkında değildi ve bana verilen kişinin kısa zamanda benimle aynı seviyeye çıkması bekleniyordu. Bırakın olayın işleyişini programcılıktan anlamayan bir kişi idi. Daha fazlası için .

problem olduğunda hemen ilgili kutuyu gösterip anlatabiliyorum. Birincisi sistemin işleyişi ile ilgili olan İş Nesneleri Modeli. Genel yapıyı kuş bakışı görmek için ideal. Derleme sırasında hatalı modüller ve eksik modüller ortaya çıktı bunları temizlemek iki gün aldi. 18 COM+ uygulaması ve 4 adet sürekli çalışan daemon uygulaması var. Örneğin: 01-ErrorLog 02-DbAccess 03-BRCheck . 3. Genel şemalar dışında sınıf yapısını ve veritabanı yapısını da duvara astım. Burada kullandığım 3 çeşit model tipi var. Şemaları duvara asmam iyi oldu. Bunda da veritabanının yapısı ve tablolar arası ilişkiler ile hangi “stored procedure” hangi tabloya erişiyor gibi bilgiler var. İkinci model Sınıf Yapısı.3 Sık Sürümler Verebilmek İkinci olarak tüm projeyi derledim. Artık küçük sürümler halinde projeyi derleyebiliyorum ve her ay yeni bir sürüm kullanıcılara gönderebilirim. Visual Source Safe erişimlerini kapatıp tüm projeleri indirdim ve derleme yaptım. Daha önceki sürümlerde sadece değişen kısmı paketleyip kullanıcılara göndermişler. 45 projenin her birini tek tek VB ile açarak References kısmından hangi dll veya ocx’lere erişim yapıldığıni yazdım.Blogdan Seçmeler 48 tekrar gerekir. Fakat derleme sırasında hangi dll’in hangi projede kullanıldığını anlatan bir belge bulamadım. Daha sonra her projeyi numaralandırarak bir derleme sırası oluşturdum. Sonuç olarak eskisinden daha hızlı çalışan ve tamamı derlenebilen bir ürüne sahip olduk. Fakat tüm projenin derlenebiliyor olması gerekir. tüm bunları yeni COM+ karşılıkları ile değiştirmem gerekti. 45 adet ufak projeden meydana gelen bir istemci uygulaması. Bu modelde hem bizim sistemin iç yapısı hemde diğer sistemlerle olan bağlantıları yer alıyor.5. Tüm projeleri derledikten sonra test ekibinden test etmelerini istedim. bu arada buldukları hatalarıda düzelttim. Daha önce NT4 üzerinde derlenmiş ve MTS nesneleri eski idi. Bir resmini çekip burada göstermek isterdim fakat yasa gereği göstermiyorum. Üçüncü model ise Veritabanı Modeli. Kendi sistemimiz içinde kullanılan tüm sınıflar sahaları ve metodları ile burada gösteriliyor. Böylece şemalar arasında bağlantı kurarak anlatabiliyorum.4 Vss Organizasyonu VSS organizasyonu çok kötü yapılmıştı. 3.5.

Etiketleme diye bir şey var.49 Blogdan Seçmeler Bu sırada derleme yapıldığında proje sıfırdan derlenebiliyor. VSS için yaptığım diger bir olay ise Shadow dizinleri. Test. [$/1-Builds] Shadow = \\Yoda\Builds Shadow_SetTime = Current Shadow_SetTime için 3 adet deger var. VSS’de de proje isimlerini değiştirdim. o dosyanın bir kopyası bu dizinde de var olacaktır ve siz projeyi üzerinde değişiklik yapıp VSS’e geri yolladığınızda bu “Share” edilmiş dosya her iki dizinde de güncellenecektir. Tamamı ile gereksiz bana göre. VSS zaten eski sürümleri tutuyor birde 3 farklı dizin açıp her şeyi tekrar ediyorsun. İlk başta var olan Development. Ne zaman projeyi VSS’e geri yollarsanız bu “Shadow” dizinindeki ilgili dosya da güncellenecektir. Bir projenin exe dosyasını sag klik ile taşıyıp başka bir dizin üzerine bıraktığınızda bir menü göreceksiniz. . Böylece her bakan bu sıranın ne olduğunu tahmin edebilir. Eski sürümden bir dosya istiyorsan “History” kısmından indirebilirsin. Mod ve Update. Anlamıyorum neden böyle bir yola başvuruyorlar. NAnt gibi bir lüksümüz olmadığı için bu yolla projenin exe. Production gibi VSS dizinlerini de teke indirip hepsini bir dizin altında topladım. Shadow dizinlerini kullanarak en son sürümün sabit disk üzerinde bir dizine toplanmasını saglayabilirsiniz. Benim 1-Builds olarak adlandırdığım dizin 45 ufak projenin exe’lerinin “Share” edildiği dizin. dll. Admin aracından da yapilabilir. Köşeli parantez içindeki kısım kopyasını almak istediğiniz VSS dizini. Tools-Options menüsünden Shadow Folder sekmesine gideceksiniz. Burada “Share” seçerseniz. bunlar Current.ini dosyasına asağıdaki satırları eklemek gerekiyor. ocx gibi çıktılarını bir dizinde bu sekilde toplayip daha sonra “Shadow” yöntemi ile VSS dışında normal bir dizine atabiliriz. Bunun için srcsafe.

Ayrıca programın çalışabilmesi için gereken konfigürasyon verisi için de scriptler hazırlayıp bu dizinde tutuyorum. Daha sonra da her fonksiyon için bir açıklama yazdım. 3. VSS ile işim bittiğinde artık güvenilir bir kod kontrol sistemimiz olduğunu söyleyebilirdim. gerekli belgeleri kolayca rapor halinde yaratabiliyorsun. Bu eksikliği gidermek için bir UML Case Tool ile tüm projeleri modelledim. İstek ve Hataların işleyişindeki bazı bürokrasileri ortadan kaldırdım. . eğer birde attığınız imzanın ne için oldugunu bilmiyorsanız daha da zor. 3. Gelen istekleri parçalara ayırarak sık sürümler içinde halletmeye çalıştık. Kullanıcı isteklerinin hızlı yapıldığını görünce daha fazla değişiklikler istedi bunlarıda projelendirip yaptık.5. Bu sayede kullanıcıların ne gibi problemleri oluyor veya istedikleri değişiklikler var mı kontrol edebildik. Genel modüller içinde geniş açıklamalar yazdım. Bir değişiklik için 15 ayrı yerden onay almak gerekiyordu. Alınacak onayları 5’e indirip değişikliğin merkezi olarak takip edilmesini sağlayınca hem değişiklikler çabuk uygulandı hemde sırtında imza atma yükü bulunan kişiler rahatladı. Tüm veritabanını script olarak alıp VSS içine yerleştirdim ve her güncelleme için ayrı bir script dizini yarattım.6 Belgeleme İlk projeyi devraldığımızda belgeleme açısından çok fazla eksik vardı. Iş analistleri modelleri inceleyip yorumda bulunabiliyordu. Girdi/Çıktı ve parametrelerine varıncaya kadar tüm fonksiyonları şemalar halinde çizdim. Onay almak için geçen zaman uzuyor.5 İstek Ve Hataların Yönetimi Program için gereken değişiklik ve istekleri takip edecek bir access uygulaması geliştirerek herkesin kullanmasını sağladım.Blogdan Seçmeler 50 Tahmin edeceğiniz gibi veritabanı da VSS’de mevcut değildi. Bir kere Case Tool ile bu işi yapınca. Bu dll kütüphanelerinin başka projelerde kullanılması halinde yardımcı oluyor. Ayrıca tüm modelleri html sayfaları halinde yayınlayarak herkesin görmesini sağladım. Böylece veritabanında yapılan değişiklikleri takip etmek kolaylaşti. Object Browser ile bir dll içindeki fonksiyonları görüntülediğinizde fonksiyonların açıklamaları da geliyor başka bir dökümana ihtiyacınız kalmıyor. Hem kullanıcı kendini proje ekibinin bir parçası olarak hissetti hemde bizim firma içindeki yerimiz sağlamlaştı. Ayrıca her public fonksiyon için “Tools/Procedure Attributes” menüsünden bir açıklama girdim.5. İmza atmak büyük sorumluluk istiyor. Kod içine yerleştirdiğim yorum satırları ile daha iyi okunabilir hale gelmesini sagladım.

istek ve hataların bize doğrudan gelmesini sağladım. Cesaret – Tüm kodun yeniden derlenmesi ve VSS’in yapısının değiştirilmesi konusunda büyük risk aldım fakat değdi. 3 adet dikkat edeceğim husus var. İletişim – Proje içi iletişim ve kullanıcılarla olan iletişim %70 oranında arttı.7 Xp Ve Benim Yaptıklarım XP presiplerini benim yaptıklarımla karşılastırdığımızda nasıl örtüşdüğüne bir bakalım. Basitlik – Onaylama mekanizmasını basite indirgeyerek geçen süreyi %300 oranında kısalttım. Ağır Başlılık – Tüm bunları yaparken insanları bilgisizliklerinden dolayı aşağılamak yada suçlamak gibi terbiyesiz girişimlerde bulunmadım. Bulduğumuz her yazılımı kurduğumuz içinde 6 ayda bir yeniden kurmak ta heralde dünyanın en zevkli olayı yada en azından bana zevkli geliyor.51 Blogdan Seçmeler 3. Benim düşünceme göre sadece bir adet bilgisayara sahip olmak yeterli!!! Ben böyle diyorum ama bende 4 tane bilgisayar var. Nedeni çok basit. . Eğer sıfırdan baslamış bir proje olsa idi yapilacak çok şey vardı fakat bu proje zaten sonlanmış bir proje. yapılacaklar da kısıtlı oluyor. Ne kadar hızlı olursa olsun genede daha hızlısını istiyoruz. Geri Besleme – Kullanıcıların kendini ifade edebilecekleri bir ortam hazırlayarak. XP’nin sadece bir kısmını uygulamak bile pek çok işin hızlı ve tam anlamıyla yapılmasına yetti. Oyun filan nadiren oynadığım için ekran kartına da ihtiyacım olmayacak on-board beni idare eder. Ayrıca VSS üzerindeki çalışmam derleme işlerinin çok kısa zamanda yapılmasına neden oldu. CPU Bellek Sabit Disk Yatırımın büyük bir bölümünü bu üçü üzerinde yoğunlaştırıp alabileceğimin en iyisini (büyüğünü) almaya çalışacağım. Masanın altında elli tane bilgisayar olacağına bir tane güçlü olacak ve Virtual PC (sanal bilgisayar) ile diğerlerini halledeceğim. yakında hepsini elden çıkarıp tek bir bilgisayar alacağım.5.6 Yazılım Uzmanı ve Sağlık Bir yazılım mühendisinin en önemli aracı sanırım bilgisayar. 3.

Diğer bir amacıda verilebilecek en iyi kararı vermektir. kararın etkilediği tüm gruplar tarafından duyulmamış ise grup içinde yada gruplar arasında kopukluklara neden olur. Böylece yeni bir tane yaratmak istediğimizde bunu kullanacağız. Ekip lideri yada müdürü her zaman en iyi kararın ne olduğunu bilemez ama görevi en iyi kararın ne olduğuna karar vermektir. Kod yazmaya başlayınca zaman anlamını yitiriyor ve ara vermek şöyle dursun. yemek dahi aklıma gelmiyor benim. Unutmayın ki kendinize yaptığınız yatırım bu sektörden daha uzun seneler ekmek yemenizi sağlayacaktır. Bunun içinde kararların tartışıldığı ortamı hazırlayıp değerlendirmeyi herkesin huzurunda yapar. 6 ayda bir göz muayenesinden geçerek durumunuzu değerlendirin. Ben Websphere MQ. Eğer alınan kararlar. Toplantıların bir amacı ekip içindeki bağları güçlendirmek ve ortak bir hedef için çalışıldığını göstermektir.Blogdan Seçmeler 52 Gelelim zırt pırt programları kurup kaldırmaya. TFT monitörler de iyi bir çözüm olabilir. VPC üzerine kurulmuş sistemler ile ana işletim sistemi arasında ağ bağlantısı olduğu için VPC üzerindeki kaynaklara erişmek te mümkün. Genelde birbiri ile çelişen fikirler tartışılır. normalde 60Hz ayarlıdır fakat monitör destekliyorsa yükseltmek sizin yararınıza olacaktır.7 Ekip Toplantıları İnsanoğlu sosyal bir varlık. Ara vermek bir yere kadar koruyor ama her zaman mümkün olmuyor. Ekip müdürlerine olan güven kırılır. Eğer monitörünüzde titremeler varsa frekans ayarları ile oynayıp düzeltebilirsiniz. Tabii gözler haşat oluyor. Bir adet taban sayılabilecek VPC Windows XP kurup hd dosyasını saklayacağız. Bulunduğumuz çevredeki insanları etkileyecek kararlar almadan evvel bir toplantı yapıp enine boyuna tartışırız. IIS. doktora bilgisayar kullandığınızdan bahsedin ve doktorun önerdiği gözlüğü alın. . İşimiz yazılım olduğu için günün büyük bir bölümünü monitör karşısında geçiriyoruz. Diğer dikkat edilmesi gereken konuda monitör. Kurup denemek istediğiniz yazılımları VPC üzerine kurup deneyebilir işimiz bitince de VPC'yi tamamen ortadan kaldırabiliriz. öneri ve değerlendirme yapması ve çözümler sunması beklenir. Uzun ve yorucu olabilir. SQL Server 2005 gibi ağ üzerinden erişim gerektiren yazılımları VPC üzerine kuruyorum. ayrıca beta sürüm yazılımlarıda VPC üzerinde kurup deniyorum. Toplantı yapıcı bir olaydır fakat her zaman iyi sonuçlar doğurmaz. 3. Bu durumda yatırım yapılacak diğer bir parçada monitör. Toplantıya katılanların aktif olarak dinlemesi. Ayrıca katılanlar seslerini de duyurmak isterler.

Toplantılar pahallıya mal olan olaylardır. Bir kaç kişi birleşip kendi fikirlerini benimsetmeye çalışır yada toplantıda sadece bir kaç kişi konuşur. Kişiler geç gelir ve erken ayrılır. Kişiler diğerlerinin fikirlerini önemsemez ve başka konular üzerinde çalışır. Kişiler toplantıya hazırlanmadan gelir.) Eğer toplantılar verimsiz geçiyorsa muhakkak anlarsınız. kabul etmedi.53 Blogdan Seçmeler İş yaşamımızın büyük bir bölümü toplantılarla geçer.  nedenler: o o o ekibinden ise) o Ben bunu geçen ay patrona söyledim. Şüpheniz varsa aşağıdaki göstergeler yardımcı olabilir.        Başlangıç ve bitiş saatleri planlandığı gibi yürümez. gayri resmi konuşmalar vb. Özellikle proje başlarında analiz yaparken. Duygusallaşıp kişisel saldırı yapanlar olabilir. Toplantı girip çıkan kişiler tarafından bölünür yada cep telefonları çalar. (patron toplantıda Bu fikre kesinlikle karşı çıkarlar (müşteriyi kastederek) Biz onu geçen sene denedik (tuhaf bir sırıtma ile) Tamda pazarlama ekibinden duyacağım bir çözüm (konuşan yazılım Öneriler dandik nedenlerden dolayı geri çevrilir. sonunda da doğru kararın verilip verilemeyeceği kesin bile değildir. telefon. Toplantının verimini anlamak için kendinize sormanız gereken bir kaç soru var:  Toplantının başarılı olması için üzerinize düşen her şeyi yaptınız mı?  Toplantıya katılan diğer iş arkadaşlarınız verimli bir toplantı olduğu konusundan hemfikirler mi?  Toplantı sonucunda alınan kararlar toplantı maliyetlerini amorti ediyor mu?  Aynı sonuçlara toplantı yapmadan da ulaşabilir miydiniz? (E-posta. Benim en sevdiğim dandik olmayacak) *Benim favorim* .

. yanlış. Peki toplantıları nasıl verimli hale getireceğiz. (Bu çok kötü bir durumdur)  Toplantı sonucunda işler paylaştırılır ve herkesin yapacağı iş belirlenir fakat kimse görevlerin başarılıp başarılmadığını kontrol etmez.Blogdan Seçmeler 54  Birisi konuşmasını bitirip diğeri söz aldığında konuşulanları göz ardı edip tamamı ile başka bir konuda konuşmak. Eğer toplantılara tüm ekibi çağırmak zor oluyorsa bir kaç önerim var Lider Ekibi: Bu ekip firmanın her bölümünden konusunda uzman kişilerin bir araya gelmesi ile oluşturulur. Toplantı sırasında maskelerle oturan yada hiç konuşmayan kişilerin fikirlerini almak için birebir.   Kesin karara varmadan yada tüm çözümleri dinlemeden toplantının bitmesi. Sorular ve beklenen cevaplar kısa olmalı. Lider ekibinde proje müdürleri yada ekip liderleri olmamalıdır başka bir deyişle yönetim ekibinden kimse bu ekibe katılmamalıdır. Bazen yüz ifadelerinden ve vücut dilinden çok daha fazla bilgi almamız mümkün. Değişim ve istekleri yöneten bir ekip yok ise Lider Ekibi bu işide yapabilir. 3. Toplantı sonucunda planlanan işlerin paylaştırılmaması ve kişilerin ne yapacağını bilmemesi. Ayak üstü koridor görüşmeleri: Hızlı ve kesin bilgi akışı ile yüz ifadeleri ve vücut hareketlerinin kullanıldığı bir görüşme tipi. Yaratacğı stres ve çelişkilerde cabası. Ekip liderinin sorumlulukları biraz artar ve kritik kararları vermesi beklenir. Ekip içinde iletişimi biraz öldürür ama zaten daha önceden de bir iletişim yoktu. hayır. Kararlar hızlı verilir ve uygulamaya geçilir. Verimsiz bir toplantı işiniz için iyi değildir. Görev verdiğiniz kişiye daha sonra bir e-posta atarak bu görevi verdiğinizi diğerlerinin de bilmesini sağlamayı unutmayın. Lider Ekibinin görevi her gün bir araya gelerek bir önceki günün değerlendirmesini yapmak ve günün problemlerini ve yapılması gerekenleri tartışmaktır. ufak bir prototip hazırlama). doğru" gibi cevaplar ve sonunda kişiye ufak bir görev vererek bitirme (bir belge yazma yada.1 Tümden toplantılardan vazgeçmek İyi bir fikir ve en hızlı biçimde kara geçmenize neden olur. "evet. Yönetim ekibine olan güveni kırar ve ekip içinde kopmalara neden olur. Nede olsa toplantı sırasında harcanacak vakit ve nakit kaybını anında önlemiş oluyorsunuz.7. Ekip lideri bu yükü kaldırabiliyorsa sorun yok. para ve zaman kaybına neden olur.

7. Bazen bu taban bilginin ortaya çıkartılması sırasında çok farklı çözümler üretilebilir.  Problemin anlaşılması için gerekli taban bilgiyi ortaya çıkarır ve katılanlara dağıtır. Problem hakkında bilgisi olan ve çözümleri hayata geçirecek herkes bu toplantıya katılmalıdır. firma içinde de birbiri ile tartışan elemanları bir süreliğine farklı işlerde meşgul edip. Problem içinde belli olmayan yada değişken kısımlar listelenir ve olası problem senaryolarıvarsa ortaya çıkarılır. kiminle tartışacağını ve kimlerin fikirlerine başvuracağını bilen kişi olmalıdır.)  Yazıcıyı belirler. Evet EQ önemli bir olay fakat bir iş için IQ yeterli. Toplantı başkanının yapacağı işlere bakalım: Toplantıdan Önce  Problemi sade bir dille yazılı olarak tanımlar. çatışmaların kişisel alınmaması ve firma çıkarlarının dolayısı ile çalışanların çıkarlarının gözetilmesi hatırlatılmalıdır.  Toplantıya katılacakları belirler.2 Toplantıların Belli Bir Düzen İçinde Yapılması Düzensiz toplantıların zaman ve para kaybına neden olduğunu gördük. Kimse sıkıcı toplantılara katılmak istemez. 3.55 Blogdan Seçmeler Tartışanların ayrı tutulması: Nasıl evlilik müessesesinde fikir çatışmalarından dolayı ayrılıklar oluyorsa. katılsa da verimli olmaz. . Yazıcı toplantıda sunulan önerileri ve bu önerilere verilen cevapların notunu tutar. Öncelikle toplatıyı yönetecek kişi belirlenir. Çatışan kişilerin kendi fikirleri üzerine bir rapor hazırlaması ve değerlendirme sonucu iyi olanının seçilmesi işe yarayabilir. (bazen problemin boyutu değişkenlere göre değişebilir ve etkileri farklı olabilir. Toplantı başkanı konuyu bilen. Probleme yğunlaşmak yerine çevresindeki değişkenlere yoğunlaşmak farklı bakış açıları ve çözümler verebilir. Bir toplantının çekiciliğini ve verimliliğini arttırmak için yapmanız gereken bir kaç şey var. Toplantı başkanı not tutacak kişiyi ve toplantıya katılacak kişileri belirler. düşünmelerini sağlamak gerekir. Konu eğer kişisel boyutlara gelmişse çözmek zor (kanser gibi) fakat önceden sezinleyebilirseniz ve vereceğiniz işlerle konu üzerinde düşünmelerini sağlarsanız çözüm kolay olabilir. Toplantı sonrasında verilen görevlerin yerine getirilip getirilmediğini de kontrol eder.

Bu arada Yazıcıda şunları yapar. Yeni bir çözüm çıkmayana kadar bu işlem devam eder. kimin Toplantı başkanı ve Yazıcısı olduğu hakkında bilgilendirir.  Toplantının ajandası ve akış şeması hakkında bilgi verir. dizüstü bilgisayar vesaire. hesap makinesi. Gerekli belgeleri gönderir ve yer ve zaman konusunda bilgilendirir.  Katılanların bir listesini oluşturur. projektör.  Çözümler ortaya çıktıkça tahtaya yazar ve bir numara verir. Bir kaç çözüm üretildikten sonra. İlk adım olarak problemin bir tanımı yapılır ve konunun anlaşılması için belli Gönderilen belgeleri okumak ve toplantıya getirmek.  Tüm katılanların fikirlerinin tek tek dinlenmesi gerekir böylece herkes bir diğerinin deneyimlerinden yararlanabilir.  Olası çözümleri listeler. Hangi çözüm firmaya en yararlı olandır bulmaya çalışılır.  Bazı çözümleri birleştirerek farklı bir çözüm yaratır ve birleştirilen çözümleri üreten kişilere fikirlerini sorar. Toplantı için gerekli malzemeyide sağlar (beyaz tahta. Çözümü üreten kişinin isminin baş harflerinide çözümün yanına yazar.Blogdan Seçmeler 56  Toplantının zaanını ve yerini tayin eder. Tam olarak anlaşılmayan bir konu üzerinde tartışmak hiç kimseye yarar sağlamaz. Sunulan belgelerde değişiklik gerekiyorsa Toplantı Başkanını uyarmak. bu çözümlerin fizibilite çalışmaları yapılır. miktarda detaya girilir. ağ bağlantısı.  Tartışmaların kaydını tutar.   Çözümleri yargılamadan anlamaya çalışır. En iyi çözümü bulmak için irdelenmesi gereken konular: . Peki katılanların ve Yazıcının görevleri nelerdir?   Toplantı Sırasında   Her katılan kendini tanıtır ve çalıştığı alanı belirtir.)  Diğer katılanları.

Genelde devir aldığımız projeler zamanın şartlarına göre güzel yazılmış fakat artan veri yığınları ve eskiyen teknolojiler nedeni ile ya performansları düşmüş yada yeni sistemlerle konuşamaz duruma gelmiş oluyor.57 Blogdan Seçmeler       Önemlilik derecesi Çözülebilirlik (günün teknolojisi bunu yapabilir mi?) Maliyet Analizi (ne kadara mal olacak) Kaynak ve İşgücü var mı? Yeterli bilgi firma içinde mevcut mu? Bu çözüm başka problemler doğuruyor mu? (en önemlisi bu) Tüm çözümler liste halinde katılanlara dağıtılır ve 1'den 10'a kadar bir önemlilik derecesi vermeleri istenir. Bir problemin mutlak bir çözümü olmayabilir. Sonuçta herkesin verdiği önemlilik dereceleri toplanır ve en yüksek puanı alan çözümler üzerine yoğunlaşılır. Bazende firmaların kısır düşünceleri ve günlük politikaları yüzünden. Yada iki farklı çözüm aynı anda uygulamaya konulabilir fakat bu daha fazla iş demektir. bırakın gelecek seneyi. Katılanların bu sonuçları tasdik etmesi ve tekrar düşünmeleri istenir.8 Eski Projeler Bu günlerde yeni projelere başlamaktansa. önümüzdeki haftayı düşünüp planlamazken. Çözümü hayata geçirecek kişinin yaptıklarını takip edecek ve durumu raporlayacak bir kişi de atanır. 3. Tüm bu plan toplantıya katılan herkese gönderilir. Sonuçta karar verilen çözüm veya çözümler listelenir ve kimin ne iş yapacağı belirlenir. En iyi çözüm belirlendikten sonra bir ekip veya bir kişi bu çözümü hayata geçirmek üzere atanır. Bazı firmalar. Toplantı başkanı bu planı takip eder ve kişilerle kontak kurarak ilerlemeler hakkında bilgi alır. bütün iş yükünü bu iki elemana yükleyip bir şeyler . günü kurtarmak amaçlı alına iki eleman ile eski projeler canlı tutulmaya çalışılıyor. Toplantı Sonrasında Toplantı sırasında tutulan tüm notlar Yazıcı tarafından elektronik ortama aktarılır. Bir kaç çözümün bir araya gelmesi ile daha şık bir çözüm elde edilebilir. Sonuçlar tekrar değerlendirilir. eski projeleri adam etmekle yada yeni sistemlere uydurmakla vakit harcıyoruz.

Blogdan Seçmeler

58

bekliyorlar. Bu iki eleman sihirbaz mıdır da sihirli deynekleri ile sistemi ayağa kaldırıp, bir o kadar da hatayı düzeltip programı çalışır hale getirsin. Diyelim ki böyle bir projeyi Proje Müdürü olarak devir aldınız. İlk yapacaklarınız neler olurdu bir bakalım. 3.8.1 Proje Hakkında Yeterli Döküman Var Mı? Benim devir aldığım projelerin hepsinde dökümantasyon eksikliği vardı. Belkide benim istediğim kalitede dökümana hiç bir zaman erişemeyeceğim ama herkesin hayalleri var değil mi? Kimi zaman veritabanı tasarımlarına rastlasamda genelde işi anlatan döküman bulmak zor olur. Hele hele birde UML model filan arıyorsanız işiniz zor. Her zaman firma standartlarını anlatan bir kaç döküman da bulunur ama bu standartlarda oluşturulmuş bir proje dökümanına ulaşmak her zaman imkan dahilinde olmaz. Genelde kaynak kodu, firma standartları ve çok şanslı iseniz birde veritabanı tasarım dökümanı bulabilirsiniz. Projenin ne olduğunu, müşteri gereksinimlerini, senaryoları, iş akışlarını anlatan dökümanların olmaması sizin için önemli bir riskdir. Programatik hataları kod içinde düzeltseniz bile iş akışları ile ilgili hataları düzeltemezsiniz. Bu büyük riski ortadan kaldıramasakta alacağımız bir kaç önlem ileride işimize yarayabilir. Bunlar: İşi bilen ve iş akışlarında yardımcı olacak sektörden bir elemana erişim. Böyle birisini bulursanız, bu kişinin tam zamanlı olarak projede çalışması için istekte bulunun. Bu kişinin görevi projenin iş akışlarını dökümante etmek olacaktır. Bir UML modelleme aracı ile mevcut kaynak kodunu kullanarak model oluşturmaya çalışın. Bu size genel olarak tüm projede kullanılan nesneler ve aralarındaki ilişkiler hakkında bilgi verecektir. Eğer OO yazılmış bir proje ise işiniz nisbeten kolayç Bazı UML araçları kodu Re-Engineering yaparak koddan model oluşturabiliyor. Modelleme sırasında dağınık bir yapı ortaya çıkıyorsa, ufak modüller halinde toparlamaya çalışın. Böl ve yönet mantığı ile daha kolay anlaşılabilir hale getirebilirsiniz. Yazacağınız raporda bu riskten geniş biçimde bahsetmeyi unutmayın. 3.8.2 Kaynak Kodu Derlenebiliyor Mu? Tüm kodu derlemeye çalışın ve bağımlılık şeması çıkartmaya çalışın. Modül bazında derleme sırasını oluşturmaya çalışın. Kullandığınız UML aracı ile bu derleme sırasını modelleyin. Eksik, kayıp,

59

Blogdan Seçmeler

gereksiz modüller var mı tesbit edin. Kullanılan üçüncü parti modülleri de tesbit edin. Eğer kod sorunsuz olarak derlenebiliyorsa bu sizin başlangıç noktanız olacaktır. Yeni bir VSS veritabanı yaratıp tüm kodu buraya aktarın ama kodun tarihçesini almayın. Eski VSS veritabanını da daha sonra kullanmak üzere yedekleyin. Yeni yarattığınız VSS sanki yeni açılmış bir proje gibi olacak. Derlenemeyen kod varsa bunlarda risk oluşturacaktır. Raporunuza bu riskleri de ekleyin. 3.8.3 Bir Müşteri İstekleri Ve Hata Veritabanı Mevcut Mu? Daha önce kullanılmış bir hata ve istek veritabanı size projenin gidişatı ve şimdi bulunduğu konum hakkında bilgi verecektir. Bir kaç analiz yapıp iyi ve kötü modülleri yada hataların genelde nerelerde çıktığını tesbit edebilirsiniz. Bu veritabanını yedekleyip yeni ve temiz bir tane oluşturun. Aynen VSS gibi sıfırdan başlayacak. 3.8.4 Kaynak Kodu Bir Kod Kontrol Veritabanına Bağlı Mı? Eğer daha önce VSS gibi bir kod kontrol uygulaması kullanılmış ise, kodun tarihçesinden ne değişiklikler yapılmış görebilirsiniz. Bu değişiklikleri hata veritabanı ile karşılaştırabilirsiniz. Ama bu eski kod kontrol veritabanını kullanmayın. Tüm kodu indirip derlendiğine emin olduğunuz kısımları yeni bir kod kontrol veritabanına aktarın. Böylece başlangıç için elinizde bir temel olmuş olacak. 3.8.5 Kullanan Müşteri Var Mı? Bu proje müşterilere kurulmuş mu kontrol edin. Eğer kurulmuş ise müşterinin isteklerini göz önüne alarak bir plan yapın ve bir yapılacak işler listesi çıkarın. Eğer pilot olarak kurulmuş ise bu pilot uygulamalarını tekrardan çalışır hale getirmek için neler gerekli çıkartın. Müşteri tarafında bağlantı kuracağınız kişilerin de bir listesini yapın. 3.8.6 Kurulum Programı Var Mı? Bu yazılımın bir kurulum programı var mı araştırın. Yoksa kurulum için neler gerekiyor araştırın. Daha sonra piyasadaki kurulum hazırlama programlarını veya mevcut elde varsa yeni sürümlerini araştırın. Yamaların ve kurulumların müşteriye sorunsuz ulaştırılması ve fazla bilgisayar bilgisi olmayan müşterilerin rahatça kurabilmesi için mümkün olduğunca basit bir kurulum hazırlamaya çalışın. 3.8.7 Yazılım İçin Kullanılan Araçlar Son Sürümler Mi, Lisansları Tamam Mı? Kullanılan tüm yazılım araçlarını kontrol edip eksik lisanslı olanlarını ve eski sürümleri tesbit edin. Sağlayıcı firmalardan kiminle kontak kurulacağını tesbit edin. Eğer eksik lisanslar varsa bu bir risk teşgil eder. Raporunuza bunları eklemeyi unutmayın.

Blogdan Seçmeler

60

3.8.8 Yeterli Teknik Alt Yapı Mevcut Mu? Kullanılan bilgisayarlar, sunucular, sabit disk kapasitesi, ağ ve internet erişimi proje için yeterli mi araştırın. Projenin derlenmesi, veritabanının oluşturulması gibi işlem gücü ve hafıza isteyen operasyonlar çok zaman alıyor mu kontrol edin. Yeterli hafıza, sabit disk, işlemci için istekte bulunun ve risk olarak bunları raporunuza ekleyin. 3.8.9 Projede Kullanılmış Üçüncü Parti Modül Var Mı? Bu proje dahilinde yazılmamış veya hazır satın alınmış modüller, ActiveX nesneler yada assembly'ler, aynı firma içinde başka bir projede yazılmış modüllerin hepsi üçüncü parti modüllerdir ve sorumluluğu başkasına aittir. Fakat genede proje içinde bunları yönetecek bir elemana ihtiyaç vardır. Bu kişi gerekli firmalar yada kişiler ile bağlantı kuracak, yeni sürümleri takip edecek, yamaları uygulayacak ve çıkan hataları sağlayıcı firmalara bildirecektir. Bu aşamada böyle bir elemana sahip olmasanız da üçüncü parti tüm modülleri tesbit edip bir liste haline getirin, sağlayıcı firmalardan kontak kurulacak kişileride karşılarına yazın. Yukarıda bahsettiğim elemanı ekibinize dahil ettiğinizde yapacağı işler az çok çıkmış olur. Projede kullanılabilecek üçüncü parti modül var mı? Özellikle çalışmayanların yerine kullanılabilecek. Hazır satılan bir muhasebe modülü, kredi kartı kontrol modülü, portal şablonları vs. gibi piyasada hazır bulunan modüllerin araştırılması ve bir kar zarar analizi ile projede kullanılıp kullanılamayacağını araştırın. Hatalı modülleri yeniden yazmak mı daha karlı olur yoksa hazır bulunan bir modülü entegre etmek mi? 3.8.10 En Fazla Sorun Çıkaran Modüller Hangileridir?

Hata ve istek veritabanından çok sorun çıkartan modülleri bulun. Değiştirilecek yada çok fazla zaman alacak kısımları ortaya çıkartın. Bu modülleri önem sıralarına göre dizip işe nereden başlamanız gerektiği konusunda bir plan ortaya çıkartabilirsiniz. 3.8.11 Genelde Sorunlar Basit Programatik Sorunlar Mı Yoksa İş Akışlarında Mı?

Gene hata ve istek veritabanından sorunların programatik sorunlar mı (örneğin sıfıra bölme, text box'ların yerlerinin değiştirilmesi, veritabanına kayıt sırasında bir sahanın unutulması vs) yoksa iş akışlarında mı (örneğin bir sipariş alma ve gönderme sırasında geçen olaylar ve kullanılacak

3.12 Bir Proje Planı Mevcut Mu? MS Project veya MS Excel gibi bir araçla oluşturulmuş bir proje planı var mı ve var ise gelecekte yapılacak işler yazılmış mı? Böylece ileride yapılacak işlere buradan da bir kaç madde eklenebilir. Küçük parçalarda hata aramak ve düzeltmek te daha kolay olacaktır. Sizin yapıp yapamayacağınız işler imkanlar dahilinde ortaya çıkmıştır ve eğer patron sizden gerçek dışı. Ama danışmanların pahallıya mal olacağını söylemeyi unutmayın.8. Böylece zamanla hem mevcut koda hemde iş akışına aşikar olacaklardır. Patron.13 Hızlı Çözülebilecek Hatalar Nelerdir? Hızlı çözülebilecek hataların tesbitini yapıp bunları yeni mezun programcılara yada stajyerlere verebilirsiniz.15 Kompleks Modüller Bölünebilir Mi? Fazla kodlamadan dolayı yada fonksiyon fazlalığından şişmiş modüller bölünüp daha kolay yönetilebilir parçalar haline getirilebilir. ileride doğacak yanlış anlamaları ortadan kaldıracaktır. 3. 3.16 Modül Testleri Yapabilmek İçin Test Senaryoları Oluşturmaya Başlayın Test senaryoları size bir modülün nasıl çalıştığını ve ne tür hata durumları oluşacağını belirtir. doğa üstü bir şey istiyorsa güzel bir dille sizin büyücü olmadığınızı ve geleceği gösteren kristal topunuzun olmadığını. sizden neler bekliyor öğrenmeniz.8. böyle bir öngörü istiyorsa Medyum Keto yada Memiş'i proje müdürü olarak almasını tavsiye edin.61 Blogdan Seçmeler fonksiyonlar)? Programatik sorunları çözmek kolaydır fakat iş akışlarındaki hatalar ancak işi bilen birisi tarafından bulunabilir ve çözülebilir. Biraz daha sistem hakkında bilgileri artınca diğer hatalarıda atayabilirsiniz.14 Patronun İstekleri Nelerdir? Patronun hedefleri nelerdir. . Bu dökümanları hazırlamak uzun sürer. proje müdürü için bir çeşit müşteridir ve mutlu edilmesi gerekir.8. Eğer programatik hatalar çoğunlukta ise işiniz nisbeten daha kolay. İleride işleri programcılara atarkende işinize yarar.8. İlk oluşturulan test dökümanları yetersiz olabilir fakat zaman içinde bu yetersizlikler dökümana eklenerek tam bir test dökümanına kavuşabilirsiniz.8. Onlar için en iyi eğitim bu şekilde olur sanırım. Yada bir ara yolu düştüğünde Kıbrıs'ta Elmas Hanım'dan da danışmanlık alabilir. Bu tür imkanlar varsa kesinlikle uygulayın. 3. 3.

ekleme çıkartma yapabileceğimiz bir bütçedir. 3. Ama Proje Müdürü olarak girmek zorundasınız. Eğer patronda yeni teknolojiye geçmekte gerçekten hevesli ise ve bu geçiş projesine emek. 3. ihtiyaçları sıralamak. yazılım ihtiyacı.8. Tabii bu durumda yukarıda yazdığım planların çoğu değişiyor.8. Bütçe projenin ihtiyacı olan insan sayısı. piyasadan örnekler vermek ve ayakları yere basan gerçekçi bir plan sonucu ucu açık bir bütçe istemek gerekir. temel ihtiyaçlar (yemek.18 Ne Kadar Bütçemiz Var? Bütçe konuşmaları en sıkıcı konuşmalardır. eğer iyi bir planlama yaparsanız ve kaynakları iyi kullanırsanız her şey mümkün. Bir mühendis olarak imkanları. projeler doğduğu gibi ölürler de. Riskler ve tam olarak belli olmayan müşteri istekleri raporun ana kaynağı olacak ve bu riskleri ortadan kaldırmak için sunacağınız bir kaç yöntem -onaylanırsasizin çözüm yolunuz olacaktır. hataların sayısı. . Patronun kafasında eski deneyimlerine dayanarak ve bu projenin yediği bütçeyi düşünerek zaten bir rakam vardır. Sizin göreviniz patronun beynini bu rakam bariyerinden kurtarmak ve daha mantıklı bir düşünce sistemine getirmek olmalıdır. "Ucu Açık" tan kastım tam olarak kapalı bir bütçe yerine esnek. Öte yandan bu yazılım yazıldığı sırada hiç kimse bu yazılımın emekli olacağı zamanı düşünmemiş ve planlara katmamıştır. donanım ihtiyacı. Manav gibi pazarlık yapma hüneriniz yoksa hiç girmeyin daha iyi. kendi planlarınız ile karşılaştırıp bir rapor halinde patrona sunun.8. Fakat zaman zaman yazılımlar o kadar eskirki artık ne yazıldığı dil sağlayıcı firma tarafından destekleniyordur nede çalıştığı işletim sistemi. Her projenin bir hayat süreci vardır. para harcayacaksa işiniz biraz daha kolay. Ne kadar zamanınız olduğunu Patrondan öğrenin ve gerçekçi olup olmadığı konusunda. Zamanınızı iyi kullanmak sizin elinizde. riskler. riskleri. ofis kirası. masa sandalye gibi mobilyalar.Blogdan Seçmeler 62 3. kahve).19 Na Kadar Zamanımız Var? "Zaman" her zaman dar olduğumuz bir ihtiyaç. Ama nedense bu ölüm zamanı planlarda pek bulunmaz (en azından yazılım dünyası için). Sizin için yeni bir proje ve yeni bir başlangıç olacaktır.17 Projenin Yeni Bir Teknoloji İle Yazılması Makul Müdür? Böyle bir öneriyi patrona götürürken çok dikkatli olmalısınız. çay. Zira tüm yük omuzlarınızda kalabilir. zaman. elektrik ve su giderleri gibi daha burada unuttuğum pek çok değişkene dayalı olarak hesaplanmalıdır. Genelde tam ihtiyacımız olduğu anda biter.

Pilot firma olarak kullanıp ürün testleri yada kullanıcı kabul testleri yapabilirsiniz. 3. Eğer sizin ürününüzde olmayan fonksiyonlar varsa. Projenin boyuna göre alınacak bir kaç Gereksinim ve Modelleme Uzmanı.22 Hazır Müşteri Var Mı? Hazırda bekleyen müşteriler de sizin için bulunmaz bir fırsat. Bu tür müşterileri organize edecek bir elemanda atamanız gerekebilir.8.20 Yeni Eleman Alabilir Miyiz? Eleman alımları eğer onaylanırsa. 3.21 Program Kaça Satılacak. Yazılım uzmanının hem destek vermesi hemde program yazması bekleniyorsa. Yeni mezun ve usta programcıların karmasından oluşmuş bir yazılım ekibi. gazetelerde. Göz ardı edilmemesi gereken bir kaynak bence. . Vereceğiniz ilanlarda hem kullanılan teknolojiyi hemde işin yapısını belirtin. sistem yöneticisi. Böylece ürünün reklamı yapılırç MEdya uzmanının ürün hakkındaki bilgisi pazarlama uzmanları ile aynı olmalıdır. Görüyorsunuz pazarlama ekibi bile yazılım ekibine istekte bulunarak projeye katkı sağlayabiliyor. işinize yarayacak elemanları bulmak size kalıyor. televizyonda reklamlarını ve röportajları yönetecek bir medya uzmanı gereklidir.24 Medya İle Bağlantıları Sağlayacak Biri Var Mı? Ürünün tanıtımını yapacak. bu da işleri ucuza getirme felsefesinden doğuyordur ki profesyonelliğin öldüğünün ve batmaya başlayan firmanın göstergesidir. bunları analiz edip genel iş akışı olarak belgeler ve yazılım ekibinden istekte bulunabilir. Destek ekibinin eğitimi çok önemlidir ki müşteri tarafında destek verirken hızlı ve doğru olsunlar.8.8.23 Programın Desteğini Verecek Ekip Var Mı? Eğitimleri Yeterli Mi? Destek ekibi genelde yazılım ekibi içinden gelir fakat çok sıkıcı bir iş olduğundan yazılım ekibinden kimse yapmak istemez. Aslında yanlış da bir uygulamadır çünkü bir yazılım uzmanına ödediğiniz maaş destek elemanına ödeyeceğiniz maaşdan çok daha fazladır. 3. Beklenen Kar Nedir? Programın satışı ve fiyat belirlemelerini yapacak pazarlama ekibi ile sıkı bağlantılar.8. Pazarlama ekibi üretilen yazılımın tüm artı ve eksilerini bilmeli ve piyasadaki diğer rakipler ile karşılaştırmalı tablolar hazırlamalıdır. yazılımın pazar gücünü arttıracaktır. dergilerde.8. 3.63 Blogdan Seçmeler 3. veritabanı uzmanı ilk aşamada ihtiyacınız olanlar.

mühendislik yöntemlerinin yazılım alanında yanlış kullanılması sonucu artık işe yaramaz hale gelmiş. Yıllardan beri izlediğiniz yöntemler (bir işe yaramadığını bile bile). yarım kalan işleri tamamlamak. bir eposta listesi ve bir hata bildirme formu müşteriyi mutlu edecektir. Böyle bir projeden genelde beklenen kısa zamanda piyasaya çıkması ve satılmasıdır ki zaten zarara uğramış bir projeden bir miktar da olsa geriye dönüş olsun. SPICE. Gelişme eğer temelleri iyi atılmış ise mümkün olur ve izlenen yola göre.26 Programın Deneme Sürümleri.Blogdan Seçmeler 64 3. Her yiğidin bir yoğurt yiyişi vardır fakat firmalarında belli bir yoğurt yiyişi olmalıdır. firmalara deneme sürümlerinin yada kısıtlı sürümlerinin satılması yada ücretsiz verilmesi düşünülebilir.8. ISO. 3. faydaları zaman içinde ortaya çıkar. Fakat planlama aşamalarına az zaman harcandığı ve gerçeklikten uzak olduğu için istenen sonuç elde edilemez. Tabii her değişim bir öğrenme evresi ve eğitim zorunluluğu ile birlikte gelir. Müşterilerin kullanacağı bir forum. müşteri problemleri ile uğraşmak gibi sorunlarla başetmek zorunda kalırız. durağan işleyiş modellerinin değiştirilmesi gerekebilir. Fakat belli bir yöntemi firma genelinde oturtmak uzun vadede çok daha faydalı olacaktır. sistem üzerinde biraz bilgisi olan bir kaç yazılım uzmanı tüm planları hızlandırabilirdi oysaki. İşinin ehli. Öte yandan eminim bütçe kısıtlı olacaktır ve ekstra eleman almak mümkün olmayacaktır. Firmanın sahip olduğu bu "kişilik" ve "kültür" çalışanlar tarafından benimsenmelidir. Firmalar kendi içlerinde küçük sosyal yapılardır ve her sosyal . Onaylarlarsa projeye başlayabilirsiniz.9 CMMI. Üst yönetim ekibinin bu riskleri ve çözümleri hazmetmesi için bir kaç gün zaman verin.8. okulda öğretilen metodlar. Öğrenci Sürümleri Olacak Mı? Ürününüzün yayılması ve mümkün olan en fazla kitleye erişebilmesi için okullara. kullanım kılavuzlarının yer aldığı bir site çok işinize yarayabilir. IEEE Eğer bir ekip içinde yazılım geliştiriyorsak her zaman yeni teknolojilere ayak uydurmak.25 Programın Tanıtılacağı Bir Örütbağ Sitesi Var Mı? Ürününüzü örütbağ üzerinde tanıtacak. 3. Ama tabii firma sahipleri kaz gelecek yerden tavuğu her zaman esirgerler di mi? Proje müdürü olarak bu bariyerleri kırmak sizin elinizde. Sonuçta önemli olan planın gerçeğe yakın olmasıdır. Bir mühendis olarak tüm problemleri ve riskleri delilleri ile beraber ortaya koyup olası çözümleri sunduğunuzda epey bir yol katetmiş olacaksınız. Analist Yazılım Uzmanı olarak ta kendimizi geliştirmek ve bilgilerimizi çoğaltmak ile yükümlüyüz. müşterilerin aradıklarında bulmasını sağlayacak.

direnişe veya bölünmelere neden olur.1 Müşteri Bir firmanın varoluş sebebi müşterileridir. Bir yazılım firması hayal edip kavramları oturtmaya çalışın. aniden değişen kurallar firma çalışanlarını korkutabilir. Kurallara uymak ile yükümlü olan çalışanlar anayasa üzerinde değişiklik yapılması için önergede bulunabilir. uymazsa sonuçlarının neler olacağı tartışılmalıdır. Ayrıca bu değişikliğin. Bir iki dinazor çıkacaktır tabii fakat sebeplerin çok iyi analiz edilmesi ve yeni sistemin öğretilmesi için zaman harcanması gerekir. Bunu hepimiz çok iyi biliyoruz sanırım. anayasanın nasıl uygulanacağına. Tabii bu anayasanın da uluslararası yasalara uygun olması gerekir ki firmanın dışarı ile olan ilişkileri (hem yabancı hemde Türk firmalar) de belli çerçeveler içinde ve anlaşılabilir düzeyde olsun. Ayrıca her sosyal yapının bir de karşıtı (rakibi) vardır ki. ayakta kalabilmesi ve gelişebilmesi için bu gereklidir. Bu kadar genel konuşmadan sonra. Bir yazılım projesinde de en önemli unsur müşteri gereksinimleridir. firma kültürünün nasıl oluşturulacağına. Müşterisi olmayan bir firma düşünebiliyor musunuz? Bu durumda mutlu edilmesi gereken en önemli birim müşteridir. Ürüne odaklandığınız için müşteri ikinci plana itildi.65 Blogdan Seçmeler yapının haberleşmeye ve paylaşmaya ihtiyacı vardır. Buraya kadar yazdıklarımı lütfen yavaş yavaş ve tekrar okuyun. Firma içindeki yazılım geliştirme kültürü ise bu sosyal yapının bir nevi anayasasıdır. Fakat sindirilerek ve belirli politikalar uygulanarak yapılan değişiklikler daha kalıcı olur. müşteriyi dinlediniz veya müşteri ile bir fikir birliğine vardınız yada müşteriyi tam olarak anladığınıza inandınız? E o zaman bu kadar önemli bir unsuru neden proje dışında tuttunuz? Neden müşteriyi iyice dinlemediniz? Cevap sanırım çok kısa ve klasik. 3. . Şimdi bir düşünelim. Firmaya yeni kişiler alınırken de firma kültürü ve ahlakı da ortaya konulmalı ve görüşmeler sırasında adayın bu kurallara aşina olup olmadığı veya öğrenmeye ve uymaya istekli olup olmadığı. Tepeden inme metodlar. dünyada mevcut uluslararası kurallara bir göz atalım. Bu şekilde aday seçimi aşaması çok daha verimli olacaktır ve firmanın geleceği garanti altına alınmış olacaktır.9. Oysa ki en önemli unsur müşteriler. çünkü düşündüğünüz tek şey sonuçta ortaya çıkacak üründü. verimi arttırdığı görüldüğün de kabul edilmesi çok daha hızlı olacaktır. Mutlu müşteri bedava reklam demektir. Yani düşman olmadan ilerleme olmaz. yaptığınız kaç projede gerçekten müşteri ile yüz yüze geldiniz. firmanızın hayatta olma sebebi.

kimisi müşteriyi hiç görmek istemez. görevler yerine isimlerin yazılmasıdır. Bir firmanın öncelikle bir organizasyon şemasına ihtiyacı vardır. kimisi kalite kontrolü en sona bırakır. Eğer tutarsa ne ala. Yazılım firmalarında ise kimisi paldır küldür kod yazmaya girer. yazılım geliştirme metodu firmanın işleyiş modeli içine entegre olmuş bir parçadır ve işleme modelindeki kontrol mekanizmaları ile kontrol edilir. agile. Burada bahsettiğim firma kültürü. Eğer firmanın işleme modeli genel standartlar içinde ise kalite zaten kendiliğinden gelir. Görülüyorki müşteri odaklı bir sistemin hayatta kalabilme şansı daha fazla ve riskleri daha az.2 Kültür Firmanın yazılım geliştirme kültürü. İşte size mutluluğun resmi. işleme modeli ile yakından ilgilidir. ne yapacağı belirlenmiştir. Her görevin ne iş yaptığı ayrıntılı olarak açıklanmalıdır. Bu şemalarda yapılan en büyük yanlış. ayrıca geliştirme aşamasında katkıda bulunduğu için memnun ve mesut. 3. bir başkası bir al bir bedava der v. Böylece çeşitli görevler için atanan kişiler ne yapacaklarını önceden bileceklerdir. Aynı sektörde olupta farklı yöntemlerle iş yapan firmalar vardır. Örneğin kimisi tahsilatı aylık yapar. XP vs. diğeri peşin çalışır. Ürün odaklı sistemlerde ise ürünün ne olacağı. kimisi önce analiz belgelerini yazar. Kontrol ve işleme modelini geliştirmek gibi konular üzerinde de fazla durulmaz.9. Belli bir müşteri kitlesi belirlenmiştir fakat müşterinin üründen haberi yoktur. Sadece görevlerin yer aldığı bir şema daha motive edici bir şema olacaktır. yazılım geliştirme metodolojileri ile (waterfall. Ayrıca atamaların karar verilmesi için kişinin bir üst . Böylece ortaya çıkacak ürün müşteri gereksinimlerini daha iyi karşılayacak ve kendi kendini satacaktır.b. Dinamik yapısından dolayı ürün odaklı sisteme göre daha zor gelebilir fakat işleme modelini bir kere oturttuktan sonra sorun olmayacaktır. kimisi de bazı işleri taşeronlara verir yada Open Source modülleri kullanmaya çalışır. Peki nedir bu işleme modeli? İşleme modeli bir firmanın yaptığı işi ele alış şeklidir.Blogdan Seçmeler 66 Ürün odaklı sistemler ile müşteri odaklı sistemlerin en büyük farkı müşteri odaklı sistemlerin devinimsel olmalarıdır.) karıştırılmamalıdır. Müşteri üründen haberdar. Abidin Dino gibi ressam olmasakta kendi alanımızda mutluluğun resmini yaptık işte. Demek ki firmamızın işleme modelinde ilk değiştirmemiz gereken şey müşterinin önemini anlamak ve ürün yerine müşteriye odaklanmak. Metodolojinin açıkları veya yetmeyen tarafları varsa eklenir veya değiştirilir. Yani projenin hayat süreci boyunca müşteri yeni bir şeyler ister sizde bunları uygulamakla yükümlü olursunuz. kar yapabilir fakat batabilirde. gibi.

CMMI sertifika sistemi ilk çıktığında bu model vardı sadece. zamanına göre de oldukça başarılı oldu. IEEE 12207 çok güzel bir işleme modeli ortaya koyuyor ve yazılım firmaları yada departmanları için ideal. Avrupada ISO (International Standards Organisation) bir standart çıkarınca Amerikada boş durmayıp IEEE (The Institute of Electrical and Electronics Engineers) ile bazı standartlar çıkardılar fakat biraz bölük pörçük ve acele ye gelmiş bir standart. Çeşitli standart kuruluşları ve Amerikan ordusu bu konuya el atıp bir standarda oturtmaya çalıştılar. ISO ve diğer standartların katkısı ve eklenen yeni modüllerle oluştu. . Problemler için nerelere başvurulacağıda kolayca görünür. İlk başlarda çıkan pek çok standart ürün odaklı idi fakat bu günlerde artık müşteri odaklılar. İlk 93 sayfayı okuyup diğer bölümleri yeri geldikçe okuyabilirsiniz. Biri "Continues" yani devinimsel diğer ise "Staged" yani merdiven modeli. Konumuz yazılım geliştirme olduğuna göre bu konudaki işleme modellerine bakalım. Yani size bağlı çalışan tüm departmanlar belli kriterleri geçmeden CMMI sertifikası alamıyorsunuz. SEI ise bir adım daha ileri gidip hem ISO ve IEEE sentezinde hemde EIA/IS (Electronic Industries Alliance Interim Standard). (Gene felaket bir çeviri oldu farkındayım :-) ) Merdiven modelinde bir organizasyonun değerlendirilmesi aşağıdan yukarıya her departman için yapılıyor. IPD-CMM (Integrated Product Development) ve Capability Maturity Model işleme modellerini aynı potada eritip CMMI (Capability Maturity Model Integrated) modelini ortaya çıkardılar. Genelde insan hayatının söz konusu olduğu sistemlerde bu model kullanılır. Hala da geliştirilmeye devam ediyor. CMMI'ın iki farklı modeli var. Maalesef link veremiyorum çünkü bunlar paralı satılıyor.Software Engineering Institue (SEI) ile anlaşıp bu işi üniversite bazında çözmek için girişimde bulundu ve ortaya CMM (Capability Maturity Model) çıktı. Ayrıca 12207'nin nasıl uygulanacağını anlatan 15504 numaralı bir standartları da var. 724 sayfalık CMMI pdf dosyasını indirdiğinizde elinizde hatırı sayılır bir işleme modeli oluyor ki bunu uygulayabilirseniz ne ala. ISO'da da aynı numaralarla standartlar mevcut.67 Blogdan Seçmeler pozisyondan yaptığı işleride rahatça görebiliriz. Destek anlaşmaları gereği üretilen her ürünün halka açılması zorunluluğundan dolayı SEI tüm bu standartları kendi örütbağ sitesinde yayınlıyor. Amerika bu işin devlet eli ile olmayacağını anlayınca Carnegie Mellon . Amerikan ordusu tarafından desteklenen bu proje şimdiye kadar çıkan tüm IEEE.

Gerekli Linkler: http://www.cmu.sqi.edu/sema/welcome. Optimizing (Siyah Kuşak) Tavsiyem Continues modeli indirip bir göz atmanız ve ilk 93 sayfayı okumanız. Esas dökümanları olmasada "draft" sürümünü indirip bakabilirsiniz. SOA mimarisi ile tasarlanmış bir uygulamada bakım ve onarım işleri daha ucuza mal olur diyebiliriz. Incomplete (Beyaz Kuşak) 1. Managed (Turuncu Kuşak) 3.html Software Engineering Measurement and Analysis http://www.sei. 5 adet CMMI sertifikası mevcut. bunlar: 0. Service Oriented Architecture. Quantitatively Managed (Kahverengi Kuşak) 5.002. . grafik arabirime (sunum katmanı) kadar uzanan bu katmanlar birbirleri arasında veri alışverişi yaparak istenilen operasyonu başarmaya çalışır. Her hizmet kendi başına bir iş halleder. Ayrıca SOA ile tekrar kullanımı arttırıyoruz ki bu da tekrar eden işlemler için aynı programın tekrar tekrar yazılmasını ortadan kaldırıyor.psmsc. Yazılım geliştirme sürecinde ilk başlarda analiz yaparken ortaya çıkan "iş senaryolarının" ayrı birimler olarak ele alınması ve kendi başına var olabilecek hizmetler olarak tasarlanması olarak yorumlayabiliriz. Defined (Mavi Kuşak) 4. yani Hizmet Tabanlı Mimari.edu/publications/documents/96.Blogdan Seçmeler 68 Öte yandan Devinimsel model ise organizasyon departmanlarını tek tek ele alıp değerlendiriyor ve CMMI sertifikası veriyor.reports/96. Performed (Sarı Kuşak) 2.edu.sei. UML vesaire. Veritabanından. Arayüzlere dokunmadıkça ve giriş çıkış veri formatını değiştirmedikçe içeride her türlü değişikliği yapabiliriz.sei.gu.hb.cmu. Yeri gelmişken bu sertifikalardan da bahsedeyim.com/ Practical Software Measurement http://www.sei.sei.) sonuçta elinizde bir kaç katmana yayılmış hizmetler olacaktır.edu/cmmi/ CMMI Ana Sayfa http://www.cmu.au/spice/ SPICE Ana Sayfa http://www. Hatley-Pirbhai. Bir başka modelde SPICE. SPICE size yazılım geliştirme modelinizi tetkik edecek bir sistem sunuyor.cmu.10 SOA ve Proje Analizi SOA.html ISO9001:2001 ve CMMI arasındaki benzerlikler http://www.html CMMI Continues Model http://www.edu/cmmi/adoption/iso-mapping.cmu.html Goal Driven Software Measurement 3. Bu tetkikler sırasında da yapılması gerekenleri anlatıyor. Nesne Yönelimli Analiz metodu olarak ne kullanırsanız kullanın (Shlaer-Mellor. ISO ve IEC standartları göz önüne alınarak hazırlanmış.edu/publications/documents/02.reports/02tr011.

Belli bir metod ile analiz yapmak ilk etapta yorucu gelebilir (daha önce gelişi güzel analiz yapanlar için). Karmaşık operasyonlar atomize parçalara ayrılarak kodlama süresi kısaltılabilir. Açık kaynak projelerin lisans anlaşmalarını iyi inceleyin ve açık kaynak kullanacağınız projelerin sahiplerini bu konuda haberdar edin.10. 3. . Emin değilseniz diğer ekip elemanları ile tartışarak en iyi çözüme ulaşmaya çalışın. Çizilen şemaların ekip tarafından paylaşılabilmesi ve yorumların online olarak girilebilmesi gerekir.10.10. Böylece ekipten gelecek yorumlar hızlı bir şekilde modellere yansıtılabilinir. 3. doldurulması gereken formlar ve yazılması gereken belgeler yük olabilir ama yarın bir şeylere ihtiyacınız olduğunda cevaplar bu belgelerde ve formlarda saklı olacaktır ayrıca ortaya çıkacak üründe müşteri gereksinimlerini tam olarak karşılayacak bir ürün olacaktır.69 Blogdan Seçmeler İyi bir SOA tasarımının kalitesi ilk etapta yapılan analizin kalitesine bağlıdır.2 Seçtiğiniz Metoda Uygun Bir Modelleme Aracı Kullanın. Bu metoda uyduğunuz sürece hata yapma yada bazı adımları atlama olasılığınız en aza inmiş olacaktır. Metodu kendi isteğinize göre de değiştirebilirsiniz fakat yapılan değişikliklerin verimliliği nasıl etkilediği test edilmeli ve metoda kattığı artılar gözler önüne serilmelidir. Modellerin sürekli el altında olması gerekir.10. Benim değinmek istediğim konu bir Analyst Developer'ın gerekli araçları temin ederek bu analiz aşamasından yüzünün akı ile çıkmasıdır. Ayrıca hata ayıklama da ve testlerde problemlerin kaynağının doğru olarak bulunmasını kolaylaştırır.3 Karmaşık Operasyonları Bölün Normalize her aşamada uygulanabilecek bir yöntem. Projelerin tamamını olmasada bazı parçalarını kullanabilirsiniz.4 Hazır Modülleri Araştırın Eğer firmanın yapısı ve müşterinin istekleri izin veriyorsa açık kaynak projelerden yararlanmaya çalışın. Kalitenin anlaşılabilmesi için bazı ölçülere de burada değineceğim. 3. Servisleri mümkün olduğunca bölün ve en ufak atomik parçaya varıncaya kadar katmanlar oluşturmaktan korkmayın. Elinizdeki uygulamanın Data Flow (Veri Akışı) şemalarını çizebiliyor olması gerekir. 3. Örneğin Hatley-Pirbhai ile analiz yapmaya karar verdiniz.1 Metodu Belirleyin Analiz aşamasında takip edeceğiniz metod size analizin yapılması için gerekli izlenecek yolu verir.

bürokrasi ve işleyiş değişiklikleri iş kurallarının değişmesine neden olur. bir işi modellerken sadece işin verdiği tepkileri ve girdi çıktıları modelleyin. Veritabanı ve grafik arayüz en son gelmelidir. Bir işi analiz ederken veritabanı tablolarını ve grafik arayüzü düşünüyorsanız. Belgede bulunması gerekenleri aşağıda listeledim. Her servis belli bir işi yapar ve belli iş kurallarını uygular. Eğer özel sektöre program yazıyorsanız (örneğin bir hava yoluna bilet satış işlerini koordine edecek bir program yazıyorsunuz) iş kuralların değişmesi nadirdir. Bu tür bir özellik testlerin yazılmasını da kolaylaştırır ve kaliteyi arttırır. Her servisin bir belgesi vardır. Analist Yazılım Uzmanının yapması gereken hem işi bu şekilde modellemek hemde modellere uygun sistemi oluşturmaktır. Bu aşamada programınızın tamamını mı yazmak daha kolay olur yoksa sadece veritabanı ile grafik arayüzünü mü değiştirmek kolay olur? Teknoloji ne kadar ilerlese de işin işleyiş kuralları değişmemiştir. Neyse konuyu dallandırmayalım. Yasa değişiklikleri. İşte hizmet tabanlı mimarilerin önemi burada ortaya çıkıyor. Belgenin formatı az çok İş Senaryoları belgesine benzer fakat biraz daha teknik bir belgedir. işte Vista ile Avalon geliyor). değişiklik yönetimi. Bu paragrafı toparlarsak.Blogdan Seçmeler 70 3. devlete program yazmak işlerin temelinden başlanmasını gerektirir ve analizlerin çok uzun sürmesi de bundandır. İş gene olduğu gibi gider. Her belgede olması gereken.5 Veritabanı Ve Grafik Arayüz Değişebilir Yaptığınız tasarımın hedeflerinden biri de zaman içinde veritabanının ve grafik arayüzün değişimlerinden etkilenmemesidir. Buda hizmet katmanınızdaki hizmetlerin değişmesi demek olacaktır. içindekiler. Veritabanı ve Grafik arayüz tümden çöpe atılıp yeniden geliştirilebilmeli ve iş kurallarını uygulayan katmana kolayca eklenebilmelidir. büyük ihtimalle ortaya çıkacak tasarım da veritabanına ve grafik arayüze sıkı sıkıya bağlı olacaktır. Tabii ki özel sektör işleri. onay ekibi ve dağıtım listesini geçiyorum.10. Servis Tasarım Alt başlık: Servisin ismi . Tasarım tamamı ile modüler olmalı ve sadece iş kurallarını uyguladığınız katman sizin için önemli olmalıdır. Fakat devlet birimlerine yazılan programlarda ki iş kuralları genelde değişime uğrar. yeni yasaların gelmesi. Bu durum da SOA mimarisi pek elverişli olmaz. O zaman iş kurallarının parametre haline getirilmesi ve hizmetlerin bu parametreler ile güdümlü olarak çalışması gerekir. devlet birimlerine göre biraz daha statik yapıdadır. SOA mimarilerinde koddan müşteri gereksinimlerine yani geriye doğru takip çok kolaydır. Unutmayın yarın öbürgün teknoloji ilerler ve veritabanları ile grafik arabirimleri değişebilir (oldu bile.

Tabii her çağırılan servisin bir de geriye döndürdüğü hata durumları var ve bunların kontrol edilmesi gerekiyor. yada iş ve sistem senaryoları olarak ikiye ayrılmış senaryoları gerçekleyen servisler tiplerine göre isimlendirilebilir. Eğer veritabanı şekillenmeye başladı ise verinin tipide belirmeye başlamıştır. yada açık kaynak bu tür projeler de var. Hazır hata kontrol modülleri mevcuttur. İş Kuralları Bu servisde uygulanan iş kurallarının bir listesi yada iş kurallarının bulunduğu dökümana link verilebilir. Bu durumda oluşan hataların yönetimi için bir sistem oluşturulup her servis de uygulanmalıdır. Eğer bu servisden 100 adet servis çağırıldıysa kontrol edilecek hata listesi bini geçecektir. Önceden var olması gereken koşullar yada çalışmış olması gereken servisler burada listelenir. Alt Başlık: Tip Servislerde kendi aralarında katmanlara ayrılabilir. Akış Şeması . Eğer bir DFD şeması varsa katmanları görmek kolaylaşır. Oluşabilecek Hatalar Servisin oluşturacağı hataların listesi (exception yada bir hata listesi olabilir) burada listelenir. Servisin Çıktıları Servisten beklenen verinin yapısıda burada yazılır. Çağırılan Diğer Servisler Bu servisden çağırılan diğer servisler burada listelenir ve Servis İçerik belgelerine link verilir. Servisin Girdileri Burada servisin işleyeceği verinin yapısı anlatılır. İleride servisi kullanacak olan programcı (yada bizzat siz) servisin geriye döndüreceği hataları kontrol etmekle hükümlüdür. Ne tür bir girdi olacak tablo halinde yazılmalıdır. Varsayımlar Eğer servisin çalışması için gerekli varsayımlar varsa burada listelenir.71 Blogdan Seçmeler Bu alt başlıkta kısaca servisin ne yaptığını yazmak gerekir.

aksi takdirde yanlış yorumlamalara yada iş akışında oluşacak farklı durumlara sebebiyet verilmiş olunur. Nede olsa sitemin isminden belli bir kitleye hitap ettiğim belli oluyor fakat kitlenin ne yaptığınının sınırlarını çizmemişim. Eğer yukarıda belirttiğim gibi modelleri oluşturmak için bir araç kullanıyorsanız ve modeller iç-örütbağı üzerinden erişilebilir ise. Bana gelen linkler de bazı arkadaşların Analist Developer ne iş yapar diye Google'da aradıklarını gördüm. Böylece değişikliklerden kimler etkilenecek sorusunun yanıtını anında alabilirsiniz başımızdaki saçlar da yerinde daha uzun durur. İşte bu yazımda merak edenler için bir analist yazılım uzmanının neler yapabileceğini irdeliyorum. Bakımı daha kolay olur. kontrolü ve değişimi ne kadar kolay ve sorunsuz ise yapılan işin kaliteside o kadar artıyor.11 Analist Yazılım Uzmanı Analist Yazılım Uzmanı (Analyst Developer kısaca Anyazu diyelim (yeni kelime yaratmak değil amacım.Blogdan Seçmeler 72 Firma genelinde kullanılan metoda göre burada bir şema yer almalı ve servisin yaptığı işi anlatmalıdır. Yada link verilebilir. Test Senaryoları Yukarıda bu servisin geriye döndüreceği hata durumlarını yazdınız. şimdide bu hata durumlarını meydana getirecek durumları listelemeniz gerekiyor. Kullanıldığı Yerler İlerleyen zamanlarda bu servisin çağırıldığı servisler buraya kaydedilir. Ortaya çıkan belgelerin ve modellerin yönetimi. yazı içinde kolaylık olsun diye)) ne iş yapar.Test Güdümlü Yazılım Geliştirme (felaket bir çevirim oldu :-)) ) yapıyorsanız kodlamaya bu test modelinden başlayacaksanız demektir. Söz konusu servis değişikliğe uğradığında buradaki listede bulunan servisler de bu değişiklikten haberdar edilmelidir. Kendi kendime ben neden böyle bir yazı yazmadım diye hayıflandım. Görüldüğü gibi bazı kurallara uyarak yazılım geliştirmek gerçekten de hatırı sayılır bir kaliteye ulaşmamızı sağlıyor. Testler için kullanılacak veriyide tablolar halinde yazın. 3. . Servis kodlanıp test aşamasına geldiği zaman bu test senaryolarında bulunan senaryolar kullanılacaktır. bu servisin ilişkili olduğu modele bir link te verebilirsiniz. Bu bölümü yazarken kesinlikle programlama dilinden uzak durmanız gerek. Eğer TDD (Test Driven Development . Servisi kodlarken kullanılacak en önemli kısımlardan biridir. erişimi. Günlüğümü takip edenler göreceklerdir ki burada yazdığım yazılar genelde belli bir kitleye hitap eder.

analizler nasıl sıralandırılır. müşteri ile nasıl konuşulur. Bir nevi sektörün kalbini dinlemeyi öğrenmek gibi. Anyazu. UML nedir ve nasıl kullanılır. Proje yeni olduğu için müşteri gereksinimleri devinimsel olarak değişime uğrayacaktır. Bir sistemi yada müşteri gereksinimlerini analiz etmek ve bu gereksinimleri yazılım ekibine doğru olarak aktarmak çok önemlidir. Sanki Windows Workflow Foundation olayını görmüş gibiyim. bu konularda kataloglar oluşturmak. (Senaryo Belgeleri) Sistemin sınırlarını çizer (Sistem Gereksinimleri Dökümanı) Harici sistemlerle olan bağlantıları belirler (Harici Arayüz Dökümanı) Senaryolar arası ilişkileri belirler (Use Case. senaryo şemaları nasıl çizilir bilmelidir. “Yeni Başlayanlara” başlıklı yazımda öğütlediğim bazı metodları uygulamanızı tavsiye ederim. araç. Ayrıca Agile Modeling. Müşteri gereksinimleri bir kere müşteri tarafından onaylandıktan sonra tasarıma geçilir. dil. değişikliklerin var olan sistemleri nasıl etkilediğini analiz etmek için sonsuz bir istek ve çaba içerisinde olmalıdır. Bu aşamada Anyazunun yapacakları: Müşteri isteklerini senaryolar halinde belgelendirir. maliyetinin ne kadar olacağının ve ne kadar .73 Blogdan Seçmeler Profesyonel bir Anyazu olmak için araştırma. Müşteri gereksinimlerindeki değişiklikler artık Değişiklik Kontrol Yönetimi ekibinin sorumluluğundadır. UML şemaları) Sistemin hacmini belirler (Function Point Analysis ve COCOMO II) Tüm üretilen çıktıların müşteri tarafından onaylanmasını sağlar. Ayrıca FPA ve COCOMO II konusunda da örütbağı üzerinde araştırma yapıp nasıl kullanılacaklarını öğrenin. standart ve sistemleri takip edip öğrenmek. Bazı ufak tefek metodları iş yerinizde uygulayın. Anyazunun görevi bu değişikliklerin sistemde ne gibi etkiler doğurduğunun. yazılım dünyasında çıkan her türlü yenilik. Gelecekte çıkacak teknolojileri önceden tahmin edebilme. XP gibi metodlar ile ilgili kitap yada örütbağı üzerinde bulacağınız kaynakları kataloglamaya başlayın. Tavsiyem kendinizi sistem analizi ve UML konusunda geliştirin. nerelerde kullanılabileceğini belirlemek ve yeni sürümlerini takip edip. hangilerinin piyasada daha uzun kalacağını algılama gibi yetilere de sahip olmalıdır. Anyazu. Güzel sonuçlar aldığınızda herkes kullandığınız metodun iyi bir metod olduğuna kanaat getirecektir. Örneğin "Düşüncelerim" yazımı okuyun. metodoloji. Öncelikle Analiz olayından başlayalım. teknoloji. nasıl analiz yapılır. Aslında WWF ve BizTalk hemen hemen benim istediğimi yapıyor fakat konumuzu dağıtmayalım. Tabii burada anlattıklarım belli bir deneyimin sonunda ve bilgi birikimi ile olur. Ama WWF'in benim istediğim konuma gelmesi biraz daha zaman alacak gibi. öğrenme ve uygulama şart.

Anyazu tasarım aşamasında iş kurallarını tek bir belgede toplar ve senaryo belgelerinden iş kurallarını çıkartır. Tüm değişiklikler Anyazu tarafından listelenir ve toplantıya katılanlara gönderilir. Projenin yazılacağı dilin nesne yönelimli olmasına gerek yok. sistem hakkında bilgi sahibi olmak isteyen yada referans vermek isteyen kişiler tarafından yoğun olarak kullanılacaktır. yoksa illa pattern uygulayacağız diye model . Tasarım modelinin Use Case'lerden başlayıp nesnelere kadar takip edilebilmesi gerekir. Toplantıya katılan herkes yapılan değişikliklerin onayladığına dair belgeyi imzalar. UML aracının bu tür belgeleri otomatik olarak üretmesi ek bir kolaylık sağlayabilir. Bu tür şemalar en iyi "sequence diagram" (sıralı işlem şemaları) ile analiz edilir. yada MS Visio veya ücretsiz yazılımlardan Argo UML geliyor. modelleme aşamasında ortaya çıkan pattern'leride belirler. Anyazu bu işi de yapar ve modelin bozulmadan kalması için diğer yazılım uzmanlarını koordine eder. sistemin analizine dayanarak ortaya çıkarır ve veritabanı uzmanları ile beraber çalışarak standartlara uygun bir veritabanı geliştirilmesine yardımcı olur. Sistemin analizi sırasında diğer yazılım uzmanlarıda bulunur ve analiz bir toplantı odasında. Anyazu. UML aracı deyince aklımıza Rational Rose (TM). Gerekli nesneler. Bu belgeyi ister tek bir belge halinde ister UML aracı içinde entegre olarak barındırmakla yükümlüdür. Her nesne bir sınıf olarak belirlenir. mesaj alışverişleri. Gerekirse COTS bir ürünün alınması için istekte bulunun. Model ortaya çıkmaya başladıkça hangi ekip elemanlarının model üzerinde değişiklik yapma hakkına sahip olacağı da Anyazu tarafından belirlenir. Unutmayın Tasarım Patternleri model içinde farkediliyorsa uygulamaya girer. bu modeller her türlü analiz ve tasarım amacı için kullanılabilir. Araçlar üzerinde inceleme yapıp hangisinin ekip için de en verimli kullanılacağını araştırın. Böylece toplantı sonrasında kağıt yığınları arasında tekrardan analiz yapmaktan kurtuluruz.Blogdan Seçmeler 74 zamanda uygulanabileceğinin analizini yapmaktır. Anyazu veritabanı modelini. projektörden yansıtılan UML aracı ile yapılır. Model içinde oluşturulacak linkler ve modelin HTML olarak yayınlanması. Sistemde modellenen nesneler ile veritabanındaki tablolar ve sahalar farklı isimlerde olacağı için bir veritabanı sözlüğü yaratır ve modele bağlar. UML şemalarını hazırlarken öncelikle sistemde yer alacak nesneler tanımlanır.asenkron işlemler ve ortaya atılan fikirler direk model üzerinde uygulanır. senkron . Daha sonra bu sınıflar arasındaki ilişkiler senaryo belgeleri yardımı ile belirlenir. Bir UML aracı ile sistemi modellemeye başlar. Analiz sonucuna göre Değişiklik Kontrol Yönetimi değişikliği onaylar yada bir sonraki sürümün kapsamına dahil eder.

CVS gibi konfigürasyon yönetimi yazılımları ile entegre edilmesi) ortamını kurar ve çalışma prensipleri hakkında eğitimleri verir. Anyazu hata ve istek veritabanlarının kullanımı. raporlanması gibi konulara da bakar. gerektiğinde toplantıları organize eder. VSS gibi) üzerinde her Use Case yada function point için bir dizin yaratır ve yazılım uzmanlarına dağıtılacak işleri belirler. Anyazu kodun sistem gereksinimlerine göre yazılıp yazılmadığını teftiş eder. testi gibi işleri koordine eder. bakımı. Kullanılacak üçüncü parti uygulamaları tesbit eder ve entegrasyonu için gerekli kodu yazar yada analizini yapar. Draco. Ayrıca standartlara uyulup uyulmadığını da kontrol eder. PM meşgul ise iş paylaştırması . yazılım uzmanları tarafından kodlanmaya başlandığında. Kodda yazar vakit bulursa. sadece yapılacak işleri koordine eder ve sonuçları çıkartır. CVS. Sürekli Entegrasyon (CruiseControl. Anyazu projenin yada firmanın her kademesindeki kişiler ile doğrudan görüşür ve fikir belirtebilir. Anyazu bu şekilde takılan yazılım uzmanlarını tatlı dille uyarabilir. NUnit gibi yazılımların Subversion. nasıl olsa yorumları yazan biri var diye dökümantasyonu biraz hafife alabilirler fakat yazdıkları kodun ne olduğunu anlatacak yorumları eklemek görevleridir. Test senaryolarını yada kurulum tıkızlarını hazırlamaz. Anyazu padişahın yanındaki vezir gibidir yani. Yazılan kodun entegrasyonu ve dış sistemler ile bağlantılarını kontrol eder ve test edilmesi için gerekli ortamı hazırlar. Sistem. Gerekli ortam deyince aklınıza bilgisayar kurmak gelmesin o işler için sistem yöneticisi var. Konfigürasyon Yönetimi yazılımı (Subversion. İşlerin ataması proje müdürü tarafından yapılır. Bu aşamada Anyazu PM ile beraber çalışır ve her Use Case'in hacmi. Ürünün kurulumu. Tabii burada yazılım uzmanları. İstenmediği sürece raporlara herhangi bir yorum eklemez. Ama kod yazmak ana işleri içerisinde değildir. Problem yaratan konular varsa analizini yapar ve çözümü için gerekli ekiplerin bir araya gelmesini sağlar. NAnt. FXCop. alacağı zaman ve önceliği hakkında bilgi verir. Kod içindeki yorumlardan dökümantasyon üretmek (NDoc) ve gerektiğinde bu yorumları düzeltmek gene Anyazunun görevidir. daha çok dış sistemlerin veri alış verişinde kullandığı mekanizmaların kurulumu ve testi (örneğin Websphere MQ yada MSMQ gibi) işlerini yapar.75 Blogdan Seçmeler hazırlamıyoruz. Eğer belirgin şekilde bir pattern görüyorsanız bunları uygulamaktan çekinmeyin fakat illa bir pattern uygulayacağım diye tasarımın kapsamını da daraltmayın. PM veya üst müdürlerin istediği raporları oluşturmakla yükümlüdür. Clearcase.

İstekler daha üst kademelerden direk Anyazuya gelse bile PM haberdar olmalıdır.Blogdan Seçmeler 76 yapar ve sonuçlardan PM'i haberdar eder. Onaylar. Arada köprü görevi gördüğü için. Görüyoruz ki Anyazu tüm proje birimlerini birbirine bağlayan bir etken. Anyazu her işi için onay alır. Bu kadar işten sonra Anyazu ailesini ve varsa çocuklarını da ihmal etmez. Ayrıca PM için bulunmaz bir kaynak. Ayrıca Anyazu genelde ofis dışında olacağı için (müşteri yanında. Ama bir kalite kontrol uzmanı kadar geniş konulara bakmıyor yada bir HCI uzmanı kadar herustik inceleme yapmıyor. toplantıda vb. üçüncü parti yazılımları sağlayan firmanın ofisinde. sistem entegrasyonlarının denenmesi. bilgisayara elini sürmez. Best Practices. OO . PM'e bağlı olduğu için yapacağı her işi önce PM'e bildirir. Ayrıca yazılan kodun da gereksinimlere uyup uymadığını araştırıyor. Zaman içinde yazılım dillerinin daha da somutlaşması (Design Patterns. Bir nevi kalite kontrol görevi de var aslında. gibi proje ile ilgili işler dizüstünde denenebilir. bir e-posta. Google Talk. E-posta gibi mesajlaşma programları kurulu olmalıdır. gibi) bir dizüstü ve kablosuz örütbağ erişimi şarttır. Ayrıca firmanın haberleşme kurallarına göre MSN Messenger. Aile ile geçirilen zaman bir meditasyon gibi bir sonraki güne hazırlanmak için yeterli gücü sağlayacaktır. Anyazunun temel amacı her zaman ulaşılabilir olmak ve destek vermektir. imzalı bir belge yada bir toplantının sonuçlarında yazılı olmasada oluşabilir (toplantıda şahitler olduğu için) fakat ayak üstü konuşmalar yada çay makinesi başındaki sohbetler onay veya atama olarak kabul edilmez. Oluşturduğu dökümantasyon ve modeller sayesinde müşteri gereksinimlerinin tam olarak yazılım ekibine aktarılmasında büyük bir rol oynuyor. Akşam eve giderken eşine bir çiçek alır. Anyazuyu sadece analiz yapmak ve kod yazmak için çalıştırıyorsanız. Anyazu iş yerinde geçen geyikleri ve tartışmaları eve taşımaz. gerçek verimini alamıyorsunuz demektir. 3. herkesin dilini iyi konuşması gerekiyor. Çok gerekirse eşinden yardım almak için anlatabilir. Sistem bilgisi ve kullanılan metodoloji bilgisi ile sürekli PM ve diğer proje elemanlarına destekte bulunuyor. İşleri paylaştırmadan önce PM'den onay alır veya iş paylaşımı listesini PM'e devreder. Anyazunun bir dizüstü bilgisayarı olması bazı işleri kolaylaştırabilir.12 Nasıl Daha iyi Kod Yazarız Bu yıl yazılım dünyasındaki sekizinci senem (Commodore 64 ve Amiga dönemlerini saymıyorum). eğitimde. böylece Anyazunun ne işle meşgul olduğunu bilir. Skype. çocukları ile hoşça vakit geçirir. Kullanılacak yazılımların beta yada deneme sürümlerinin testi. Onaysız bir iş yapmaz.

tasarım. bakımı ve değiştirmesi imkansız kod yazmak günah olmalı bence. yönetim. Diğer bir konuda yazılan kodun müşteri istekleri ile örtüşmesi. CMMI yada ISO standart kitapları. Yazılım uzmanı kullandığı programlama dilini çok iyi biliyor olabilir. güvenlik. Hal böyle olunca buna bir de yazılımcının yetersiz deneyimini ve yönetimin ilgisizliğini katarsak ortaya kalitenin çok düşük olacağı bir ürün çıkacaktır. süreç iyileştirme ile ilgili kitaplar. Şimdi yazılım araçlarının daha da gelişmesi. Bu kadar çok kaynak serbest olarak erişilebilir olduğu için performansı düşük. güvenli kod yazmak ile ilgili kitaplar sayılabilir.1 Kitap Okuyun Kullandığınız yazılım dili ile ilgili en az bir referans kitap bulundurmalısınız. favori text editörümüzü açıp bir kaç satır kod yazmak. Örneğin yazdığınız bir fonksiyonun hangi müşteri isteği tarafından kullanıldığını biliyor musunuz? 3. mimari. Bu bazı firmalarda dahi böyle. Hataların en fazla yapıldığı ve müşteri isteklerinin programa dönüştürüldüğü geçiş süreci olduğu için de yanlış anlaşılmalara ve uygulamalara en açık bölüm. eğer ilgileniyorsanız benimle bağlatıya geçip bilgi alabilirsiniz. nesne yönelimli gibi konular hakkında materyalin daha fazla bulunabilmesi 10 sene önce hayal bile edilemeyecek bir durumdu.12. Burada kitap reklamı yapmayacağım. Yazılımı yapılan işi de bilmek en az programlamayı bilmek kadar önemlidir. IEEE. Dil ile ilgili kitapların yanında insan ilişkilerini anlatan kitaplar. ve bu araçlara erişimin kolaylaşması. Araştırıp en iyisini veya tavsiye edilenleri alın. Örneğin muhasebe kurallarını bilmeden nasıl muhasebe programı yazacağız? Yada diğer sistemlerin girdi çıktılarını öğrenmeden nasıl entegre bir sistem yazacağız? Çoğu zaman program geliştirmek. açık kaynak yazılımların çoğalması. . Bu tür bir projeye devam ettiğinizi düşünelim eminim 5 ay sonra ilk yazılan kodun tek satırı dahi kalmaz. veritabanına iki üç tablo yerleştirmek ile başlar. UML ve nesne yönelimli tasarım konularını anlatan kitaplar. 10 sene önce evrenkentte yazdığım kodlara şöyle bir bakınca "ben öğretmen olsam buna not vermem" diyorum. anlaşılması zor. kullandığınız yazılım araçlarını anlatan kitaplar.77 Blogdan Seçmeler ve UML vb) bana tasarım ve mimari konularına daha fazla eğilmem için zemin hazırladı. Peki nasıl mükemmelliğe ulaşacağız? Yazdığımız kodu nasıl daha anlaşılır biçimde üreteceğiz? Dökümantasyonu nasıl daha okunur hale getireceğiz? Nasıl daha fazla öğrenip uygulayacağız? İşte bu yazımda sizlere birkaç püf noktası vererek iş kalitenizi arttıracak konulardan bahsetmek istiyorum. proje yönetimini anlatan kitaplar. Yazılım geliştirme olayını bir bütün olarak ele aldığımızda kod yazmanın çok küçük bir parçayı temsil ettiğini görüyoruz.

Blogdan Seçmeler 78 Bu kitaplardan öğreneceğiniz yöntemler yazdığınız kodun kalitesini oldukça arttıracaktır.Yüzde 95 ihtimalle sizin karşılaştığınız problem birileri tarafından zaten çözülmüştür.NET ile ilgili araç isimlerini isterseniz benimle bağlantıya geçiniz. Programı edinen kişilerin en az bizim kadar bildiğini varsayarak. Bir listeye üye olduğunuzda muhakkak liste kurallarını öğrenin.2 Listelere Üye Olun E-posta listeleri bedava destek alabileceğiniz yerlerden bir tanesi. Kodun ne kadarının ünite testine girdiğini anlayacak araçlar da var. Listeye sormadan evvel Google'da arayın. Ünite testleri içinde bir sürü açık kaynak sistem var.12. Sorduğunuz sorular cevaplanınca teşekkür edin ve daha sonra bir özet postası atıp problemi nasıl çözdüğünüzü anlatın ki herkes yararlanabilsin. Sonuçta ortaya çıkan ürün en azından bazı testleri yapılmış olarak çıkıyor. Örneğin herkes member değişkenler için m kullanmış mı? Bu araçların bugün mevcut olması bizim için bulunmaz bir fırsat. kurulum sırasında problem yaşamayacaklarını düşünürdük. Programı yazmadan önce testini yazıyoruz artık. Ayrıca bu işleri tamamen otomatize edip sonuçları her derleme işleminde görmekte mümkün. Örneğin benim üye olduğum bir listede OT harflerini konu kısmında görünce konu dışı olduğunu anlıyorum. Çoğunlukla üretici firmalar tarafından da kontrol edilmekte. Benim takıldığım listelere her gün bir kaç kişi direk listeye gönderdiği UNSUBSCRIBE e-postası ile hem kendini rezil ediyor hemde üyelikten çıkamıyor. Şaka yaptığınızı belirtmek içinde :-) imleçlerini kullanın ki herkes şaka yaptığınızı anlasın.12. Liste üyeleri e-maıl programlarında bu başlıklara göre kurallar oluşturabiliyor. Artık kod yazarken gerekli açıklama satırlarını XML olarak yazıyoruz. 3.3 Açık Kaynak Araçları Kullanmayı Öğrenin Eskiden kod yazarken Allah ne verdiyse harala gürele yazıyorduk. Daha sonra açık kaynak programlar ile bunları yardım dosyalarına dönüştürmek mümkün. Listede her zaman saygılı olun ve şakayı yeri gelince kullanın. Testleri yapılmamış kısımları hemen görmek mümkün. Belli bir programlama diline yönelik yazmadığım için araç isimlerini vermiyorum fakat . Ne bir dökümantasyon ne bir ünite testi nede kurulum için herhangi bir şey yapıyorduk. Belli kurallara uyulup uyulmadığını kontrol edecek araçlar da mevcut. Örneğin nasıl üye olacağınızı veya üyelikten çıkacağınız iyi bilin. Sonrada bu testlerden geçmek için kod yazıyoruz. 3. . Konu dışı bir şey soracaksanız liste kurallarına göre postayı işaretleyin. Şimdi o günler geride kaldı. Listedeki insanlarla fırsat doğarsa tanışmaya çalışın. aksi takdirde sonu gelmez tartışmalara girersiniz.

proje içinde kullanılan konfigürasyon yönetimi metodunu öğrenmek te çok önemlidir. Soru soracağınız kişileri de iyi belirlemeniz lazım. Hem uygulama var hem öğrenme. planların yapılması ve çalışmaya başlamak için kendi payınıza düşen kod parçasını alıp değiştirmek. Aldığınız bilgiyi vakit geçirmeden uygulayın ve sonuçları tekrar bir bilenle tartışın. Yazdığınız bir kodun daha iyi nasıl yazılabileceğini sordunuz mu hiç? Yada bir problemi en iyi hangi yolla çözebileceğinizi öğrenmek için soru sordunuz mu? Eğer korkularınız varsa yukarıda anlattığım e-posta listeleri sizin için biçilmiş kaftan.12..12.6 Seminerlere Katılın Yeni ürünleri görmek. Yada patronunuzun ismine GMail'de bir hesap açıp onu kullanın evet bu bir şaka. Bu arada da kodu nasıl yazmışlar görme imkanımız oluyor.5 Bir Bilene Sorun İşte herkesin korktuğu bir olay. yeni insanlarla tanışmak. En azından yeterli bilgiye sahip olup olmadıklarını anlamaya çalışın. Peki yazdığınız kodun kalitesini nasıl arttıracak? Ben genelde hands-on denilen oturup kod yazdığımız seminerleri tercih ediyorum. . 3. Yapılan her işin. yaptığınız iş hakkında daha da fazla bilgilenmek ve sıfatınızın daha da fazla tanınması için en mükemmel yol.79 Blogdan Seçmeler 3. Kullandığınız kod kontrol programının özelliklerini öğrenmek bir yana. Genelde kişiler suçlanmaktan yada küçük düşmekten korktuğu için soru sormaz. Kendi isminizi kullanmadan soru sorabilirsiniz. Eğer birinin daha iyi bir fikri varsa çıkıp söylüyor. Ama soru sormadan da öğrenme olmuyor.4 Sürüm Ve Konfigürasyon Yönetimi Konusunda Bilgilenin Bir ekip içinde yazılım geliştirmenin sorumluluğu. Ürün tanıtım seminerleri de yararlı eğer kod yazmada kullandığınız araçlar ile ilgiliyse yada üretkenliği arttıracak araçlar anlatılıyorsa.12.. İşlerin paylaştırılması. 3. ünite testlerini yapmak ve en sonunda da diğer kişilerin kullanımına açmak gerekir. Yazdığınız kodun eski sürümüne dönmek yada farklı sürümlerde paralel geliştirme yapmak ancak bu şekilde mümkün olabilir. diğer kişilerin ne yaptığını bilmekten geçer. üretilen her dökümanın kısacası zaman içinde değişime uğrayacağını bildiğiniz her türlü materyal kod kontrol sunucularında tutulmalıdır. Bu araçlara erişiminiz olmayabilir fakat en azından böyle bir teknolojinin varlığından haberdarsınız.

Tanıdıklarımın bir kaç blogu birden var.7 Yeni İnsanlarla Tanışın İnsan ilişkilerine yukarıdaki paragraflarda değindim. Tüm bunları yaparkende zaten çalışan kodu bozmamak.. 3.12. tanıştığınız insanlar ile ilişkilerinizi sıcak tutmaya çalışın. Kimi zaman örnek projeler bile indirmek mümkün. Bir iki yorum da atarsanız çok mutlu olurum. Ek olarak iş verenler blogunuzu okuyup ne işler yaptığınızı öğrenebilir ve buna göre size teklifte bulunabilirler. Neyse bende çıkarttım kristal küremi baktım neymiş hatası. Bir gün bir probleminiz olduğunda gene onlara soracaksınız ama sadece probleminiz olduğunda bu kişilerle bağlantı kurarsanız biraz ayıp olur. Geriye mesaj atıp 3 vakte kadar çözeceksin dedim :-). Böylece yazdığım kodun kalitesi artmış oluyor.12.. Sonuçta işin kalitesi artmış oluyor. 3. değişken isimlerini değiştirmek. Bu kişilerden öğreneceğiniz hiç bilmediğiniz hiç görmediğiniz yada pek önemsemediğiniz konular problemlerinize farklı bir bakış açısı katabilir. Yeni insanlarla tanışmak benim hayatımda her zaman değişikliklere yol açmıştır.12. ilgili rutinleri bir sınıf altında toplamak.9 Refactoring Refactoring Nedir Öğrenin yazılan kodun performansının. Örneğin benim blogumda bir kaç tane yorum var. sadece hata aldığı kısmı kopyalayıp yapıştırmış. Kod yazarken çeşitli problemlerin çözümünü genelde bloglarda buluyorum. Ne bir açıklayıcı not var nede takip ettiği adımları anlatmış. Ayrıca soru sormayıda öğrenmek gerek. Blogunuzda belli konulara yönelin ve iş hayatınızda karşılaştığınız konuları yazın. Hatta bazen farklı yollar bile bulmak mümkün oluyor. bağlı olduğunuz sektörde olsun. Yeni insanlarla tanışmak önünüze yeni ufuklar açabilir. 3.10 İnsan İlişkilerini Sıcak Tutun Firma içinde olsun.Blogdan Seçmeler 80 3.8 Blog Yazın/Okuyun Deminden beri yaptığım olay. algoritmaları daha hızlı çalışır hale getirmek vb gibi. bir tanesi kesinlikle işleri ile ilgili konuları yazmak için diğeri ise sırf geyik olsun diye yazdıkları yada aile fertleri ile resim paylaşmak için kullandıkları blogları. Şaka bir yana öğrendiğim konuları ders notları gibi başkalarına anlatmak amaçlı yazdığımda daha da pekiştiriyorum. bakımının. . Bir kaç yazışmadan sonra kodu alıp kullanabiliyorum. Yada siz onlara bir şeyler katabilirsiniz. okunabilirliğinin ve yeniden kullanılabilirliğinin arttırılması için uygulanan bir dizi metoddan ibarettir.12.Örneğin tekrar eden rutinleri ayrı fonksiyonlara ayırmak. Eğer benim blogumu okuyorsanız ne mutlu bana. Ayrıca iş konuları dışında birlikte yapılacak aktiviteler çok değişik iş imkanları açabilir.

Burada anlattıklarımı yüzde 70 yapan kişiler sanırım bu kategoriye giriyorlar. Duruma göre bu iki tip yazılım uzmanının dengeli bir karışımı kaliteli bir ürünü zamanında teslim etmenize sebep olabilir. kullanmaktan çekinmeyin. Yazılım standartlarını. 3. ve ağ yapısını öğrenin. Amaç daha çok denemek.11 Değişime Ve Yenilenmeye Açık Olun Değişik metodları ve yeni ürünleri kurmaktan. Evinde bir bilgisayarı dahi yok. daha çok yanılmak ve bilgiyi arttırmak değil mi? 3.81 Blogdan Seçmeler 3. yenilikleri denemek için sonsuz bir istek içindedir. kullanılan araçları. kimi zamanda kalite.12 Firma Kültürünü Öğrenin Firma içindeki işleyiş şemasını iyi öğrenin. Bu kişiler kullandıkları yöntemleri değiştirmek istemezler çünkü öğrenmek ve uygulamak beraberinde yeni külfetler getirecektir. Bunlar sadece yazılım sektörü iyi maaş ödüyor diye sektöre atılmış kişilerdir. Bir kişisel e-posta adresi yok. etkinliklerden bi haber.13 Kişisel Bilgisayarınıza Yazılım Araçlarını Kurun Yazılım olayına gönül vermiş iseniz zaten bunu söylemeye gerek yok. diğeri kötüdür diye bir yorum yapmayalım. Yazdığınız kodun standartlara uyduğundan emin olun. Gece programcısı araştırıp öğrenmek. Katılacağınız bir projeyi eminim Sourceforge yada başka açık kaynak proje . Refactoring deyince küfür zannederler :-) Birde "gece programcıları" vardır. Firma kurallarını iyi öğrenin. Ben bu işi yapmaktan zevk alıyorsam tabii ki evimdeki bilgisayarıma gerekli araçları yüklerim. toplantılardan.12. Değişiklik ve yenilik her zaman iyi olmayabilir ama bunun muhakemesini yapacak olan sizlersiniz. Seminerlerden. 3. Ama ben öyle insanlar ile çalıştım ki adam sadece firma duvarları arasında yazılım uzmanı olarak geçiyor. Projelerde bazen zamanlama ön plandadır. Bazı kurallar yazılı olmayabilir ve zamanla öğrenilecek kurallardır.12. Bir iki kurstan sonra hayata atılıp kendilerini işin ehli gibiymiş gösterip ahkam keserler.12. Mükemmelliğe ulaşana kadar her yolu dener. Değişmeyen ve yenilenmeyen beyinler bir gün gelir sistem dışı kalırlar.12. Sistemleri değiştirmekten kaçınmaz. varsa bile örütbağı amaçlı kullanıyor. Zaten bildikleri yoldan şaşmayıp işlerini zamanında bitirmeye çalışırlar. Biri iyidir. Evde de bazı projeler geliştirmek isterim.Benim en çok karşılaştığım tipler "gündüz programcıları". Mükemmele ulaşmak gibi bir çabaları yoktur. Sektörün her iki tip insana da ihtiyacı var.14 Açık Kaynak Projelere Katılın Açık kaynak projeler size bir ekip içinde nasıl çalışacağınızı ve ne tür araçları kullanacağınız hakkında bilgi verir.

kodu düzeltmek te işin içine girer. Ek bir tablo yaratıp onaylayacak kişileri burada tutabilir ve her döküman için istendiği kadar çok onaylayacak kişi tanımlanabilir. onaylama süreçleri organizasyonun yapısı ile değişmiş fakat yeni sistemi karşılayacak veritabanında yeteri kadar saha yok. Ben bir defter alıp buna aklıma gelen olası projeleri yazıyorum. Eğer firma içinde yazılım geliştiriyorsanız. 10'dan başlayan bu puanlamada her hata da 1 puan düşülür. Eğer testler eksik ise ekliyorum yada o modülü hiç kullanmıyorum.15 Hayal Kurun Hayal kurmak beynimizin en üretken işlerinden biridir.Blogdan Seçmeler 82 sitelerinde bulabilirsiniz. Gerçi ben projeleri hayata geçirene kadar birileri benden önce yapıyor ama olsun. 3. Bu yöntemde iki kişi bilgisayarın karşısına geçer. Örneğin bir projede şöyle bir durumla karşı karşıya kaldık. Kodlama bitince programın aldığı puana bakılır ve 10 puan almak için neler yapılabilir tartışılır. Birisi kod yazarken diğeride yazılan koda puan verir. Sonuçta yazdığınız kod başkaları tarafından kontrol edileceği için değişiklikleri takip edip en iyi nasıl yazılır öğrenebilirsiniz. Bir dökümanın onaylanması için 3 ayrı kişinin onay vermesi gerekiyordu. Hayal kurarken problemlere yeni çözümler bulabilir veya yeni projelere başlamak için malzeme toplayabilirsiniz.13 Eğer Test Edilmemişse Çalışmıyor Demektir Belkide çok üzüntülere yol açacak bir başlık ama test edilmemiş bir özelliğin çalışmadığını ve ürününüze yada firmanıza vereceği zararları bir düşünün. Proje açık kaynak ise.12. Eskiden yazdığımız bir programı test etmek için ihtiyaç duyulan şeylere bir göz atalım  Test için kullanılacak ağın oluşturulması  Test kullanıcılarına hesap açılması ve gerekli hakların verilmesi . Bugün Sourceforge'dan bir modül indirirken ne kadar test yapıldığına bakıyorum. Gel zaman git zaman.12. Gerekli olan düzeltmeler uygulanır. 3. 3. Olayın çözümü basit. Bu yöntemin amacı aslında yeni projeler bulmak değil var olan projelerin belirli kısımlarının nasıl düzeltilebileceğini araştırmaktır. Kod teftişinin amacı var olan kodu daha iyi çalışır hale getirmek yada proje standartlarına uydurmaktır. Agile metodları ile geliştirme yapanlar Pair Programming olayını bilirler. 5 yıl önce programı tasarım edenler veritabanında ki Dokuman tablosunda bu 3 kişi için birer saha tanımlamış. kodun yazarına bir not gönderip değişmesi gereken yerleri ve nedenlerini bildirebilirsiniz.16 Kod Teftişi Kod teftişi başkasının yazdığı kodun gözden geçirilmesi ve aksaklıkların not edilmesidir.

testleri çalıştıracak ve diğer testlerin etkilenmediğini de kontrol edecektir. Böylece ürün geliştirmek için harcayacağınız ArGe finansmanını da bilgisayarları güncellemek için kullanabilirsiniz.. Sanıyorum bu tür araçlar arttıkça. Check-out edilen kod ancak ünite testlerinden geçerse TFS'e geri gönderilebiliyor. Ünite testleri için bu kadar teferruata girmeye gerek yok. Testleri kendi çalıştıran müşterinin ürüne olan güveni biraz daha artar hatta tavsiyelerde bulunabilir. Sizce nasıl olmalı? Yazdığınız programlarda ünite testlerini de dahil ediyor musunuz? Bu sistemleri otomatize ettiniz mi? Yazdığınız programın kaçta kaçı ünite testlerine tabii tutuluyor? Deneyimlerinizi duymak isterim. TFS bu olayı bir adım öne alarak şöyle bir özellik eklemiş. Bu durumda yazılım uzmanı yazdığı kodun testlerini de oluşturacak. Bu kapatılıp açılabilen özellik sayesinde TFS üzerindeki kodun her zaman ünite testlerinden geçeceğini düşünebiliriz.83 Blogdan Seçmeler  Gerekli verinin veritabanlarına yüklenmesi  Farklı senaryolar için farklı veri oluşturulması  Tüm programın derlenip test ortamına kurulması  Test senaryolarının yazılması  Test sonuçlarının analizi  Hata ve isteklerin kaydı ve organizasyonu Bu anlattıklarım bugün dahi yapılıyor ama entegrasyon yada kullanıcı kabul testleri için.. Peki bir yazılım firmasında sırf TFS ve iyi bir yazılım süreci kullandığınızda 3. süreç iyileştirme için uygulamamız gereken işlemleri günlük hayatımıza sokmak daha da kolaylaşıyor. seviye CMMI sertifikası almanın kolaylaştığını biliyor musunuz? Bundan bir kaç zaman önce bir grup toplantısında NUnit testlerinin ürün ile birlikte verilmesini tartışıyorduk. Böylece ürünü alan müşteriler testleri çalıştırarak ürünün kalitesi hakkındaki sorularını cevaplayabilirlerdi. Her zaman konudan anlayan bir programcıyı bünyelerine katıp yeni bir iş sahası oluşturabilirler. Bu olay artık bizim (yazılım uzmanlarının) sorumluluğumuzda olan bir olaydır. . Bugün yazdığımız bir program için test oluşturmaya kalkarsak bunu NUnit veya VSTS ile rahatça yapabiliyoruz. Kazandığımız zaman ve artan kalite de cabası. Ayrıca oluşturulan testler hem yönetmesi hemde çalıştırması kolay testler oluyor. Müşterinin teknik konulardaki yetersizliğini dikkate almadık.

Burada bahsi geçen "gereksinim yönetimi". Birilerinin bu tür konulara kafa yorduğunu görmek sevindirici. yazılım kalite güvencesi içerisinde bir parça olarak mı algılanmalı yoksa. önereceğiz bir kitap varmı bunlarla ilgili olarak? Daha önce vermiş olduğunuz öneriler için de teşekkür ederim. Böylece ortaya çıkardığımız her gereksinimin müşterinin ihtiyacı olan gereksinimler olduğunu söyleyebiliriz. yazımdan sonra Gürol Beyden aşağıdaki e-postayı aldım. Gereksinim Yönetimi Yazılım Kalite Güvencesi içinde bir parça olarak algılanabilir. yazılım çalışmaları yapan kişilerin oluşturacakları bir kontrol mekanizması olarak mı algılanması gerekmektedir? Böyle bir yönetim kavramı veya bunun geliştirilmesi şirketlerin hangi birimi tarafından uygulanmalıdır? Bir sorumda. Yönetimini ise Business Analyst yada Analist Yazılım Uzmanı yapar. Gereksinim Analizi basit olarak müşterinin ihtiyaçlarını analiz ettiğimiz adım diyebiliriz. Örneğin çeşitli dökümanlar için belli şablonlar var ve bunlar kullanılarak dökümantasyon oluşturmanız gerekiyor. Yeni yaşınızı kutlar. Örneğin IEEE 829 (Yazılım testi dökümantasyonu) gibi bir standardı uyguluyorsak birde bunların doğru kullanılıp kullanılmadığını tetkik edecek denetleme mekanizmaları oluşturmamız gerekir. SAYIN GÜRKAN BEY. Projenin başında müşteri gelir ve problemlerini anlatır sende oturup bunları analiz edersin. Yani bir uyguladığımız metod var birde bu metodun doğru uygulanıp uygulanmadığını test edecek başka bir metod var.yazınızla ilgili bir sorum olacaktı.14 Gereksinim Yönetimi ve Kalite 100. Bu mekanizmalar Yazılım Kalite Güvencesi kapsamına girer. nice güzel yaşları sevdiklerinizle geçirmenizi temenni ediyorum.Blogdan Seçmeler 84 3. Üretilen her türlü döküman belli onay kademelerinden geçeceği ve zaman içinde değişikliğe uğrayacağı için bu şarttır. Boşuna ürettiğimiz bir şey olmaması gerekir. 100. İYİ ÇALIŞMALAR SEVGİ VE SAYGILARIMLA GÜROL GÜRSES Kutlaman için teşekkür ederim. Bunun kalite kontrolü içinse üretilen her türlü senaryonun müşteri tarafından onaylanması gerekir. .

Firma içinde kullanılan yazılım geliştirme metodolojisini çok iyi bilmelidirler ki kalite kontrol aşamalarını entegre edebilsinler. Ama kullanılabilirlik testlerinin sonuçlarını değerlendirmek kesinlikle işleri arasındadır. Ayrıca projeya katkısı olan herkes ile doğrudan konuşurlar. En çok bilinen/kullanılan gereksinim yönetimi araçları IBM Rational Requisite Pro (Bunu kullandım fakat Rational SoDA olmadan raporlamak çok güç) Borland CaliberRM (Bunun bir de VS Team System eklentisi var. Yazılım Geliştirme süreci içinde hangi metodu kullanırsak kullanalım. QA uzmanını her türlü testleri yapacak kişi olarak görmemek lazım. Hem fikirleriniz çalınabilir hemde taşeronun kalitesinden emin olamayabilirsiniz. Alıp okumanı tavsiye ederim. Örneğin Master of Software Engineering okurken Verification & Validation diye bir ders gördük. her adımdan sonra bir test koyarak üretilen materyallerin doğruluğunu ölçebiliriz. bunun için HCI uzmanları vardır. Bu derste V&V programlarını mevcut metodoloji içine nasıl entegre edeceğimizi. Gereksinim Yönetimi için yazılımlar da mevcuttur. kimi zaman test ekipleri yada genel konuşmak gerekirse projede payı olan herkes bir nevi test yapmalıdır ki sonuçta üretilecek yazılım hem müşterinin ihtiyaçlarına tam olarak vecap verebilsin hemde yazılım olarak doğru çalışsın. Inspection yöntemlerini ve IEEE 829 kurallarını gördük. Sonuçta elde ettiğim pratik yöntemleri günlük hayatımda kullanıyorum. Projenin boyutuna ve firmanın finansman yeterliliğine göre bence bir Quality Assurance uzmanı muhakkak gerekli. Örneğin oturup kullanılabilirlik testlerini yapmaz. trial indirip kurdum harika bir şey) Serana Requirements / Traceability Management Telelogic DOORS . Okuduğumuz kitaplardan bir tanesi “V&V of Modern Software Systems” yazarlar SchulmeyerveMacKenzie. Gartner raporlarından "Agile Requirements Definition and Management Will Benefit Application Development" raporunda belirtilen yazılımları aynen listeliyorum. İşte o zaman metodoloji polisi gelip size hesap sorar. QA uzmanı birden fazla projeye de bakıyor olabilir. Kimi zaman müşteri. TQM konularına da girdik. Bu işin outsource (taşeron) edilmesi düşünülemeyecek bir konu.85 Blogdan Seçmeler Ama tabii zaman içinde ekibin yada kişilerin karşı koyması ile bazılarını değiştirdiniz yada tamamı ile ortadan kaldırdınız. Risk yönetimini.

İsteyen olursa raporu . Raporu sitede verecektim fakat lisans olayı yüzünden dokunmayayım dedim. Kişiden kişiye değişir. Öte yandan kalite subjektif bir olgudur. yazılım geliştirme sürecinin ne kadar disiplinli olduğunu gösterir. Gartner avukatları ile uğraşmak istemem e-posta ile gönderebilirim. Bir kişinin sevdiğini diğeri beğenmez. Pirsig ikilemlerinde şöyle laflar geçer: .Blogdan Seçmeler 86 Daha az bilinen araçlar ise: Apptero 2004 Axure Software Solutions Rapid Prototyper Compuware Reconcile (QA Center ve DevPartner ile kullanılıyor) Goda Software Analyst Pro iRise Application Simulator MKS Requirements 2005 (Integrity Manager ile) Sofea Profesy SpeeDev RM SteelTrace Catalyze TCP Integral Requisite Analyzer Sistem Mühendisliği üzerine gereksinim yönetimi araçları: 3SL Cradle UGS Teamcenter ViewSet Pace Vitech Core Maalesef hepsinin linklerini veremiyorum. Yukarıda bahsettiğim rapordan bir alıntı yapayım. testlerde verimlilik kazanır ve gelecekte ortaya çıkacak bakım ve değişiklik işlerinin yükünü azaltırlar. Gereksinimlerin toplanması ve yönetimindeki esneklik. Google'dan aratabilirsiniz. Gereksinim toplama ve yönetme işlerini otomatize etmiş yazılım geliştirme firmaları değişiklik kontrolünü daha iyi destekler.

Yazılım geliştirme alanında gereksinim analizi aşamasını bilirsiniz.87 Blogdan Seçmeler Eğer bir nesne kaliteli ise neden bilimsel araçlar ile kaliteyi ölçemiyoruz? Eğer kalite subjektif ise ve sadece gözlemcinin kanısı ise o zaman kalite sadece neyi beğendiğinize verilecek şık bir sıfattır. IEEE ise olaya biraz daha açıklık getirmiş: Bir sistemin. Müşterinin farkında olduğu veya olmadığı tüm gereksinimlerini ortaya çıkarır çeşitli yöntemler ile bunları dosyalar ve sistemi modellemeye çalışırsınız. Bir şeyler yazmak için hele ki sektör ile ilgili olacaksa ilham gelmesi yada birilerinin beni kızdırması lazım. Müşterinin ihtiyaçlarını veya problemlerini analiz ederek bilgisayar ortamında nasıl çözüm bulacağınızı araştırırsınız. 3. Tabii birde yazdıklarımın kalitesi ve doğruluğu mümkün olduğu kadar yüksek olmalı. Weinberg ise hataların bulunmadığı durumları kaliteli olarak varsaymıştır. Umarım anlattıklarım yararlı olur yada daha fazla soru sormanız için zemin hazırlar. Gereksinim Yönetimi Gereksinim analizi sırasında ortaya çıkabilecek ürünlere bir bakalım. modülün yada sürecin tanımlanmış gereksinimlere yada müşteri veya kullanıcı ihtiyaç ve beklentilerine uyma derecesidir. Bu doğum günü ve 100. Senaryolar İş akışı diyagramları İş kuralları Hedef ve Kapsam belgesi Data definition diyagramları Dahili ve harici arayüz gereksinimleri Çeşitli UML diyagramları . Ancak o zaman sular seller gibi yazabiliyorum.15 Diğer Gereksinim Yönetimi Yazısı Çok fazla yazan bir adam değilim. yazı olması vesilesi ile önemli bir şeylerden bahsedeyim. Bu gereksinimleri ne kadar iyi yönetirseniz sonuçta ortaya çıkacak üründe o kadar hatasız olacaktır.

) ile hazırlayacağınız şablonları kullanarak belli bir biçimde kayıt edilmelerini sağlayabilirsiniz. Aksi takdirde ipin ucunu kaçırırsak ve bazı gereksinimleri müşterinin istediği gibi değiştirmezsek bu proje salıncak hikayesine döner. Örneğin wiki ortamında kimin ne değiştirdiğini görmek kolay olur yada Subversion gibi bir program ile sürüm kontrolünü yapabilirsiniz. İkinci aşamada bunların sürüm kontrolünü yapmalısınız.Blogdan Seçmeler 88 Sistem gereksinimleri spesifikasyonları Test senaryoları Prototipler Sürüm politikası Değişiklik istek belgesi Güvenlik politikası Risk dökümanı Bu listeyi daha uzatmak mümkün. Bu da sürüm politikası belgesinde belirtilmelidir. Müşteri isteklerini değiştirebilir. Böylece kim ne değiştirmiş görmek mümkün olur. Son hali onaylanan belgeler üzerinde değişiklik istenirse. Çünkü işi bilen ve her türlü girdi çıktısını tanımlayabilecek tek kişidir. Her türlü dökümanın bir şablonu olunca işler biraz daha kolaylaşır. Bu kadar fazla ürünün yönetilmesi kesinlikle mecburidir. Değişiklik ancak onaylanırsa (değişiklik istek belgesi bu iş içindir) esas belge içine gömülür. bu değişikliğin etkilediği diğer alanlar çok iyi tanımlanmalıdır. Bunlar yazılı döküman olduğuna göre rahatça bir kelime işlem programı (Word. Open Offıce vs. Müşteri odaklı bir yazılım firmasının en büyük bilgi kaynağı müşteridir. Bunlar ilk etapta aklıma gelen şeyler. Daha kod yazmaya geçmeden elimizde bir sürü döküman oluşuyor. Onay ya müşteriden yada bu iş ile ilgili firma içindeki birimden gelecektir. . Değişikliklerin onaylanması içinde bir iş akışı düzenleyip belgelere uygulanacak değişikliklerin onaylanmasını sağlayabilirsiniz. yenilerini ekleyebilir veya bazı gereksiz gördüğü kısımları silebilir. Programı hatasız yazabilmek için müşteriyi sürecin her türlü aşamasına sokmanız gerekir ve müşterinin ağzından çıkan her türlü bilgi kayıt edilmeli ve iyi yönetilmelidir. wiki. Eğer maliyeti ve zamanı arttıran bir değişiklik ise başka bir sürüme bırakılabilir.

ihtiyaçlardan doğar.89 Blogdan Seçmeler Her yazılan fonksiyonun hangi senaryoda nasıl kullanıldığını gösterecek akış şemaları ile koddan gereksinimlere doğru takibi kolaştıracak UML diyagramları oluşturmalısınız. Ayrıca kaybedeceğiniz itibar da cabası. Burada sistem olarak bahsettiğim mevcut bilgisayar sistemleri yada işin işleyiş modelidir. İlk sürüm verildiğinde boşuna yazılmış kod var mı yada boşuna üretilmiş bir senaryo var mı analiz edebilirsiniz. fiyat. derleyici gibi altyapıların artık oturduğu bir dönemde ticari yazılımların üretimine doğru kayılması oldukça normal bir durum. Bu size ürettiğiniz ürünün gereksinimleri ne kadar kapsadığı hakkında bilgi verir. Serbest yazılım dünyasında işletim sistemi. Pek çok yazılım -ticari veya serbest yazılım. Ne tür alt yapı kullanırsak kullanalım genede bir sistem yönetcisine ihtiyaç var nasıl olsa değil mi. Bu günümüzde değişmeye başlayan bir model ama aşılması gereken pek çok bariyer daha mevcut.Açık Kaynak Dünyasında Bir Sonraki Dalga : Uygulamalar" isimli şovda serbest yazılım dünyasında önümüzdeki yıllarda karşımıza çıkacak ve mevcut ticari yazılım paketlerinden bahsediliyor. Bir firmanın Linux ortamında mevcut olan ticari yazılımları kullanabilmesi için tabii ki tüm alt yapısının Linux olması ve gerekli desteği ya içerden yada dışarıdan alıyor olması gerekir. . Düşünün petrol yüklü bir tankeri yönetiyorsunuz ve sis içinde yol alıyorsunuz. IT Convesations sitesinden dinlediğim Larry Augustin'in "The Next Wave of Open Source : Applications . dökümantasyon serbest olarak mevcut değildir. çevrede kullanan bilgi alabileceğiniz fazla firma yoktur yada firmalar bu bilgileri açıklamaktan çekinirler. Ticari yazılımlarda gerçek kullanıcı ile yazılım arasında bazı bariyerler vardır. Böyle bir riski almaktansa bir iki radar sistemine yatırım yapmak yada sisin kaybolması için beklemek en akıllıca iş olur. Satış sonrası destek. kullanılabilirlik daha sonra gelir. Evet. Bilindiği gibi sitemde genelde Microsoft teknolojilerine üzerine yazıyorum fakat yazılım mühendisi olmamın verdiği sorumluluk ile her alandan bir şeyler burada göreceksiniz. Her isteyen kurup deneyemez. toparlamak gerekirse gereksinim yönetimi çok önemli bir konu ve önümüzü görerek kod yazmak istiyorsak şart.16 Serbest Yazılım Açık kaynak yazılım üzerine podcasting yapan IT Conversations sitesinden bir kaç şovu dinliyordum. gerekli eğitim. Bir yere çarpsanız hem çevre kirliliğine hemde para kaybına neden olacaksınız. Daha sonra kullanıcıların gereksinimlerine göre şekillenir. Şovların kalitesi çok iyi. Gereksinimleri akıllıca yönetirsek üstesinden gelemeyeceğimiz proje yok değil mi? 3. Yazılım satın alacak bir firma için en önemli unsur bence mevcut sistemlere na kadar entegre olacağıdır.

Biraz dikkat ve koyacağınız kurallar ile bunları aşmak mümkün. Kullandığınız açık kaynak yazılımların entegrasyonu. Güzel bir iş modeli ama başlangıç aşamasında biraz zorlanabilirsiniz. Ayrıca geliştirme platformlarının çokluğu gene kullanıcının kafasını karıştıran bir etken. Her yazılım kendi içinde küçük bir dünya ve kendi kurallarına göre yönetiliyor. Sistemler arası veri alışverişinin çok iyi analiz edilmesi ve her türlü senaryonun test edilmesi gerekir. mevcut sistemlerle entegrasyon. Bir diğer konuda eğitim dökümanları ve kullanıcıya verilecek eğitimlerin şekillendirilmesi. Diğer bir etkende açık kaynak yazılımların birlikte çalışabilmesi için harcanacak zaman ve naktin miktarı. Entegrasyon pek çok açıdan ele alınabilir. Bir kaç serbest yazılımı birleştirip ortaya çıkaracağınız biri ürünü satabilir ve desteğini verebilirsiniz. Tabii ki böyle bir standardı yazılım dünyasında oturtmak pek mümkün değil. Neyse konuyu dağıtmayalım.. Bence çeşitli standartlar oluşturulmalı ve verinin bütünlülüğü sağlanmalıdır. gibi. Yardım dosyalarının da Türkçeleştirilmesi ve kullanıcıya sunulması şarttır. Nedir bu zorluklar: Türkçe döküman eksikliği Entegrasyon Sürüm kontrolü Kurulum zorlukları Marka eksikliği Fonksiyon fazlalılığı Müşteri güveni oluşturma Genelde serbest yazılım projelerinde Türkçe döküman bulmak zordur yada arayüzleri Türkçeleştirmek gerekir.. Kullandığınız açık kaynak yazılımlar yeni sürümler verdikçe sizinde bunları uygulamanız gerekiyor mu araştırmanız lazım. Sıkı ve temiz bir çalışma gerektirecek bir alan. Özellikle bu alanda üretilen çıktının çok iyi test edilmesi ve yazım. işleme modeli ile entegrasyon vb.Blogdan Seçmeler 90 Serbest yazılım dünyasında ise yukarıda saydığımız bariyerler yok fakat bu seferde fonksiyonellik açısından bir fazlalık var ve buda kullanılabilirliği azaltan bir faktör. hataların giderilmesi gerekir. imla vs. Örneğin müşteri tablosu her yazılımda aynı isimle ve aynı sahalar ile tanımlanmalıdır. Örneğin bir kere entegrasyon ile ilgili kodu yazdıktan sonra sürümleri .

süreçler. 3. Öncelikle bir "Hedef ve Kapsam" belgesi yazmanız ve müşteriye onaylatmanız gerek. Tüm bu malzeme proje daha ortada yokken hazırdır.17 Reusing ve Refactoring Yazılım dünyasının bu iki önemli konusundan biraz bahsetmek istiyorum. Kendi içinizde de bu sürüm kontrolünü Subversion gibi bir programla çözebilirsiniz. çeşitli test verilerinin oluşturulacağı Excel belgeleri vardır. web temaları vardır. kredi kartı sorgulama. İşte size mis gibi iş modeli. rol dağıtımı. modüller ve belgeler vardır. Zaten fazla fonksiyon olması sizinde başınızı ağrıtır. Müşterinin aklına sürekli yeni gereksinimler gelir sizde süreç içinde dökümanları güncelleyerek bunlara karşılık vermeye çalışırsınız. Sistem destek uzmanları için de ne kadar az müdahale edilirse o kadar iyidir. Bir kaç açık kaynak programı birleştirdiğiniz için kurulum da size özel olacaktır. Yazılacak minimum kod ile bir ürüne sahip olmak ve bunu pazarlamak ne kadar kolay değil mi? Satış sonrası destek ve eğitim konularınıda hallettiniz mi piyasada uzun yıllar kalacak bir firma sahibi oldunuz demektir. Müşteri size gelir derdini anlatır. Gereksiz fonksiyonları kırparak müşteriye tam istediği çözümü vermeliyiz. . Örneğin senaryoların belgelendirileceği Word şablonları vardır. Daha sonra senaryo analizlerine ve firmanın müşterisi ile arasındaki diyaloglarını belgelendirmeye çalışırsınız. Sıkılmayın sonuna kadar okuyun. Her yazılım projesinde kullanılacak genel parçalar. Kurulum aşaması bir açık kaynak proje için çok önemlidir çünkü kullanıcı ilk kurulum ile başlar ve ilk izlenimler burada ortaya çıkar. Mümkün olduğu kadar kurulum olayını otomatikleştirmek ve sistemin çalışması için elle müdahale edilecek adımları azaltmanız gerekir. programlama alt yapısını oluşturacak.91 Blogdan Seçmeler değiştirmek istemeyebilirsiniz (aslında bu olay modüler bir yapıda kod yazmadığınızı gösterir). Sizin için yararlı olduğunu göreceksiniz. Zaman ilerledikçe bu fonksiyonları işleme koyabilir Bazı potansiyel müşterilerin programı pilot olarak kurup denemelerini sağlayın. Sizin hiç ummadığınız bir özelliği farklı şekillerde kullanan müşteriler çıkabilir. Bir iki satıştan sonra müşterileri bir araya toplayacak toplantılar düzenleyip fikir alışverişinde bulunmalarını sağlayabilirsiniz. ekran tasarımları. yasal işlemlerden sonra oturup analiz yapmaya başlarsınız. Kurulum için gerekecek programı sizin yazmanız gerekecektir. Böylece programın kendi işlerine yaradığını daha net görürler ve açık kaynak yazılımlara karşı şüphelerini giderebilirler. Bir yazılım geliştirme sürecini düşünün. projeyi almanızı ister. bazı iş akışları. güvenlik.

önce tavuk mu üreticez yoksa yumurta mı? Öncelikle refactoring olayından başlayalım. şablonlar. belki bir kaç pattern kullanmanız. fezaya 10 tane roket gönderdim. bakımı kolay ve yeni özelliklerin rahatça eklenebileceği bir hal alır ki hem sizin için hemde sizden sonra gelecekler için sağlam bir alt yapı olur. Projenin başında senaryoları yazarken Word'ü açıp Allah ne verdiyse yazıyordunuz. Refactoring üretilen parçanın daha kolay anlaşılması. hızlandırılması.Blogdan Seçmeler 92 Mesela kek yaparken yumurta kullanıyoruz ama oturup yumurtayı yeni baştan üretmiyoruz di mi? Zaten çok zor olurdu. fonksiyonlar. Bir Word şablonu oluşturup herkesin bunu kullanmasını sağlarsanız. . Böylece ürün daha kolay anlaşılır. Hani yapmazsınız ama. program parçaları. Sizden sonra gelen programcılar şöyle diyecektir. temalar. Tasarım Pattern'leri. Bir sonraki projenizi yaparken bu alt yapıları kullanır. Tek düşünmeniz gereken bu parçayı sizden sonra başka projelerde kullanacak kişilerin yardıma ihitiyacı olmadan (ve size küfür etmeden) rahatça kullanabilmesi ve performansının düşmemesidir. Yada yazdığınız bir fonksiyonu düşünün. bir arayüzde çeşitli fonksiyonları toplamanız. "Ağbi NASA'da rocket science üzerine çalıştım. biraz kafa patlatmak ve ünite testlerini bozmadan yeniden yapılandırmaya gidebilirsiniz. İşte Reusing bu aşamada devreye giriyor. Sonradan farkettiniz ki aslında her senaryo için belli başlıklar var ve hepsinde ortak kullanılıyor (farklı isimlerde olsa bile). projenin her aşamasında kullanılabilecek bir yöntem. bakımının kolaylaştırılması. ama böyle karmaşık bir algoritma ne gördüm nede duydum". üretim zamanını yarıya indirebilirsiniz. gereksiz yerlerinin kırpılması. İlk sürümü verip müşteriyi memnun ettikten sonra oturup daha iyi nasıl yapabilirim diye düşünmek. algoritmaları hızlandırmanız ve ünite testlerini genişletmeniz gerekir. Böyle konuşmalar duymak istemiyorsanız yazdığınız fonksiyonu parçalara bölüp yeniden düzenlemeniz. Sadece yazılan kod için değil. Örneğin bir döküman şablonunu ele alalım. hazır modüller. ilk yazdığınızda çok uzun ve karmaşık bir algoritma kullanmış olun. Refactoring genelde sürümleri verdikten sonra yapılır. testler ve aklınıza gelebilecek daha pek çok şey tekrar kullanılabilir. Oturup koca bir güvenlik modülünü tekrardan yazmaktansa bir önceki projede yazdığınız güvenlik modülünü refactoring yaparak yeniden kullanılabilir hale getirmek daha kısa sürecektir. firma içi iletişim 10 kaplan gücünde olacaktır ki Agile programlama yapanlar için baş kurallardan bir tanesidir. dökümantasyonunun iyileştirilmesi adına yapılacak bir dizi işlemdir.

büyümek ve uzun süreli bir firma olma vizyonumuz varsa bu yöntemleri muhakkak kullanmamız gerekir. Bu tür başarılar yazacağınız ön kapakta çok yararlı olur. Birileri sizin yaşadığınız problemleri zaten yaşamış ve çözmüşdür. Biraz sanat biraz da mühendislik ile daha iyisini daha kısa zamanda üretmek için yollar ararım.18 Kariyer Olayı Bilgi Teknolojileri alanında kariyer yapmak isteyen gençlere bir kaç öğüt. Tabii ki öncesinde bir analiz ve maliyet-fayda analizi yaparım. 3. refactoring yapmanız şarttır. Hangi projeye girersem benim için en iyisi olur. Projenin tamamlanma sürecini de %15 hızlandırdım" gibi. Eğer ilk üç ayda yeni bir şey ekleyemezseniz ikinci üç ayda mutlaka yeni bir şeyler ekleyebilin. Özgeçmişinize refactoring ve reusing sonucu firmanıza ne kadar yarar sağladığınızı yazabilirsiniz. Firmanın büyüklüğü yada projelerin sayısıda sizin için bir kıstas olmasın. Böylece piyasada adından iyi söz edilen. bunları tekrar uygulamak sizin için çocuk oyuncağı olacaktır. Kariyerinize karar verin. Rahatlık kariyerinizi öldürür. Öncelikle yöntemleri öğreniyorsunuz. Zaten topu topu iki projemiz var refactoring ile zaman harcamaya gerek yok diye düşünebilirsiniz. Örneğin açık kaynak projelerde sizin kullanabileceğiniz bir sürü modül olabilir. o projeden neler öğreneceğim ve proje sonunda . Hedeflerin belirlenmesi bu hedeflere ulaşılabilmesi için atılacak ilk adımdır. Bir heykeltıraş gibi olanı yontmayı veya yeni şeyler ekleyerek geliştirmeyi her zaman düşünürüm. Fakat daha fazla projeler almak. Bold yazılmış kelimelerde dikkati çekmek için iyi bir yöntemdir. 10 senedir kullanılan iş süreçlerini değiştirmekten kaçınmam. Böylece üretim maliyetlerini azaltmış oluruz. Eğer zorlanmadığınız bir alanda uzun zamandır çalışıyorsanız her üç ayda bir özgeçmişinize yeni bir hüner ekleyebilmeye dikkat edin. Ben her zaman değişimden ve yenilikten yanayım. Hatta o çözümleri refactoring yaparak herkesin kullanabileceği hale bile getirmiştir. yazdığınız bir fonksiyonun tekrar kullanılabileceğini tahmin ediyorsanız. Ama lütfen dürüst olmaya özen gösterin. Eğer çalıştığınız yerde yeni şeyler öğrenmeye fırsat yoksa açık kaynak projelere katılabilir ve boş durmadığınızı kanıtlayabilirsiniz. Diğer okuduğum bloglardan ve kendi deneyimlerimden derledim. köklü bir firma olursunuz. Arayıp bulmak size kalıyor. Yada yeni bir ürünün kurulum konfigürasyon adımlarını araştırıyorum. Ben bazen eğitimlere katılıyorum bazende açık kaynak projelere yardımda bulunuyorum.93 Blogdan Seçmeler Kural olarak. Yazılım Uzmanı olarak sizin kariyeriniz için de iyi olan tarafları var. projeleri zamanında teslim etmek. Örneğin "Falan projede uyguladığım refactoring ve reusing yöntemleri ile görevlerimi %30 daha az zamanda bitirdim.

Ürünleri görüp deneyebileceğiniz. Ya tutarsa diye özgeçmişimi gönderdiğim bir firma beni cepten arayınca epey bir şok olmuştum. Böylece insan kaynakları ile doğrudan görüşmüş ve belkide iyi bir izlenim uyandırmış olursunuz. Eğer işlerin taşeron firmalara kayacağını sezinlerseniz o işten hemen ayrılın. Ben Türkiye’de çalışırken yurt dışında çalışmak aklımın ucundan bile geçmezdi. İş bulma ajanslarının her zaman iyi bağlantıları olmayabilir. 1 ay sonra yeni işimde başladım ve kariyerim için çok iyi oldu. Tabii ki taşeronun kalitesi yönetim açısından kabul edilebilir ise. deneme sürümlerini alabileceğiniz ve bilgiyi ilk ağızdan duyacağınız yegane yer fuarlardır. İnsanlarla yüz yüze konuşup iyi izlenimler bırakma olanağı en çok bu tür organizasyonlarda ortaya çıkar. Ertesi gün sanırım 20-25 kadar telefon aldım. Birde Word’de özgeçmiş hazırlamıştım. Takım elbisenizi giyip saçınızı düzeltin ve firmanın yolunu tutun. Piyasada elinizi kolunuzu bağlayacak anlaşmaları imzalamaktan çekinin. Eminim o firma e-postaları ve messenger loglarını da okuyordur. Hepside . Ayrıca kişisel bir kart bastırıp kontak bilgilerinizi dağıtmanız da iyi olur. Buda okunacak bir sürü eposta anlamına geliyor. Hayatınızı tamamı ile iş bulma ajanslarına bağlamayın. Bir ön yazı yazıp neden o firmada çalışmak istediğinizi anlatın. Sizin özgürlüğünüze saygı duymayan bir firmada nasıl çalışabilirsiniz ki. Sadece özgeçmişleri gönderecekleri birer e-posta adresleri vardır. Eve gelip fax programımı açtım ve sanıyorum 75 tane firmanın fax numarasını tek tek kaydettim. E-posta çok ucuz bir yöntem. Kapitalist sistemlerde işler yüksek maliyetli bölgelerden düşük maliyetli bölgelere doğru kayar. İşe girerken imzaladığınız anlaşmalara dikkat edin. size hiç bir şey katmayacak bir projeye katıldıysanız artık o firmadan ayrılmanın vakti gelmiş demektir. İş başvurularında eski yöntemleri denemek iyi sonuç verebilir. Ben 98 yılında ilk mezun olduğunda gelen ilk Bilişim fuarına gittim.net gibi sitelerde iş ilanı veren kuruluşlar geriye çok fazla e-posta alırlar ve sizin e-postanızın okunma şansı yok denecek kadar azdır. Bir firma için kabul edilebilir olan kalite seviyesi diğer bir firma için kabul edilmeyebilir. Önce özgeçmişinizi güzel bir kağıda basın ve dosyalayın. Eğer firma içindeki kaymalardan dolayı. Amaç katılan firmalar kitapçığını almaktı. İşe alınmasanız bile akılda kalacağınız garantidir. Kariyer. Yada kendinizin başka bir firmaya kiralanacağını sezinlediğiniz zaman vakit gelmiş demektir. Genelde bu durumlarda firma sahipleri çeşitli teşvik veya vaatlerle sizi projede tutmaya çalışabilirler fakat kariyeriniz daha önemlidir. Fuarı bile gezmedim. Programın Auto-Send özelliği ile 70 kadar firmaya özgeçmiş gönderdim. Taşeron işler hayatın bir gerçeğidir.Blogdan Seçmeler 94 özgeçmişime neler ekleyebilirim gibi soruları kendinize sorun. İş değiştirmede en büyük yardımcı bence fuar ve toplantılardır. Ayrıca iş başvurusu yapan kişiler iş için gerekli yeteneklere sahip olmasalar dahi özgeçmiş gönderirler.

Çevre oluşturmak için her türlü fırsatı değerlendirmeye bakın. Proje müdürü projeyi 6 ay’da bitireceğimizi söylüyordu (kullandığımız yazılım aracına güvenerek). para arkasından gelecektir. B2 Yazılım’ın müdürü dahi zaten 6 ay içinde analizleri . Örneğin sistem analisti. 2 sene sonra ise artık ben Bilişim fuarında görevli olarak yer almaktaydım. Herhangi birini seçip kariyerinize o yönde şekil vermelisiniz. ücretinizi tahsil eder ve olaydan çekilirsiniz. Eğer çevrenizde belli bir kullanıcı grubu yoksa bir tane siz başlatabilirsiniz. Sevdiğiniz işi yapın. Eğer eski teknolojilerde bir şeyler yazıyorsanız (ASP. Tabii bu durum eski firmanızı bırakmanıza neden olabilir ama zaten siz o firmada eski teknolojileri bilen kişi olarak tanınıyorsunuz ve bu önyargıyı kırmak biraz zor en iyisi ayrılmak ve yeniden başlamak. sistem yöneticisi. Beta ve deneme sürümleri ile yeni şeyler öğrenmeye başlayabilirsiniz. Sonuçta bir tanesine girdim ve başladım çalışmaya. En sonunda da tüm proje ekibi istifa eder. Ama tabii buna kimse inanmamıştı. Eski teknolojileri bilmek bir avantajda olabilir. üretkenliği daha önce duyulmamış seviyelere getirmek için. 3.) yeni teknolojileri takip edin ve bir sonraki trendin ne olacağını önceden sezinlemeye çalışın. Ürünü tamir eder. Hele sayfa 18’deki “Reprise” başlıklı hikaye bana B2 Yazılım için OCT Bilişim’de (isimleri değiştirdim) yaptığımız projeyi hatırlattı. ücretsiz olarak normal saatler dışında çalışabilir. Peki bunun maliyeti nedir? Bu tür bir maliyet analizi hiç bir zaman planlara dahil edilmemiştir edilmeyecektir de. Tek dezavantajı yeni teknolojiyi öğrenmek için iş saatleri dışında zaman harcamanız gerekliliği fakat kariyerinizin bir atlama yapması için sanıyorum bu gerekli. Programcılık yapamasanızda IT alanında yapılacak pek çok iş seçeneği var. Kariyer için daha söyleyecek çok şeyim var.95 Blogdan Seçmeler görüşmek istiyordu. Tabii zaman içinde kaybolup gittiler bu kişiler. Böylece yeni teknolojiler piyasaya çıktığında sizde en az diğerleri kadar bilgili olacaksınız. Aynı semtte olanları aynı günlere peş peşe koymaya çalışmıştım. Piyasada çok insan gördüm sırf programcılık iyi para veriyor diye programcı olan.19 İspanyol Teorisi İspanyol Teorisi: İşkolik yazılım ekibi. Bu çalışma aslında bir didinmedir. Başka bir yazıda onlarıda yazacağım. proje yöneticisi vs. Tabii bunları organize etmek için bir ajanda kullanmam gerekti. O yıllarda önemli olan para değildi sadece deneyim yapmamın gerektiğini biliyordum bu yüzden maaşı önemsemedim. De Marco’nun Peopleware kitabını okurken benim piyasaya ilk atladığım 98 yılı gözümün önüne geldi. COBOL vs. Çevre oluşturmak için blog yazmak ve kullanıcı grubu toplantılarına katılmakta çok önemlidir. Eğer sizden başka tamir edecek kimse yoksa kısa kontrat usulü çalışabilirsiniz. modelleme uzmanı. VB6.

çalışanlar ise olaya Fransız kalmıştı. Yeter artık diyerek sağa sola özgeçmiş göndermeye başladım. Nede olsa tepede birileri bizim yerimize tüm planları yapmış ve 6 ay gibi bir zamanla çıkagelmişti. . Geceleri ofiste yattığımız günleri daha dün gibi hatırlıyorum. yol parası zaten epeyden beri yoktu. Ama tabii bu arada evlendim ve artık bir ev geçindirmeye başladım. Bu projede gelecek görmeyenler başka işler bulup yollarına devam etti.. Sanırım burada esas yanlışı ben yapıyordum. Aldığım ücretin önemi yükseldi. Bu arada ürünün kalitesi ve bizim iş memnuniyeti de bayır aşağı gidiyor tabii ki. masaları ben monte ettim tekrar. Allahtan eşim de çalışıyordu. yada 8. fakat test ekibinde yeterli kişi olmayınca hataların bulunması ve bunların düzeltilmesi gecikiyordu. Önce yemek fişlerini kestiler.. Sağlığım bozuldu.. ofisi taşıdık. Ben ve Pazartesi günü girip Perşembe günü çıkan arkadaş. Bu arada proje el değiştirdi. Proje müdürü ne olursa olsun ilk bir kaç modülün sürümünü vermek istiyordu çünkü. İlk 3 ay sonunda 8 kişilik ekipten kopmalar başladı. Maaşlar gecikiyordu. Kendinizi sakın bu tür proje müdürlerine kaptırmayın. Unutulmayacak en önemli kural: İnsan bu kadar dar proje planı baskısı altında daha iyi çalışmıyor sadece daha hızlı çalışıyor. Tek yararı benim için bu oldu. diyerek harıl harıl yazdık. 1 senenin sonunda kala kala orjinal ekipten iki kişi kaldı.Blogdan Seçmeler 96 bile bitiremeyeceğimizi biliyordu. Garip bir zevk alıyordum bu işten. Özel hayat filan kalmamıştı. ayda söylemişti. Sizinde çalıştığınız işyerlerinde bu tür İspanyol proje müdürlerine rastlamanız mümkün. Kısa dönem taktiği ile yeni yetme bilişimcileri köle gibi çalıştırarak üretkenliği arttıracağını zannedecek bir garip görüş içerisinde oluyorlar. bilgisayarların kurulumuna kadar her şeyi yaptım. Bizimde migren ağrılarımız arttı. Tabii bize bunu sanırım 7. Biz tabii ki yeni mezun olmuş ve profesyonel hayata yeni atladığımız için canavar gibi başladık projeye harıl harıl yazdık. Ama 6 ay sonunda değil. onu da bırakmak zorunda kaldım. Tüm faturalarımı ödeyebilecek durumda değildim. İki de yeni eleman katıldı projeye. Proje müdürü İspanyol. İki ay maaş ödenmeyince benimde saksı çalışmaya başladı artık. Üstüne birde yazılım ekibinin kullanılan yazılım aracını fazla bilmediğini eklemeliyim. Maaşlar da en sonunda ödenmemeye başladı. Bir arkadaşımız sürüm öncesi ofise Pazartesi girip Perşembe günü çıkmıştı. Verdi de. Pek çok planımızı ertelemek zorunda kaldık. Spor yapıyordum düzenli. Bizde acaba 6 ayda olur mu. Yeni mezun olduğumuz için söylediklerimize önem veren de yoktu. Eşim Cumartesi Pazarları beni görebilmek için ofise yemek getiriyordu. Tabii bu arada proje neredeyse sonuna gelmişti.. Networkünden. Piyasaya yeni atladığım için deneyim ve bilgilerimi genişletmek istiyordum. Bu proje boyunca aldığım ücret benim için önemli değildi aslında. Gene harıl harıl çalışmaya devam.

Alacaklar gene kaldı.. Ama işverene dürüstçe bunlardan bahsetmeniz ve bunları kapatmak için neler yapacağınızı sıralamanız size bir artı puan kazandırabilir. suratlar beş karış. Yeni bir şeyler var mı? Sürekli öğrenme isteği içinde olduğunuzu gösterecek bir kanıtınız var mı? Neleri bilmediğinizi biliyor musunuz? Zayıf olduğunuz konuların bir listesini yapabilir misiniz? Bu zayıflıklardan konuşurken utanıp sıkılmamayı başarabiliyor musunuz? İnsanoğlu kendi zayıflıklarından bahsetmeyi pek sevmez. Benim bu projeye verdiğim değer kadar firma bana değer vermiş olsaydı belkide sonuçlar çok daha farklı olabilirdi. Ne yapıp edip bir kişi daha aldım projeye ama sırf o kişiyi eğitmek 3 ay aldı. Son aldığınız kitaplara. Blogunuzda yazdığınız yazılara bir bakın. 4 senenin sonunda artık dersimi almış ve arkama bakmadan ileriyi planlamam gerektiğini anlamıştım. gezdiğiniz web sitelerine bir göz atın. Sürekli öğrenme isteğiniz var mı? Yeni çıkan teknolojileri ne kadar takip ediyorsunuz? Yeni bir şeyler öğrenmek ve bilgilerinizi güncellemek için ne zaman bir araştırma yaptınız? Son 1 sene içinde ne gibi kurslara yada seminerlere katıldınız? Belli bir öğrenme planınız var mı? Bilişim Teknolojileri alanında ayakta kalabilmek için en önemli şey sanırım yeniliklere ve öğrenmeye açık olmak. Sen kaşındın Gürkan diyerek. Bu arada ofis yeni yere taşındığı için evden ofise tam 3 saat yol gidiyordum.20 İş Başvurusu ve Dikkat Edilecekler Bir iş başvurusunda başarılı olmak için ne gibi özelliklere sahip olmanız gerekir veya işverenler nelere dikkat eder hiç düşündünüz mü? Joel Spolsky'nin "The Best Software Writing I" kitabından ve benim deneyimlerimden derlediğim şu maddelere bir göz atın. Elini taşın altına koyabiliyor musun? Projenin veya ürünün başarılı olması için elinizden geleni yapacağınıza emin misiniz? Özveri isteyen bazı işleri söylenmeden yapabilir misiniz? Genelde BT . Firmanın kaybı çok büyük oldu.97 Blogdan Seçmeler Ne yazık ki bu filmin sonu Hollywood filmleri gibi güzel bitmedi.. Planımızı yaptık ve uyguladık. İyi niyet bir yere kadar fakat ben gene bir iş bulup ayrıldım. Bütün gün yorulan halk otobüste vapurda patlayacak bomba gibi. kurduğunuz programlara. Bir veritabanı uzmanı. bir kaç yazılım uzmanı daha. Bunları yaparken kendi kendime gülüyordum. 3 ayın sonunda da yüzde yüz üretken olmasını bekleyemezsiniz. Akşam saatinde eve dönmek daha bir berbat oluyordu (gene 3 saat). Proje bitmedi. Projeyi daha sonraları ayağa kaldırmak için girişimler oldu. sistem yöneticisi. Sonuç hüsran tabii ki. Daha çok eleman gerekiyordu. ofis mobilyası monte etmeler. 3. bilgisayar kurmalar. Ben 1 sene sonra tekrar geri döndüm fakat bu seferde benden başka kimse kalmamıştı. Gene network kurmalar.

kaç tane CRM vs uygulaması olduğu ortada. Proje ekibi içinde nasıl çalışılır biliyor musunuz? Hiç Açık Kaynak bir projeye katıldınız mı? Birlikte çalışma. önemli olan bildiğinizi ispatlamak ve eğitiminizle bunu ortaya koymak. Sourceforge. İşini bu kadar seven birisini çok fazla düşünmeden işe alırdım. Ama boş zamanınızda bile kod yazmaya yöneliyorsanız bu sizin işinizi ne kadar sevdiğinizi gösterir. Hani bu ecnebiler derya "work smarter not harder" çok çalışmaktan ziyade akıllı çalışmak. Hem bir ekip içinde nasıl çalışacağınızı öğreniyorsunuz hemde teknoloji ve kullandığınız araçlar hakkında yeni şeyler öğreniyorsunuz. Ama tabii harcadığınız zamanın ve emeğin karşılığını da alacağınızdan eminseniz. gibi kavramlardan haberiniz var mı? Açık Kaynak projelere katılmak veya zaten başkasının yaptığı bir ürünü başka bir şekilde yapmak "boş iş" gibi gelebilir. Otomatize edilemeyen işler. Boş zamanlarınızda TV seyretmek yerine kod yazmayı tercih ediyor musunuz? İşiniz aynı zamanda bir hobi olarak devam ediyor mu? Yaptığınız işten zevk almanız o işin kalitesini yükselten en önemli etkenlerden biri (bunu birde firma sahiplerine anlatabilsek). Bazı işleri otomatize ederek bunun önüne geçebilirsiniz. Hakikaten bu tür işler ortaya çıktığında elinizi taşın altına koymaktan çekinmeyin. Kaç tane açık kaynak blog uygulaması. İyi kod deyince aklınıza ne geliyor? Yazdığınız kodun iyi olabilmesi için ne tür özellikler gerekiyor? İyi kod yazabiliyor musunuz? Performans konusunu hiç düşündünüz mü? Kodlamadan önce testleri yazmak gibi bir şey daha önce duydunuz mu? Yazdığınız kodda bir standart var mı? FXCop gibi bir araçla kodunuzu kontrol ettiniz mi? Refactoring hiç yaptınız mı? İyi kod kişiden kişiye. Buna rağmen halen daha özveri isteyen işler olacaktır. Tekerleği yeniden icat ediyor bile olsanız bunun size kazandıracağı deneyimler tartışılmaz. Üniversite okumadıysanız bunu iş deneyimleriniz ile ve gittiğiniz kurslar ile kapatmanız mümkün. Firmanın stadartlarını hızlı kavrayıp uygulayabilmek te size bir yarar sağlar. Kimi zaman performans ön planda iken. Her iki durumda da firmaya yararlı olacağınızı belirtebilirsiniz. Üniversite okuduysanız ve sektöre yeni atlayacaksanız analitik problem çözme ve araştırma geliştirme konularında iyisiniz demektir. Hobiler genelde bir boş zaman uğraşıdır ve beyni dinlendirmek için yapılır.Blogdan Seçmeler 98 sektöründe çalışmak demek. Bu öğrendiklerinizi iş görüşmelerinde muhakkak belirtin. firmadan firmaya değişir. kod ortaklığı. CVS vs. yada birisinin başında beklemesi gerekecek işler her zaman olacaktır. Subversion. Değişikliklere hızlı ayak uydurabilmek bu açıdan önemlidir. akşam saatlerini ve hafta sonlarını ziyan etmek anlamına gelir. Eğitim durumunuz nedir? Bir üniversiteden mi mezunsunuz yoksa alaylı olarak mı BT sektöründesiniz? Alaylı veya mektepli olmanın hiç bir farkı yok. . kimi zaman sadece o işin yapılması önemlidir. Gittiğiniz kurslar veya okuduğunuz Bachelor Degree'nin önemi büyük.

espri anlama kabiliyetini kısa zamanda kavrayıp "nabza göre şerbet" vermelisiniz. istediğimiz özelliklere uyup uymadığını bulmaya çalışırdım. Belge yazabilen bir yazılım uzmanını değerlendirmelerde öncelikli tutardım. 3. Önce soruları kendi deneyimleriniz ile cevaplamanızı ve sonra podcast'i dinleminizi öneririm. İnsan ilişkilerinde önemli olan dinlemeyi ve konuşmayı iyi yapabilmektir. Greg Gianforte'nin yaptığı bir konuşmasından alınmıştır.com/ adresinde 25 Nisan 2006 tarihinde yayınlanan. Vezir'de bahsettiğim konular ile hemen hemen örtüşüyor. Benim çok hoşuma gitti bu sorular ve sizlerin de yararlanacağınızı tahmin ediyorum.99 Blogdan Seçmeler Belge yazmak ile aranız nasıl? Teknik açıdan yetersiz bir kişinin okuyunca anlayabileceği bir belge üretebilir misiniz? Kodladığınız modüllerin ne yaptığını genel olarak yazabilecek kabiliyetiniz var mı? Blog yazıyor musunuz? Tamam yazılım uzmanları belge yazmayı pek sevmez. Ben bir öngörüşmede bu konuları sorar ve kişinin ekibe neler katacağını. değer verdiği şeyleri. o araçlarda pek bir işe yaramaz.gigavox. müşteri ile nasıl konuşulur. Konuşmada kendi deneyimlerine yer veren Greg daha sonra dinleyicileri test etmek için bu soruları soruyor. Yoksa ürün ortaya çıksa bile müşterinin istediği gibi bir şey olmaz.21 Yeni İş Kuracaklara Bir Test Aşağıdaki test http://osc. Ama kodun içinde yeterli derecede yorum ve açıklama yoksa. Haftaya cevapları ve benim yorumlarımı burada yayınlayacağım. Analiz nasıl yapılır. sonraki adım ne olmalı? . hatta bu işi otomatize etmek için araçlarda var. İşte sorular 1-Eğer sıfırdan yeni bir iş yada yazılım firması kurmak istiyorsanız ilk yapacağınız iş ne olmalı? a-Bir iş planı yazmak b-Bir sürü kişiyi arayıp pazarın sorunlarını/isteklerini öğrenmek c-Bir prototip üretmek d-Bir pazarlama uzmanını işe almak 2-Bir fikriniz var. Anlaşıldığını anlayan müşterinin size olan güveni artar. (dönüp bu son cümleyi tekrar okuyoruz). Anlaşıldığını anlayan müşterinin size olan güveni artar. Karşındaki kişinin psikolojisini. UML nasıl kullanılır. müşteri istekleri nasıl belgelenir ve koda dönüştürülür hiç düşündünüz mü? Bu konularda deneyiminiz var mı? Bir ürünü ortaya çıkartabilmek için öncelikle müşterinin ne istediğini iyi kavramak gerekir. Bu podcast'e direk link vermiyorum. Bu soruların tümüne evet cevabını vermeniz gerekli değil.

sonraki adım ne olmalı? a-Fikrinizi koruyacak bir avukat bulmak b-Kendinizin satacağı bir prototip üretmek c-Bir yerlerden para bulmaya çalışmak d-Bir pazarlama uzmanı bulup ürününüzü satmasını sağlamak 4-Bir müşteri adayı buldunuz. yapılacak en iyi şey: a-Bu özellikleri eklemeyeceğinizi söylemek b-Bu istenen eklentiler için müşterinin para ödemesini sağlamak c-Siparişi alıp 4 hafta içinde ürünü getireceğinizi söylemek d-İstenen özelliklerin uygulanmasının ne kadar zor olduğunu anlatmak ve mevcut sürümü alması için çalışmak 6-Sektörün en fazla satan yayın organı ürününüz hakkında bir makale yazacak ve yan sayfada ki reklam alanını da size satmak istiyor.Blogdan Seçmeler 100 a-İş planını uygulamaya koymak b-Bir ofis kiralamak ve kullanılmış ofis mobilyaları almak c-Fikriniz için patent başvurusunda bulunmak d-Fikrinizi 300 müşteriye göndermek ve daha sonra arayıp ne düşündüklerini sormak 3-İyi bir ürünü ortaya çıkaracak tüm özellikleri listelediniz. sonraki adım ne olmalı? a-Beta programına katılmaları için ikna etmek b-Bir sipariş vermeleri için çalışmak c-Henüz bir ürününüz olmadığını söylemek d-İleride ekleyeceğiniz özellikleri anlatmak 5-Ürününüz müşterinin istediği şeyleri yapmıyor. yapılacak en iyi şey: a-Reklam alanını almak b-Reklam giderleri bütçesinin dolduğunu söylemek c-Yeterli paranızın olmadığını söylemek .

firmanız hakkında bilgi ve ayrıntılı finansal döküm istiyor ne yapardınız? a-Bilgiyi veririm b-Nazikçe redederim c-Muhasebecimize gönderirim d-Mesajlarını cevaplamam 8-Önemli bir müşteri adayı sizinle görüşmek için 1 hafta sonrasına randevu istiyor. ne yaparsınız? a-Yeni başladığınızı ve ofisinizin olmadığını söyleyin b-Müşteri gelmeden önce bir ofis kiralayın c-O hafta seyahatte olacağınızı söyleyin 9-Bu işte tam zamanlı çalışan tek kişi sizsiniz. yapacağınız ilk şey? a-Kendime zam yaparım b-Daha büyük bir ofise geçerim c-Bir kutlama partisi yaparım d-Bir danışmanı işe alırım 3. İşte burada da Greg'in cevaplarını ve benim bazı yorumlarımı yayınlıyorum. Cevabınız: a-Ben bu firmanın tek çalışanıyım demek b-5 c-20 d-50 10-İlk satışınızı yaptınız ve bir miktar kar elde ettiniz. . Müşteri adayı kaç çalışanınız var diye soruyor.22 Testin Cevapları Önceki yazımda Greg Gianforte'nin konuşmasından aldığım testi vermiştim.101 Blogdan Seçmeler d-Cehennemin dibine gitmesini söylemek 7-Bir pazar araştırma firması. Ama siz hala evdeki ofisinizden çalışıyorsunuz.

Kulüplere. Sektörden kişileri tek tek arayıp isteklerini dinlemek hatta gerekiyorsa bir kahve yada öğlen yemeği sırasında fikirlerini almanız bulunmaz bir kaynak olacaktır.Blogdan Seçmeler 102 1-B Eğer sıfırdan bir firma kuruyorsanız ve hangi sektöre yazılım yapacağınızı da biliyorsanız. ürünü geliştirmeye hemen başlayabilirsiniz. 3-B Prototip fikirlerin hayata geçirilmesi ve gizli kalmış isteklerin ortaya çıkması için zemin hazırlar. 1. derneklere katılmak. Yada en azından bir prototip. Müşteriye bu rapor ile gittiğinizde bu istekleri öncelik sırasına göre dizmesini önerin. 5-B ve C Her iki şıkta oluyor bu soru için. tek işiniz sektörün istediği bir yazılım üretmek. Ortaya tam bir özellikler listesi çıkar ki. Bence müşteriden bir hafta isteyip bir rapor çıkarın ve her isteğin kaça mal olacağını ve süresini belirleyin. . hemde ileride pazarlama uzmanlarına konuyu tam olarak anlatabilmek için öğreniyor olacaksınız. Sipariş almanız demek bir gelir akışı demektir ve buna hakikaten ihitiyacınız var. toplum örgütlerine. toplantılarına gitmek veya örütbağı üzerindeki sosyal toplaşma sitelerine üye olmak yapabilecekleriniz arasında. Eğer istekler çabuk uygulanabilir şeyler ise müşteriyi üzmenin anlamı yok. Müşterinin öncelik sırasına göre sizin belirleyeceğiniz miktardaki yeni özelliği ikinci sürümde gerçekleştireceğinizi teyit edin. barlara. Ayrıca bu ürünü sizin satabilmeniz çok daha önemli. Müşteri sıralamayı sizin raporunuzdan önce yapmıyor çünkü fiyatları ve zamanları gördüğünde daha gerçekçi bir sıralama yapacaktır. Hem işinizi severek ve motive olarak yapacaksınız. 4-B En önemli olayınız bir sipariş almak olduğuna göre bunun için en fazla çabayı sarfetmelisiniz. Bu iki aşamadan sonra oturup ürünü ortaya çıkarmanız lazım. Zaten firma ilk kurulduğunda finansman açısından çok fazla kaynağınız olmayacağı için bunu kendiniz yapmanız çok daha iyi olacaktır. 2-D Amacımız tam bir özellikler listesi hazırlamak ve bu listeyi hazırlarken de müşteri gereksinimlerini gözden kaçırmamak. soruda hazırladığımız listeyi sanki ortada bir ürün varmış gibi müşterilere göndererek fikirlerini sorabiliriz. Tabii bu tür kişileri bulmak zor olabilir. Bunun özelliklerini de en iyi sektör verir.

sınıfında okuyan ve yazılım uzmanı olmak için çalışan bir öğrenci var karşımızda. Zaten finansman olarak dardasınız. Esas programlama dersi öğretmeni gelemediği için bir lise öğretmenini derse sokuyorlar. iyi bir bilgisayar sandalyesi veya yeni programcılar alarak devam ederdim. Öz kaynaklarımı arttırmak için daha güçlü bilgisayarlar. Red edip istene bilgileri doğrudan müşterinize verebilirsiniz. Nasıl olsa müşteri ürünü alıp kurana ve kullanmaya başlayıncaya kadar sizin firmanız büyür. Büyük ihtimalle ürününüzü satmaya çalıştığınız bir müşteriniz hakkınızda kredibilite soruşturması yapıyordur ve araştırma firmasına bu görevi vermiştir. Aile içinde bir ortam bile hazırlayabilirsiniz. reklamını yapıp isimlerini duyuralım demez. 9-B Bir önceki soruda dürüst olun diyen Greg bu soru için 5 kişi var demenizi öğütlüyor. 3. İş ve arkadaşlık ilişkilerini birbirine karıştırmayın.103 Blogdan Seçmeler 6-B Bu yayın organı zaten hakkınızda bir makale yazacak. mütevazi bir şeyler yapardım. 8-A Greg bu soru için dürüst olun diyor çünkü eninde sonunda ortaya çıkacak bir yalan. Atatürk Üniversitesi 2. Samimi olmak daha sonra ardı arkası kesilmeyen isteklerin gelmesine neden olabilir ama ilk başlarda zaten buna ihtiyacınız var. Kutlama tabii ki gerekli ama aşırıya kaçmadan. Bak bu firmada yeni başlamış.23 Programlama Öğrencisinin Derdi Yer Bayburt. Bu öğretmenin verdiği bir ödev var. Profesyonellik bu ikisini ayırmaya başardığınız zaman başlıyor. Eğer müşteri hala sizinle görüşmek istiyorsa listede birinci sırayı almaya hak kazanmış demektir. 10-C Greg parti yapın diyor fakat ben zaten bu kadar zor kazandığım bir geliri parti yaparak çar çur etmezdim. . aman yardımcı olalım. 7-B Hiç bir araştırma firması sizin kara kaşınız kara gözünüz için hakkınızda araştırma yapmaz. Reklam giderleriniz 0YTL olabilir ve reklam giderleri bütçesinin dolduğunu söylemek hiçte yanlış olmaz diyor Greg. birde yanına reklam koymanın bir anlamı yok. Böylece müşterinin samimiyeti artar ve güveni yükselir.

Birde bu öğrencimiz gibi aynı sınıfta bu konu ile cebelleşen bir sürü başka öğrenci var. Ders müfredatını geliştirmek için çalışan bir sürü gönüllü kişinin 12 aylık emeği boşa gitti.meb. kurup. Yazılan tonla döküman boşa gitti.tr) için tüm zaman ve emeğimizi harcadık. Ücretimizi 27 saatten 18 saate .Blogdan Seçmeler 104 -SourceSafe hakkında bilgi topla ve yaz. Zaten bu öğrencimize ve eğitimin kalitesine çok üzüldüm.Aralık 2006 tarihleri arasında MEGEP (www. Fakat bu öğrenci nereden başlayacağını bilemiyor çünkü örütbağı üzerinde yeterli bilgi de yok.meb.tr) çerçevesinde Tarık Bey'e yardım ediyordum az da olsa. Team Foundation Server. Ama şimdi tam bir karmaşaya sürüklediler bizi. Yazılım Uzmanı olmaya çalışan arkadaşımız bu işten çok sıkılmış ve okul bittikten sonra yazılım uzmanı olmamaya karar vermiş bile. nedir duymamış ömründe. MEGEP ile okullarda yazılım uzmanı yetiştirmek amaçlı olarak ders programları üretilmişti. Fakat dandik ve Türkiye bürokrasisine yaraşır bir biçimde sonlandı.megep. Belki de sürüm yönetimini Sourcesafe'den ibaret sanıyor. birde üstüne üstlük böyle ne idüğü belirsiz bir ödev veriyorlar. acaba bu öğretmen Sourcesafe hakkında hiç derste konuştu mu? Sürüm Yönetimi gibi çok gerekli olduğunu düşündüğüm bir konu derste işlendi mi? Programcılık sadece kod yazmak mıdır? Bu öğretmen Sourcesafe hakkında bilgi topla ve yaz derken nasıl bir şey istediğini biliyor muydu? Belki de sürüm yönetimi konusunu kast etti ama sorma şekli yanlış. Bu öğretmen hakikaten bir şeyler öğretmek için mi orada bulunuyor yoksa salla başını al maaşını tarzında mı takılıyor? Eğer öyleyse gerçekten daha da fazla üzülücem. Konu Subversion veya CVS olsa. Çünkü öğretmen ne istediğini biliyor. MEGEP projesi (www.. Subversion. hem örütbağında ücretsiz mevcut. Allah'ım ölmek istiyorum bu acıya dayanamam. Belli ki öğretmen de bu konu hakkında derste konuşmamış.gov. Fakat Microsoft Visual Sourcesafe hakkında hakikaten Türkçe kaynak örütbağında yok. Valla sizi bilmem ama bu olay beni çok etkiledi. hemde kurup kullanmak için bir sürü dökümana erişmek olası. Öğrencimizin de bu araca erişimi yok.gov. Zaten finallerden ve ödevlerden şu sıralar kafayı yemiş durumda. Öğretmene net olarak ne istediğini sorduğunda itiraz yok diyor.. Hakikaten çok üzüldüm. İşte Tarık Bey'in blogundan bir alıntı: Ocak 2006 .megep. Sorarım. CVS vs. Bende bulamadım. Hani sürüm yönetimi gibi bu araçlarla yapılan bir iş hakkında sorsan pek çok bilgi mevcut. Halen daha bir öğretmenin bu konuda ödev vermesi üzücü. kullanıp ne olduğunu anlayacak mali gücü de!!! MS Sourcesafe'in ise artık kullanılmayan ve yetersiz bir araç olduğundan ise hiç bahsetmeyeceğim.

Modül takip projesinin bir yansısı http://www16.com/tbagriyanik/modul adresinde de vardı. Türkiye nasıl bilişim çağında diğer milletlerin yanında yer alacak? Alt yapı olmayınca nasıl üstüne sağlam yapılar kuracağız? Teknolojoyi bu kadar tüketmeyi seven bir toplumsak neden üretimi için bir şeyler yapmıyoruz? Neden MEGEP gibi bir proje için çalışan insanların emeklerini bir kalemde çöpe atıyoruz? Neden Allah'ım neden????? . Ne ülke ekonomisine bir katkısı nede kendisine bir yararı oluyor. 2. istifa ettiğimiz için. Tema aynı. Fakat her zaman olduğu gibi aptalca bürokrasiler ve bakanlıkların anlaşılması zor kararları yüzünden emekler çöpe gidiyor..Erkek Teknik için hazırladığım http://etogm2.brinkster. 250 sayfalık derleme kaynak boşa gitti.. Yani son bir yılda yaptığım çalışmaların %90'ı "boş". Yaptıkları işi seviyorlar ve gönülden çalışıyorlar. Aynen Anakin Skywalker'ın korkularından dolayı oluşan nefreti ve akabinde de karanlık güçlerin tarafına geçişi gibi. 3. Türkiye'nin ileriye gitmesini istemeyen birilerinin bir oyunu mu yoksa bizim ürettiğimiz dandik kurallar ve yönetim şekillerinin bir ürünü mü bu olanlar? Bu kadar nefretle okuyan öğrenci ondan sonra hacker oluyor tabii. sınavların ve ödevlerin öğrencileri bezdirmek için kullanıldığı.BTT (Bilişim teknolojileri temelleri) dersinin son 5 modülü olan programlama ile ilgili modüllerim okullarda BASIC dersi imiş gibi gösteriliyor.tr Modül takip projesi silindi.105 Blogdan Seçmeler düşürüldüğü için istifa dilekçelerimizi verdik. YAZIK. Kolay yolu tercih ediyor çünkü elinde yeteri kadar bilgi birikimi yok. faydasız hale geldi bir anda. Üniversite kişilere nasıl araştırma yapacağını ve doğru bilgilere nasıl erişip analiz edeceğini öğreten bir kurum olmaktan çıkıp. Bu insanlar Türkiye'de bir şeyleri düzeltmek ve daha da iyiye götürmek için neredeyse karın tokluğuna emek sarfediyorlar.Access modüllerinin ilk 2'si hariç kalanlardan yazdığım 3 modül boşa gitti. Verilmeyen "telif" haklarımız da unutulmamalı. Kullanılamadan boşa giden 2 aylık emek.gov. Ama tabi bizi oyalama yöntemi ile verilen görevleri zorla yaptırma yoluna gidiyorlar. Bu sebeple yazdığım onca içerik işlenmiyor. 1. ödül ve ceza yöntemi ile sözüm ona eğitimin yapıldığı bir yer durumuna dönüşüyor.meb. Nefretle okuyan öğrenci mezuniyetten sonra kendini hazır hissetmediği için bir işe girmek yerine hacker oluyor.

24 Bana Rakibini Söyle Bir iş kurmak istiyorsunuz fakat çok fazla rakibiniz olacak bir pazarda iş yapacaksınız. Müşteri sizin ürününüze geçmek için fedakarlık değil açgözlülük gösterir. Bu taleplere cevap verebilmenin tek yolu önceden ürün hizmetlerinin planlanıp (müşteriden gelecek geri beslemeler ve pazar takibi ile) sürümlere ayrılması ve müşterilere sunulmasıdır. Eğer pazarda herkesin yaptığını ve ek olarak bir kaç özellik daha sunabiliyorsanız başarılı olmanız için yeterli zemin sağladınız demektir. Diyelim ki müşteri X ürününü kullanıp bir veritabanı yaratıyor ve Y firmasının veritabanı uygulamasına geçmek istiyor. tamamen farklı olan sizin ürününüzü kullanmaya başlasın ki? Kara kaş? Kara göz? Yeni bir pazara adım attığınızda yada çok iyi bildiğiniz bir pazara firma olarak giriş yaptığınızda müşterinin sizin ürününüzü kullanması için bazı özelliklerden vazgeçmesini beklemek çok yanlış olur. Bir kere ürünü satıp sunduğunuz hizmetleri olduğu gibi bırakmakta iyi değil. Firmanızda rakipleri analiz edecek ve müşterilerden gelecek yeni fikirleri değerlendirecek bir departmanınız var mı? Üründe olacak özelliklere kim karar veriyor? Müşteriyi de projeye dahil edip fikirlerini soruyor musunuz? Önünüzdeki 10 sürümü planlayacak kadar hizmeti listeleyebiliyor musunuz? Bu sorulara vereceğiniz cevaplar sizin pazar payınızı ve devamlılığınızı büyük oranda etkileyecektir. Yani hem rakip üründe olan özellikler hemde sizin ürününüzün ekstra özelliklerinin toplamı müşteride kullanmak için bir arzu uyandırır. müşteri sizin ürününüze geçmek için vazgeçmesi gereken özelliklerden vazgeçebilecek mi? Sizin ürünün ne özelliği var da müşteriler şimdiye kadar kullandıkları rakip ürünü bırakıp. Geriye dönük uyumluluk ve rakip firmaların ürünleri ile uyumluluk bunlardan ikisi. Y firmasının veritabanı X ürünü ile tamamı ile uyumlu olmalıdır ki müşteri karar verme aşamasında rahat davransın ve sancı yaşamasın.Blogdan Seçmeler 106 3. Pazar takibi sürekli kendini tekrar eden bir analiz sistemi ve rakipleriniz sizi alt etmek için her türlü yolu deneyecektir. . Tüketici psikolojisi zaten buna dayanır. Müşterilerin sizin ürününüzü kullanması için nelerden vazgeçmeleri gerekiyor? Bu soruyu müşteri tarafından ele alırsak. Piyasa takibi ve rakip firmaların ürün özelliklerinin takibinin önemi bu aşamada ortaya çıkıyor. Ayrıca Y firmasının ürünü ekstra hizmetler de sunmalı ve bu hizmetler müşterinin her zaman istediği fakat X ürününden alamadığı hizmetler olmalı. Mevcut müşteri tabanınız rakip firmaların ürünlerinde bulunan özellikleri talep edecekdir.

Pazarda kalmak için gelişme şart. yönetim anlayışının değişmesine neden olacaktır. Çünkü müşteri tabanları o kadar iyidir ki pazarın neredeyse %50sini ellerinde tutarlar. Profesyonelliğin birinci kuralı mümkün olduğu kadar işi sektörün önde giden firmaları ile kontrat yöntemi ile yapmanız. Artık başka maceralara doğru kanat açma vakti gelmiştir. Bu aşamaya gelmiş bir firma bence Duraksama Dönemine girmiş demektir. Firma hacminin büyümesi beraberinde kurumsallaşmayı getirir. Yeni teknolojileri takip etmek yerine ellerinde olanla yetinir ve mevcut müşterilerden gelen hatalar ile uğraşırlar. ağınızı. şimdi yönetimi tabana yayıp firmayı bölümlere ayırmak ve her birimin kendi içinde kendi kurallarını çıkartmasını sağlamak gerekir. sunucularınızı ve kullandığınız yazılım araçlarını yenilemek amacıyla tedarikçi firmaları iyi seçmeniz sizin için iyi bir referans olur. Bilgisayarları. Daha önceleri tepeden tek bir kişi tarafından yönetilirken. Sonuç Bir firmanın pazarda geçireceği evrelere kuş bakışı bakmaya çalıştım. Müşteriye güven verir. Yüksek lisans dahi yapmış olsanız yöneticilik için gereken vasıflar henüz sizde bulunmaz çünkü yaşadığınız çevre . Hiç kimse evrenkentten mezun olur olmaz yöneticiliğe soyunmaz yada soyunmamalıdır. 3. Tabii ki en önemli şey birimler arası haberleşme olmalıdır. Duraksama Dönemindeki bir firmada çalışmak ise pek zevkli bir iş değildir. Bildiklerinizi dahi unutursunuz. Kurumsallaşma ve hacim büyümesi ile ilgili deneyimlerimi yazmaya çalıştım. Veri güvenliği ve politik sebeplerden dolayı dışarıya veremeyeceğiniz işleri ise kendi içinizde profesyonel olarak çözebilmek.107 Blogdan Seçmeler Duraksama Dönemi Kimi firmalar sadece bakım ücretleri ile ayakta kalmaya çalışır. Genelde müşteri destek işleri ile uğraşır ve teknolojinin gerisinde kalırsınız.25 Yazılım Uzmanlığından Yöneticiliğe Daha önce yazdığım şu yazıya atılan bir yorum üzerine bu yazıyı yazıyorum. Önümüzdeki engeller ve püf noktalarından bazılarına değindim. Firma stratejisi olarak üründe her hangi bir geliştirmeye gitmezler. Genel olarak yeni mezun olmuş ve yazılım uzmanı olarak işe başlamış bir kişinin yöneticiliğe doğru uzanan yolda katetmesi gereken aşamaları deneyimlerimden yararlanarak yazmaya çalışayım. Kod yazmak için pek fırsat olmaz. Böylece bütçelendirmeyi daha rahat yapabilirsiniz. Eski parlak günleri yakalamak ve daha da büyümek için hem yeni teknolojilerin takibi hemde bunların üründe uygulanması için planlanması gerekir. Eğer mutluysanız diyeceğim yok tabii. Umarım yararlı olmuştur.

%100 kod yazıp size verilen işleri zamanında bitirmek için elinizden geleni yapın. Yapılan yanlışlardan yada doğru yöntemlerden feyz alın. Bu aşamada yönetime veya proje müdürlerine bir öneri veya tavsiyede bulunmayın zira sizi dinlemezler ve boşuna vakit harcamış olursunuz. stres durumlarında ne yapılacağının bilinmemesi. Proje yönetimi ve insan ilişkileri konusundaki deneyimin azlığı. firma içi kültürlerin bilinmemesi. Hoşunuza gitmeyen eylemler ve bir şeyler söylemek istediğiniz durumlar olacaktır ama kendinizi tutun. Evrenkentteki hocalarınızdan birer referans mektubu isteyin (ingilizce ve türkçe mümkünse) ve özgeçmişinize referans olarak yazmak için izin alın. En azından 4 yada 5 projede yer alıp gözlemlerinizi sürdürmelisiniz. Her akşam bu deftere yazdığınız notları tekrar tekrar okuyun. Firma seçmek için yeni işe girecek mezunlara yazdığım şu yazıdan ve kariyerinize karar vermek için şu yazıdan yararlanabilirsiniz.Blogdan Seçmeler 108 sizin gibi insanlardan oluşmuş izole bir çevredir (okul ve öğretmenler) ve ilişkiler yüzeyseldir. bu aksayan noktaların nasıl çözülebileceğini. Problem çıkartmak yerine problem çözücü olarak tanınmaya gayret gösterin. okul bitti ama öğrenme süreciniz bitmedi. Problemleri çözmek proje müdürünün veya yönetimin işidir. .1 Mezuniyet Ve İlk Projeler Mezuniyetten sonra tek hedefiniz bir firmada çalışmaya başlayarak hünerlerinizi geliştirmektir. amaçlar farklıdır. Gireceğiniz firmanın yeni bir projeye başlıyor olması daha tercih edilen bir durum olmalıdır. Unutmayın. Bu defter sizin kara defteriniz olacak ve hiç kimsenin görmemesi gerekiyor. projenin gidişatını. yönetimin davranışlarını.25. 3. Zaten tüm planlar sizin için yapılmıştır ve bitirme zamanları planlanmıştır. planların zaman içinde nasıl değiştirileceğinin bilinmemesi. Yeni mezun olmuş bir yazılım uzmanının yönetici olabilmek için geçireceği evrelere bir bakalım. kalite arttırımı ve testleri konusundaki deneyimin azlığı önümüzdeki engellerden bir kaçıdır. Sizin işiniz kod yazmak. aksayan noktaları. Bu arada kalın ve çizgisiz bir defter edinin ve projelerde yaşadığınız olayları. Tek işiniz kod yazmak ve zamanında bitirmektir. Ücret bu aşamada önemli olmamalı ve size öğreteceği yetenekler ön planda tutulmalıdır. Sektörde ilerleyip iyi bir yerlere gelebilmek sizin hedefiniz ve bu hedef doğrultusunda bu sorunlara katlanıyorsunuz. Eski yazdığınız bilgiler yada deneyimler zaman içinde geçerliliğini kaybetmişse bunları da yenileyin ve nasıl bir değişime uğradığını anlamaya çalışın. iş arkadaşlarınızın davranışlarını ve aklınıza gelen her türlü bilgiyi ve deneyimi not edin.

Standartları.com/seths_blog/ The Server Side http://www.unbf.ca/altiustu/ Bilgi Güvenliği http://www.NET ve yazılım mühendisliği ile ilgili): Yabancı bloglara örnekler          Coding Horror http://www. veritabanını anlatan.com/ Scott Watermasysk http://scottwater.huseyinunal. insan ilişkilerini.com/ Mitch Denny http://notgartner. Firma kültürüne ters gelecek davranışlardan kaçının. davranış şekillerini.aspx Türkçe bloglara örnekler     Mehmet Doğan http://www.com/Default. Takip edeceğiniz bloglara bir kaç örnek olarak benim takip ettiğim blogları vereyim (genelde . Yeni teknolojileri ve ürünleri takip edin. üst seviye konuları anlatan kitaplar edinmeye ve yeteneklerinizi geliştirmeye bakın.com/blog/ Secret Geek http://secretgeek. Bu devrede okunacak kitaplar tamamı ile yazılım ile ilgili olmalıdır. siteleri.asp Seth Godin http://sethgodin.org/ Ferruh Mavituna http://ferruh. kitapları takip etmek için bu gerekli. üst ast ilişkilerini ve organizasyon şemasını çok iyi öğrenin. Ancak fikriniz sorulduğunda konuşun aksi takdirde ağzınızı açmayın.theserverside. blogları.mavituna.bilgiguvenligi. Yabancı yayınları. Agile Modeling her zaman kitaplığınızda bulunması gereken kitaplardan.typepad. İngilizce bilmiyorsanız hemen bir kursa giderek öğrenin.wordpress.com/ Hüseyin Ünal http://www.hanselman.net/index. Personal Software Process.com/blog/ Joel Spolski http://www. Writing Secure Code.109 Blogdan Seçmeler Firma kültürünü öğrenin ve uygulayın. Kullandığınız yazılım dilini anlatan.joelonsoftware. Joel on Software ek olarak okumanız gereken kitaplardan. kurun. Best Software Writing I. deneyin. Code Complete.net/ . Okurken kara defterinize notlar alın ve projede uygulamak için fırsat kollayın.codinghorror.com/blog/ Scott Hanselmann http://www.com/ Phil Haack http://haacked.

teknoseyir. İlk bir kaç maaşınız ile paranın alabileceği en iyi bilgisayarı alın. müşteriye sunum yaptırırlar. not tutun 4 yada 5 projede yer alın (aynı anda değil tabii ki) . Kara defterinizde proje vasıflı fikirler eminim vardır. kaldırılır. Evin telefon faturasını (internet için en fazla sizin kullandığınızı varsayarak) veya broadband ödemelerini siz yapmaya başlayın. sorun çıktığında size sorarlar veya içinden çıkılması güç işleri size verirler. Tüm bu saydıklarım bir üst aşamaya geçmeniz için birer göstergedir. Maaşınızın bir bölümünü ayrı bir banka hesabında biriktirin. Bir sonraki aşamaya geçmek için bazı göstergeler vardır. Bunları biraz daha pişirip proje olarak yapmaya çalışın. kurulumlara ve müşteri ziyaretlerine dahi gönderebilirler. Zaman geçtikçe firmadaki kıdeminiz artar. Evde bilgisayar başında geçireceğiniz zamanı iyi değerlendirmek için çeşitli yeni teknolojileri veya birbirine zıt teknolojileri denemeniz ve görmeniz gerekiyor. Yada bu tür bir projeyi siz başlatın.com/ Daha pek çok blog bulabilirsiniz ve sizin sektörünüze göre bunları çoğaltmak mümkün. Özetlersek     Yeni bir projeye başlayan firmaya girin Ücret önemli değil Kalın çizgisiz bir defter edinin. Sourceforge. Bunun için bir plan yapın. Codeplex bu tür projeleri bulabileceğiniz yada başlatabileceğiniz tonla siteden ikisi. Almak istediğiniz şeyler için hedefler koyup parayı bu şekilde kullanın. Genel bir bilgi açısından yazdığım şu yazıyı okuyabilirsiniz (bitiremediğim bir yazı). Sağlayacağınız deneyim paha biçilemez olacaktır. Aileniz ile yaşadığınızı ve gelirinizin kısıtlı olduğunu varsayarak önemli bir tavsiye vermek istiyorum. Açık Kaynak projelere katılıp kendinizi gösterin. Bir sonraki aşama Kıdemli Yazılım Uzmanlığıdır. yeni gelenlere sistemi öğretmeniz istenir. yönetilir öğrenin. Belli modüllerin tüm sorumluluğunu size verirler. Nasıl kurulur. Bu projeleri özgeçmişinize de yazın. Firmada imkan bulamadığınız programları yada rakip firmanın ürünlerini evde kurarak denemek size farklı bakış açıları katacaktır. örneğin bir haftayı belli bir programa ayırın ve genel olarak neler yaptığını öğrenmeye çalışın.Blogdan Seçmeler 110  Tekno Seyir http://www. En güzeli firmada geliştirdiğiniz ürünü birde açık kaynak olarak geliştirmek olur :-). Firma içinde çalışma imkanı bulamadığınız teknolojileri veya dilleri bu şekilde çalışıp öğrenebilirsiniz.

Eski firmanızla ilişkilerinizi iyi tutmanız size ilerde iyi referans verecekleri garantisini sağlayabilir.25. kullandığınız teknolojiler açık seçik yazmalıdır. 3. görev aldığınız projeler. herkesin teknik bilgileri bilmediği bir ortamdasınız. Referans mektubunda firmaya giriş ve çıkış tarihleri. Bir önceki aşamanın sonlarında öğrendiğiniz insan ilişkileri sizin için bir temel olacaktır. %30 insan ilişkilerinin analizi ile geçecek bir dönem. Yapacağınız işleri anlamak için Anyazu hakkında yazdığım yazıyı bir okuyun. planlı harcama yapın Bir sonraki aşama için göstergeleri iyi takip edin Yukarıda anlattıklarım ilk 4 yada 5 yılınızı alacaktır. Uzun bir öğrenme devresi ve %70 kod yazımı. Bu yüzden firmanızdan ayrılırken tüm kapıları kapatmayın ve muhakkak referans mektubu alın. Burada geliştirmeniz gereken yeteneğiniz dinleme ve anlamadır. başardığınız işler. Aynı konuyu farklı ağızlardan farklı cümleler kullanarak duyarsınız.     Yazılım ekibindeki yeni kişiler Pazarlama Ekibi Müşteriler Yönetim Herkesin farklı dil konuştuğu. Çalıştığınız firma size yükselme fırsatı vermiyorsa başka bir iş arayışı içine girebilirsiniz.111 Blogdan Seçmeler       Açık kaynak projelere katılın/başlatın Okunacak kitapları edinin ve blogları takip edin İngilizce öğrenin (eğer bilmiyorsanız) İyi bir bilgisayar alın Maaşınızı çar çur etmeyin. İlişki kurmanız gereken organizasyonlara bir bakalım. yaptığınız işin vasfı. Ürettiğiniz dökümanları başkalarının okumasını sağlayarak ne anladıklarını test edin. Bu arada özgeçmişinizi sürekli yenileyin ve yaptığınız işleri sıralayın. Hem sizin kelime hazneniz genişler hemde kiminle nasıl konuşacağınızı öğrenmeye başlarsınız.2 Kıdemli Yazılım Uzmanı Maaşınıza zam istemeniz doğaldır ama fazla uçmayın. Mümkünse hem İngilizce hem de Türkçe referans mektubu isteyin. .

Sizi en fazla birileri ile tanıştıran kişi “sosyal simsar” dır. Böylece neyi ne zaman ve ne kadar süre ile okuyacağınızı bilirsiniz. artık zaten eskisi gibi de zamanım olmuyordu yapmaya ve Aikido ve Judoyu eledim. salıları da tırmanışa gidiyordum. perşembeleri grubumla çalıyor.projectmanagement. Gitar çalmak ve Scuba Dalışı geriye kalan tek hobilerim. Yada http://www. Sosyal . Team Software Process. Tabii eskisi kadar zaman ayıramayabilirsiniz. bu doğal. ISO ve IEEE standartlarını inceleyerek bu konularda bilgi edinebilirsiniz. Bu kitap genel proje yönetimi ile ilgili bir yayındır ve içinde yazılım alanında da kullanılabilecek pek çok bilgi mevcut. CMMI. iş bittiğinde de plan ile gerçek geçen zamanı karşılaştırmanız ve dersler çıkarmanız gerek.net. CMMI hakkında kaynakları bulup okuyun. grubumda iki haftada bir ancak toplanıyor. Bir Yüksek Lisans programına da katılabilirsiniz.Blogdan Seçmeler 112 Stres ve risk yönetimi konusunda da deneyimlerinizi arttırmanız gerekiyor. Mythical Man Month. IEEE hakkında genel bilgilendirme için yazdığım yazı işinize yarayabilir. Ayrıca zamanınızı iyi kullanabilmek için yaptığınız her işin ne kadar zaman alacağını planlayıp. Birileri ile tanıştırıldığınızda kimin tarafından tanıştırıldığınızı not edin. İnsan ilişkilerini anlatan psikoloji kitapları da işinize yarayabilir. Çalıştığınız firma size bu kursu almak için yardım sağlamıyorsa hafta sonlarını kullanarak ve cebinizden ödeyerek gitmenizi tavsiye ederim (bir önceki aşamadan biriktirdiğiniz parayı kullanın). sevdiklerinize veya hobilerinize zaman ayırın. Geleneksel proje yönetimi metodları dışında Agile Project Management with Scrum isimli kitabı öneririm. En azından MS Project nasıl kullanılır öğrenin veya bir kursa giderek temel proje yönetimi hakkında bilgi edinin.au sitesine üye olarak son PMBoK kitabını okuyabilirsiniz. Özel hayatınızdan hiç bahsetmedim ama psikolojik ve mental sağlığınız için gerekli bir unsur. Salı tırmanışları kendiliğinden bitti. eğer yarım zamanlı bir program bulursanız ve yeterli paraya sahipseniz veya firma sizi destekliyorsa kesinlikle tavsiye ederim. Linkteki biraz eski ama işnize yarar. Ailenize. En hoşuma gideni ürün geliştirenler için üretilmiş bu döküman. Software Engineering Institute'ün sitesinde CMMI hakkında okuyacak pek çok döküman mevcut. Kara defterinize ilişki kurduğunuz insanları ve özelliklerini not edin. SPICE. Okunacak kitaplar Peopleware. Okunacak çok fazla materyal olduğu için okuma saatlerini planlamanızı öneririm. Böylece ileride size verilen görevler için ürettiğiniz tahmini zaman çizelgeleri daha gerçekçi hale gelecektir. Ben hem Aikido hem Judo yapıyor. Project Management Body of Knowledge (PMBoK) isimli kitabı internetten indirin ve okuyun. ISO. Temel kursu bitirince ileri seviye kursunu da alın ve öğrendiklerinizi harfiyen uygulamaya çalışın. Böylece geleceğim ile ilgili işlere (ekmek parası kazandığımız işlere) daha fazla zaman ayırabildim. Bir gün çok fazla hobim olduğuna karar verdim.

İşleri size vermeseler bile istekli olduğunuzu göstermek için iyi bir fırsattır. notlar alın. Aldığınız kursları ve planlama ile ilgili yaptığınız işlerdeki başarınızı referans gösterin. Çevrenizi geliştirmek için firma dışı seminerlere ve toplantılara katılın. Raporu aynı anda bir kaç üst düzey yöneticiye gönderin. Kitaplarından What Is Total Quality Control? ve Guide to Quality Control tavsiye edeceklerim arasında. Yöneticiler bu durumda iki şekilde . Takım elbise ve gravat ile kod yazmak zordur. Yapacağınız tavsiyeleri yazılı ve rakamlara dayalı olarak rapor halinde verin. ürün CDlerini isteyin. veya gezi düzenleyebilirsiniz. firmalardan kontak kuracağınız kişilerin kartlarını almaya çalışın. Eğer yönetimin size olan güveni belli bir seviyeye gelmiş ise eninde sonunda bu işleri almaya başlarsınız. Özel günlerde kart göndermek yada bir e-posta atmak ta çok zor değil. Sosyal simsarları iyi belirleyin ve ilişkilerinizi daima sağlam tutun. Bunun için adres defterinizi sürekli güncel tutmanız gerekiyor. Firmanın yeni alacağı projeleri veya işleri takip edin ve yönetici seviyesinde küçük işler almak için istekte bulunun. Dış görünüşünüze önem verin. Kendinize bir grup oluşturup bir mangal partisi. Ortaya çıkan sonuçları projede uygulayın ve yararlarını test edin. LAN partisi (oyun oynamak için). İş dışında yapılan aktiviteler size farklı iş imkanları veya fırsatlar sunabilir. Yaptığınız işlerde kaliteyi nasıl ölçebilir ve nasıl yükseltirsiniz araştırın. Özgeçmişinizi mümkün olduğu kadar çok firmaya gönderin ve 3 ayda bir de yenisini göndermeyi unutmayın. Kıdemli Yazılım Uzmanı olduğunuz için yapacağınız tavsiyelerin dinlenme oranı yüksek olacaktır. Firma dışı aktiviteler ile ilişkilerinizi güçlendirin. Maliyeti düşüren bir unsur varsa vurgulayarak belirtin. Toplam Kalite Yönetimi konusunda bir kaç kitap edinip okuyun. Ben Outlook kullanıyorum ve tüm kontaklarım burada kayıtlı. Örneğin doğru bir Değişiklik ve İstek yönetimi sistemi ile üretkenliğin %65 artacağını ve isteklerin eskiye oranla %98 daha iyi yönetileceğini basit hesaplamalar ile gösterin. Değişiklik ve İstek yönetimi konularında da bilgilenmeye ve firma içinde bir sistem oluşturmaya çalışın (eğer yoksa veya yeterli değilse). En sona bir maliyet/yarar analizi koyun ve firmaya sağlayacağı yararlardan bahsedin.113 Blogdan Seçmeler simsarlar çevrenizi geliştirmek için çok işinize yarar. Rahat edeceğiniz ve firma içinde kabul edilebilir bir dış görünüşü benimseyin ve stilinizi oluşturun. Çalıştığınız firmadan kartvizit isteyerek her gittiğiniz yerde dağıtın. Bu yöntemleri kara deftere not edin. Ne kadar fazla insanla tanışırsanız sizin için o kadar iyi çünkü firma içinde yeteri kadar farklı psikolojide insana rastlayamazsınız. Ishikawa en iyi TQM yazarlarından biri ve Japonya'nın kalkınma planlarının arkasındaki isim.

Baskı altında çalışmak ve stres yönetimi deneyimi. vizyonu dar bir firmada olduğunuzu ve ilerleyemeyeceğinizi düşünüyorsanız yeni bir iş arama zamanı gelmiş demektir. İnsan ilişkilerini geliştirmek ve dinlemeyi öğrenmek. Gerisi size ve yeteneklerinize kalmış. Enterprise Risk Management isimli kitabı tavsiye edebilirim. Kesinlikle aynı maaşa yada aynı kıdeme sahip başka bir işe geçmeyin. Gönderdiğiniz rapora kızmış veya hakarete uğramış gibi bile düşünebilirler. Genelde küçük fakat çok iyi bir fikir ile yola çıkarak ürüne dönüştürmeyi ve milyonlara satmayı hedeflemiş bir kişi tarafından en az finansal destek ile kurulan firmalara ecnebilerin verdiği isim. O zaman fikirler sanki onlarınmış gibi empoze edip sonuçlara kendilerinin varmasını sağlamanız gerekir. problemleri önceden görebilme yeteneğinizi geliştirir. Çünkü yönetimi bir bela olacaktır. . Eğer sonu olmayan. Eğer ilerlemeye açık ve alttan gelen tavsiyeleri değerlendirebilecek kadar kendileri ile barışıksalar raporunuz iyi ellerde demektir. İşte birdenbire CEO oldunuz :-). geniş kapsamlı bir rapor hazırlayıp sunabilirsiniz. Hiç bir yöntem işe yaramıyorsa ayrılıp kendi firmanızı kurun ve o fikirleri hayata geçirmeye bakın. Fakat üstünüzdeki yönetici her şeyin en iyisini ben bilirim tarzında burnu havada birisiyse farklı bir yöntem izlemek gerekir. Bunun için yukarıda bahsettiğim kursları muhakkak alın ve işyerinde de uygulayın. Raporunuz kağıtta yazılı olmaz belki ve başkası sahiplenebilir ama bu arada sizede bir yöneticilik görevi düşebilir. Personal Software Process ve Team Software Process kitaplarında anlatılan araçları uygulamak planlama konusunda gelişmenizi sağlar.26 ISVler İçin 25 Kural ISV de ne yahu diyenler için hemen açıklayayım Independent Software Vendor yani Bağımsız Yazılım Firması. Benim söyleyeceklerim bu kadar. Yönetici olabilmek için eğitim şart. 3. Ancak kıdem ve maaş daha yüksek olduğunda atlama yapın. Eski firmanızda kalıp bildiğiniz işe devam etmek sizin için daha iyi olacaktır. İlk başlarda diğerleri için ürkütücü olsa da zaman içinde firma tarafından da benimsenecek fikirler ve projeler ile firmanın vizyonunu genişletebilir ve kendinize yöneticilik pozisyonu imkanı yaratabilirsiniz. Bu tür bir projeye girmeyi ve yönetici olarak bu işi yapabileceğinizi düşünüyorsanız. Kolay gelsin ve iyi seneler. risk yönetimi ve stres yönetimi konularında deneyim kazanmak çok önemlidir. Zaman alabilir ama büyük düşünmeden hedeflere ulaşılmıyor değil mi? Vizyonu dar olan firmaya vizyonunu genişletmek için yardımda da bulunabilirsiniz. Genelde ufak firmalar büyümekten ve büyük projelere girmekten korkarlar. Kıdeminizin ve maaşınızın yükseleceği bir iş aramaya başlamanızı tavsiye ederim. Biraz yüzeysel bir anlatım oldu ama sanırım temel bazı bilgileri ve yolları göstermeye yeter.Blogdan Seçmeler 114 davranırlar.

O zaman İngilizce aldım ismi çünkü ilk başta sadece ingilizce blog yapmayı düşünmüştüm. Benim çok hoşuma gitti bu listede yer alan kurallar ve Vezir'de yazdıklarımla örtüşüyor. Bir alan adı alın: Ben Google ve MSN Spaces bloglarımdan sonra alan adı alarak blog hayatıma devam etmek istedim. Secret Geek isimli blogunda kendi ürünleri Time Snapper'ın fikir aşamasından nasıl ürün aşamasına geldiğini ve bu yolda edindikleri deneyimleri ISV'ler için 25 kural altında açıklıyor. Leon ilerde bu kuralların açıklamalarını bir kitap haline getireceğinden de bahsediyor fakat yeni doğan kızına daha fazla vakit ayıracak sanırım. Bir İçerik Yönetim Sistemi ile de gidebilirsiniz fakat statik sayfalar ile de gerekli mesajı vermek ve sade olmak mümkün. Çok fazla karışık bir site yaparsanız müşteriler korkup kaçabilir. Mümkün olduğu kadar sade yapmaya özen gösterin.115 Blogdan Seçmeler Leon Bambrick. 2. Kuralları ve kendi açıklamalarımı yazayım dedim. Sadece ürün için bir isim alın ve firma ismini düşünmeyin. Ayrıca Scott Hanselman podcast'inde de Leon'a söz veriyor . Hem daha ucuza gelir hemde müşterileriniz için kaliteli bir hizmet sağlamış olursunuz. Ürün hakkında kısa bilgi. Fakat forumları başıboş bırakmayın ve 24 saat kontrol altında olmasını sağlayın. İyi bir hosting firması bulun: Kendi sunucularınızı evinizde barındırıyorsanız bir sürü teknik işle de uğraşacaksınız demektir. 5. Kullanılabilir bir web sitesi tasarımlayın: Herhalde bu konu hakkında fazla yazmaya gerek yok. Belki birilerinin işine yarar. Böylece siteyi ziyaret eden kişiler hakkında genel bilgi alabilirsiniz. . Sitenizin trafiğini kontrol edin: Site trafiğini Google Analytics ile ücretsiz kontrol edebilirsiniz. ürünün tüm özelliklerini anlatan yardım bölümü. Sitenizde forumlar açın. Mehmet Doğan'ın Altı Üstü Tasarım adlı blogunda yazdığı ipuçlarına dikkat edin. forum ve blog kısmı vb gibi. ekran resimleri. 4. Google'da bu kelimeleri satın alın ve aramalarda ilk sizin sitenizin çıkmasını sağlayın. Ürününüzün ismine uyacak bir alan adı alın. Blogum belki bir ürün değil ama profesyonel düşüncenin bir ürünü. Bir yazılım ürünü alırken önce firmanın sitesinden gerekli bilgileri almaya çalışırsınız. 1. 6. Çünkü daha profesyonel ve kayda değer işlere imza atmak istiyordum. Temel web sitesi içeriği: Sitenizde olması gereken temel bölümler. geri bildirimleri destekleyin: Forumlar müşterilerin birbirlerine yardım ettiği bir ortamdır. 3. sipariş bölümü. Bu harcayacağınız zamanı bir hosting firmasından alacağınız hizmet ile geri kazanabilirsiniz.

10. siparis@alanadı.com vb gibi akılda kalacak e-posta adreslerini düzenleyin ve sıkça kontrol edin. 16. 9. Alan adı için e-posta düzenleyin: Alan adını aldıktan sonra e-postaları da düzenleyin.com. Online alışveriş hesabı alın: PayPal gibi bir sistem ile online alış veriş hesabı alın.Blogdan Seçmeler 116 7. Bu PAD dosyası indirme siteleri tarafından kontrol edilir ve yeni sürümleri bu şekilde otomatik olarak dağıtabilirsiniz. Bir PAD (portable application description) dosyası hazırlayın: Bir XML dosyası ve ürün hakkında bazı bilgileri tutar ve sitenizin root dizininde bulunması gerekiyor. 14. destek@alanadı. Sitenizden ödeme yapılmasına izin verin: PayPal ödeme sistemini sitenize entegre ederek sitenizden direk ürünün satılması için bir bölüm yapın. Ürünün satılmasını kolaylaştırmak ve dünya üzerinde herkesin almasını kolaylaştırmak için atacağınız en önemli adımlardan bir tanesi. SSS listeleri düzenleyin: Sıkça Sorulan Sorular bölümünü güncel tutun ve forumlar ile besleyin. 13. Yeni sürümler çıktığında progam otomatik olarak indirilmeli ve güncellenmelidir. Lisans aktivasyonu için bir web servisi kurun: Bu web servisi her lisansın takibini kolaylaştıracaktır.padgen. Örneğin admin@alanadı. Uygun bir son kullanıcı lisans anlaşması düzenleyin (iki tanede olabilir): Örütbağında bulabileceğiniz pek çok örnek var. En iyi ekran resimlerini kullanın: Dış görünüş ilk başta müşterileri etkileyecek unsur olduğu için alacağınız en iyi ekran resimlerini almaya çalışın. Genel indirme sitelerine kayıt olun: Ürününüz yeni sürüm çıkardığında otomatik olarak indirme sitelerinde güncellenmesini sağlayın. Böylece belli sorular için hemen cevap bulabilirsiniz. 17. Ürününüz için uygun hale getirmek bir avukatın yardımı ile olabilir. . 11. Yasadışı kullanımın da önüne bir miktar geçebilir. 8. Örneğin Vista ile ekran resimlerini güncelleyin. Otomatik güncelleme fonksiyonu sunun: Otomatik güncelleme en çok aranan özelliklerden biridir. PAD dosyasını üretmek için http://www.com. Ücretsiz ve profesyonel olarak iki ayrı sürüm çıkarın: Ürünün daha da fazla yayılması için bir ücretsiz sürüm çıkarın ve profesyonel sürümden tamamen ayrı olarak yayınlayın. 15. 12.org/ adresindeki aracı kullanabilirsiniz.

27 Sürüm Yönetimi Bu yazımda Sürüm Yönetiminin büyük bir firmada yada devlet organizasyonunda nasıl yönetileceğini ele alacağım. Assemblileri obfuscate edin: Ürünün kodunu obfuscate ederek Reflector gibi araçlardan saklayabilirsiniz. Konuyu iki basamakta ele alacak olursak: 1. kullanılabilir. 3. İyi bir kurulum hazırlayın: Müşterilerin ürün ile ilk karşılaşmaları kurulum ile olmaktadır ve iyi bir kurulum müşterinin ürün hakkında iyi izlenimlere sahip olmasına neden olur. Hepsini tekrar yapın: Tüm bu işlemleri tekrar tekrar gözden geçirin ve bu süreçteki işleri iyileştirmek için neler yapabilirsiniz kontrol edin ve uygulayın. 21. Sürüm yönetimi bir ürünün evrimsel gelişimi için muhakkak ele alınması ve profesyonelce yönetilmesi gereken bir konudur. Zaman ve kaynaklarınızı destek ve geri bildirimler ile ilgilenmek için ayarlayın: Destek müşterilerin her zaman istediği bir şey ve geri bildirimler de ürününüze fikir olarak katkıda bulunabilir. Lisansların yönetileceği bir otomasyon sistemi yapın: Yukarıdaki web servisi ile bir veritabanında tutulacak lisanslar size müşterileriniz ve kurulu çalışan ürünleriniz hakkında bilgi toplayabilirsiniz. 25. Cruise Control. İnşa ve sürüm işlemlerini otomatize edin: Ünite testi. inşa.117 Blogdan Seçmeler 18. 22. Cafcaflı. Üretilen belgelerin ve yazışmaların takibi Ürünün geçirdiği evrelerin ve dallanmaların takibi . 20. kurulum hazırlama gibi işlemleri otomatize ederek zamandan kazanabilirsiniz. yardımcı: Ürün arayüzlerinde kullanılan teknoloji kullanıcıyı yormamalı. ürünün kullanılabilirliği müşteriye ürün özelliklerini bulup kullanmak açısından yardımcı bir ürün olmalı. 19. ve ürünün nasıl dağıtılacağını planlayın ve işleme koyun. Ürünün ilk analizlerinden itibaren proje ile ilgili ürünler ortaya çıkmaya başlar ve kod yazılmaya başladıktan sonra yönetim daha da karmaşık hale gelir. Subversion. 23. 2. Promasyon stratejinizi planlayın ve işleme koyun: Nasıl reklam vereceğinizi. NUnit gibi ürünlerden bahsetmeme gerek yok heralde. 24. Kesinlikle zaman ve kaynak ayırılması gerekir.

Diğer iç birimlerin yazdığı modüller. Adım 2. 3. 2. üçüncü parti sistemler. Bu birim Test birimleri ile bağlantılı çalışır ve testlerde onaylanmış olan uygulamaları sahada kullanmak üzere kurmak için gerekli işleri organize eder. Sürüm Yönetimi isteğinizi inceleyip istenen tarihte olup olamayacağına ve diğer etkilenen uygulamaların durumu ile etkilenme derecelerini araştırır. Bu organize sırasında aşağıdaki birimlerden gerekli kişiler belirlenir: 1. donanım bağımlılıkları gibi pek çok sistemin ahenk içinde çalışacağı ve yeni sürüm verdiğinizde bu bağımlılıkları kırmayacak şekilde sürüm vermeniz gerekir. Teknik Lider olarak yapacağınız iş sürüm verme isteğinizi bir "Değişiklik İstek Formu" düzenleyerek Sürüm Yönetimi ekibine bildirmektir. . Sonuçta bir değişiklik numarası verilir ve onaylanır. Ürünün son halini paketleyip bir kurulum rehberi ile beraber kararlaştırılan bir ağ dizinine kopyalayacaksınız. özel sektör ile olan bağlantılar. başka devlet organizasyonları ile olan bağlantılar. Bu aşamadan sonra Teknik Lider olarak test ekibinin bulacağı hataları gidermek ve ürünü. Bu aşamadan sonra artık Teknik Liderin işi bitmiş oluyor.Blogdan Seçmeler 118 Olarak özetleyebiliriz. uygulama erişilemez olacaktır. Öncelikle sürüm yönetimi konusunda bir birimin gerekliliği söz konusu. Proje Yöneticisi (ürünü geliştiren ekibin proje lideri) Teknik Lider (ürünü geliştiren ekibin teknik lideri) İş Lideri (ürünü kullanacak ekibin lideri) Saha Kurulum Müfettişi (Kurulumun doğru gerçekleştiğini onaylayacak ve ürünü kullanan kişilerden seçilecek bir kişi. Eğer ürün coğrafik olarak farklı yerlere kurulacaksa her ofisden bir kişi. Büyük bir firmada yada devlet organizasyonunda yazılan ürünlerin pek çok bağımlılığı vardır. Sürümün verileceği hafta sonu. Test ekibinin onayladığı ve sürüm zamanı belirlenen uygulamalar listelenir. Kurulum Sorumlusu (ürünün kuracak olan kişi) Hiyerarşik bir yapıda işlerin nasıl yürüdüğüne bakalım. kullanılan işletim sistemi ve bağımlılıkları. Adım 1. Teknik Lider ayrıca İş Liderini uyararak sürümün yapılacağı tarihi bildirir ve mesai yapacak çalışanların bilgilendirilmesini sağlar. 4. Ben üretilen ürünün sürüm yönetimi ile ilgili yazacağım. Test onay belgelerinde Proje Yöneticisi ve Teknik Lider hakkında bilgi vardır. Sürüm zamanı yaklaştıkça sürümü yönetecek kişi (Sürüm Yönetimi ekibinden bir kişi) hangi uygulamaların sürüm vereceğini belirler.) 5. yabancı devletlerin sistemleri ile olan veri alışverişi. kurulum tarihine kadar hazır etmek ile yükümlüsünüz.

119

Blogdan Seçmeler

Ayrıca Değişiklik İsteği Formunda da bu bilgi mevcuttur. Bu bilgi uygulamanın karşısına yazılır. Bu işlem için MS Project yada bir Excel dosyası kullanılabilir. Örnek olarak bu Excel belgesine bakabilirsiniz. Sürüm Yöneticisi test onay belgelerini inceler ve testlerden geçememiş uygulamaları geri çevirir. Değişiklik İstek Formlarını ilgili kişilere geri göndererek sürüm tarihini güncellemesini ister. Testlerden geçen uygulamalar listede güncellenir. Adım 3. Sürüm Yöneticisi yapılacak her işi adım adım belirleyebilmek için tüm yetkili kişilerin katılacağı bir toplantı düzenler. Bu toplantıya sürüm verecek tüm uygulamaların sorumlu kişileri ile etkilenecek fakat sürüm vermeyecek tüm uygulamaların sorumluları katılır. Sürümün hafta sonuna denk gelmesi ve kimsenin sistemleri kullanmadığı bir anda yapılması önemlidir. Zaten sistemi kullanan kullnıcılar önceden uyarılmıştır. Yapılacak işlerin listelendiği belgeye buradan bakabilirsiniz. Bu toplantılar sürüm tarihi yaklaştıkça sık aralıkta tekrarlanır. Adım 4. Sürüm yöneticisi görev listesindeki her görevin kimin yapacağını ve kontak telefonlarını bir liste halinde yayınlar. Herkes bu listeye sahip olmalıdır ve sürüm günü bolca kullanılacaktır. Bizim burada yaptığımız bir uygulama da bir telekonferans hattı organize etmektir. Herkes bu konferans hattını arar ve 24 saat hatta kalır. Böylece olan olaylardan herkes haberdar olur. Eğer sürüm başka şehirlerdeki ofisleri de etkiliyorsa bu tür bir haberleşme işleri çok daha kolaylaştırmaktadır. Adım 5. Mesai yapacak olan kişiler belirlenir ve görev listesinden ne zaman ofiste olacaklarını kontrol etmeleri istenir. Ayrıca mesai için izin alınması gerekiyorsa bu izinler önceden alınır. Bina girişi için özel bir güvenlik durumu söz konusu ise güvenlik birimi bu olaydan haberdar edilir. Adım 6. Sürüm Yöneticisi, Geriye Dönüş işlemlerini de organize eder. Eğer yeni sürümler sahaya kurulduktan sonra testler sırasında bir hata çıkarsa sistem eski haline geri döndürülür. Kurulum Yönetimi ekibi sürüm günü ortaya çıkacak hatalara hazırlıklı olmak için her ürünün mevcut sürümünü hazırda bulundurur. Sürüm günü çıkan hatalardan dolayı kurulamayan yeni sürüm uygulamaların proje müdürleri durumdan haberdar edilir. Saha Kurulum Testlerinde çıkan tüm hatalar ekran resimleri ile beraber kaydedilir ve bir numara verilir. Eğer sürüm günü çözülemeyecek bir hata ile karşılaşılırsa o sürüm iptal edilir ve eski sürüm kurularak sistemin devamlılığı sağlanır. Tüm bu adımlar sürüm gününün sancısız geçmesi için tekrar tekrar gözden geçirilir ve mümkün olduğunca görevler en ayrıntılı biçimde yazılır. Sürüm günü uzun ve yorucu bir gün olacağından yiyecek ve içecek temini için önceden hazırlık yapın.

Blogdan Seçmeler

120

Sürüm günü her işlem başarı ile sonuçlanırsa gelecek 2 hafta için uygulamalar göz altında tutulur ve çıkacak hatalar gözden geçirilir. 3.28 Firmanızı Korumak Emre Bey'in attığı bir yorum üzerine bu yazıyı yazıyorum. Emre Bey'in derdi günümüzde çok yaygın olan veri ve ürün hırsızlığı ile ilgili. Yasaların yetersiz kaldığı yada uygulanmasının mümkün olmadığı durumlarda (finansal yetersizliklerden dolayı) ürün ve kaynak kodunu korumak için neler yapabilirsiniz? Yazılım firmanızı ve ürününüzü meraklı yazılım uzmanları ve hırsızlara karşı nasıl koruyacaksınız? Finansal olarak zaten küçük bir işletmesiniz ve dava açıp avukat masrafları ile uğraşmak ta istemiyorsunuz. Zaman ve nakit kaybını en aza indirerek ürününüzü ve firmanızın geleceğini korumak istiyorsunuz. Teknik açıdan ne yaparsanız yapın elbet bir delik bulunacaktır. Ya sosyal mühendislik yolu ile yada sistemdeki bir açık yüzünden gözünüzün nuru ürününüz dışarıya sızacaktır. Gene de teknik açıdan yapılabilecek pek çok şey var. Ne kadar çok kapıyı kapatırsak o kadar sızıntıyı önlemiş oluruz. Öte yandan yazılımcıların esnekliğini kısıtlamış oluyorsunuz ve bir yazılımıc için pek iyi bir durum değil. Yapılacak teknik kısıtlamalara bir bakalım. Uyarı: Bu yazılanları uygularsanız firmanızda Darth Wader olarak adınız çıkabilir. 1- Tüm disket ve CD sürücüleri kaldırın Firma içinde yazılım amaçlı kullanılan ve yazılımın bulunduğu ağ dizinlerine erişebilecek her bilgisayarın disket ve CD sürücülerini kaldırın. Böylece bir kapıyı kapamış oluyoruz. Benim şu an çalıştığım departmanda CD ve disket sürücüleri bilgisayarların üzerinde fakat işletim sisteminden hiç birine erişim yok. BIOS seviyesinde kapatılmışlar. Bazı bilgisayar kasaları vidaları sökülüp açıldığında sistem yöneticisine bildiri gönderecek şekilde tasarım edilmiştir. Bu kasaları kullanırsanız bir miktar daha koruma sağlamış olursunuz. 2- USB portlarını kapatın USB portlarına takılacak herhangi bir araç kodun dışarıya sızmasına neden olabilir. USB portları muhakkak kapatılmalıdır. Ayrıca varsa infrared portaları da kapatılmalıdır. 3- BIOS şifrelenmeli

121

Blogdan Seçmeler

BIOS sistem yöneticisi tarafından bir şifre ile korunmalıdır. Böylece kimse BIOS üzerinden USB portlarını açamaz yada IDE sürücülerini etkin hale getiremez. Kasaları açıp pilleri çıkartınca pek geçerli bir koruma olmuyor ama haftalık kontroller ile denetlenebilir. 4- Tek bir sistem yöneticisi Genel olarak bir yazılım evinde herkes sistem yöneticisi olarak tanımlanır ki herkes istediği her yere ulaşabilsin. Fakat çok yanlış bir uygulama. Ben kendi bilgisayarlarımda bile sistem yöneticisi olarak iş yapmıyorum. Biraz daha profesyonel olmak için bir domain kurun ve tek bir sistem yöneticisi atayarak kullanıcıları yönetin. Verilecek hakları ve erişimleri sıkı denetleyin. 5- Security Policy ayarları Windows üzerindeki Security Policy ayarları ile kullanıcıların uygulama kurma ve kaldırma haklarını kapatın. Böylece bir şekilde ağınıza bir uygulama girse dahi kurulumu çok zor olacaktır. Domain kurarak bu ayarları domain bazında yapın. 6- Hiç kimse lokal admin olmamalı Eğer COM+ geliştiriyorsanız olabilir tabii ama hiç kimse kullandığı bilgisayarda lokal admin olarak iş yapmamalı. 7- İnternet bağlantısı olmamalı İnternet verimliliği düşüren en büyük etkenlerden biri bence. Ben kod yazarken ne Outlook nede MSN Live Messenger açıktır. Zaten gerek te yok çünkü en son sürüm MSDN kurulu makinemde. 8- Domain kurun ve kullanıcıları iyi yönetin Her kullanıcıyı admin olarak tanımlamaktansa bir domain kurup kullanıcılara verilecek hakları belirleyin. İstisnalar olacaksa neden olacağını ve nasıl yönetileceğini de belirleyin. 9- Ağınıza bağlanacak makineleri takip edin Linux için www.arpalert.org adresinde ArpAlert diye bir ürün mevcut. Bu ürün ile ağınıza bağlı makinelerin MAC adreslerini bir veritabanında tutuyorsunuz ve kayıtlı olmayan bir makine bağlandığında size haber veriyor. Günümüz MAC Spoof yöntemleri ile biraz geçersiz bir ürün oluyor ama hiç yoktan iyidir. Kablosuz ağlar içinde iyi sayılabilecek bir yöntem. 10- Kod deponuzu koruyun

Kişilerin güvenilirliği çok değişken de olabilir. Bu anlaşma kişilerin çalıştıkları ürün . Gelecek vaad etmeyen bir firmada hiç kimse durmak istemez. Haysiyetli ve helal süt emmiş yazılım uzmanları ile çalışırsanız riskiniz daha da azalacaktır. Eğer firma sahibi beni hırsız olarak görüyorsa neden çalışayım ki.Log tutun ve logları inceleyin Herkes log tutar ama bunları inceleyen çok azdır. Eğer siz firma sahibi olarak çalışanlarınızın geleceğini garanti edebilirseniz çalışanlar da size sadık olacaktır. Kodu çalmak isteyen yazılımcı kodu yazıcıdan basabilir ve bir şekilde kodu dışarıya çıkarabilir. Her gün sonunda bir yedek alıp güvenli bir şekilde saklayın. Teknik açıdan ne kadar kısıtlama getirirseniz getirin bir açık elbet olacaktır. Böylece bir yazılım uzmanı kodları zipleyip e-posta ile göndermeye kalkarsa durdurulabilir. Çeşitli otomatik uyarı mekanizmaları kurup yapılan bazı işlemlerden anında haberdar olmaya bakın. Gizlilik anlaşması bu aşamada imdadımıza yetişebilir.. Kilit işlemler yapılırken muhakkak log tutun ve bunları gün sonunda inceleyin.Blogdan Seçmeler 122 Kod deponuz. Böylece çalışanlar kendilerini daha da fazla firmanın bir parçası olarak görürler. hangi ürün olursa olsun kesinlikle kilitli kapılar ardında olmalıdır. 12.. Sanırım teknik açıdan yapılacak şey çok fazla ve takibi ve teftişi için nakit ve vakit harcamanız gerekecek. Hani bu kadar yazdım ama ben bu tür bir firmada çalışmak istemezdim. Yedeğin bir kopyasını firma dışında bir yerde hatta farklı bir şehirde tutun. 11. Firma kültürünü ve sadakati misyon haline getirseniz dahi birileri mutlaka kodu çalmak için yeltenecektir. Bu kadar çok kısıtlama yazılım uzmanlarını da bunaltabilir.Güvenilir kişiler ile çalışın Bulması ve anlaması zor bir özellik. Deneme yanılma yolu ile bulacağınız bu kişiler firmanın kök ekibini oluşturabilir. 13.Dışarıya giden postaların kontrolü Firmanızın sunucularından çıkacak her türlü e-posta incelenmeli ve onaylanmalıdır. Örneğin bir kullanıcı tüm kod deposunu indirmeye kalkarsa arkasında muhakkak bir çapan oğlu vardır. Ayrıca kullanıcıların yaptığı işlemleri takip edip uygunsuz bir işlem gördüğünüzde soruşturma yapın. Sonuç Sadakat kişilerin karşılıklı güvenlerinin artması sonucu doğan bir unsurdur. Yapacağınız satışlar ile firmanıza sağlayacağınız gelir akışları ve akabinde bunun herkesin çabası ile olduğunu anlatacak toplantılar veya kutlamalar yapabilirsiniz.

Bu ağlar birbirinin hemen hemen aynısı. Öyle ki müşteriler yerlerde satılan eski sürüm yerine yeni sürüm için aşersinler. Firmada çalışan herkes istisnasız bu anlaşmaları imzalamadır. ürünün bir sonraki sürümünde ekleyeceğiniz özellikleri geliştirmektir. Arayüzlerde yapılacak yenilikler veya sistemde temelden yapılacak değişiklikler buna neden olabilir. Yapılan her işlem için log da tutabilirsiniz. Performans Testleri için birer ağ mevcut. Benim çalıştığım yerde Performans testlerine kadar olan tüm ağlar ve bilgisayarlar sanal. Örneğin A firmasından ayrılıp aynı tür ürün geliştiren B firmasına geçip çalışmamız engellenmek istenebilir. . Anlaşmayı imzalayan ve her işlem için log tutulduğunu bilen yazılım uzmanları kodu çalmaya yeltenmeyecektir (en azından ben öyle umuyorum). Yönetimi de çok kolay oluyor. Kullanıcı Kabul Testleri. Fonksiyon Testleri. Uygulanacak her türlü yaptırım. Bu hayatımda gördüğüm en rezil uygulama. Kod çalınırsa yada kaçak olarak yerlerde satılmaya başlarsa yapacağınız en mantıklı hareket. yazılım uzmanlarının çalışma şartlarını bozar. Bir temel "image" hazırlayıp her kurulumda bunu kullanabilirsiniz. Bazı anlaşmalarda ayrılan kişilerin rakip firmalarda çalışmasını önleyecek maddeler bulunur. Bu kaçınılmaz. Masraflı ama günümüzün Virtual PC imkanlarını düşünecek olursanız aslında uygulaması o kadar da maliyetli değil. Fakat domain olarak ayrılar. Ben kendi bildiğim işleri yapmak ve kariyerimde ilerlemek için tabii ki aynı işi yapan daha büyük bir firmaya geçicem. Bu iki anlaşma örneğini yakında blogumda vereceğim. En iyi çözüm bir gizlilik anlaşması imzalatmak ve güvenilir kişiler ile çalışmak. Karşılıklı güven ve sadakatin gelişmesi için sağlanacak ortamın yaratılması ve kişilerin özveri ile çalıştığı bir firmada bu tür yaptırımlara gerek kalmaması lazım. (bakınız Non-Disclosure Aggrement yada Confidentiality Aggreement). Aralarında fiziksel olarak bağlantı var fakat firewall bunları denetliyor. Kontrolün dozajını iyi ayarlayıp çalışanları tiksindirmeden bu işi halletmek gerekiyor.123 Blogdan Seçmeler hakkında dışarıda konuşmalarını ve herhangi bir şekilde kaynak kodunun dışarıya sızdırılması halinde yasal işlemlerin uygulanacağını açık seçik belirten bir anlaşmadır. Kodun kalitesini dahi düşürebilir. Evet masraflı ama pazarda kalabilmenin ve hırsızlarla mücadele etmenin başka bir yolu. Entegrasyon Testleri. Hatta her bir test seviyesi için birer ağ kurmak iyi olabilir. Örneğin benim çalıştığım departmanda Geliştirme. Zaten yasal bir dayanağı da yok. Diğer bir yöntem yazılım ve şirket genel ağlarını birbirinden fiziksel olarak ayırmak. İstisna yapmaya başlarsanız diğer çalışanlar bu durumdan rahatsız olabilir.

Yapılan işin kredisini kimin hakkıysa verin. disiplin ve entellektüel tembelliktir. yok yakalansam bile banane diyorsanız size ar damarı nakli öneriyoruz.Blogdan Seçmeler 124 3. sizinle beraber çalışanlara her zaman saygılı davranmak demektir. Dışarıdan tembellik yapıyor gibi görünürsünüz fakat beyniniz tam gücüyle çalışıyordur. tembellik yaptığınız anlarda bile bir problemi düşünmek ve farklı çözümler aramaktır. Ağırbaşlılık yaptığınız hataları kabullenme ve ders alma etkilenmesini yaratır. Hiç yakalanmayacağınızı düşünüyorsanız sizi Allaha havale ediyoruz. Örneğin evinde dağınık yaşayan bir kişinin yazdığı kod da dağınık olacaktır vb gibi. ahlaki seviyen. Entellektüel tembellik. Yazılımı üreten insanoğlu olduğuna göre kişisel karakterin yazılım üretme kabiliyetine doğrudan yansıması kaçınılmazdır. entellektüel dürüstlük. çevrenle ilişkilerin.29 Yazılım ve Kişilik Code Complete kitabından çok güzel bir bölümü ve benim yorumlarımı yazmak istedim. kendimizi geliştirmek için harcayacağımız zamanın değerini sanırım daha iyi anlayacağız. Örneğin Ahmet’in size yardım olması için yazdığı bir fonksiyonun tepesine kendi isminizi yazmanız ayıptır. dünyanın sonu gelmez merak etmeyin. Hayatını nasıl yaşadığın. Düşünün ki iyi bir bilgisayar için yatırım yapıyoruz ama kendimizi . Yazılım ve bilgisayar dünyasının her geçen yıl biraz daha ilerlediğini ve yeni teknolojilerin ve tekniklerin mantar gibi türediğini düşünürsek.  Süper yazılımcı olmanın Allah vergisi bir yetenek ile ilgisi yoktur. Yada birileri çıkıp ta bunu da buradan kopyalamışsın dediğinde yerin dibine girip rezil olmak daha iyi gelebilir veya hiç yakalanmayabilirsiniz de. yaratıcılık. davranış biçimlerin yaptığın işi doğrudan etkiler.  Kişisel karakteriniz yazılım üretmedeki kabiliyetinizi doğrudan etkiler. Ayrıca dışarıdan gelecek yardımları da ağırbaşlılık ile kabul eden kişi gene deneyimini ve yaptığı işin kalitesini yükseltecektir. Yada yaratıcılığınızı kullanarak üreteceğiniz bir iş fikrine çeşitli kullanım alanları bulmaktır. merak. Yaptığı hatalardan ders alan yazılım uzmanı bu hataları tekrar etmiyorsa yaptığı işin kalitesini yükseltmiş demektir. Aksine kendini adamak ve kişisel gelişme ile ilgisi vardır.  Bu karakterlerden yazılım alanında en işinize yarayacak olanlar ağırbaşlılık. Ya da blogumdan dümdüz kopyaladığınız bir yazıyı isim yada link vermeksizin forum sitenizde yayınlamanız ahlaksızlıktır. Entellektüel dürüstlük ise yaptığınız işte size gelen yardımlara hakettikleri saygıyı göstermek.

önce bir kodunu yazın sonra ünite testini de yazın ve size kazık atmayacak bir arkadaşınıza gösterin ve test ettirin. Değişime açık olmak her zaman iyidir. kaldırım fakültesi vs. Atalarımızın söylediği gibi bazı düşüncelerin pişmesi için üstüne bir gece uyumak gereklidir. Eğer at gözlükleri ile doğru bildiğiniz şeylere bağlıysanız ve değiştirmek için gelen yorumları kulak arkası ediyorsanız bu artık sizin yeni teknolojileri öğrenme ateşinizi söndüğüne işarettir. Öğrenilen yöntemlerin nasıl kullanılacağı ve teorinin pratiğe nasıl uygulanacağı düşünmeniz gereken tek şeydir. . kitaplar. Bunun yerine yaptıkları iş içerisinde tesadüfen buldukları yeni bilgilerle yetinirler. Test edilmiş ve onaylanmış bir düşünce artık bir ürün haline gelmiştir ve kullanıma hazırdır. Çok sağlam karakteriniz esnekliğe izin vermiyorsa sizin için tehlikeli olabilir. aile. kurs. Sezgilerinizi hemen ilan etmeden evvel. sağlam karakter ve altıncı his yarar sağladığı kadar zarar da verebilir. Bunun bir sonraki aşaması ise “bu yöntemi çok güzel kullandım. İşlenmemiş zekanın işleneceği yegane yer eğitim kurumudur.  Pek çok yazılımcı kendini geliştirmek için aktif olarak yeni bir bilgi yada teknik arayışı içine girmez. (evrenkent. Kimin belli bir kurs planı var? Önümüzdeki yıl için eğitim planlarınızı belirlediniz mi? Hangi kitapları alacağınızın veya hangi yeni teknolojileri öğrenmek için çalışacağınızın planını yaptınız mı? Yoksa önünüze ne pilav koyarlarsa yemek için elde kaşık bekliyor musunuz?  İşlenmemiş zeka.125 Blogdan Seçmeler geliştirmek adına bir yatırımda bulunmuyoruz.) Bilgiye açık ve aç olmak yeterlidir. Eğer zamanınızın küçük bir bölümünü yeni kitaplar veya teknikleri anlatan yayınları okumaya adarsanız bir kaç ay yada yılda kendinizi sürüden rahatça ayırt edebilirsiniz. Bu kabuğun dışına çıkmak ve yeni bilgi ve teknikler için arayışa girmek için vakit kaybetmeyin. Zeki olabilirsiniz fakat yöntem bilmiyorsanız aklınıza gelen fikirleri hayata geçirmek zor olabilir. Sezgileriniz ile hareket ederken unutmayın ki bir mayın tarlasında yürüyorsunuz. deneyim. Yani öğrenirken şu yaklaşımı ele alın “ben bunu nasıl hayatımda/işimde/ailemde kullanırım ki bana faydası olsun”. hayat. Yada bulunduğunuz ortamın monotonloğu ve kemikleşmiş işleme modeli sizi de etkilemiş demektir. acaba daha iyi ve verimli hale gelmesi için bir şeyler yapabilir miyim?” sorusunun sorulması ve akabinde süreç iyileştirmeye gidilmesidir. çevre. Yıllarca o sağlam karakterdeki doğru zannettiğiniz davranış biçimleri yanlış olabilir yada zaman içerisinde geçerliliğini kaybetmiş olabilir.

nasıl test yapıldığını. Code Complete kitabını her okuduğumda aklımda yeni fikirler beliriyor yada bir problemime çözüm buluyorum. yüksek kaliteli uygulama geliştirme araçları ile birleştirilerek yazılım süreçlerinde kullanılmalıdır. Metodun gerekliliklerini öğrenip uygulayın. Bir günlük tutup bu öğrendiklerinin ve öğrenmek istediklerinin bir seceresini tut. demek kaliteyi yakalamak için metodu doğru ve yerinde kullanmamız gerekiyor.Blogdan Seçmeler 126 Kendini yazılım uzmanı sanan pek çok kişi var ve senin bunlardan farkını ayırt etmek güç mü oluyor? Hem işveren hemde kendin için bu ayrımı yapmak güç oluyorsa artık bunun için bir şeyler yapmanın vakti geldi demektir. dökümantasyon ve sürüm yönetiminin kullanıldığı bir ortamınız mı var? Çalıştığınız yerdeki yazılım geliştirme metodunu iyice öğrenip. Yeni öğrendiğin teknikleri de bir şekilde iş hayatında kullanıp verim alabiliyorsan ne mutlu sana. Ayrıca metoda ne kadar sadık kalındığı ve tam olarak kullanılıp kullanılmadığı da bir etken olarak karşımıza çıkıyor. Yada bir üniversite ile anlaşıp yılda bir ders al konunla alakalı. . Çok geçmeden göreceksin ki sürüden ayrılmış ve daha yeşil otluklar için yelken açmışsın.30 Yazılım Sürecinde Kalite Yazılım mühendisliğinin yegane amacı yüksek kalitede bir uygulama üretmek olagelmiştir. Her gün belli bir kısım zamanı yeni bilgi ve teknolojileri öğrenmek için harcamalısın. Bu standartları bulup çıkarmak ve kendi işinde kullanmak yaptığın işin kalitesini yükseltir. Bu kitabı her kese tavsiye ederim. Kendi uyguladığın bu yöntemlerde süreç iyileştirmesine gidip zamanın gerekliliklerine göre değişimler yapmak daha da ilerlemeye neden olur. Yazılım sektöründe kullanılan ve yazılı olmayan standartlar vardır. Belli bir düzen yok mu? O zaman siz bir düzen getirin. Kalite yükseldikçe sana maaş artışı yada mevki yükselmesi olarak geri döner (dönmüyorsa firma değiştirmek şarttır). Bu durumda hataların en çok hangi aşamada oluştuğunu bililmsel olarak ortaya koyabilirsiniz. işlerin nasıl dağıtıldığını. Bunu başarabilmek için test edilip onaylanmış bir metod. Günümüzde yazılım araçlarının çok ilerlediği bir gerçek. Yaşam tarzın ve hayat standardın yükselmeye devam eder. kod yazarken nelere dikkat edildiğini öğrenin.  İyi karakter sahibi olmak doğru alışkanlıkları seçmekten geçer. 3. Yılda en az iki kez bir kursa katıl. Alanında mükemmel bir yazılım uzmanı olmak istiyorsan doğru alışkanlıkları seç gerisi zaten gelecektir. Ayrıca planlı olması açısından 3 aylık yada 6 aylık planlar yap ve ne öğreneceğini planla. Soru 1: Çalıştığınız yerde hangi metodun kullanıldığını biliyor musunuz? Projelerin bir harala gürele ile başladığı ve Allah ne verdiyse kod yazmaya girişildiği bir yerde mi çalışıyorsunuz? Yoksa belli bir düzende müşteri gereksinimlerine bağlı kalınarak.

ortaya çıkan hatalar ve uzun süren HDH zamanları ile içinden çıkılmaz bir hal alır. Kalite ölçümü için bellli bir zaman sürecinde bu hatalar toplanır. 2. Hata projenin her aşamasında ortaya çıkar. Proje maliyetlerinin çoğu son iki aşamada ortaya çıkar. Tabii bu hataların hepsi ürün müşteri tarafında kullanılmaya başladıktan sonra müşteri tarafından girilen hatalardır. Yada Yazılım Gereksinimleri Tanımlama belgesinde onaydan sonra oluşacak her değişiklik te hata statüsüne girer. testler sırasında 1 saatte ne kadar hata yakalandığını ölçüp projenin kalitesi hakkında bir fikre sahip olabilirsiniz. Proje planında bu senaryo ve bağlı olduğu fonksiyonlar için daha fazla zaman ayırmanız yada senaryoyu düzeltmesi için analizcileri dürtmek gerekir.000*X=3000*1000 formülünden her 1000 satır için 20 hata olduğu ortaya çıkar.000 satır olduğunu düşünelim. Eğer bir senaryo için HDH zamanı uzunsa. kompleks bir senaryo ile uğraşıyoruz demektir (yada çok basit olduğu için analizcilere angarya gibi gelen bir iştir). Her senaryo başına kaç hata düştüğünü. Ayrıca Hata Düzeltme Hızı (HDH) her senaryo için ölçüldüğünde senaryoların boyutları ve içerdikleri zorluk seviyesi ortaya çıkartılabilir. Senaryolar bir kez onaylandıktan sonra gerekecek her türlü değişiklik bir hata demektir. Bu sebepten dolayı zaten çoğu proje yöneticisi bu iki aşamayı proje planlarına dahil bile etmezler. Böylece kaliteyi yükseltmiş gibi gözükürler ama aslında projenin en önemli kısmını es geçmişlerdir. Şöyle. Ürün müşteride kullanılmaya başlamasından sonra destek aşamasında ve Ürünün farklı müşterilere ve sistemlere uydurulmaya çalışılması sırasında Bu aşamalarda ortaya çıkacak hatalar da düzeltilmesi en maliyetli ve zor hatalardandır. Peki doğruluğunu nasıl anlayacağız. sadece kod üzerine odaklanmayın. Modül yada senaryo başına maliyet analizi en fazla kullanılan tekniktir. Proje başından beri yazılan kodun da 150. Ürün müşteride kullanılmaya başladıktan sonra her . Soru 2: Ürünün doğruluğu hakkında ne biliyorsunuz? Bir program doğru olarak çalışmalıdır. müşteri gereksinimlerine göre doğru çalışıyor mu test ederek (basit değil mi? Tabii müşteri ne istediğini biliyorsa). Testler sırasında kodda yakalanan hatalar da bu durumdadır.127 Blogdan Seçmeler İstenen kalitenin elde edildiğini anlamak için proje boyunca oluşan hatalara göz atılabilir. Zaten kompleks ve zorlu olan bu iki aşama. Projelerin kompleks kısımlarını anlamak için maliyet analizi de yapabilirsiniz. örneğin 1 sene gibi. Bu testler sırasında ortaya çıkan toplam hata rakamı diyelim ki 3000 olsun. Bunlar 1. Bu durumda 150. Örneğin Use Case (Senaryo) kullanarak analiz yapıyorsunuz diyelim.

Bu aşamada oluşan hata. istek ve entegrasyon problemlerine cevap verme hızı ürünün kalitesini belirler. zaman ve 16. Projenin boyutuna ve yoğunluğuna. şifreli bilgi alışverişi için ortamın ayarlanması. Ürünün farklı sistemlere entegre edilmesi veya değişen ana sistemle birlikte ürünün de Ürün müşteriye sunulduktan sonra çıkan hataların düzeltme hızı İstenen değişikliklerin analizi. analizci vb gibi proje sahiplerine bağlı olarak her proje için farklı bir gösterge ortaya çıkması doğaldır. istek ve entegrasyon istekleri için tahmin edilecek zamanların daha gerçekçi olmasını sağlayacaktır. testi ve müşteriye sunulması sırasında geçen buna ayak uydurması için yapılacak değişikliklerin uygulanma hızı. testçi. Örneğin her isteyen cumhurbaşkanının vergi kayıtlarını görmemelidir.Blogdan Seçmeler 128 1000 satır için hata seviyesinin %1. Bu üç öğenin kendini koruyabilmesi ve saldırılardan yara almadan kurtulması ürünün gevenliliğini gösterir. kompleks fonksiyonlara daha fazla zaman ayrılmasının sağlanması gerekir. Korsan saldırıları direk programa. Soru 4: Ürün ne kadar güvenli? Ürünün korsan saldırılarına karşı ne kadar güvenli olduğu da bir kalite göstergesidir. sistemlere ulaşan kişilerin izlenmesi ve kayıt edilmesi gerekir. uygulanması. Madde halinde sıralarsak: 14. hata sayısını alt limitlere çekmek için çalışma yapılmalıdır. Ayrıca modül başına düşen hata sayısı ve modüllerin boyutu göz önüne alınarak. Ürünün çalıştığı sistem yöneticiler tarafından göz altında tutulmalı ve şüpheli durumlarda otomatik uyarıcı modüller eklenmelidir. Güvenlik tam olarak ölçülecek bir birim değildir ama günde 10 kere saldırıya uğrayan bir sistemin her seferinde yara almadan kurtulduğunu bilmek müşteri için rahatlatıcı bir unsurdur. Kod ve Rol seviyesinde güvenlik mekanizmalarının kurulması. . Soru 3: Ürünün ilk sürümünden sonra gelen istekleri ve hataları ne kadar zamanda düzeltiyorsunuz? Ürün müşteriye sunulur ama proje bununla bitmez.5 ile %2 arasında olması gerekir ki ürünü kaliteli bir ürün olarak farzedebilelim. müşteri sayısına ve hizmet veren programcı. veritabanına veya belgelere yapılabilir. Genel bir ölçüm birimi olmasa da bu zamanların ölçülüp grafik haline getirilmesi ileride çıkacak hata. 15. Bir destek ekibi 7/24 problem çözmek için didinir durur. Eğer hata sayısı üst limitlerde geziyorsa ki örneğimizde öyle.

Yoksa yapılan kompres anlamsız olacaktır. Proje zaman çizelgelerinde bu şekilde kompres yoluna gidilebilir ama mutlaka bir önceki metrik ölçümler göz önünde bulundurulmalıdır. Ben örneğin her body building salonuna gidişimde bir defter ve bir kalem bulunduruyorum ve kaldırdığım ağırlığı not ediyorum. 3. Kullanıcının entellektüel bilgi seviyesine Ürün ile yararlı bir şeyler yapacak seviyeye gelmek için geçen zamana Yararlı bir şeyler yapacak seviyeye gelmekten tam üretken olacak zamana kadar geçen süreye bağlıdır. Fakat şunu düşününki eğer ölçüm yapmazsak ilerlediğimizi anlayamayız. Kullanılabilirlik tamamı ile müşteriden müşteriye değişecek bir etkendir. Yani program müşteriyi yönetmiş olur fakat verinin bütünlüğü veya sistemin güvenliği tehlike altına girer. Fakat ürünün arayüz tasarımı. Müşteri genelde ürünü hataları ile beraber öğrenir ve bu hatalara karşı defans geliştirir. Örneğin 1 aylık Türkiye tatilinden sonra eski performansıma kavuşmam bir ay gibi bir zaman aldı. tahmin edilebilirliği. hata durumlarında verdiği yanıtlar ve bir çökme durumunda üzerinde çalıştığı veriyi bozmadan bir önceki haline geri dönebilmesi kullanılabilirliği arttıran unsurlardır. Öte yandan limitlerini bilmek ve biraz daha sınırları zorlamak için de tuttuğum kayıtları kullanıyorum. 5 gün sürecek bir işi 2 günde bitirebilmek için yapılan kompres eğer metod olarak önceki metriklere dayanmıyorsa pek bir anlam ifade etmez. Ağırlıkları yazmasaydım bunu bilemeyecektim. Sonuç . Yazılım süreçlerinde bu metriklerin yerleştirilmesi ve kullanılması oldukça güç bir iştir. Bu tür durumlara yer vermemek amacı ile kullanılabilirlik testlerinin bağımsız kişiler tarafından yapılması gerekir.129 Blogdan Seçmeler Soru 5: Ürünün kullanılabilirliği hakkında ne biliyorsunuz? Her yeni yazılım ürünü yada eklenen özellik beraberinde belli bir öğrenme süreci getirir. Örneğin uzunca bir süre aynı kiloda biceps yapıyorsam bir daha ki antrenmanda 1 kilo arttırıyorum ve aldığım tepkilere dikkat ediyorum. 2. komutlara karşı verdiği cevaplar. Hele ki firmada geçmişte herhangi bir metrik tutulmadıysa daha da zor olacaktır. Bu öğrenme sürecinin uzunluğu: 1.

Proje bazında kaliteyi ölçmek için belli rakamlar almamızı sağlar.31 Yazılım Uzmanı Olamayacağınızın 10 Kanıtı Tech Republic’de yazan Justin James 10 maddede neden yazılım uzmanı olamayacağınızı açıklamış. Eğer 9’dan 5’e bir işte çalışmayı seviyor ve yazılım projelerinin uzun çalışma saatlerine ve gecelemelerine dayanamayacağınızı düşünüyorsanız yazılım uzmanı olmayı aklınızdan çıkarın. Bugün gözde olan teknolojiler seneye isimleri bile . Zamanında biten projeler bile projenin hayatı boyunca çoğu kereler geç kalma durumuna düşmüştür. 3. 2: Normal çalışma saatlerini seviyorsunuz Yazılım projelerinin geç bitme olayını herkes bilir. Yönetim ekibinin düşüncesine göre yazılım uzmanı problem çözmeyi bilen akıllı bir kişidir ve bu yüzden de eğitime ihtiyacı yoktur. Bu metrikler sayesinde elle tutulur bir kalite anlayışına sahip oluruz ve daha da arttırmak için neler yapmamız gerektiğini daha açık görebiliriz.Blogdan Seçmeler 130 Bir firma içinde yazılım süreci boyunca her proje için belli metriklerin tutulması gerekir. En iyi ihitimalle bir iki kitap almanız için bir ödenek ayrılır. Uzun süreden kastım öyle 15 yada 20 yıl değil. Eğer bu disiplin sizde yoksa yazılım uzmanı olmayı aklınızdan bile geçirmeyin. sizin oğlunuzun spor müsabakasından yada televizyonda seyretmek istediğiniz programdan daha önemli tutacaktır. Bakalım neymiş bu 10 madde. 1: Kendi kendine öğrenmek yerine kursları tercih ediyorsunuz Yazılım Uzmanı ilk işe başladığında gerekli tüm bilgiyi biliyor olduğu varsayılır. 3: Küçük maaş artışlarını kıdem yükselmesine tercih ediyorsunuz Teknolojik değişmeleri uygulamayan bir firmada çalışmıyorsanız. Bu kayıt tutma alışkanlığı ileride alınacak projelere ve zaman çizelgeleri için tahmin edilecek sürelere bir ışık tutar. Patronunuz. Öte yandan kurs masrafları karşılanan yazılım uzmanının her zaman firmayı terkedip gitme ihtimali olduğu için firmanın yatırım yapması pek düşünülemez (olsa iyi olurdu tabii ama gerçek hayat bu). şimdi bildiğiniz şeyler seneye ya geçersiz yada az ödeyen konuma gelecektir. ürünün zamanında müşteriye ulaştırılmasını. Firmanın belirli bir eğitim politikası olsa bile gerçekte firmanın yardımı ile alacağınız eğitimler hiç bir zaman gerçekleşmez. Yoksa yazılım sürecimiz bir kör dövüşüne döner ki piyasada uzun süre kalmayı düşünen bir firma için hiçte iyi bir şey değil. 100 yada 150 sene ortamın değişikliklerine ayak uydurabilmiş ve ürünü ile sürekli devinim içinde gelişmiş ve kaliteyi de ön planda tutmuş bir firmadan bahsediyorum. Bu durumlar göz önüne alındığında kendi kendinize öğrenebiliyor olmanız gerekir.

maaşınıza gelecek zammın hayat standardınıza yeteceğini düşünüyorsanız yanılıyorsunuz. 6: Ekip elemanlarının fikirlerine kapalı iseniz Yazılım geliştirmede genelde problemlerin birden fazla çözümü vardır her yiğidin bir yoğurt yiyişi olduğu gibi. Bazen unutulan bir virgül. 5: Kolayca sinirleniyorsunuz Yazılım dünyası pek çok engellerle doludur. . İşin sırrı hızlı biçimde değişmektir.. 4: Ekip çalışmasında insan ilişkileriniz pek iyi değil Yazılım uzmanları her ne kadar a-sosyal insanlar olarak bilinsede bir araya geldiklerinde hararetli konuşmalar yaparlar ve kendileri gibi olan insanlarla hemen kaynaşıp sosyalleşirler. başarı ile başarısızlık arasındaki çizgiyi çizer. Sektörde yani olan ve deneyimleri sizden az olan birinin yapacağı bir tavsiye size pek çok şey kazandırabilir. Hiç yeni bir teknoloji öğrenmeden aynı koltukta oturup. sizden önceki yazılımcı okunmaz bir kod yazmıştır. Ekip içinde çalışamıyor ve iletişimin düşük olduğunu düşünüyorsanız yada ekip arkadaşları ile bağlantı kuramıyorsanız.. 7: Detay adamı değilsiniz Programlama olayı komplex bir olaydır ve dikkat ister. Ya deneyimlerinizi ilerletip aynı firmada kıdem yükseltmeli yada başka bir firmaya geçerek aldığınız maaşı yükseltmelisiniz. Eğer 8 saatlik bir uğraşın sonunda konuyu 10 dakikada çözebileceğinizi görüp deliriyorsanız bu kariyer sizin için değildir. Yeni teknolojileri hızlı (herkesden önce) öğrenip konu hakkında otorite olmaya bakın. Belgeler genelde tam değildir. herkesin uyması beklenen. Eğer Conan The Barbarian filminden daha karmaşık bir filmi izlerken kayboluyorsanız yada bir yeni nesil ev kredisi formunu doldururken zorlanıyorsanız yazılım uzmanlığı büyük ihtimalle sizin için değildir. Eğer bu virgülü arayıp bulacak yapıya ve sinir esnekliğine sahip değilseniz kariyeriniz belli limitler içinde yer alır. Tabii bu tavsiyeye önem verip uygularsanız. Hangi dükkanda indirim var veya dün akşamki diziden bahsetmedikleri için dışarıdan kulak misafiri olanlara Fransızca gibi gelir ama aslında çok sosyal insanlardır.131 Blogdan Seçmeler hatırlanmayan garip teknolojiler olabilir. liste daha da uzatılabilir. problem genellikle sizdedir. proje müdürünün anlaşılmaz kuralları vardır. Eğer gelen kritikleri ve diğer çözümleri göz ardı ediyorsanız önemli bir noktayı gözden kaçırıyor olabilirsiniz. Sonuç olarak kimse sürekli bela okuyan ve ekrana küfür eden birisi ile aynı çatı altında olmak istemez. Aynı deneyimleri yaşamamış kişilerin bağlantı kurmaları beklenemez.

Siz ayrıldıktan sonra arkanızdan konuşulmasını istemiyorsanız (gerçi ağzınla kuş tutsan arkandan konuşacaklardır) haysiyet ve onurunuzu korumak için yaptığınız işin tam olmasına dikkat edin. Problem. Tamam yazılım sektörü çok ballı bir sektör ama üzüldüğüm bir konu varsa o da bu kişilerin ürettiği ürünlerin bizim tarafımızdan ileride tamir edilecek olması.Blogdan Seçmeler 132 8: Yaptığınız işten onur duymuyorsunuz Kitaba göre yazılım üretmek ve orta derece ile geçecek bir iş çıkartmak mümkündür. 10: “Geek” tipini sevmiyorsunuz Haklı kimi nedenlerden dolayı. Tabii ki her yazılım uzmanı böyle değil ama sektörün büyük bir çoğunluğunu oluşturuyor ve aralarında haliniz yaman olur. 9: Önce ateş edip sonra soru soran tiplerden misiniz? Yazılım uzmanı bir parça kod yazmadan önce bir planlama aşaması geçirir ve kod yazmaktan daha fazla zaman planlamaya ayrılır. Yaptıkları işlerin kalitesi ise yerlerde sürünüyor. sistem destek uzmanı. mühendis veya teknik kişilerin yakınında olmaktan hoşlanmıyor olabilirsiniz. Eğer Dilbert gibi bir kişilikten çekiniyorsanız yazılım uzmanlığını düşünmeyin bile. İlla yazılım uzmanı olmaya da gerek yok bence. Yazılımcı olarak yaptığınız işin gurur duyulacak bir iş olduğunu düşünmüyorsanız ürettiğiniz ürünün kalitesi düşük olacaktır ve kariyerinizin sürekliliği ile doğru orantılı olacaktır. iş analisti. Yazılım geliştirmek bir fabrika işi değildir. kitapların sürekli güncelleniyor olmasıdır. En azından sizin içiniz rahat olur. Yazılım geliştirme daha çok bilimsel bir iştir ve bağımsız düşünce gerektirir ki bu da yaptığınız işten gurur duymanızı sağlar. planlayan yazılım uzmanı ise daha az hata ile daha kısa sürede kod yazacaktır. Bir kaçının proje ortasında işine son verildiğine de şahit oldum. Yazılım sektörünün daha bir çok dalı var ki bu dallarda hakikaten adama ihtiyaç var. Çoğu programcıların neden 10 parmak yazamadığının nedeni de budur. yazılım tasarımcısı. Çalışma hayatım boyunca çok rastladığım bir insan tipi “bir iş fazla para ödüyor” diye o işe girenler. Eğer kod yazma aracınızı açıp Allah ne verdiyse kod yazmaya başlıyorsanız %100 ihtimalle iki ay sonra yazdığınız kod tamamı ile değişecektir. işin zor kısmı ne yazacağını bilmektir. Örneğin. Bir işi yanlış yoldan yapıp üretime geçildiğinde ancak yeteri kadar çalışmasını sağlayabilirsiniz fakat göz ardı ettiğiniz o hata problem açmıyor gibi görünsede ileride problem açacaktır. Daha önce ahçı olan ve iki yazılım kursundan sonra yazılım uzmanı kesilen ve sektörde para kazanan pek çok kişi tanıyorum. Eğer düşünen bir insan değilseniz yazılım uzmanlığı sizin için bir kariyer değildir. Fabrikada işler belirli bir prosedüre göre gider ve beyin seviyeniz ne olursa olsun prosedürü uyguladıktan sonra iş ortaya çıkar. Konu hakkında düşünen. veri .

projenizde iş dışında nelerin olup bittiğini. Sektöre yeni girmiş arkadaşlara verdiğim öğütlerden bir tanesi kendilerini bu işe adamaları ve öğrenme hevesini hiç bir zaman kaybetmemeleridir. 3. Yazılım sektöründe stresin pek çok nedeni var. Stres beraberinde depresyon ve moral bozukluğu getiriyor ki buda üzerinde çalışılan işlere doğrudan negatif olarak yansıyor. Stres. alacağınız kararların ekibi etkileyeceğini sürekli hafızanızda tutmanız gerekir. konu hakkındaki bilgisizlik ve beraberindeki korku hemen aklımıza gelen bir kaç tanesi. bu ekibin başarısının sizin başarınıza yansıyacağını. Bir lider olduğunuzu. Eğer gerçekten ikili ilişkilerde iyi ve insan psikolojisini algılayabilecek seviyede ve deneyimdeyseniz. çalışma ortamının yetersizliği. Ben stres olayını yazılım sektörü bazında ele alıyorum ama hangi sektörü ele alırsanız alın stresin zararları her zaman yukarıda söylediğim gibi olacaktır.133 Blogdan Seçmeler tabanı uzmanlığı. donanım uzmanlığı. Bu dallarda ki açıklar genelde yazılım uzmanı tarafından kapatılmaya çalışılıyor yada firmalar yazılım uzmanlarından bunu bekliyorlar. Proje yönetimi sadece MS Project'i çok iyi bilmekle olmuyor yani. Proje liderinin psikolog olmasına yada Tibet'te bir manastırda eğitim görmesine de lüzum yok. Çalıştığınız insanların ruhsal durumunu anlayacak kadar veriyi algılamaya hazır olmak ve bu veriyi analiz edecek kadar ikili ilişkilere önem vermek yetecektir. müşterilerin bastırması. Ne kişiye ne projeye ne de firmaya uzun vadede . Siz ne düşünüyorsunuz? Bu liste daha da uzatılabilir mi? Yazılım uzmanı olmanın başka gereklilikleri var mı? Yorumlarınızı bekliyorum. üretkenliği. test uzmanı vs. Fakat proje müdürleri de bu "kendini adama" olayını görüp ekibin omuzlarına daha fazla yük bindirmesi kaçınılması gereken bir olaydır. devamlılığı ve ikili lişkileri sekteye uğratan bir unsur. Proje teslimat zamanları.32 Stres ve Yazılım Sektörü Türkiye yazılım sektöründe göz ardı ettiğimiz çok önemli bir proplem var. proje müdürünün gerçeğe dayanmayan istekleri. ne tür dış etkenlerin projeyi etkilediğini. performansın ne zaman çıkıp ne zaman alçaldığını görebilirsiniz. Stres faktörünü algılamak burada proje müdürüne düşüyor çünkü proje ekibini dışarıdan gören ve objektif olarak değerlendirebicek tek kişi konumunda. Kaliteyi. liderlerin bilinçsiz davranışları. Yeni mezun ve hevesli bir yazılım sektörü çalışanının daha işin başındayken strese kapılması ve akabinde yaptığı işten soğuması aslında projeye vurulacak en büyük darbedir. Ekibin psikolojisi de sizin projeyi nasıl yönettiğinize bağlı olarak değişir. Yanlış bir uygulama ve tasarımın ve analizin kalitesini düşürüyor. arkanızda sizi takip edecek bir ekip olduğunu. ekibin sürekliliğinin sizin elinizde olduğunu. liste daha da uzatılabilir.

sokakta ve işte performansınız artar. Stres yaratan faktörlerin açıkça tartışılması problemlere daha farklı çözümler bulmamızı da sağlayabilir. MSN'de sohbet ettiğim ve daha ikinci sınıfta yazılım olayından soğumuş öğrenciler var. İnsanlar mutlu olmaya başladıkça verimleri de artacaktır. Yatakta. . Şaşırmayın. http://www. Tabii ki stres daha üniversite zamanında ortaya çıkınca yazılım sektörü daha da büyük bir darbe almış oluyor. Psikolog deyince tüyleri diken diken olan varsa şimdiden söyleyeyim bu deli olduğunuz anlamına gelmiyor.jpgStresi yenmenin birinci yolu stres hakkında konuşmaktır. Şaka bir tarafa eğer profesyonel yardıma ihtiyacınız varsa bunu ancak en iyi siz bilebilirsiniz. Sadece yarı deli olduğunuz anlamına geliyor ki zaten yazılım sektöründe yarı deli olmak faydalı bile :-). Bu zemin hazırlanırken proje ekibinin nelerden hoşlandığı. fikirlerini. değer verdikleri şeyler. aslında bu olay üniversite zamanında hocaların davranışları ve verdikleri ödevlere ve öğrencileri yönlendiremeyişlerine kadar dayanıyor. En azından deneme amaçlı bile olsa bir psikoloğa görünün.analystdeveloper. Bir firmanın sürekliliği çalışanlarına yaptığı yatırım ile doğru orantılıdır. Unutmayın projeniz ancak ekibinize verdiğiniz değer kadar değerlidir ve ekibinize gösterdiğiniz saygı kadar saygıyı hakeder. stresi yaratan unsur ortadan kalkmamış bile olsa bir rahatlama devresine girer. Örneğin evden çalışması için bir ortam hazırlanabilir. İşten atılmayacağını bilerek her türlü problemini dile getirmeye alışan çalışanlar. son 1 ay içinde özgeçmişinizi yenileyip yenilemediğinizdir. Çalışanların da sektördeki devamlılığı ve kariyerlerindeki yükselmesi yaptıkları işe verdikleri değer ve çalıştıkları firmaya duydukları güven ile doğru orantılıdır. ilgi alanları. Bu formüllerden yola çıkarak uzun süre sektörde kalacak ve başarılı işlere imza atacak bir organizasyonun kurulması çok kolay görünüyor değil mi? Evet çok zor değil. problemlerini rahatça dökebileceği bir zemin hazırlamalıdır. Stres faktörünü ortadan kaldırmak için atacağınız her adım. Proje müdürü bu tür konuşmalara ortam hazırlamalı ve herkesin rahatça konuşabileceği. Elde edeceğiniz yararlar zararlarından eminim fazla olacaktır. nefret ettikleri şeyler vs göz önünde tutulmalıdır.com/progs/f4357de46951_13AB8/angry. Eğer ortam değişikliği yeterli gelmiyorsa bir psikologdan yardım alınmalıdır. Bu rahatlama problemlerle boğuşmak için gereken gücü yenileyecektir. Eski bir kaç yazımda bahsetmiştim. hobileri. proje ekibi ve firma arasındaki bağları güçlendirecektir.Blogdan Seçmeler 134 bir yararı olmaz. İş yerinde azalan stres kişinin aile ortamına ve arkadaş ilişkilerine de yansıyacaktır ki mutluluğun artmasına neden olur. Çok fazla stres olan ve çeşitli yollar denenip te sakinleştirilemeyen bir çalışanınız varsa ne yapacaksınız? Bu kişinin çalışma ortamını tamamen değiştirmek gerekebilir. İş yerinde mutlu olup olmadığınızın en önemli göstergesi.

Daha sonra yorumlardan derleyeceğim bu işleri yapabilecek kişileri yazıya ekleyeceğim. önemli olan problemler karşısında nasıl tepki verdiğimiz ve çözümlere ne kadar hızlı ulaştığımız. Alt yapı Firmanın belli bir yeri olması ve alt yapısının sağlam olması gerekiyor ki müşterilere bir güven verebilsin. Odaklandığınız iş problemlerinden bir miktar uzaklaşmanızı ve problemlerle yeniden boğuşacak gücü kazanmanızı sağlayacaktır. Bu site sizin dışarıya açılan kapınız olacaktır. hatta eksikler bile olabilir. bir kişinin sosyal olarak aktif ve zihinsel olarak dingin olabilmesi için günde en az 8 farklı kişi ile konuşması gerekiyormuş. Problemsiz bir hayat geçirmenin yolu yok.135 Blogdan Seçmeler Bir magazinde okumuştum. Stresden uzak ve mutlu bir hayat dilerim. Sohbet sırasında bir kaç noktaya değindim fakat etraflıca blogda yazmak iyi olur diye düşündüm. Eğer stres karşısında ayakta durabiliyor ve hakkında konuşabiliyorsak çözüm için gerekli yolun yarısını katetmişiz demektir. Ayrıca aylık bir ücret ile Google arama sonuçlarında üst sıralarda yer alabilirsiniz. 3. Bu konuşmaların mahiyeti ne olursa olsun. Bugün stres yaptığımız olayların yarın belki de gülüp geçilecek şeyler olduğunu göreceğiz. Birde zaten dışarıya bu tür yazılım işleri yapıyorsanız ve oturmuş bir sisteminiz varsa lütfen firma bilgilerini yorumlara ekleyin. Belki bu işlere girmek isteyen kişilere profesyonel destek verebiliriz. Ayrıca aşağıda sayılan işlerden yapabileceğiniz varsa.33 Yurtdışına Yazılım Üretelim Dün akşam MSN üzerinde Sertaç Bey ile güzel bir sohbet yaptık. Konumuz Türk yazılım firmalarının dışarıdan iş almaları idi. Burada yazdıklarımın hepsini uygulamak zorunda değilsiniz. Hem böylece gelecek kollektif yorumlar ile bizim düşünemediğimiz şeyler de ortaya çıkabilir diye düşünüyorum. Bu yüzden yorumlarınızı bekliyorum. kontak bilgilerinizi bana göndermenizi yada yorumlara yazmanızı rica edeceğim. Aşağıdaki listede bir kaç yardımcı yöntem listeliyorum.  Tanıtıcı site Firmanızı tanıtmak için profesyonel bir tasarımcı ile oturup web sitesi hazırlayın. . farklı insanlarla farklı konularda yapılacak sohbetler beyin cimnastiği olacaktır.

değişiklikleri takip edecek ve derleme ile kurulumları yapacak otomatik bir sistem kurmanız gerek. veritabanı.Blogdan Seçmeler 136  Referanslar Yaptığınız işleri bir bir sıralayın. Size iş vermek isteyen ve sizi hiç tanımayan bir kuruluşun hakkınızda en fazla bilgiyi alabilmesi için her türlü ayrıntıyı yazın. işletim sistemi. Bu işlerden aldığınız referansları ve iyi yorumları sitede yazın. yedekleme stratejinizi. ViewVC yada WebSVN gibi yazılımlar ile kurulu geliyor. Bu işi Cruise Control ile yapabilirsiniz.  Yazılım ortamı ve teknolojiler yazılım ortamını. kurulum gibi işlerle vakit harcamayın. modem üzerinden port forward ayarlarını yaptıktan sonra internete açık hale gelir.  Bloglar . Örneğin her proje için sanal bir TRAC makinesi kullanabilirsiniz. güvenlik önlemlerinizi listeleyin. bilgisayarların Kullandığınız kapasitelerini. Hatta ünite testlerini müşteri bile yazabilir eğer isterse. Yada projeyi yönetecek kişinin çok iyi ingilizce bilmesi şart. Kodun doğruluğunu ortaya çıkaracak yegane yöntemlerden biridir.  Sürekli Entegrasyon Kod kontrol sisteminize. IP ayarlarını yapıp. Eğer analizleri Türkçe'ye çevirecek zaman varsa yazılım uzmanlarının ingilizce bilmesine gerek yok. (Bu tavsiyeyi vermekten artık dilimde tüy bitecek. Kesinlikle yapılması gereken bir iş  İngilizce Dışarıya iş yapıldığı için doğal olarak herkesin ingilizce bilmesi gerekiyor. Yazılım uzmanlarının tek işi kod yazmak olmalıdır. Derleme. araçlarını.)  Ünite Testi Kod yazarken ünite testlerinide ihmal etmeyin. Trac subversion. Eğer mümkünse müşterilerinizin kontak bilgilerini verin ki potansiyel müşteriler direk hakkınızda bilgi alabilsin. hata veritabanı. Zaman dar olduğu için mümkün olduğu kadar işi otomatikleştirmek gerekiyor. wiki.  Kod Kontrol Kod Kontrol için kullanılan ortam en önemli ortamlardan biridir.

) tartışılmalı ve herkesin ulaşabileceği biçimde duyurulmalıdır. firmada çalışan herkesin bir blogu olmalıdır. her satır kod için. Yanlız ücretlendirme konusunda sıkıntı yaşanabilir. firmanın kafein ihtiyaçlarının nasıl karşılandığını. beslenmenin nasıl olduğunu yazmalıdır.  Teslimat Derlenmiş yazılımın ve kaynak kodunun nasıl teslim edileceği ve test ortamlarının nerede olacağı konusunda araştırma yapılıp. üretime nasıl katkıda bulunduğunu. Eğer web tabanlı projeler yapıyorsanız bu ideal. Kaynak kodu gizliliği ve sızmaları önlemek için herkesin bilinçlendirilmesi gerekir. kurulum dosyalarını iletebilir ve müşterinin test etmesini sağlayabilirsiniz. Windows Forms tabalı yapıyorsanız. Örneğin her hafta Cuma günü gibi. çözülen hatalar için vs. Birde Kuru Kahveci Mehmet Efendi ve Mahdumlarından bir reklam koydunuzmu.137 Blogdan Seçmeler Web sitenizde. Yazılım uzmanlarına hangi bazda ücret verileceği (saatlik. Sizce aşağıdaki işler için yazılım uzmanı ne kadar ücret almalıdır? o o o o o o o o o o Her satır kod Karmaşık GUI tasarım Orta derece karmaşık GUI tasarım Düşük derece karmaşık GUI tasarım Yüksek öncelikli hata giderme Orta öncelikli hata giderme Düşük öncelikli hata giderme 1 saatlik ücret Hatanın sebebini arama (hatanın önceliği ile doğru orantılı) Bu listeye eklemek istediğiniz başka bir şey var mı? .  Evden çalışma Kurulan bu alt yapı yazılım uzmanlarına evden çalışma imkanı verecektir. dışarıya sadece yazılım değil kahve de satıyor olabiliriz. Teslimat zamanlarının iyi belirlenmesi ve sık aralıklarla yapılması yerinde olur. Çaycı Emine teyze bile bir blog sahibi olmalıdır. test amaçlı hosting hizmeti alınabilir. Evden çalışmak herkesin hayali olduğuna göre de idealdir. müşteri ile anlaşmaya bağlı olarak. Blogunda çay ve kahvenin nasıl yapıldığını.

Yeterki belgelenmiş olsun ve her adımı tespit edilmiş olsun. Agile.Bu prototip size müşteriyi anlamak için daha fazla imkan sunar.Blogdan Seçmeler 138 Diyelimki proje yönetimi için hazırladığınız diyagram bütün alt işleri en ince ayrıntısına kadar içeriyor. Böylece müşteri yazılım süreçlerini görüp ne aşamalardan geçtiğini görebilir. Eğer analizler hazır ise öncelikle bir yerlere imza atmadan projenin maliyetini eldeki verilere dayanarak kestirmeye çalışmak gerek. MSF gibi bir metodoloji veya kendinizin geliştireceği bir water fall modeli bile olabilir. Risk durumlarında yönetim yapmak ise gerçekten bir hüner işi.  Prototip Zaman varsa veya proje planında öngörülmüş ise bir prototip ile müşterinin karşısına çıkabilirsiniz. Yada belkide analizler size hazır halde gelecek. Yukarıda oluşturduğumuz fiyatlandırma politikası ile projenin maliyetini çıkartabilirmiyiz? Analiz Süreci Analiz sürecinde müşteri ile sürekli irtibat halinde olmanız gerekiyor.  Belge Sunucusu Yazılan ve çizilen her türlü belge bir belge sunucusunda tutulmalı ve müşteriye erişim verilmelidir. Bir yazılım projesinde olabilecek belli başlı riskler var.  Metodoloji Kullandığınız metodolojinin ne olduğunu ve adımlarını listeleyecek. kolayca web üzerinden gezilebilen bir şablon hazırlayın. RUP. Proje Planı  Riskler Risksiz bir iş yok ama bunların farkına varmak heleki önceden sezinlemek neredeyse imkansız. Bunlar: o o o o Felaket durumunda operasyonun durması Virüs ve dış etkenlerden dolayı aksama Yazılım uzmanlarının bırakıp gitmesi Müşterinin operasyonu durdurması . Metodoloji belkide güven kazanmak için en önemli unsurlardan biridir. MErkezi bir çalışma sistemi kurularak kim ne değişiklik yapmış görülebilmelidir. Hiç bir yazılı belge kaybolmamalıdır.

Eğer sabah gelipte 2 gün önce yazdığınız ünite testinin artık doğrulama yapmadığını görürseniz (ve bunun sorumlusu siz değilseniz) artık b**ktan bir gün sizi bekliyor demektir.  Maliyet Yukarıda değindiğimiz maliyet unsurlarından başka projede kullanılacak lojistik desteğinde bir maliyeti vardır.  İşlerin ufak parçalara bölünmesi İşleri parçalara bölmek için Data Definition Diagram yada fonksiyon bazında bölümleme yapabilirsiniz. İyi bir planlama ile riskler en aza indirilebilir. kodunuzun her akşam kod kontrolden çekilerek derlenmesini ve ünite testlerinin çalıştırılmasını salık verir. . Hedeflerin Belirlenmesi  Günlük Sürümler Ecnebilerin "Nightly Build" dedikleri bu nane.  İşlerin Dağıtılması İşleri dağıtırken herkesin yapabileceği işe göre dağıtım yapın ve fazla yüklemeden kaçının. Gereken zamanları tahmin ederken yazılım uzmanlarına danışmayı unutmayın. İleride ortaya çıkacak sürprizlerden kaçmanın tek yolu budur. Bunları da proje maliyetlerine eklemek gerekmektedir. yeni ünite testleri de %80 çalışıyor gibi). Proje gidişatı içinde ortaya çıkan riskler de iyi bir yönetim ve müşteri ile anlaşmalar sonucu giderilebilir.139 Blogdan Seçmeler o o o o o Yeni sürüm yazılım araçlarından dolayı aksama Alt işlerin belirlenen zamandan uzun sürmesi Kapsam değişikliği Donanım değişikliği İletişim hatlarının aksaması Bu risklerin pek çoğu önlenebilecek riskler.  İşler Proje planında ortaya çıkan işlerin en ince ayrıntısına kadar ayrılması ve müşteri tarafından onaylanmasına dikkat edin. Artık Tuvalet kağıtlarından tutunda Emine teyzenin getirdiği çay ve kahveye kadar. güne güzel başladık demektir. Eğer raporlar başarılı olursa (tüm dünkü ünite testleri çalışıyor.

Kod teftişini müşteri de yapabilir isterse. Diğer bir yazılımcı ise benim kodumu teftiş ederken bu belge ve kaynak kodu ile teftiş eder. Ben bir modül yazıyorsam. Sizinde uğraşmanıza gerek kalmaz bu raporlar için. Yapılan işin herkes tarafından bilinmesi problem çözmeyi kolaylaştırır. Blogunuzun altında bir bölümde o gün kaç tane ünite testinizin geçtiğini ve kaç tane eklediğinizi gösteren bir panel olsa ve her derleme işleminden sonra güncellense güzel bir gösterge olurdu. Çeşitli raporlama seçenekleri ile müşteriye gidişat hakkında bilgi verilebilir. Kod kontrol. analitik problem çözme yeteneği ve sistem bilgisine dayanır. Bu arada Sourceforge. İşin başında iç iletişimi sıkı tutarsak bunu sağlayabiliriz. Eğer bir yazılım uzmanı olarak müşteri tarafından direk arandıysanız bunu bir belge haline dönüştürüp operasyon müdürüne iletiniz ve hiç bir soruyu yanıtlamayınız. Müşteri sizi sadakatınızı ölçüyor bile olabilir.  Müşteri ile iletişim Müşterinin size istediği zaman ulaşabilmesi ve isteklerini aktarabilmesi gerekir. Var mı böyle bir proje yapacak olan?  Hataların Çözülmesi Müşterinin girdiği veya dahili olarak bulunan hatalar sınıflandırıldıktan sonra sorumlu kişilere atanır ve belirlenen süre zarfında çözümlenir. Daha sonra geriye dönüp cevapları vereceğiniz söyleyin. Ne kadar basit değil mi? Değil tabii ki çünkü her zaman gözden kaçan bir üçüncü faktör (ecnebilerin devil in the details dediği gibi) ortaya çıkıp ya zamanı uzatır yada hatanın giderilmesi sonucu 4 yeni hata ortaya çıkartır. Yani düşünün sourceforge. Kod Teftişi önemli bir konudur ve atlanmaması gerekir. Fakat operasyon müdürünün bu iletişimlerden haberdar olması gerekir. Kod Kontrol ve Müşteri erişimi  Firma sunucuları Sunucularınızı öyle bir kurunki müşteri kendi projesine istediği zaman tepeden bakabilsin. Müşteri isterse yazılımcılar ile doğrudan görüşebilir.net gibi bir sistem fakat kurumsal olarak planlanmış ve herkese açık değil. bunun akış şemasını ve kodun dallandığı durumları belirtmem. kısacası bir teknik tasarım belgesi hazırlamam gerekir. Her zaman erişilebilir olmaya özen gösterin.  Subversion veya TFS .Blogdan Seçmeler 140 Şu çok güzel olurdu. Bu tür durumlarda verilecek reaksiyon. belge sunucusu ve test ortamları her zaman müşteriye açık olmalıdır. hata ve istek veritabanı. Çünkü ileride ekibin çıkarlarını koruyacak kişi O'dur.net sistemini satın alıp kullanabileceğinizi biliyormuydunuz.

Nereye bakmak gerektiğini iyi bilmek gerekir.141 Blogdan Seçmeler Alt yapı için. Ayrıca yedek olarak bir kaç bilgisayar bulundurmak ta operasyonun devamlılığı için şarttır. Bu tür yanlış anlamaları ortadan kaldırmak için bu şartların enine boyuna müşteri ile konuşulması gerekir. Büyük kurumların şu anda yaptıkları da bu değil mi? Kullanıcı Kabul  Testler Kullanıcı kabul şartlarını iyi gözden geçirmek ve bu şartların yazılım içinde doğrulandığına emin olmak gerekir. operasyonun büyüklüğüne göre bu iki üründen birini seçin. forumlar vs herşey göz önünde olmalıdır. Microsoft Programları. .  Performans Ürünün performans testlerinin de yapılması gerekir. Ayrıca müşterinin istediği bir şart ile sizin o şarttan anladığınız anlam aynı olmayabilir. Şeffaf Yönetim  Erişilebilirlik Bu firmanın yönetimi o kadar şeffaf olmalıki müşteriler bir bakışta bunu sezinleyebilsin. IBM Programları vs gibi bir programa katılıp hem ürünleri ucuza almak hemde gerektiğinde destek almak için anlaşmalar yapın. herkesin blogları. Yazılımcı bulmak İşin zor yanlarından biri de sanırım yazılım uzmanı bulmak. Genelde otomatik araçlar ile yapılan bu testler ürünün yük altında nasıl tepki vereceğini ölçmek ve optimum çalışacağı donanım gereksinimlerini belirlemek için gereklidir.  Kabul Şartları Müşterinin öne süreceği kabul şartlarının yeterliliği ve olabilirliği en ince ayrıntısına kadar araştırılmalıdır. Teknoloji Desteği Kullandığınız yazılım ve donanım ile ilgili gerekli desteği almanız gerekir. Müdürlerin aktif katılımı. CA VIP programları. Ama yazılımcılar da ulaşılamaz kaynaklar değiller. Sanal makine kullanmak ta yönetimi kolaylaştırır. Genelde yazılım sitesi portallarında. Linux desteği. Testler için belirli test senaryoları hazırlamak ve iş akışlarının sonunda meydana gelecek çıktıların belirtilmesi gerekir.

Yada liselerde yazılıma meraklı öğrencileri bu işler için yönlendirebilirsiniz. Açıkcası programın bir tek amacı var. Ben kullanıyorum ve burada paylaşıma açtım ki böyle basit bir şeye ihtiyacı olan başkaları da varsa onlar da yararlansın.34 Bir Başka Gözlem Paylaşıma açtığım ve bir gün gibi kısa bir sürede yazdığım gitar akorlarını gösteren basit programa bir sürü yorum geliyordu. Ne dersiniz? 3. Gel gelelim bu olay yeni ressamın hikayesine benziyor. O yüzden bu bloga yorum yazarsanız ne iş yapabileceğinizi yazın yada en azında blogunuzun adresini verin. Millet olarak çok büyük bir problemimiz var aslında ama bu konulara girmekten nefret ediyorum. Müşteri Bulmak Diğer bir zor işte bu. Tabii klasik olarak bu yorumlar genelde karalama yorumları idi. Müşteri zaten bunu isteyecektir. Programın ticari bir amacı bulunmadığı için kimseye beğendirmek gibi bir iddiamda hiç bir zaman olmadı. Yani herkes hataları bulmak ve üstünü kırmızı kalemle çizmek için yarışıyor fakat bu hataları düzeltmeye yeltenmiyor. Fakat yukarıda sayılan işleri yapığınızda müşterinin de sizi bulması kolaylaşır. Bir sigorta şirketi ile anlaşıp projenin batması durumunda teminat gösterecek bir belge edinmeniz de gerekir. sizinde imkanlar dahilinde bu teminatları sunmanız gerekir. Yorumlarınızı ve yapabileceğiniz işleri bekliyorum. Ecnebilerin "outsorcing" dediği olayı biraz irdeledik. bloglarda. Eğer düzeltecek bilgin yoksa hatayı ilgili kişilere iletebilirsin ama bununda yolları var. Bu sebeplerden dolayı mükemmel bir program ve cilalı bir . forumlarda aktif olan kişileri bulup birer özgeçmiş isteyebilirsiniz. Bir video konferans sistemi ayarlayıp müşteri ile yüz yüze konuşmayı sağlamanız gerek.Blogdan Seçmeler 142 sosyal gruplarda. Bu kişilerin eğitim seviyesinin düşük olduğu ve ailelerinden aldıkları terbiye eğitiminin yetersiz kaldığı bıraktıkları yorumlardan aşikar. Aşağıdaki alıntı o blog girdisine ek olarak yazdığım kısımdır. ağar bir hata varsa otur düzelt ve yamayı projeye gönder ki herkes yararlansın. o da akorları basitçe göstermek. Arkadaşlar Gitar Akor Veritabanı kendi kullanımım için VB6 ile bir günde yazdığım basit bir program. Müşteri ancak size gueteri kadar güvenirse sizinle çalışacaktır. Hani satacağım bir program da olmadığı için ne arayüzüne önem verdim ne de programın performansına. Özgür Yazılım ve açık kaynak felsefesini de bu yüzden seviyorum. Hatta bir çalışma grubu oluşturup bu tür bir alt yapının kurulması için fikir alışverişinde bulunabiliriz.

Kızdığım konu. Aslında bu tarzın eğitim ile de ilgisi var. Bu tip insanlar yıkıcı olmak yerine yapıcı olmayı. Eminim birbirimize bu tarzda yaklaşırsak ülke olarak şu ankinden daha hızlı bir şekilde ileriye gidebiliriz. Bu ülkelerde tanıdığım ve sektörün ileri gelenleri ile yaptığım sohbetler sırasında birbirlerini eleştirenler elbette oluyor ancak bu eleştirilerin aktarılma tarzı ile Türkiye'de insanların eleştirilerini aktarma tarzı çok farklı. her konuda insanlar birbirini kırmak veya sırf karalamak için dandik bir sebep bulup çıkartmada. bir sürü bu konuya uyacak atasözü var hiç mi feyz almadık bunlardan. sürekli birbirine çelme takma konusunda gereğinden fazla istekli görünüyor. İlkokul’dan başlayıp eğitim süreci içerisinde. 5 senedir İngiltere ve Avustralya'da yazılım uzmanlığı yapıyorum. sürekli okuyan. düzeltilmeye çalışılması ve tatbik edilmesi lazım ki bu psikoloji düzelsin. bu kadar ananevi gelenek görenek. Öte yandan acaba bu kaba yorumları bırakan kişilerin benden beklentileri çok mu yüksekti de bu basit programı görünce moralleri bozuldu? Yoksa zaten bu kişileri . problem çözmeyi ve konu hakkında konuşmanın edebini biliyorlar. Diğer ülkelerde bir kişi eğer bir problemi aktarıyorsa yanında 1 veya 2 tanede çözüm önerisi sunar ve cümle sonunda seçimi yine sana bırakmayı da ihmal etmez. İşte bizim öğrenmemiz ve hayatımızın her aşamasında uygulamamız gerekenin de bu davranış tarzı olduğuna inanıyorum. Yani eğitim derken illaki üniversite veya yüksek lisans demek istemiyorum.143 Blogdan Seçmeler arayüz olması beklenemez. yaşanılan çevrede ve girdiğimiz her ortamda uygulanması. sektörünü takip eden insanların kendi işleri konusunda ki kültürleri yaptıkları işlere ve sohbetlerine de yansır doğal olarak. Ama sanırım bunun çözümü düşündüğüm kadar kolay değil. Yani her konu hakkında ahkam kesmenin bir anlamı yok veya en iyisini ben bilirim demenin de. İşlerini iyi bilen. Yeri gelmişken bir gözlemime de burada yer vermek istiyorum bu vasıta ile. ailede. bilmem kaç yıllık tarih ve bilgi birikimi. Milletçe çözmemiz gereken bilinç altımıza işlemiş tabiri caiz ise boktan bir psikoloji. Türkiyede sadece yazılım konusunda değil. Sitenin içeriğine ve vermeye çalıştığı mesaja bakmaksızın buldukları küçük bir ayrıntı ile uğraşıp zaman kaybetmek ve kaybettirmek daha çok biz Türklere has bir özellik gibi görünüyor. Benim işimi yeterince gördüğü içinde daha sonra üzerinde herhangi bir geliştirme yapıp zaman kaybetme gereğide duymadım zaten. Neden yobazlaşıyoruz ve herkesi herşeyi karalamaya çalışıyoruz.

. Ama bazı şeyleri de söyleme ihtiyacı duyuyorum ki belki değişime.Blogdan Seçmeler 144 memnun etmek hayatın her kademesin de zor mudur? Tez konusu olacak bir olgu bu. psikoloji yüksek lisansı yada doktorası yapan var mı aranızda? Neyse ben gene bu konuya tekrar parmak basarak değerli zamanımı boşa harcamış oldum. ilerlemeye katkım olur (bir umut dediler) umuyorum. Tabii bu amaç çok ulvi bir amaç ve kaba yorumlar bırakan kişilerin anlama kapasitesinin bir miktar üstünde ama ne yapalım.

İşi analiz edecek olan ekip İş Analisti’dir (Business Analyst).145 UML ve CBD ile yazılım geliştirme 4 UML ve CBD ile yazılım geliştirme UML İngilizce Unified Modelling Language (Genelleştirilmiş Modelleme Dili) kelimelerinin baş harflerinden meydana gelir. Nesnelerin birbirleri arasındaki ilişkilerini ve kendi iç yapılarını gösterir. CBD İngilizce Component Based Development (Modül (ben PETEK diyorum) Tabanlı Geliştirme) kelimelerinin baş harflerinden oluşur. Genelde IBM Mainframe sistemi için geliştirilmiş fakat Windows veya Unix bazlı sistemlerde de kullanılmaktadır. Bu sayede aktarılan bilginin anlaşılabilirliği arttırılmış olur. İlk olarak OO analiz sırasında aşama aşama ne tür belgelere ihtiyaç duyuluyor buna bakalım. Şu anki en son versiyonu 2. İş analistlerinin üretmesi gereken belgelere bir bakalım. Analizler ilk olarak Senaryoların ortaya çıkarılması ile başlar. Bir standart olarak Object Management Group (OMG) tarafından dünyaya yayılmaktadır. Programlama dilinden ve işletim sisteminden bağımsız bir modelleme dilidir. Bu aktarım sırasında kullanılacak haberleşme dili UML olmalıdır. Modüller bir araya gelerek daha karmaşık modülleri ortaya çıkartabilirler. Senaryolar ortaya çıkartılırken takip edilecek Yazılım Uzmanlığı Üzerine . Sahibi de OMG’dir. çıktıları ve hata durumlarında ürettikleri hata mesajları vardır. 4.1. CBD kavram olarak her türlü projeye uygulanabilir. İş analistleri sektörden aldıkları iş bilgisini yazılımcıya aktarırlar. Burada anlatılan her belgeyi üretmek gerekli değildir. Sırası ile UML ve CBD konularına geçeceğiz. Genelde Nesne Yönelimli sistemlerin analiz ve modelleme aşamalarında kullanılır. Öncelikle OO analiz konularından başlayarak bir giriş yapmak istiyorum.1 Senaryo Belgesi Senaryolar analizi yapılan iş ile müşterileri veya bulunduğu piyasanın hareketleri ile aralarında geçen olaylardır. İşin verdiği tepkiler ve sonuçları burada tanımlanır ve Senaryolar olarak belgelendirilir. CBD’de her modülün bir arayüzü. Olayların tümünün doğrudan işi etkilemesi gerekir. projenin gerekliliklerine göre değiştirilebilir yada yenileri eklenebilir. Fakat Nesne Yönelimli sistemlerde de kullanılabilir. Her modülün girdileri.1 İş Gereksinimlerini Modelleme Aşaması Bu aşama “iş problemlerine” çözümler bulunması ve çözümlerin yazılımlar yolu ile hayata geçirilmesine öncülük eder. Modelleme sırasında kullanılacak bir dizi şematik gösterimi teşkil eder. kendine has özellikleri ve iş kuralları vardır.0’dır. bir veritabanı. Nesne Yönelimli olmayan sistemlerde Hizmet Bazlı Mimari’leri (Service Oriented Architecture SOA) uygulayabilmek amaçlı geliştirilmiş bir yapıdır. 4.

4. Bu belgenin ingilizce ismi Use-Case’dir. Kullanıcı grubunun kadrosu her toplantıda aynı olmalıdır ve değişmemelidir. Bu toplantılarda senaryolar gözden geçirilir.1. belli bir miktarı geçtiklerinde ayrı bir belgede toplanması gerekir.1. Bir kaç senaryo aynı iş kurallarına bağlantılı olarak çalışıyor olabilir.1. Sözlük. Proje ekibinde her senaryodan bir analist sorumlu olmalıdır. Değişim ve İstekler Kontrolü’ne bağlı olmayan bir belgedir ve sürekli güncellenebilir. İGA hem toplantıların planını hem de konuşulacak konuları ortaya çıkarır ve ekibi bu konulardan haberdar eder. Her senaryonun girdi ve çıktıları göz önüne alınarak Genel İşleme Modeli oluşturulur. Tüm senaryoları yönetecek ve toplantıları organize edecek bir İş Gereksinimleri Analisti (konusunda uzman ve deneyimli) bulunmalıdır. Bu belgenin ingilizce ismi Business Rules Register’dır 4.4 Sözlük Belgesi Proje içinde ortaya çıkan deyimlerin ve bilinmeyen kelimelerin bu belgede toplanması gerekir. Değişim ve İstekler Kontrolüne bağlıdır. Eğer belli devlet yasalarının kullanımı söz konusu ise onlarda bu belge içinde yer alır. Senaryo. Bu belgenin ingilizce ismi Glossary of Terms’dür Yazılım Uzmanlığı Üzerine . Bu belgenin ingilizce ismi Business Process Model’dir. UML ve OO analiz konularında eğitim verecek düzeyde olması gerekir. İşleme Modeli analizi yapılan işin nasıl işlediğini ve senaryoların nasıl birbirleri ile bağlantıda bulunduklarını ve aralarındaki ilişkileri anlatır. kullanılacak sistemler belirlenir ve senaryolar ortaya çıkartılmaya çalışılır. İş kuralları.2 İşleme Modeli Belgesi Bu arada İş Analisti tek tek senaryoları ele alırken İşleme Modeli’nide ortaya çıkarır. Buna rağmen her proje ekibi üyesinin değişikliklerden haberdar olması gerekir ve Proje Yöneticisinin değişikliği onaylaması gerekir. Projede kullanılacak hesaplama formülleri ve bu formüllerin parametrelerinin nerelerden geldiği de belirtilir. İş kuralları.UML ve CBD ile yazılım geliştirme 146 metod müşteri yada kullanıcı grubu ile yapılacak aylık toplantılardır.3 İş Kuralları Kütüğü Belgesi Ortaya çıkan mevcut ve yeni iş kuralları bu belgede numara verilerek kayıt edilir. İş Modeli yada İş Kuralları Kütüğü içinde sözlükte kayıtlı kelimeler geçiyorsa sözlük belgesine bir bağlantı verilmelidir. Senaryo belgeleri içinde ortaya çıkartılırken. Her senaryo belgesi için aynı iş kuralını tekrar tekrar yazmak yerine bu belgedeki kayıt numarası ile çağırmak daha mantıklı olur ve zamandan kazandırır. 4. analizin ilk aşamalarında. Bu belge üzerinde yapılacak değişiklikler çok iyi gözden geçirilmeli ve projenin diğer kısımları üzerindeki etkisi çok iyi tanımlanmalıdır.

tartı aletleri. Ürünün kullanıcı tarafından ne kadar zamanda öğrenilebileceği ve kolaylıkla hazmedilebilmesi için ne gibi geliştirmelerin yapılması gerektiği tanımlanmalıdır. Eğer mümkünse firmaların adresleri. Kullanılacak yan araçlar (yazıcı. Eğer projeniz mevcut sistemler üzerinde değişiklik gerektiriyorsa bu değişimin içeriği ayrıntılı biçimde tanımlanmalıdır. Ürünün ağ kaynaklarını ne kadar kullanacağı ve günlük kaç işlemin gerçekleşeceği ve kaç kullanıcının ürünü kullanacağı bilgileri tanımlanmaya çalışılır. ve her türlü kullanıcı belgesi bu belgede belirtilmelidir. Örneğin PHP desteği isteniyorsa Web sunucunun bu desteği verebilmesi veya bir ISAPI dll yardımı ile eklenebilir türden olması gerekir. veri tabanına erişim ve ağ kaynaklarını kullanım hakları belirlenmelidir. Yazılım Uzmanlığı Üzerine . barkod okuyucu.5 Genel Proje Gereksinimleri Belgesi Bu belgede proje için gerekli alt yapı anlatılır. disk kapasitesi gibi bilgilerde bulunmalıdır. Kullanılacak üçüncü parti yazılımların tüm ayrıntıları belirtilmelidir. yazar kasa. Eğer proje sonucu ortaya çıkan ürünün çalışacağı bilgisayar alt yapısında özel bir gereksinim varsa belirtilmelidir. Örneğin projeniz Windows XP service Pack1 ile gelen winhttp. Kurulum. kullanıcı yardım kılavuzları. Kullanıcıların coğrafik olarak nerede olacakları ve ne şekilde ürünü kullanacakları belirtilir. Yazılan projenin mevcut projeleri etkileyip etkilemediği ve ne gibi değişikliklere yol açacağı da burada bir çözüme kavuşturulur.147 UML ve CBD ile yazılım geliştirme 4. İşletim sistemleri ve gerekli parçalarının tanımlanması gerekir.dll dosyasını kullanıyorsa ürünün kurulduğu test ve kullanım ortamlarında bu öngereksinimin olmasına dikkat edilmelidir. Örneğin projenin hayata geçebilmesi için bir Web sunucu gerekiyorsa tüm ayrıntıları ile gerekli herşey açıklanmalı ve desteği istenen teknolojiler tanımlanmalıdır. telefonları veya örütbağ adresleri ile kontak kurulacak kişilerin listesi burada yapılır. nokta vuruşlu yazıcı. Ürünün çalışacağı bilgisayarların ekran çözünürlüğü.1. hafıza miktarı.) ve bunların kullandığı port numaraları ve bağlantı şekilleri açıkça belirtilmelidir. güvenlik sistemlerinin nasıl kullanılacağı. Sistem B ile konuşamıyorsa hizmet X müşteriye sunulamaz. Alt yapı hem geliştirme hemde hayata geçtiğinde çalışacağı ortamı kapsar. kullanıcı hakları ve kısıtlamaları. Eğer güvenli bir biçimde korunması gereken bir veri üzerinde çalışılıyorsa. Bu durumda test ve kullanıcı ortamlarında Sistem B’nin varlığından ve istediğimiz işi yaptığından emin olmalıyız. Sistemin arayüzleri belirlenerek dış sistemler ile nasıl haberleşeceği ve giriş/çıkış verilerinin neler olacağı tanımlanarak dış sistemlerin bu gereksinimleri destekleyip desteklemediği araştırılır. kontrol sistemleri vb. Örneğin eğer yeni sistem. Ürünün lisanlama işleyişi ve lisansların kontrolü belirtilmeli ve bunları kontrol edecek sistemler burada ortaya çıkartılmalıdır. Satın alınması gereken yazılımların yapması gereken işlerde burada tanımlanır.

İşte tüm bu işlemler öncesi ve sonrasıyla belgelendirilmelidir.7 Tool-Tip Kayıt Kütüğü Belgesi Tool-Tip’ler her hangi bir ekran nesnesi (text-box. Bu mesajda kullanıcıdan en az 8 karakter girmesi istenir. 4. 4.8 Mesaj Kayıt Kütüğü Belgesi İş kurallarına göre kullanıcının girdiği verinin kontrolü ve sonrasında çıkacak mesajları kapsar.1.2 Kullanıcı Arayüzü Gereksinimleri Ve Tasarımı Belgesi Tüm yukardaki belgeler ilk sürümlerini verdiğinde Kullanıcı Arayüzlerini planlamaya geçebiliriz. ileride koda dönüşmeyecek her türlü bilgi bu belge içinde toplanıyor ve tüm bu gereksinimler hem test ekibi için hemde yazılım geliştirme ekibi için bir temel yardım kaynağı oluyor. Tüm Tool-Tip’lerin kayıt edilerek belgelendirilmesi gerekir.1. Çok genel bir gösterim şeklidir ve veritabanı modeli ile yada sınıf şemaları ile karıştırılmaması gerekir. Uyarı. drop-down. Bu belgenin ingilizce ismi Tool Tips Register’dır. buton. Örneğin bir programda iş kuralına göre 8 karakterden az şifreye izin verilmiyordur fakat kullanıcı şifresini tanımlarken 5 karakter girmiştir. yada girilecek veri konusunda bilgilendirirler. İş Nesne Modeli. tüm iş nesneleri ve dışarıdan heberleşilen tüm nesneleri gösteren modele denir. 4. Butona bastığında iş kuralına göre girilen şifre kontrol edilir ve kriterlere uymadığı saptanır. Error) olarak üçe ayrılır ve her hatanın bir numarası olmalıdır. İş Nesne Modeline giren her sistem ve/veya parçası yazılı olarak anlatılmalıdır. dışarıya ne gibi mesajlar gidiyor ve ne gibi sistemler ile alış veriş içinde olduğumuz belirlemek için idealdir. Bu belgenin ingilizce ismi Message Register’dır. ve kullanıcıya bir hata mesajı ile bilgilendirme yapılır. Kullanıcıyı sunulan bilgi. liste kutusu) üzerine fare ile gelindiğinde yada durum barında (status bar) ortaya çıkan kısa yardımlardır. Bu belgenin ingilizce ismi Non-Functional Requirements’dır. Kullanıcı Grubu toplantılarında İş Senaryolarına göre adım adım gidilerek sunumu ve girişi yapılacak Yazılım Uzmanlığı Üzerine . Mesajlar Bilgilendirme.UML ve CBD ile yazılım geliştirme 148 Görülüyor ki analiz aşamasında. Analiz edilen iş kendi içinde de belli parçalara ayrılır. Büyük sistemi kolayca görmek.1. Bu belgenin ingilizce ismi Business Object Model’dir. Her parçanın (nesne) bir arayüzü ve haberleşme için kullandığı mesajları vardır. Hata (Informational. Bu şemaların bir UML aracı ile çizilmesi şarttır. 4. Her Tool-Tip bir numara verilerek kaydedilir. Mesajda ki tamam tuşuna basınca girilen şifre silinerek boşaltılır ve imleç şifre kutusuna konumlanarak yeni şifre girişi için beklemeye geçer. Warning. Görünüş olarak sınıf şemalarına benzer fakat sınıf isimleri firmanın bir bölümünü yada başka bir sistemin parçasının adı olur.6 İş Nesne Modeli Belgesi Bir işi analiz ederken ortaya çıkan sınırlardan dışarıya her uzantıda farklı bir sistemin hizmetleri kullanılır.

Böylece gelecekte yazacağımız modüllerde ortaya çıkar. Örnek olarak: Yazılım Uzmanlığı Üzerine .1 Uygulama Mimarisi Belgesi Bu belge uygulama için önemli olan modülleri listeler ve özelliklerini anlatan belgelere bağlantılar verir. text-box. Kullanıcı Grubu Toplantılarında bu prototipler kullanılarak onay alınmaya çalışılır. Ekran akışları ve standardı şemalar ile belirlenmelidir.3. Ayrı bir başlık altında incelenir ve projede üretilen her modülün hangi katmanlarda yer aldığını ve diğer katmanlardaki modüller ile nasıl haberleştiğini gösterir.149 UML ve CBD ile yazılım geliştirme verinin düzeni ortaya çıkartılır. Bu belge ilk sürümünü verirken ekran prototipleri geliştirilebilir. Çok karmaşık sistemlerde mantıksal olarak sistemi bölerek ve her parçaya bir isim vererek işi kolaylaştırabiliriz.3 Sistem Modelleme Aşaması 4. İsim Tip Hizmetin yada modülün genel Hizmet/Modül ismi API Uygulama/RDBMS Diğer Bağlantı Bu hizmet yada modülü anlatan belgeye bağlantı. Her ekran konrolünün (buton. liste kutusu) ismi. 4. açıklaması. Bu belgenin ingilizce ismi User Interface Requirements’dır. Tool-Tip numarası ve Mesaj numarası bu belgede yer almalıdır. Ekranlarda neler isteniyor. düzeni nasıl olmalı gibi problemlerin kullanıcı tarafından önerilmesi ve tartışılması gerekir. yaptığı iş. Aşağıdaki gibi bir tablo şeklinde olabilir. Ayrıca her modülün sistemde hangi mimari katmana oturduğunu da gösterir.

UML ve CBD ile yazılım geliştirme 150 v0. text. no knowledge of other components or direct calls. scanning. session / state • no business data • minimal business logic (just calls to lower components) (No user interface allowed . Örnek olarak: Yazılım Uzmanlığı Üzerine .only business and control logic.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. no control logic. Ürünü kuracağımız donanım ve yazılım yapısını bir şema ile anlatmamız gerekir. 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. 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 yapılacak yapıyıda burada belirtebiliriz. 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. 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.

Ürünün parçalarının hangi platformlara kurulacağı hakkında da bilgi vermek gerekir. Fazla ayrıntı verilmez. diğer bir parçası istemci tarafında hizmet veriyor olabilir. Modüllerin kimi parçaları veritabanı sunucusu üzerinde çalışıyorken. Dağınık sistemlerde her modül farklı bir sunucuda çalışıyor olabilir ve aralarındaki haberleşme için belli kanalları kullanıyor olabilirler. 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 Yazılım Uzmanlığı Üzerine . Tüm bu ayrıntıyı da Ağ Kurulumu başlığı altında bu belgeye dahil edebilirsiniz. Kurulum yapılacak yapının ağ mimarisi genel olarak tanımlanır. Örnek olarak bu şemada bir ürünün parçalarının farklı sistemler üzerine nasıl kurulacağı ve haberleşeceği belirtilmiştir: 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.151 UML ve CBD ile yazılım geliştirme Bu şema kurulumun genel bir planını gösterir.

Aritmetik modülü. Çıkarma(). 4. Tüm hizmetler bir tablo içinde sıralanır ve kendi operasyon belgelerine bağlantılar verilir. Herhangi bir sistem yada kullanıcı bu hizmetleri kullanarak modül ile haberleşir ve istediği işleri yaptırmaya çalışır. 4. Bir Entity Relationship Şeması ile tablolar arasındaki ilişkiler gösterilir. Anahtar sahalar. Dış sistemler senaryo şemalarında AKTÖR olarak belirirler. Her hizmetin bir giriş verisi ve çıkış verisi ile hata durumlarında üreteceği mesajları vardır.UML ve CBD ile yazılım geliştirme 152 Eğer standart dışı bir haberleşme protokolü kullanılacaksa bununda belirtilmesi gerekir.3. Eğer bağlantı kurmak istediğimiz dış sistemde bizim istediğimiz hizmetler yok ise bu hizmetleri ayrıntılı biçimde yazarak istememiz gerekir. Mesela aritmetik modülü isminde bir modülümiz olsun. Veritabanının uygulanacağı sisteme özel durumlar varsa bunlarda belirtilir. Hizmetler o modülün arayüzünü oluştururlar ve dış dünya ile bağlantı kuracağı kapılarıdır. Siz Muhasebe modülünü yazarken Aritmetik modülünün sunduğu bu hizmetleri kullanacaksınız. Öncelikle kendi ürettiğimiz arayüzü ve bağlantı kuracağımız dış sistemin arayüzünü tanımlayarak işe başlamamız gerekir. Yazılım Uzmanlığı Üzerine . tabloların büyüme hızı. mesajları ve verinin düzenini belirler. Bu belgenin ingilizce ismi Application Architecture’dır. Belgenin ilk sürümden sonra değişiklik istenirse tüm kontrol Veritabanı Yöneticilerine bırakılır. Giriş/Çıkış verilerini. Her tablo ve saha açıklamaları ile beraber yazılır. Kullanılacak Stored-Procedure ve SQL programcıkları yazılır ve test edilir. yapılan her işlemin kaydını ve kimin yaptığını veritabanında saklayabilir.3. Bir modülün arayüzüne ait tüm hizmetlerin genel olarak anlatıldığı belgeye Hizmet Modeli denir. Bağlantı kuracağımız arayüzden hangi hizmetleri kullanacaksak bunları da ayrıntılı belirtmemiz gerekir.4 Hizmet Modeli Belgesi Her modülün sunduğu çeşitli hizmetler vardır.3 Veritabanı Tasarım Belgesi Bu belge geliştirilecek ürünün veritabanı hakkında ayrıntılı bilgi içerir. Bu arada veritabanı ile ilgili işlemleride gerçekleştiriyor olabilir. 4. Bu belgenin ingilizce ismi External Interface Requirements’dır. Bu belgenin ingilizce ismi Service Model’dir.3. Bu modülün sunduğu hizmetler Toplama(). Bu belgenin ingilizce ismi Database Design’dır. öngörülen işlem kapasiteleri ve tahmini kayıt kapasiteleri belirtilmelidir. bu hizmetleri oturup tekrar yazmaya gerek yoktur. Çarpma() ve Bölme() olsun.2 Harici Arayüz Gereksinimleri Belgesi Geliştirdiğimiz sistem ile dış sistemler arasındaki haberleşmeleri ele alan bir belgedir.

3. çıkış ve hata mesajları ile tüm algoritmasının anlatıldığı belgedir. Bu belgenin ingilizce ismi Object Persistence Document’tir. otobüs gibi araçlar ile personeli evinden işine. Yani tekrar tekrar yazmak yerine iş kuralı yada senaryo belgesinin yeri ve sayfa numarası belirtilir. Giriş ve çıkış verileri formatları ile beraber verilir. Çözüm getirilen Senaryolara. Hata durumlarında üretilecek mesajlar belirtilir.5 Örnek Proje ile OO ve UML Bu bölümde UML ile adım adım bir projenin nasıl uygulanacağını analiz aşamasından başlayarak test işlemlerine kadar ele alacağız. işinden evine. 4. Bu belgenin ingilizce ismi Service Operation Document’tir. 4. Bünyesinde barındırdığı minibüs. Örneğin bir sınıf nesnesi bir veritabanı tablosuna yada XML belgesine dönüşebilir. 4. 4. veritabanı tabloları veya XML belgeleri ile karşılaştırmalı tablolar halinde üretilmelidir. Modelleme sırasında ortaya çıkan sınıf kütüphaneleri yada modüller ve modüllere ait hizmetler.4 Prototipleme Aşaması Tüm bu belge üretimi devam ederken ekran prototipleri de tasarım edilir ve kullanıcı grubu toplantılarında onaya sunulur. gerçeklenen iş kurallarına bağlantı verilir. Hem böylece elinizde yazılım sürecinde kullanabileceğiniz hazır temalar olmuş olur. Toplantılar sonucunda ekranlar değişikliğe uğrayacaktır. Örnek firma olarak kullanacağımız firma bir personel taşıma firması. Kullanıcının aktif katılımı ile sunumu yapılacak verinin düzeni belirlenir. belli güzergahlar içerisinde taşıyan bir yapıya sahip.3. Ayrıca kişilerin özel olarak araç kiralamak istediği Yazılım Uzmanlığı Üzerine .153 UML ve CBD ile yazılım geliştirme Component XYZ interface 1 COMPONENT SPECIFICATION interface 2 Figür 1: İki arayüz içine toplanmış hizmetler görünüyor.5 Nesne Devamlılığı Belgesi Bu belge proje içinde varolan nesnelerin ne tür biçimlere dönüştüğünü gösterir. Prototipler Visio gibi bir programlama yapılabileceği gibi yazılım geliştirme için kullanacağınız araç ile de yapılabilir.6 Hizmet Operasyon Belgesi Bir modül arayüzü veya sınıf içerisinde hizmet olarak bulunan fonksiyonların giriş.

BİG Yazılım ve Ahmet Bey arasında geçen ilk toplantıda müşteri istekleri kaba taslak ortaya çıkmıştı. İlker Bey aynı zamanda Sistem Modelleme ve Analiz konularında firmadaki en yetkili kişidir ve UML ve OO hakkında firma içi eğitimleri yönetmektedir. Bu genel senaryolar oluşturulacak sistemin yapısını ana hatları ile ortaya koyar. İlk raporda yer alacak iş senaryoları “Genel Senaryolar” olacaktır. daha fazla zamana ihtiyacı olup olmadığını.5.1 Senaryolar (Use Cases) Burada UML’in ingilizce kelimelerinden biraz bahsedelim. Ayrıca müşteri ile firma arasındaki ilişkileri daha yakın tutmak için düşündüğü bir dizi yeni işlemi de kullanıma örütbağ üzerinden açmak istediğini belirtti. Firmamızın ismi AntTur olsun. problemlerin ne kadarının bir bilgisayar programı ile çözülebileceğini araştıracaktır. Detay Fonksiyonlar 4. müşteriye düşünmesi için zaman tanımak ve yeni isteklerin ortaya çıkmasına zemin hazırlamaktır. Tabii ki bizde üstesinden gelebileceğimizi söyleyip bu işi aldık. Projeye kısa olarak ATOS diyelim (AntTur Otomasyon Sistemi). ortaya çıkan müşteri ihtiyaçlarının bir listesini ve bu ihtiyaçların çözülebilirlik derecelerini de raporunda belirtecektir. İlker Bey ilk olarak 2 ayını Ahmet Bey’in ofisinde geçirecek ve personel taşıma işini analiz edecek. ne kadar benzin ve yol masrafı yaptığını. Analiz aşamasında senaryolar 3 aşamada incelenir ve sırası ile detaylandırılarak oluşturulur. bünyesinde çalışan araçların kayıtlarını tutmak. hangi firmaların servislerini çektiğini görmek. Bunun için piyasada hazır bir program bulamadığını ve bu projeyi yapıp yapamayacağımızı sordu. Genel Senaryolar 2. Yazılım Uzmanlığı Üzerine . Genel Senaryolar dediğimiz ise “Summary” olarak adlandırılır. BİG Yazılımdan İlker Bey. Bu arada yazılım firmamızın ismide BİG Yazılım olsun. Bu kitapta bahsettiğim “senaryo” terimi UML’de adı geçen “Use Case”’dir. Her hafta sonunda yönetim kuruluna yada bağlı olduğu birime rapor vererek analizin ne aşamada olduğunu. 1. AntTur’un sahibi Ahmet Bey bize gelerek. analizci gözü ile nasıl çözüme kavuşturulacağını ortaya koyar. bu projeye atanmış ve proje yöneticisi olarak görevine başlamıştır. Yapılacak iş mevcut isteklerin detaylandırılıp. boşta olan araçların listelerini görmek gibi bir dizi işlemi otomatize etmek istediğini belirtti. Başka bir deyişle müşteri isteklerinin.UML ve CBD ile yazılım geliştirme 154 durumlarda da yardımcı olmakta. Müşteri Hedefleri 3. Üç arkadaşın baş harfleri. hangi güzergahlardan gittiğini.

Konu: AntTur Taşımacılık Ltd. Başlangıç: 5 Mart 2003 Süreç: İş Analizi ve İsteklerin Modellenmesi Sayın Yönetim Kurulu üyeleri.155 UML ve CBD ile yazılım geliştirme Müşteri Hedefleri “User Goal” ve Detay Fonksiyonlar’da “Sub-function” olarak geçer. Eylem planım içerisinde müşteri tarafında geçirdiğim zaman zarfında Genel Senaryolar ortaya çıkartılmış ve müşteri isteklerine bilgisayar ortamında çözüm aramaya çalışılmıştır. İlk raporda yer alacak genel senaryo başlıklarına dikkat ediniz. İlker Bey ilk haftalık çalışmasından sonra müşteri isteklerini hemen hemen ortaya çıkarmış ve başlıklar halinde belirlemiştir. 789Firmalardan kontak kurulan kişilerin kayıtlarının tutulması Servis aracı sahiplerine yapılan ödemelerin yönetilmesi Kar zarar analiz raporları Ant Tur ve Müşterileri arasında olan ilişkiler Yazılım Uzmanlığı Üzerine . Sürekli müşteri tarafında işin içerisinde bulunmuş ve işi analiz etmeye çalışmıştır. Bu genel senaryolar yönetim kuruluna konu hakkında bilgi verecek ve planlama aşamalarında yardımcı olacaktır.) 456Servislerin güzergahlarının yönetimi Yolcuların yönetimi Aksayan servislere/şoförlere puan yöntemi uygulanması ve bu servislerin neden aksadığının araştırılması. konunun anlaşılması için daha iyi olacaktır sanırım. işinden evine taşımak anlamında kullanılıyor. Yavaş yavaş müşteri istekleri ortaya çıkmış ve bu isteklere bilgisayar ortamında çözüm aranmaya başlanmıştır. Projesi ATOS. Çıkardığı sonuçları Ahmet Bey ile paylaşmış ve gerçekten bu problemlere çözüm arayıp aramadığını sorgulamıştır. Yazılımdan yapması beklenen 123Çalışan araçların yönetimi Çalışan şoförlerin yönetimi Servisleri çekilen firmaların yönetimi (“Servis Çekmek” taşımacılık dilinde bir firmanın personelini evinden işine. Şti. Bu terimlerin açıklamalarını ileride göreceğiz. Şimdi İlker Bey’in ilk hafta sonunda Yönetim Kuruluna verdiği rapora bir göz atalım. Ahmet Bey çıkartılan her sonuçtan haberdardır. Kavramların hepsini birden aynı anda vermektense yeri geldikçe örnekler ile açıklamak. İlker Bey burada ortaya çıkartılan senaryoları daha sonra yazılım ekibine aktaracaktır.

finansmanın yüzde kaçı harcandı. sistem analist. Projenin “İş Senaryoları Detaylandırma” safhasına geldiğinide görüyorlar. Testler projede payı olan herkes tarafından yapılır. Burada eXtreme Programing’den bahsedelim. Böylelikle Yönetim Kurulu üyeleri işin devam ettiğini ve ana hatları ile konunun ne olduğunu biliyorlar. Personel Taşıma işi konusunda ve bu iş içerisinde kullanılan deyimler hakkında da bilgi sahibi oluyorlar (servis çekme).UML ve CBD ile yazılım geliştirme 156        Servis durumlarının örütbağı üzerinden takibi (çalışılan her firmanın yöneticisi servislerin gelip gelmediğini örütbağı üzerinden kontrol edebilsin) Müşterinin isteğine göre servis aracı bulmak Şoförlere vardiyalı işler bulmak Araç sahiplerini bakım zamanları konusunda uyarmak Yeni araçların sisteme girilebilmesi için sorulacak soruların basılması Örütbağ üzerinden. Bundan sonra Yönetim Kurulu’nun tek ihtiyacı yüzde rakamlarıdır. Öncelikle İlker Bey ve Yönetim kurulu arasındaki bilgi akışı çok üst seviyede ve detay bilgi barındırmıyor. Yani senaryolardan hepsi gerçekten müşterinin çözüm aradığı konulardır. İlker Bey konumu itibarı ile Ant Tur ile BİG Yazılım arasındaki köprü görevini görür ve bilgi akışını sağlar. Bu metodolojide her aşamadan sonra bir test yer alır. Amaç ürün ortaya çıkartıldığında hiç bir hatanın (veya en az hatanın) olmamasıdır. zaten daha da fazla bilgiye ihtiyaçları yok. Yazılım Uzmanlığı Üzerine . proje lideri. Son paragrafta Ahmet Bey’in genel senaryoları test ettiğinden bahsediliyor. yazılımcılar yüzde kaç işlerini bitirdi vs gibi. Müşteri. boşuna ürettiğimiz bir senaryo yoktur. Bu arada veritabanıda modellenerek ortaya çıkarılacaktır. Projenin %10’luk Genel Senaryolar safhası bitmiş ve Ahmet Bey tarafından test edilmiştir. Saygılarımla İlker Dağıstanlı Bu raporda dikkat edilmesi gereken konulara bir bakalım. Buradaki iletişim ne kadar akışkan ve güçlü olursa daha sonra ileride çıkacak aksaklıkların çoğu önlenmiş olur. Böylece her senaryonun büyük sistem içerisindeki güvenliği arttırılmıştır. Proje yüzde kaç bitti. araç sahipleri için kayıt olabilme imkânı Ekstra işlerin araç sahiplerine bildirilmesi ve onay alınması Bundan sonraki 2 aylık eylem planım içinde genel senaryolardan detay senaryolara inilecek ve detay senaryoların yazımına başlanacaktır. programcılar. Evet Ahmet Bey çıkartılan bu senaryolardan haberdardır ve hepsini okuyarak doğruluğunu kabul etmiştir. yönetim kurulu.

İlker Bey’in ve yazılım uzmanlarının birer bilgisayarı olduğuna göre ve hepside e-mektup kullanabildiğine göre belgeleri kağıda basmak pek iyi bir uygulama değildir. var mı? Firmanızda uyulması gereken kuralları anlatan bir dosyanız var mı? İçörütbağınızda projeler ve eğitim ile ilgili yeterli miktarda bilgi mevcut mu? Yeni kişilere yeterli eğitimi veriyor musunuz? Eğer bu sorulara samimi olarak evet cevabı verebiliyorsanız. Ayrıca standartlara uyulup uyulmadığını da test edeceklerdir. üretkenliği müsbet biçimde etkiler. Zaten kağıda basılmış belgelerin sürüm kontrolü çok güç olur. Eğer firmanız UML ve CBD gibi kavramları kullanmaya başlayacaksa. Bu arada kağıt israfını önlemek ve ağaçları korumak amaçlı olarak. Ayrıca bu senaryoların hepsi belli bir dizin altında toplanmalı ve herkesin kolayca ulaşabileceği bir yerde durmalıdır. Burada biraz durup önemli bir konudan bahsetmek istiyorum.157 UML ve CBD ile yazılım geliştirme test ekibi. Senaryolar yazılırken dikkat edilecek pek çok konu var. Firma içindeki kültür ve bilgi akışı bu koyulan kurallar sayesinde herkesin anlayabileceği bir seviyeye gelmiş olmaktadır. Bir toplantıya girdiğinizde her kesin en son sürüm belgelere sahip olması gerekir. Belli zaman aralıklarında yedeğinin alınmasıda gereklidir. Projeye verdiğimiz kısa isim gibi (ATOS) senaryolara da bir kısa isim verelim (SN). Oluşturulacak şablon Word belgeleri ile bu problem rahatça çözülür. Şablonun nasıl doldurulacağı bilgiside şablon içinde bulunmalıdır. Ahmet Bey’in. Yazılım Uzmanlığı Üzerine . İlker Bey’in bu ilk raporundan sonra yapacağı iş Genel Senaryolar’ı yazmak olacaktır. üretilen hiçbir belge yazıcıdan basılmaz. Diğer yarısıda mevcut bilgiyi güncel tutmaktan geçiyor. öncelikle eğitim için vakit ve nakit harcayıp her çalışanın aynı seviyede bilgiye sahip olmasına özen gösterin. Yönetim Kurulunun. Firmanızda yeni çalışmaya başlayacak kişilere ne gibi işlemler uyguluyorsunuz. Tabii ki her biri farklı testler yapacak ve ortaya çıkacak ürünün hatasız ve isteklere tam cevap verecek bir ürün olmasına dikkat edeceklerdir. ve hiç bir yere kağıda basılı biçimde taşınmaz. destek ekibi vb projeye en ufak bir katkısı olan kişi test işlemlerinde yer almalıdır. Bu da ancak belgeleri sayısal ortamda tutmak ile mümkün olur. Her senaryonun bir ismi ve numarası olmalıdır. yolun yarısını katetmiş oluyorsunuz. Firmanızın belli bir düzeni var mı? Firmanızda kullandığınız her ürünün bir eğitim kitapçığı vb. Her şeyin belli bir standartta olması ve herkesin bu standartları bilmesi haberleşmeyi akışkan kılar. Öncelikle senaryoların BİG Yazılım içinde belli bir biçimi olmalıdır. Bu işlem gene müşteri tarafında ve belli standartlara göre yapılacaktır. Firma içindeki iletişimin aynı iletişim kanalları ve sistemleri kullanılarak yapılması.

UML ve CBD ile yazılım geliştirme 158 Yukarıda bahsettiğimiz 3 çeşit senaryo modelinin ana şablonuna bir göz atalım. Bu senaryo İlker Bey’in ilk raporunda geçen ilk maddenin yazılmış halidir. Yazılım Uzmanlığı Üzerine .

159

UML ve CBD ile yazılım geliştirme

ATOS.SN1 Araç Yönetimi
Senaryo # Use Case Name Kapsam Hedef Seviye Aktör(ler) Hedef Amaç 1 Araç Yönetimi İş Süreci (Şeffaf-Kutu) Genel Senaryo Son Kullanıcı (birincil) Bu senaryoda firma bünyesinde çalışan/çalışmış tüm araçların bilgilerinin tutulması hedeflenmiştir. Araç üzerinden araç sahibine ve firmaya da ulaşılabilir. Firma bünyesinde çalışan pek çok araç vardır. Bunların doğru biçimde yönetilmesi, yerleştirilmesi, bakımlarının yapılması gibi konuları organize etme gereği ortaya çıkmıştır. Bu senaryo Araç Yönetiminin Genel Senaryosudur. Kırmızı 1- Araç hakkındaki müşteri şikayetlerinin tutulması zorunluluğu var mıdır? 2- Bir firmaya atanmış bir araç ihale zamanı dolmadan değiştirilebilir mi? Aynı özelliklere sahip araçların birbirinin yerine kullanılması olabilir mi? Araçların arıza yapmaları halinde gerekli olabilir. Bir aracın veritabanında yer alabilmesi için son bakım tarihinin son 6 ay içinde olması gerekir. Başarılı durumları Minimum durumları Tetikleyici Araçlar ile ilgili her türlü işlem için bu senaryo dikkate alınır. bitiş Yok bitiş Yok

Olgunluk Varsayımlar Sorular

Öndurumlar

Ana İş Akışı 1- Aracın kayıt edilip edilemeyeceği araştırılır (son bakım tarihi 6 aydan geri olmayacak) 2- Aracın tüm bilgileri araç sahibinden talep edilir 3- Araç kaydedilir 4- Son bakım tarihleri 6 ayı geçen araçların sahipleri uyarılır. 5- Firmalara atanacak araçlar kriterlere göre ortaya çıkarılır. (koltuk sayısı + Şoförün oturduğu semt) 6- Araçlar her servis aksattığında puan verilir. Alternatif İş Akışı 1Yok İş kuralları  Araç son bakım tarihi 6 aydan geri olmamalıdır Notlar  İlişkili Şemalar Belge Tarihçesi Tarih Sürüm 6/Mart/2003 0,1 10/Mart/2003 0,1

Açıklama İlk sürüm oluşturuldu İş akışına 6. madde eklendi Yazılım Uzmanlığı Üzerine

İsim/Soyisim İlker Dağıstanlı İlker Dağıstanlı

UML ve CBD ile yazılım geliştirme

160

Buradaki tasarım sadece bir öneridir ve kendi isteğinize göre şablonu değiştirebilir, gerekliliklere göre yeni sahalar ekleyebilir ve MS Word şablonlarına “header, footer” ekleyerek firmanızın ismini, logonuzu, belgenin sürüm bilgilerini, sayfa numaralarını, belgenin bulunduğu dizini, en son üzerinde çalışan kişi vb. gibi bilgileri de koyabilirsiniz. Hatta bir veritabanı hazırlayıp bu bilgileri tutacak bir program hazırlamak ta mümkün, önemli olan ne kadar zamanınız ve naktiniz var? Senaryoda adı geçen alanlara bir bakalım. 4.5.1.1 Senaryo başlığı

Senaryo başlığı proje ismi ve senaryonun kısaltılmış hali ile senaryonun numarasından ve isminden oluşur. Ek olarak en sona sürüm numarasınıda ekleyebilirsiniz fakat çokta gerekli değildir.Yani: proje ismi + SN + senaryo numarası + Senaryo ismi + (sürüm no) Örneğimizde “ATOS.SN1 Araç Yönetimi” senaryo başlığıdır. Proje ismi ve SN1 nokta işareti ile birbirinden ayrılmıştır. 4.5.1.2 SN#

Senaryonun numarasını tutar. Her senaryoya birden başlayarak bir numara vermek gerekir 4.5.1.3 SN isim

Senaryonun ismi burada belirtilir. Açıklayıcı bir kelimeyi takiben bir fiilden oluşur. Birincil Aktörün yapmak istediği işi belirtir. Örneğin “Yeni Müşteri Oluşturma”, “Araç Yönetimi” vs. 4.5.1.4 Kapsam

Senaryonun kapsamı belirtilir. Kapsam ileride ortaya çıkacak modüllerin (component) isimleri olarak düşünülebilir. Örneğimizden anlaşılacağı üzere tasarım aşamasına geçtiğimiz zaman “Araç” isminde bir modülümüz olacaktır. Kapsamlar, üzerinde tartışılan sistemlerde olabilir (İş Süreci, Sistem, Alt-Sistem). Bu üç sistem için oluşturulan Senaryo’ları Şeffaf-Kutu (white-box), yada Kara-Kutu (blackbox) olarak tanımlamamızda gerekir. Şeffaf-kutu olan senaryoların girdi ve çıktı’ları ile içinde geçen tüm işlemler ve veri yapısı tamamen Aktör’ler tarafından bilinir. Öbür taraftan Kara-Kutu senaryolarının sadece girdileri ve çıktıları bilinir. Bu konuyu Modül-Tabanlı Geliştirme konusunda daha ayrıntılı anlatacağım. Henüz modüllerimizi kodlayıp, kullanıma sunmadığımız için sadece bu kadar bilmemiz yeterlidir.

Yazılım Uzmanlığı Üzerine

161

UML ve CBD ile yazılım geliştirme

4.5.1.5

Hedef seviye

Hedef Seviye, senaryonun 3 aşamalı senaryolandırma sınıflarından hangisine ait olduğunu söyler (Genel Senaryolar, Müşteri Hedefleri, Detay Fonksiyonlar). Senaryoları bu şekilde sınıflandırmanın amacı, analizin belli bir düzen içerisinde olmasını sağlamak içindir. Konu hakkında genel bilgi sahibi olmak isteyen yönetici ekibi sadece Genel Senaryo sınıfındaki senaryoları okuyarak işin ne olduğunu kavrayabilirler. Genel Senaryolar, sistemi tanımlayıcı 3 ana görevi yerine getirir. 1. 2. 3. Büyük sistem içerisinde Müşteri Hedeflerinin nereye oturduğunu gösterir. Müşteri Hedeflerinin hayat döngülerini belirtir. Bir kitabın içindekiler bölümü gibi daha alt seviye senaryoların başlıklarını belirtir

Müşteri Hedefleri ise gerçekte birincil aktörlerin yapmak istedikleri işleri belirtir. Müşteri Hedefi olan bir senaryo “Aktör bu senaryoyu uyguladıktan sonra sistemden mutlu bir şekilde ayrılacak mı?” sorusuna “Evet” yanıtını vermeye çalışmaktadır. Detay Fonksiyonlar, Müşteri Hedeflerinin yerine getirilmesi için atılacak adımları belirler. Detay fonksiyonları sadece gerçekten ihtiyacınız varsa ekleyin. Örneğin “Sisteme Oturum Aç”, “Ürün bul”, “Müşteri bul” gibi işlemler birer detay fonksiyondur. 4.5.1.6 Aktörler

Aktör, senaryo ile ilişkili olan veya senaryoyu kullanan kişi veya sistemdir. Unutmayın bir senaryoyu başka bir sistemde kullanabilir. Her senaryo için en azından bir adet birincil aktör olmalıdır. Eğer senaryoyu kullanan başka aktörler de varsa onlarıda sıralamak gerekir. 4.5.1.7 Hedef

Senaryonun hedefini belirtir. Sadece, senaryo ile yapılması amaçlanan iş anlatılır. Senaryo NE işe yarar sorusuna cevap verir. Bir paragraftan fazla olmamalı ve senaryoyu okuyan kişiye genel bir bilgi vermelidir. Detay bilgi barındırmaz. 4.5.1.8 Amaç

Senaryonun sistemde NEREYE oturduğunu söyler. Bir işi veya sistemi analiz ederken, o sistemi parçalara bölmek ve küçük parçalar halinde ele almak bize zaman kazandırır. Bu açıdan bakıldığında her

Yazılım Uzmanlığı Üzerine

Sarı: Senaryo. Gümüş: Senaryo başka bir projede yeniden kullanılmıştır. Küçük değişiklikler yapılmış olabilir. fakat henüz onaylanmamıştır. Her zaman karşımıza çıkmasada bazı durumlarda gerekli olabilmektedir. Kırmızı: İş süreci senaryosu tanımlanır fakat henüz detaylandırılmamıştır. 4. Renkler ile kodlama UML diline oturmuş bir gösterim biçimidir.5.5. Yazılım Uzmanlığı Üzerine . kontrol mekanizmaları için yayınlanabilir bir hale gelmiştir. Senaryonun bitirilebilmesi için temel adımlar ortaya çıkarılmış ve alternatif adımlardan önemli olanlar tamamen genişletilmiştir. Şablondaki tüm sahalar doldurulmuş ve Soru kısmında hiç bir soru kalmamıştır. 4..1. Turuncu seviyesi biraz uzun sürdüğü için Turuncu1 Turuncu2. Turuncu: Senaryonun iş akışı şekillenmeye başlar ve sorular bölümünde sorular belirmiştir.5.. Numaralı bir liste şeklinde ve hiyerarşik bir yapıda olması gerekir.1.5. biçiminde çoğaltılabilir. Yeşil konumuna gelmiş bir senaryonun Sorular kısmında hiç bir soru olmaması gerekir. 4. Mavi: Senaryo onaylanmış ve bitmiştir. Altın: Senaryo birden fazla başka projede değişiklik yapılmadan kullanılmıştır. Ayrıca senaryonun büyük sistem içerisindeki durumuda güvenli bir hale gelmiştir (Gerçekten sistemin bu senaryoya olan ihtiyacı ortaya çıkartılmıştır). Ön durumlar gerçeklenmeden senaryo işleme başlayamaz.1.1.UML ve CBD ile yazılım geliştirme 162 senaryo büyük sistemin bir parçasıdır ve genelde diğer senaryolar ile ilişki içerisindedir. Ayrıca “Amaç” senaryonun sistem için NEDEN önemli olduğunu da söyler. Son Gereksinim Modeli’nde yerini alır.11 Sorular Senaryonun tamamlanabilmesi için ortaya çıkması gereken konuların sorulduğu bölümdür.10 Varsayımlar Senaryonun çalışabilmesi için oluşacak varsayımları burada listeleriz. Yeşil: Senaryo bir sonraki süreç için hazırdır. 4.9 Olgunluk Olgunluk senaryonun hangi süreçte olduğunu gösterir.12 Ön durumlar Senaryonun işlemeye başlayabilmesi için gerekli ön durumları belirtir.

sistemin alacağı durumdur.1.14 Minimum bitiş durumu Minimum bitiş durumları.163 UML ve CBD ile yazılım geliştirme 4.1. senaryonun bitiş durumu ne olursa olsun (başarılı yada başarısız) her zaman doğru olacak durumlardır.5. Bu akış aktör ile sistem arasında geçen konuşmadır. 4. Buradaki numaralı listeye bir bakalım. 4. 4. Bazen senaryonun ilk adımı tetikleyici adım olabilir.5. senaryonun çalıştırıldığına dair sonuç kütüklerine bir kayıt eklenir. Örnek olarak bir senaryo başarılı veya başarısız biçimde sonlanırsa. Her adım için:     aktör olabilir.5. Sistem şu bilgiyi gönderir) Aktörlerin isimleri ile kullanılmasına özen gösterin. Senaryonun akışı ön koşullardan sonlanma koşullarına doğru olmalıdır. O zaman burada tekrar etmenin gereği yok.1. Kütüklere kayıt ekleme işlemi her iki durumda da geçerlidir.15 Tetikleyici (seçmeli) Tetikleyici bu senaryonun işlenmesini başlatan olaydır. Yazılım Uzmanlığı Üzerine .13 Başarılı bitiş durumları Senaryo bittikten sonra. Buna göre alternatif çözüm yollarını ve hata durumlarındaki senaryonun vereceği yanıtı bu kısımda ele alıyoruz.1. Fakat tetikleyici olaylar birden fazla ise burada listelemek iyi olur.16 Ana iş akışı Senaryonun hedefine ulaşabilmesi için gerekli adımların sıralanması ile oluşturulur. Her hangi bir hata durumunu barındırmaz.5. Ana iş akışı sonunda yada Alternatif iş akışları sonucunda oluşacak her türlü başarılı bitiş durumu burada numaralı liste biçiminde not edilir. 4. Her adım bir aktör ile başlar (Aktör şu işlemi yapar.5. kullanıcı arayüzünü değil. Her türlü ön koşulun ve tahmin edilemez hataların ortaya çıkmayacağı var sayılır.17 Alternatif iş akışları Bir hedefin başarıldığını gösterin Aktörün nasıl tepki verdiğini yakalamaya çalışın.1. çünkü aynı işi yapan birden fazla Ana iş akışında belirli durumlara göre sapmalar olabilir veya parametrik yapılarda işlemler parametrelere göre değişebilir veya senaryodaki problemin başka bir çözüm yolu olabilir.

İş kuralları 2 türlüdür. 4. Bunlar doğrulanması zorunlu kurallardır. durum a1. Birinci adım için 2 adet alternatif çözümünüz olsun. adımına alternatif olabilecek 1. Adım 2 3a.UML ve CBD ile yazılım geliştirme 164 Diyelimki 3 adımdan oluşan bir ana iş akışınız var. doğrulanmaması sonucu senaryo işlemeye devam eder fakat aktör bu konuda bilgilendirilir. Adım 1 a2. Listelenen iş kuralları zaman içerisinde değişebilir. adımına alternatif olabilecek 1. doğrulanmaması sonucu senaryoyu bitiren kurallar. Bu tür iş kurallarıda seçmeli iş kurallarıdır. İlk çözümü 1a olarak isimlendireceğiz.5. İkinciyi de 1b. 4.18 İş kuralları Burada senaryo uygulanırken dikkat edilmesi gereken iş kurallarını listeliyoruz.1. Senaryolar maviden sonra sadece iş kuralı dosyasına bir referans numarası tutarlar. Birincisi. Adım 1 b2. Adım 2 Evet yukarıdan da anlaşıldığı gibi üçüncü adım içinde bir adet alternatif çözümümüz mevcut. Senaryolar mavi olduktan sonra iş kurallarının tümü tek bir dosyada toplanır ve senaryolardan çıkartılır. Genelde iş kuralının numarası referans amaçlı kullanılır. İş kuralları tesbit edilirken seçmeli mi yoksa zorunlu mu olduğu belirtilmelidir. Adım 2 1b. Alternatif çözümlerin adımlarına 1a1. durum a1. durum b1. 1a2 de diyebiliriz fakat çok fazla karıştırmamak için baştaki adım numarasını düşürüyoruz. İkincisi. 1a. Ana akışın 3.19 Notlar Tüm bu sahalardan herhangi birine girmeyen ve senaryoyu ilgilendiren her türlü bilgi bu alana yazılır. adımına alternatif olabilecek 2. Yazılım Uzmanlığı Üzerine . Ana akışın 1.5. Tüm senaryolar kırmızıdan maviye doğru yol alırken iş kuralları da kendi içinde değişir ve gelişir. Ana akışın 1.1. Adım 1 a2.

Şimdi senaryolarda adı geçen aktör terimini inceleyelim. Örneğin EFT modülü sizin yazdığınız “Müşteri Bul” senaryosunu kullanmak isteyebilir. Firmadan firmaya şablon değişebilir ama firma içindeki projelerde kullanılan senaryo şablonları aynı olmalıdır. Yeri geldikçe bu diyagramları açıklayacağım. Her UML nesnesinin bir stereotype’ı vardır. Senaryo belge şablonlarını tıkızda bulabilirsiniz. Sırası geldikçe bunları göreceğiz. Tüm firma içinde aynı şablonu kullanmak iletişimin hızlı olabilmesi için daha sağlıklıdır. Aktör genel bir terimdir ve senaryolar içinde kullanabilmek için öncelikle bir sıfat kazandırılması gerekir. maalesef UML modelleme programlarında mecburen kullanacaksınız fakat Türkçe ne demek istediğini çok iyi bilmeniz gerekiyor. Buraya kadar bir senaryonun nasıl ortaya çıktığını ve geliştirildiğini ele aldık.1.5. İngilizce terimleri veriyorum fakat bunları kullanmayın.5. Senaryoyu kullanacak olan birim bir grup insan da olabilir örneğin “Muhasebe Bölümü” muhasebe ile ilgili senaryoları kullanacak bir grup insanı simgeler. aktör ve senaryolar arasındaki ilişkiler ile senaryoların kendi aralarındaki ilişkilerini gösterir. Aktöre verdiğimiz sıfat UML dilinde “stereotype” olarak bilinir ve aktörün UML gösterimi “Cin Ali” şeklindedir. Operator Firma Figure 2: UML Şemalarında aktörün gösterimi Yazılım Uzmanlığı Üzerine . Senaryo şemaları. Burada senaryo olarak bahsedilen analiz sistemi “Use-Case” olarak bilinir ve UML modellemede “Use-Case Diagram” olarak şekillendirilir. “Müşteri Bul” aynı zamanda “Muhasebe Bölümü” tarafından da kullanılıyor olabilir.1. Unutmayın farklı projeler veya firmalar için farklı şablonlar gerekebilir.20 İlişkili diyagramlar Senaryonun daha iyi anlaşılabilmesi için bir aktivite diyagramı veya veri akışı diyagramı bu alana eklenebilir. 4. Gereksinimlerinize göre şablonları değiştirmekten kaçınmayın. Aktör eğer bir sistemi temsil ediyorsa sıfatı sistemin ismi olacaktır. Aktörler başka bir program veya sistem de olabilir.165 UML ve CBD ile yazılım geliştirme 4. Örneğin “Son Kullanıcı” bir aktördür.21 Aktör Aktör sistemle senaryolar yolu ile ilişkide bulunan birimdir.

Bu olay bize problemi çözmek için alternatif yollar görmemizi de sağlayabilir. Bu gibi durumlarda sorun çıkaran iş kuralını senaryodan izole edip ayrı bir senaryo gibi ele alırız ve “generalization” bağlacı ile ana senaryoya bağlarız. <<include>> Puanla (from Sofor Yonetimi ) Sofor Yonetimi (from Sofor Yonetimi ) <<include>> Odeme Belirle (from Sofor Yonetimi ) Figure 3: Include bağlacının UML gösterimi generalization: Sistemde ortaya çıkan senaryolardan iki tanesi birbirine çok benziyor fakat bir tanesi biraz daha fazla iş yapıyor ise oluşur. Analiz sırasında sadece bir iş kuralı yüzünden bir senaryoyu ikiye bölmek gerekebilir.5. Yazılım Uzmanlığı Üzerine .UML ve CBD ile yazılım geliştirme 166 4. Bu tür tekrar eden işlemleri farklı bir senaryo olarak ayırıp ana senaryoya “include” bağlacı ile bağlarız.22 Senaryolar arasındaki ilişki çeşitleri include: Sistem oluşmaya başladığı zaman bazı senaryolarda tekrar eden işlemler ortaya çıkabilir.1.

5. <<extend>> Uygun Servis bul (from Arac Yonetimi) <<extend>> Operator (from Aktor) Guzergah Olustur (from Servis Yonetimi) Servis Degistir (from Arac Yonetimi) Figure 5: Extend bağlacının UML gösterimi 4. Fakat bu durumda ana senaryo genişleme noktalarını (extension points) belirtmelidir. Genel olarak Sistem Senaryo’ları yazılım ile olan ilişkileri. Yazılım Uzmanlığı Üzerine . Ve bağlantı üzerinde bu genişleme noktalarından hangilerinin kulanıldığı gösterilmelidir.1. ana senaryoya farklı davranışlar ekleyebilirler.23 İş ve sistem senaryoları (business ve system) Bu iki tür senaryoyu ayırd etmek zaman zaman güç olmaktadır. İş Senaryo’ları ise bir firmanın müşterisi yada piyasa hareketleri ile olan ilişkilerini ortaya koyar.167 UML ve CBD ile yazılım geliştirme Firma Yonetimi (from Firma Yonetimi) Servis Bilgilerini Listele (from Servis Yonetimi) Guzergah Olustur (from Servis Yonetimi) Figure 4: Generalization bağlacının UML gösterimi extend: Ana senaryoya bağlı bu tip özel senaryolar.

İşte burada yazılım ile aranızda geçen diyalog içindeki senaryolar da Sistem Senaryo’ları olmuş oluyor. çözümleri yaratıyorsunuz.24 Senaryo oluşturma sırasında yapılan yanlışlar Bir işi analiz etmeye kalktığınızda. proje maliyet analizi. Burada geçen olaylar firma ile müşteri ilişkileri üzerine kurulu ve senaryolar İş Senaryo’su olarak ortaya çıkıyor. Müşterinin istekleri ve işin verdiği tepkiler kayıt edilir. Tüm müşteri istekleri olabilecek tüm senaryoları ile ortaya çıkarıldıktan sonra işin bu senaryolara nasıl tepki verdiğini yakalamanız gerekir. Henüz her şey planlama aşamasında ve daha yapmamız gereken pek çok iş var. müşteri ile iş arasında geçen bu senaryoları analiz edip bilgisayar ortamında çözüm arama aşamasına geçilmelidir. Her türlü işlem yazıya döküldükten sonra. Yazılım Uzmanlığı Üzerine . planlama. Sistem senaryolarının doğruluğunu veya alternatif sistem senaryolarının bulunmasına da yardımcı olur. 4. Kayıt edilecek veri. sunumu yapılacak veri. Düşünün ki bilgisayar diye bir şey henüz icat edilmemiş ve siz müşterinizle karşılıklı oturarak sohbet ediyor ve isteklerine çözümler bulmaya çalışıyorsunuz. Müşteriniz gittikten sonra bilgisayar başına geçip (bu arada bilgisayar icat oldu) müşteri isteklerini kaydedip. İşin analizi o iş ile müşterileri arasında geçen ilişkilerin ortaya çıkarılması ile başlar. Dikkat ederseniz bu aşamaya kadar henüz bir veritabanı oluşturmadık veya tek satır kod yazmadık. Ayrıca Yönetim Kurulu gibi yazılım alanında olmayan kişilere proje hakkında yeterli bilgiyi sunar. Proje başında yaratılan İş Senaryoları sistemi anlamak için yararlı olmaktadır. aklınıza sürekli ekran tasarımları ve veritabanı tabloları geliyorsa yanlış yapıyorsunuz demektir. Sunumu yapılacak veri belirlendi ama ekran tasarımları daha yapılmadı. Her İş Senaryo’sunu başarabilmek için bir dizi Sistem Senaryo’su gerekir.5.UML ve CBD ile yazılım geliştirme 168 İş senaryolarını analiz sırasında ayırd edebilmek için firmanın müşteri isteklerine nasıl cevap verebileceğini düşünmeli ve bilgisayar sistemlerini veya veritabanını değil.1. müşteriye verilecek cevabı düşünmeniz gerekir. modül tanımlama gibi işlemlerde yardımcı olur ve bilgisayar sistemi ile olan bağlantıları gösterir. Önce işin nasıl döndüğünü anlamanız gerekiyor hemde tüm ayrıntıları ile. Ancak bu şekilde iş sahibinin isteklerine cevap verebilecek bir program yazabilirsiniz. Sistem senaryoları. Veritabanının sahaları hemen hemen ortaya çıktı ama tablolar daha belli değil. ve formatları ortaya çıkarılır.

sıralar. Öğretme fonksiyonu içinde öğrencilerin öğrendikleri bilgiler değişir ve gelişir. fakat matematik dersindeki bilgileri koro sınıfı için gereksiz olduğundan kullanmazlar. sınıf” ve nesne haline gelmiştir. Yazılım Uzmanlığı Üzerine . “tenefüste” veya “tatilde”. hayat bilgisi gibi. Bir ilkokul sınıfı düşünün. Kafanızda bir model oluşturması açısından bir kaç örnek vereyim. karatahta gibi şeyler içinde mevcut. Kendi sınıflarında öğrendikleri bilgiyi bu koro sınıfına miras olarak getirirler. Yani kendi sınıflarında müzik dersinde öğrendikleri tüm bilgi ve deneyimlerini bu yeni koro sınıfı için kullanırlar. Öğretmen sınıfın bir fonksiyonudur ve öğretme fonksiyonunu gerçekleştirir. Öğrencilerin nereye oturacağı öğretmenin nerede duracağı ve işlenecek derslerin haftalık programının belirtildiği tablo sınıfın planını oluşturur. Öğretmen ise sınıfın yegâne fonksiyonudur. Öğretme işi ile sınıfın alanlarının barındırdığı bilgiyi yeniler veya yeni bilgiler ekler. Sınıf artık “class” durumundan “object (nesne)” durumuna geçmiştir. İşte bu noktada nesne haline geçer.2 Sınıf Şemaları (Class Diagrams) UML’in en fazla kullanılan ve doğrudan yazılım ile ilgili olduğu için yazılım mühendislerinin en iyi bildiği şema tipidir. Burada farklı sınıfların bir araya gelmesi ile yeni bir sınıf kurulmuş ve farklı bir iş için uğraş vermektedirler. İlk tenefüs zili çalınca sınıfın durumu “tenefüste” olur ve öğretme fonksiyonunu yürüten öğretmen sınıfı tenefüse çıkarır ve öğretme işine ara verir. Boş bir oda. Yani hafızadan silinir fakat kodu hala elinizdedir yada şeması. Yani veriyi tutan değişkenleri. Bu. Öğrenciler sınıfın alanlarıdır. Sınıflarında öğrendikleri tüm disiplini ve bilgiyi beraberlerinde getirirler ve yeni bir sınıf oluştururlar. İlk ders ile birlikte öğrenciler sınıfa doluşur ve öğretmen eğitime başlar. sınıfı tanımlayan genel bir anlatım ve ilkokul sınıfının “class” durumunu gösterir. Ayrıca derste ise hangi derste olduğunu gösterecek bir de göstergesi var. İlk ders ile birlikte bu şema somut bir hal kazanır ve işlemeye başlar. örneğin matematik. Bu arada ilk ders ile beraber sınıfta bir isim kazanmıştır. Bu sınıfın üç tür durumu var. Öğrenciler sınıfın sahalarıdır (fields). Bir gün bir koro çalışması için bir kaç sınıfın tüm öğrencileri toplanarak bir çalışma yapmaya karar verirler. Boş bir oda hali sınıfın şemasıdır. Tüm koro öğrencilerinin aynı zamanda kendi sınıfları vardır ve bu özel çalışma için bir araya gelmişlerdir. sınıfta ortadan kalkar ve tekrar boş bir oda haline gelir. Class olarak isimlendirilmesinin sebebi belli aynı özelliklere sahip veri ve fonksiyonların bir çatı altına toplanmasından kaynaklanıyor.169 UML ve CBD ile yazılım geliştirme 4. Son dersten sonra sınıfa son verilir. örneğin “3. Bunlar “derste”.5. Ders günü sonunda 3.

UML gösterimde sınıf aşağıdaki gibi gösterilir. İlkokul bilgileri miras yolu ile gelmiştir fakat sınıfın yeri ve tipi değişmiştir. Yani bir sınıfın artık birden fazla fonksiyonu vardır. Sınıf hafızada yer aldığı zaman artık bir nesne haline gelir. İlkokuldan gelen bilgiler hala mevcuttur ve yenileri eklenmektedir. Firma FirmaIsmi IhaleZamani AracSayisi IhaleKontrol() AracArttir() Figure 6: IBM Rational™ ile sınıf gösterimi Yazılım Uzmanlığı Üzerine . “derste” ve “tatilde” durumları vardır. İkinci bölümde sınıfın sahaları ve üçüncü bölümde de sınıfın fonksiyonları yer alır. Buda çoklu form (polymorphism) oluşturur. Farklı sınıflarda farklı davranışlar ile öğrenen öğrenci hala bir öğrencidir.UML ve CBD ile yazılım geliştirme 170 İlkokul bitipte ortaokul başladığında sınıfların tipleri değişir. Sınıfın durumları değişmemiştir hala “tenefüste”. Sınıf (class). nesnenin planıdır. İlk bölümde sınıfın ismi yer alır. Her ders için farklı öğretmeler gelmeye başlar. Her ders için farklı sınıflara gidiliyordur. 3 bölümden oluşur.

n 1 FirmaPersonel TicariFirma n n Arac 1 n 0.171 UML ve CBD ile yazılım geliştirme Ihale Servis 1 n 1 Firma 1 1 1. korumalı (protected). herkese açık (public)... Sınıf kendi bünyesinde barındıracağı veriyi bu alanlarda saklar. UML şemalarında aşağıdaki işaretler ile gösterilir. Alanlar sınıfa özel (private).1 Özellikler (properties) Sınıfın alanlarını temsil eder..2.1 Kontak OzelMusteri 1.n BakimAriza Figure 7: AntTur sınıf Şeması 4. paket (package) olarak dört tip erişilebilirlik derecesine ayrılırlar.5. Kullanılan programlama diline göre başka tipleride olabilir. + ~ # herkese açık sınıfa özel paket korumalı UML modelleme programlama dilinden bağımsızdır fakat kullanacağınız dile göre değişikliklere izin verecek kadar esnektir..n 0. Kullandığınız programlama dilinin özelliklerine göre erişilebilirlik derecelerini Yazılım Uzmanlığı Üzerine .

*1+ alanın bu tip veriden kaç tane barındıracağını belirtir.2. UML gösteriminde tavsiye edilen biçimi: <tip (+ . Hüseyin evlenip kendi başlarına bir aile oluşturur. Güncel hayattan bir örnek verelim.readOnly. Okun gittiği yön hedef sınıftır.<özellik. Mehmet. Şemalar da ise iki sınıf arasında ok biçiminde gösterilir.5. Hedef sınıf üzerindeki alanlardan bir tanesi. Yazılım Uzmanlığı Üzerine .2. UML şemaları üzerinde çok farklı görünmesine rağmen ilişkiler ve alanlar aslında aynı şeydir.kısmı ek özellikleri tanımlamak için kullanılır.1 Alanlar (attributes) Bir sınıfın özelliğidir. Sülale ve aile ilişkisinde soyisminiz sizin hangi sülaleye mensup olduğunuzu belirtir. 4. Soyisimleri aynı olan bu üç kişi sülalenin genetik mirasını barındırırlar ve yeni nesillere bunu aktarırlar. Soyisim: bu alanın ismi yani sınıfın alana erişmek için kullanacağı belirteçtir. ilişkiyi tanımlamak açsısından esas sınıf üzerine gelir. Modelleme sırasında ben yanlızca + ve – işaretlerini kullanıyorum.~ #)> <alan ismi>: <veri tipi> <array genişliği> = <ilk değeri> . “Yeniceri” alanın ilk tanımlandığında alacağı veridir. UML modelleme yazılımları. . Diğer işaretler genelde modelleme sırasında ortaya çıkmıyor. Yeri geldikçe bu özellikleri anlatacağım. Soyisimleri aynı olan Ahmet.2 İlişkiler (associations) İki sınıf arasındaki ilişkiyi belirlemek amacı ile oluşturulmuş bir alandır.1. yazı ile>} Bir örnek verecek olursak: .1.readOnlyİlk olarak (-) işareti ile bu alanın erişilebilirlik derecesini belirtiyoruz.Soyisim: string*1+ = “Yeniceri” . Soyisim hem ailenin bir alanıdır hemde sülalenin bir alanıdır.UML ve CBD ile yazılım geliştirme 172 ekleyip çıkartabilirsiniz. Ancak analizler ilerleyip kodlamaya geçildiğinde iş kuralları ile birlikte yada ihtiyaca göre belirleniyorlar. İlişkilerin UML gösterim biçimi alanlar ile aynıdır. bir model için dil seçimi yaptığınızda o dilin özelliklerini kullanmanıza izin verir. Soyisim burada ilişki belirten alandır. string alanın barındıracağı veri tipini belirtir.5. 4.

173 UML ve CBD ile yazılım geliştirme Servis ServisNo AracPlaka : Arac 1 Arac AracPlaka : String n SonBakimTarihi KoltukSayisi Model Notlar Figure 8: UML şemalarında ilişkinin gösterimi Yukarıdaki şemada Servis sınıfı üzerindeki AracPlaka sahasının tipine dikat edin. Bu tür ilişkilere 1-To-Many yani “Bire Çoklu” ilişkiler denir. Yani 1. 3. 2. Soldan sağa: Her Servis pek çok araca sahip olabilir. Her iki ilişkide de zorunluluk yok. Programda nasıl gözükecek İki yönlü ilişkiler (bidirectional) Yazılım Uzmanlığı Üzerine . Tip olarak Arac sınıfı verilmiştir. İlişki Çeşitleri Yukarıdaki şemada ilişkiyi Türkçeleştirerek okursak ortaya şöyle bir şey çıkar. Yani Araçlar ve Servisler kendi başlarına var olabilirler. Sağdan sola: Her Araç sadece bir serviste çalışabilir.

5.5. 4.2.5.5.5.3. Paket şemaları ile sınıfları Yazılım Uzmanlığı Üzerine . 4.4 4.6 4.2.9 4.3.5. Her sınıfın kendi içinde belli servisleri olabileceği gibi tüm yazılım parçasının dışarıya sunduğu hizmetler de vardır.3 Sıralı İşlem Şemaları (Sequence Diagrams) Her yazılım parçası bir kaç sınıftan oluşur.UML ve CBD ile yazılım geliştirme 174 4.5.2.4 İşlem Akış Şemaları (Collaboration Diagrams) 4.5.3 Döngü ve durumsal işlemler Senkron ve asenkron CRC kartları 4.2.2.5.2. Nesnelerin hayat süreçlerini görmek için iyi bir yöntemdir.5.1 4.2. Bu tür isteklere cevap verebilecek şema Sıralı İşlem Şemasıdır.5 4.5.3. Sınıfın kendisini değil sınıftan oluşan nesneyi ele alır.2 4.10 4.7 4.5.5. Bu tür hizmetler arayüzlerde toplanarak dış kullanıma açılır ve arayüzler vasıtası ile yazılım parçaları kendi aralarında haberleşir.5.2.8 4.5. Bir senaryo belgesine göre bir işin başarılabilmesi için farklı yazılım parçalarının sunduğu hizmetlerin belli bir sırada kullanılması gerekliliği vardır.3 4. Binlerce sınıftan oluşmuş çok büyük bir yapıyı ele aldığınızda sınıf şemalarının okunması zor olabilir.2.5 Nesne Şemaları (Object Diagrams) Nesne şemaları bir işlem sırasında nesnelerin durumlarını gösterir.5.6 Paket Şemaları (Package Diagrams) Sınıflar nesne yönelimli sistemlerin temel yapısını oluştururlar.5.2 4.2.11 Fonksiyonlar (operations) Genelleme (generalization) Not ve Yorumlar Bağımlılık (dependency) Constraint kuralları Desing by contract Sorumluluklar Statik fonksiyon ve alanlar Aggregation and composition Arayüzler 4.

4. yazılım donanımın etrafında sistemi yayınlamak amaçlı bir işletim sistemi yada uygulama sunucusu veya web sunucusu olabilir. 4. Kurumsal bir uygulamayı paket şemaları ile kurgulayabilirsiniz. Sadece sınıfları değil tüm UML birimlerini paketlemek mümkündür.8 Aktivite Şemaları (Activity Diagrams) Okulda öğrendiğimiz Akış Şemalarına benzer. Eski ismi “Collaboration Diagrams”’dır ve İşlem akış şemaları ile karıştırılmamalıdır. Çözülmesi güç problemleri yada sistemleri farklı paketlere bölerek ufak ufak çözme yoluna gidebiliriz. 4. Donanım belli bir bilgisayar yada bir kart olabilir.175 UML ve CBD ile yazılım geliştirme mantıksal olarak ayırarak gruplar ve okunmasını kolaylaştırırız. Bu durumda paket içinde bulunan her sınıfın özel bir ismi olması zorunluluğu vardır. Tek fark olarak bunda paralel işlemleri şematik olarak gösterebiliriz. Sıralı işlem şemalarında her işlem belli bir sıra içinde yer alır.7 İşlem Durum Şemaları (State Machine Diagrams) Tek bir nesnenin ömrü boyunca gireceği durumları analiz etmek amaçlı geliştirilmiştir. Hem yapılacak iş daha net ortaya çıkar hemde büyük sistemin karmaşıklığı ile uğraşmamız oluruz.5. fakat iletişim şemalarında sınıfları ve mesajları istediğiniz yere oturtabilirsiniz. Paketleride başka paketler içinde gruplandırmak mümkündür.5.10 4.5.NET çerçevesi içinde isim alanları (namespace) olarak düşünebiliriz.5. Analiz edilen sistemin karmaşıklığına bağlı olarak paketler çoğaltılabilir. Ayrıca çözüme kavuşturduğumuz her ufak yapı taşı bize bir sonraki adım için motivasyon verecektir.11 4. Yazılım Uzmanlığı Üzerine . Sınıf şemalarından daha sade ve anlaşılabilir olacaktır.9 İletişim Şemaları (Communication Diagrams) Sıralı işlem şemaları gibi sınıflar arası ilişkileri göstermek amaçlı oluşturulmuştur. Paketleri .12 Modül Şemaları (Component Diagrams) Zamanlama Şemaları (Timing Diagrams) Kurulum Ve Yayımlama Şemaları (Deployment Diagrams) Kurulum ve yayınlama şemaları sistemin hangi parçalarının hangi donanım ve yazılım üzerinde çalışacağını göstermektedir.5. 4.5.

You're Reading a Free Preview

Download
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->