Analist Yazılım Uzmanı

Analist Yazılım Uzmanı (Analyst Developer
kısaca Anyazu diyelim (yeni kelime yaratmak değil amacım; yazı içinde
kolaylık olsun diye)) ne iş yapar.

Günlüğümü takip edenler göreceklerdir ki burada yazdığım
yazılar genelde belli bir kitleye hitap eder. Bana gelen linkler de bazı arkadaşların
Analist Developer ne iş yapar diye Google‘da aradıklarını gördüm. Kendi kendime
ben neden böyle bir yazı yazmadım diye hayıflandım. 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. İşte bu yazımda merak edenler
için bir analist yazılım uzmanının neler yapabileceğini irdeliyorum.

Profesyonel bir Anyazu olmak için araştırma, öğrenme ve uygulama şart.
Anyazu, yazılım dünyasında çıkan her türlü yenilik, teknoloji, metodoloji, araç,
dil, standart ve sistemleri takip edip öğrenmek, bu konularda kataloglar
oluşturmak, nerelerde kullanılabileceğini belirlemek ve yeni sürümlerini takip
edip, değişikliklerin var olan sistemleri nasıl etkilediğini analiz etmek için
sonsuz bir istek ve çaba içerisinde olmalıdır.
Yeni Başlayanlara başlıklı yazımda öğütlediğim bazı metodları uygulamanızı
tavsiye ederim. Bir nevi sektörün kalbini dinlemeyi öğrenmek gibi. Gelecekte
çıkacak teknolojileri önceden tahmin edebilme, hangilerinin piyasada daha uzun
kalacağını algılama gibi yetilere de sahip olmalıdır. Tabii burada anlattıklarım
belli bir deneyimin sonunda ve bilgi birikimi ile olur. Örneğin "Düşüncelerim" yazımı okuyun. Sanki Windows Workflow Foundation
olayını görmüş gibiyim. Ama WWF’in benim istediğim konuma gelmesi biraz daha
zaman alacak gibi. Aslında WWF ve BizTalk hemen hemen benim istediğimi yapıyor
fakat konumuzu dağıtmayalım.

Öncelikle Analiz olayından başlayalım. Bir sistemi yada
müşteri gereksinimlerini analiz etmek ve bu gereksinimleri yazılım ekibine doğru
olarak aktarmak çok önemlidir. Anyazu, nasıl analiz yapılır, analizler nasıl
sıralandırılır, müşteri ile nasıl konuşulur, UML nedir ve nasıl kullanılır,
senaryo şemaları nasıl çizilir bilmelidir. Bu aşamada Anyazunun yapacakları:

  1. Müşteri isteklerini senaryolar halinde belgelendirir.
    (Senaryo Belgeleri)
  2. Sistemin sınırlarını çizer (Sistem Gereksinimleri
    Dökümanı)
  3. Harici sistemlerle olan bağlantıları belirler (Harici
    Arayüz Dökümanı)
  4. Senaryolar arası ilişkileri belirler (Use Case, UML
    şemaları
    )
  5. Sistemin hacmini belirler (Function Point Analysis ve
    COCOMO II)
  6. Tüm üretilen çıktıların müşteri tarafından onaylanmasını
    sağlar.

Tavsiyem kendinizi sistem analizi ve UML konusunda geliştirin. Ayrıca
Agile
Modeling
,
XP gibi metodlar ile ilgili kitap yada örütbağı üzerinde bulacağınız
kaynakları kataloglamaya başlayın. Bazı ufak tefek metodları iş yerinizde
uygulayın. Güzel sonuçlar aldığınızda herkes kullandığınız metodun iyi bir metod
olduğuna kanaat getirecektir. Ayrıca FPA ve COCOMO II konusunda da örütbağı
üzerinde araştırma yapıp nasıl kullanılacaklarını öğrenin.

Müşteri gereksinimleri bir kere müşteri tarafından onaylandıktan sonra
dizayna geçilir. Müşteri gereksinimlerindeki değişiklikler artık
Değişiklik
Kontrol Yönetimi
ekibinin sorumluluğundadır. Proje yeni olduğu için müşteri
gereksinimleri devinimsel olarak değişime uğrayacaktır.
Anyazunun görevi bu
değişikliklerin sistemde ne gibi etkiler doğurduğunun, maliyetinin ne kadar
olacağının ve ne kadar zamanda uygulanabileceğinin analizini yapmaktır. 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.

