Friday, August 18, 2006

YÖNTEM ARAŞTIRMALARI

YÖNTEM ARAŞTIRMALARI

“Yöntem Araştırmaları” ünlü Fransız düşünürü Jean P. SARTRE’in son dönem eserlerinden “Diyalektik Aklın Eleştirisi” ‘ nin Türkçe tercümesi(Yazko 1981 Çeviri Ödülü)’nin başlığı… Sartre bu kitapta bir çok şeyin yanında (interalia), şunları da yazar: “Bir şeyin doğru olması yeterli değil, nasıl uygulandığı da önemli… Uygulanması mümkün olmayan bir şeyin doğru olması günlük yaşam açısından ne kadar yeterli?”

EUROCONTROL(Avrupa Hava Trafik Güvenliği Kuruluşu)’de eski müdürüm Roy PERRY, Paris – Bretigny’deki araştırma merkezine tayini çıkan İngiliz bir mühendise, benim
Operational Deficiency(İşletimsel yetersizlikler) çözümlerimi inceletmişti. Sonra da
bana, “Ali, standartlar gerektiği ölçüde uygulanmalı” demişti.

Son üç hafatadır bir IBM VAGEN SmallTalk projesini C# Visual Studio 2005’e nakli için
çalışıyorum. Projenin başlangıç, fizibilite ve prototype aşamaları benim üzerimde…
Eski projenin bakımını yapan tecrübeli iki analist-programcı da hem bana destek veriyorlar hem de giderek işi üstleniyorlar. Müşterinin birinci kaygısı, işin gerçekleştirilebilirliğini görmek… Olmayacak bir iş için doküman, toplantılar vb. istenmiyor haklı olarak…

Peki, standartların uygulanması bir lüks mü? Bu projede yaklaşımım; Sıfır formal metodla başlamak… Ancak, tek kişi çalışsam bile, bir süre sonra ne yaptığımı unutmam nedeni ile, ya da bir kenara not edilmiş bir bilgiye ulaşma kolaylığı nedeni ile, bir LOGfile
tutma zorunluluğu var. Tek kişi çalışılsa bile ileriye yönelik planlama ihtiyacı
ile de bir TODOfile zorunluluğu söz konusu… Ayrıca sık sık yapılan – yapılacak uygulamayı tahmin için hazır bir McCabe, LOC ve diğer ölçümleri yapabilen bir
software metrics tool faydalı olabilir…

Tek kişilik ve 2 yardımcıya dayanan fizibilite projesi ilerledikçe karşılaştığım diğer sorunlar:

Visual Storage 2005 software developmen environment’ın sağladığı yazılım geliştirme olanakların tümünün kullanımı ilk karşılaştığım bir zorunluluk oldu.

-Nesne listesi ve fonksiyon listelerinin kullanımı
-Dokuman, açık doküman ve tüm uygulama gibi çeşitli derinliklerde arama…
-Break point ve single step(SS) kullanımı. Daha sonra bunların ustalıklı ve yerine göre kullanımı. Başlangıçta SS her şey için, satır sayısı / karışıklık arttıktan sonra giderek yalnızca belirli yerlerde SS.


Kısa bir süre sonra hem günlük backup, hem de üretim aşamalarının kazaya uğramaması için gün içi backup alma zorunluluğu çıktı… Backup sayılarının artması hiç olmazsa e ile yazılmış version sayıları içeren isimlendirmeyi zorunlu kıldı…


Tek bir C# dosyasında uzunluk 1000 satırı aşınca kontrol edilebilirlik azalıyor ve VS 2005’in sağladığı olanaklar zorlanıyor. Region ile sağlanan aggregation imkanı ile
6-7 tane 1-2 ekran genişliğinde kod grubu yaratılabilir. Bu durumda max 1500 – 2500 satıra çıkılabilir. İnsan algılaması aynı anda yedi artı eksi iki nesneyi takip edebilir.
Internet’tede bulunabilen Miller: ‘The magical number 7, plus or minus two: Some limits on our capacity for processing information’ makalesini ince dikkatlerinize sunarım.

Bir süre sonra yazdığım fonksiyon sayısı 15’i geçti. Bu durumda yine Miller sorunu nedeni ile zorlanmaya başladım. Çözüm aggregation… Yani gruplama ve isimlendirme…
Üç ayrı grup oluşturdum. Yedi taneye kadar daha 4 ayrı grup boşluğu olduğu için çok rahatladım. Fakat uygulama derinliğim, soyutlama seviyeleri ikiye çıktı. Bir süre sonra
derinliklerin kontrolünde sikinti çıkmadan, olayın tümünün kargaşaya dönmemesi için
BAŞTAN planlama yani DESIGN yapmam gerekirdi…

Planlama ve planlı çalışmanın önemi, iş için gerekli hazırlıkların yapımında da çıktı.
Başarılı olmak için BİR ANDA BİR İŞ yapmak gerekir. Aynı anda hem CS 2005’in yenilikleri ile hem design problemleri ile hem de C# ile boğuşuyorsanız yavaşlarsınız…
Yavaşlama recursiv olarak iş yükünüzü arttırır ve bunalabilirsiniz…

Alt yapı unsurları: kisaltma sözlüğü, sort, compare, string lib vb basit utility imkanları… baştan seçilip sağlanırsa ekip yıpranmaz boş yere…

Ne zaman tasarım yapmalı? Hiç tasarımsız başlandığında, kafayı duvara vura
vura bir çözüm bulunabilir… Acil ya da fizibilite durumlarında bu bir çözüm kabul edilebilir… Ancak orta ve büyük sistemlerde taslak tasarım olmadan işe
girişmek hatadır.

Uzun sözün kısası,

planlama, lojistik, tasarım,

ve bunları içine koyup var ettiğimiz

standartlar.

Ali Riza SARAL