Anyazu dizayn aşamasında iş kurallarını tek bir belgede toplar ve senaryo
belgelerinden iş kurallarını çıkartır. Bir UML aracı ile sistemi modellemeye
başlar. Projenin yazılacağı dilin nesne yönelimli olmasına gerek yok, bu
modeller her türlü analiz ve dizayn amacı için kullanılabilir. UML
aracı deyince aklımıza Rational Rose (TM), yada MS Visio veya ücretsiz
yazılımlardan Argo UML geliyor. Araçlar üzerinde inceleme yapıp hangisinin ekip
için de en verimli kullanılacağını araştırın. Gerekirse COTS bir ürünün alınması
için istekte bulunun.

UML şemalarını hazırlarken öncelikle sistemde yer alacak nesneler tanımlanır.
Her nesne bir sınıf olarak belirlenir. Daha sonra bu sınıflar arasındaki
ilişkiler senaryo belgeleri yardımı ile belirlenir. Bu tür şemalar en iyi
"sequence diagram" (sıralı işlem şemaları) ile analiz edilir. Sistemin analizi
sırasında diğer yazılım uzmanlarıda bulunur ve analiz bir toplantı odasında,
projektörden yansıtılan UML aracı ile yapılır. Gerekli nesneler, mesaj
alışverişleri, senkron – asenkron işlemler ve ortaya atılan
fikirler direk model üzerinde uygulanır. Böylece toplantı sonrasında kağıt
yığınları arasında tekrardan analiz yapmaktan kurtuluruz. Toplantıya katılan
herkes yapılan değişikliklerin onayladığına dair belgeyi imzalar. Tüm
değişiklikler Anyazu tarafından listelenir ve toplantıya katılanlara gönderilir.
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.

Dizayn modelinin
Use Case‘lerden başlayıp nesnelere kadar takip edilebilmesi
gerekir. Model içinde oluşturulacak linkler ve modelin HTML olarak yayınlanması;
sistem hakkında bilgi sahibi olmak isteyen yada referans vermek isteyen kişiler
tarafından yoğun olarak kullanılacaktır. Anyazu bu işi de yapar ve modelin
bozulmadan kalması için diğer yazılım uzmanlarını koordine eder.

Anyazu veritabanı modelini; sistemin analizine dayanarak ortaya çıkarır ve
veritabanı uzmanları ile beraber çalışarak standartlara uygun bir veritabanı
geliştirilmesine yardımcı olur. Sistemde modellenen nesneler ile veritabanındaki
tablolar ve sahalar farklı isimlerde olacağı için bir veritabanı sözlüğü yaratır
ve modele bağlar. Bu belgeyi ister tek bir belge halinde ister UML aracı içinde
entegre olarak barındırmakla yükümlüdür. UML aracının bu tür belgeleri otomatik
olarak üretmesi ek bir kolaylık sağlayabilir.

Anyazu, modelleme aşamasında ortaya çıkan pattern’leride belirler. Unutmayın
Dizayn Patternleri model içinde farkediliyorsa uygulamaya girer, yoksa illa
pattern uygulayacağız diye model hazırlamıyoruz. Eğer belirgin şekilde bir
pattern görüyorsanız bunları uygulamaktan çekinmeyin fakat illa bir pattern
uygulayacağım diye dizaynın kapsamını da daraltmayın.

Konfigürasyon Yönetimi yazılımı (Subversion,
Clearcase, CVS, 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. Sürekli
Entegrasyon (CruiseControl,
Draco,
NAnt,
FXCop,
NUnit gibi yazılımların
Subversion, CVS gibi konfigürasyon yönetimi yazılımları ile entegre edilmesi)
ortamını kurar ve çalışma prensipleri hakkında eğitimleri verir. İş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,
alacağı zaman ve önceliği hakkında bilgi verir. Anyazu padişahın yanındaki vezir
gibidir yani.

Sistem, yazılım uzmanları tarafından kodlanmaya başlandığında;
Anyazu kodun
sistem gereksinimlerine göre yazılıp yazılmadığını teftiş eder. Ayrıca
standartlara uyulup uyulmadığını da kontrol eder. Kod içindeki yorumlardan
dökümantasyon üretmek (NDoc) ve gerektiğinde bu yorumları düzeltmek gene
Anyazunun
görevidir. Tabii burada yazılım uzmanları; 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. Anyazu bu şekilde takılan yazılım
uzmanlarını tatlı dille uyarabilir.

Anyazu hata ve istek veritabanlarının kullanımı, bakımı, raporlanması gibi
konulara da bakar.
PM veya üst müdürlerin istediği raporları oluşturmakla
yükümlüdür. İstenmediği sürece raporlara herhangi bir yorum eklemez.

Anyazu projenin yada firmanın her kademesindeki kişiler ile doğrudan görüşür
ve fikir belirtebilir, gerektiğinde toplantıları organize eder.
Problem yaratan konular varsa analizini yapar ve çözümü için gerekli ekiplerin
bir araya gelmesini sağlar.

Kodda yazar vakit bulursa. Ama kod yazmak ana işleri içerisinde değildir.
Yazılan kodun entegrasyonu ve dış sistemler ile bağlantılarını kontrol eder ve
test edilmesi için gerekli ortamı hazırlar. Gerekli ortam deyince aklınıza
bilgisayar kurmak gelmesin o işler için sistem yöneticisi var, daha çok dış
sistemlerin veri alış verişinde kullandığı mekanizmaların kurulumu ve testi (örneğin
Websphere MQ yada
MSMQ gibi) işlerini yapar. Kullanılacak üçüncü parti
uygulamaları tesbit eder ve entegrasyonu için gerekli kodu yazar yada analizini
yapar.

Ürünün kurulumu, testi gibi işleri koordine eder. Test senaryolarını yada
kurulum tıkızlarını hazırlamaz, sadece yapılacak işleri koordine eder ve
sonuçları çıkartır. PM meşgul ise iş paylaştırması yapar ve sonuçlardan PM’i
haberdar eder. İşleri paylaştırmadan önce PM’den onay alır
veya iş paylaşımı listesini PM’e devreder.

Anyazu her işi için onay alır. Onaysız bir iş yapmaz. Onaylar, bir e-posta,
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.

PM’e bağlı olduğu için yapacağı her işi önce PM’e bildirir. İstekler daha üst
kademelerden direk Anyazuya gelse bile PM haberdar olmalıdır, böylece
Anyazunun
ne işle meşgul olduğunu bilir.

Görüyoruz ki Anyazu tüm proje birimlerini birbirine bağlayan bir etken.
Arada köprü görevi gördüğü için, herkesin dilini iyi konuşması gerekiyor. Ayrıca
PM için bulunmaz bir kaynak. Sistem bilgisi ve kullanılan metodoloji bilgisi ile
sürekli PM ve diğer proje elemanlarına destekte bulunuyor. 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. Ayrıca yazılan kodun da
gereksinimlere uyup uymadığını araştırıyor. Bir nevi kalite kontrol görevi de
var aslında. Ama bir kalite kontrol uzmanı kadar geniş konulara bakmıyor yada
bir HCI uzmanı kadar herustik inceleme yapmıyor.

Anyazunun bir dizüstü bilgisayarı olması bazı işleri kolaylaştırabilir.
Kullanılacak yazılımların beta yada deneme sürümlerinin testi, sistem
entegrasyonlarının denenmesi, gibi proje ile ilgili işler dizüstünde
denenebilir. Ayrıca Anyazu genelde ofis dışında olacağı için (müşteri yanında,
eğitimde, üçüncü parti yazılımları sağlayan firmanın ofisinde, toplantıda vb.
gibi) bir dizüstü ve kablosuz örütbağ erişimi şarttır. Ayrıca firmanın
haberleşme kurallarına göre MSN Messenger, Skype, Google Talk, E-posta gibi
mesajlaşma programları kurulu olmalıdır. Anyazunun temel amacı her zaman
ulaşılabilir olmak ve destek vermektir.

Anyazuyu sadece analiz yapmak ve kod yazmak için çalıştırıyorsanız, gerçek
verimini alamıyorsunuz demektir.

Bu kadar işten sonra Anyazu ailesini ve varsa çocuklarını da ihmal etmez.
Akşam eve giderken eşine bir çiçek alır, çocukları ile hoşça vakit geçirir,
bilgisayara elini sürmez. Aile ile geçirilen zaman bir meditasyon gibi bir
sonraki güne hazırlanmak için yeterli gücü sağlayacaktır. Anyazu iş yerinde
geçen geyikleri ve tartışmaları eve taşımaz. Çok gerekirse eşinden yardım almak
için anlatabilir.

Posted in Uncategorized.