Archive for January 2008

Zend Framework eksiklerini gideriyor.
Ruby on Rails’in literatüre geçen devrimlerini yakından takip eden Zend boş durmuyor ve Rails’i yakından takip edeceğini gösteriyor sanırım.

Henüz kurcalayamadım ama ekledikleri yeni özellikleri şöyleymiş:

  • Ajax desteği: Zend_Form’da ajax destekli form elemanları ve ajax otomize etmeye yarayacak özel helper + action’lar
  • Lucene desteği biraz daha gelişmiş ve v2.1 indekslerini destekler hale gelmiş. Hala eski hantallığıyla mı indeksliyor bilmiyorum ama en azından sorgu başarılı
  • View için muhtelif helper’lar gelmiş. İncelemediğim için yorum yapamıyorum…
  • Technorati, SlideShare, ve Remember the Milk web servisleri. Diğer web servisleri oldukça kullanışlı idi, listeye bu siteler de eklenmiş oldu
  • Infocard, OpenID ve LDAP adaptörleri ve PDF için utf-8 desteği.
  • Zend_Layout

Bugün otomatik güncelleştirmeler Internet Explorer 7′yi getirdi karşıma… Tasarım testleri için makinemde IE6′yı bulunduruyordum hala…
Bu güncelleştirmede dikkatimi çeken nokta “free” olarak bahsedilmesiydi…
Çünkü bildiğim kadarıyla Internet Explorer 7′yi yüklerken Windows’un kopya olup olmadığını kontrol ediyordu Microsoft…
Bu kontrolün kalkması demek Windows’u kaçak kullanan bir sürü insanın Internet Explorer 7′ye geçeceği anlamına geliyor aslında…
Windows Vista’nın da yaygınlaştığı düşünülürse artık yavaş yavaş kurtuluyoruz Internet Explorer 6′dan sanırım…

Gece gece mutlu oldum

Esnek programlamayı özetlersek:

  • Kullanışlı yazılımın müşteriye hızlı ve sürekli çıkarılması ile müşteri memnuniyeti
  • Çalışan haldeki yazılım sık aralıklarla çıkarılır (Aylar yerine haftalar)
  • Çalışan haldeki yazılım devam eden işleyişin temel ölçütüdür
  • Yazılıma başladıktan sonra ortaya çıkan ihtiyaçlar da karşılanır
  • Müşteri ile yazılımcı arasında sıkı, günlük iletişim ve kooperasyon
  • Yüzyüze konuşmak iletişimin en iyi yöntemidir
  • Projeler motive olmuş ekip elemanları üzerinden yürür, ekip elemanlarına sorumluluk almaları konusunda güvenilmelidir.
  • Teknik olarak mükkemmeliyetçiliğe ve güzel tasarıma sürekli dikkat edilir
  • Basitlik
  • Kendi kendini organize eden takımlar
  • Değişken çevre koşullarına sürekli adaptasyon

Notlar…

Müşteri

Burada müşteri illa bir firma ya da kişinin hizmet verdiği diğer firma ya da kişi olmak zorunda değil.

Müşteri proje elemanlarının kendisi de olabilir, proje yöneticisi olabilir, patron olabilir ya da web2.0 projeleri için kullanıcılardır. Web2.0 projeleri için kullanıcı geribeslemeleri değerlendirilerek müşteri talepleri ekip tarafından çıkartılır.

Çalışan yazılım? Çıkarmak? Ha ne ?!?

“Çıkarmak” olarak bahsettiğimiz “release” ya da “deliver” olarak geçer. Yazılımın ufak versiyonlarıdır.

Çalışan haldeki yazılımdan kasıt ise kağıt üzerinde ya da önizleme görüntüleri değil gerçekten çalışan yazılımdır.

Yap Boz

Esnek yazılımın en büyük özelliği sonradan gelen taleplerin de karşılanmasıdır. “Bu değişikliği yapmak için veritabanında değişiklik yapmamız gerekir ki bu da çok uzun süren bir işlem olduğu için bu özelliği eklemeyelim” bir mazeret değil. Altyapı bu tür değişikliklerin pratik bir şekilde yapılabilmesini sağlayabilecek türden olmalıdır.

Teknik yeterlilik ve estetik

Teknik olarak mükemmeliyet ve güzel tasarım ne yazık ki Türkiye’nin kanayan yarası. En baba programcıları tasarımcıları görüyorum ve üzülüyorum. Öğrenmekten çok atıp tutmaktan anlayan bir millet olduğumuz için üzülüyorum…

Basitlik

Basitlik: Arabirim veritabanına erişmek için bir araç değildir. Onun yerine kullanıcı neyi görmek istiyorsa o verilmelidir. Son kullanıcı olarak beni ilgilendiren son 1 haftanın fotoğraflarıysa gidip iki tane tarih kutusundan bugünü ve geçen haftayı seçmemeliyim, o veritabanı yaklaşımı: x tarihi ile y tarihi arasındaki fotoğrafları göster. Benim ilgilendiği “yeni neler gelmiş (yeni = son 1 hafta)”

Basitlik var olan arabirimden eleman eksilterek kullanıcının hala aynı işleve sahip olmasını sağlama sanatıdır…
Basitlik kullanıcıların ekrandakileri “okuyarak” değil “tarayarak” işleyişi anlamalarını sağlama sanatıdır…
Basitlik eğitime ihtiyaç duyulmadan yazılımın kullanılabilmesini sağlama sanatıdır…

Her eleman bir proje yöneticisidir aslında

Proje yöneticisi yapılacak işleri insanlara atayan değil insanların kendi işlerini organize etmelerini ve birbiriyle organize olmalarını sağlayan kişi olmalıdır. Ekipteki her eleman projeyle ilgili sorumluluğunu alabilir ve kendi kendinin bekçiliğini yapabilir. Bu konuda ekiptekilere güvenmek gerekir, tabii ekiptekilerin de bu yapıya uyum sağlamaları…

Kendi kendini organize olan ekipler bu güven ortamının oluştuğu ekiplerdir. Ekip kendi kendini organize ederken proje lideri koordinasyonu sağlamalı.

Değişken, koşul, adaptasyon ?!?

Yazılım yapılır, “usability testing”e sokulur, imkan varsa istatistikler incelenir (mesela Google analytics), MySQL’in yeni versiyonu çıkar, müşteriden ek özellik istenir ya da var olan özellik farklılaştırılır. Çok kullanıcı gelir altyapının birden fazla sunucuya gereksinimi olur. İşte değişken koşullar bunlar ve diğerleri…

Bunlar sürekli olacak, yazılımı yaptım bitti yok artık. Sorunlar sürekli olacak ve çıkacak, genelde de adet olarak çok olmasına rağmen aynı sorunlar ortaya çıkar. Esnek olmak demek bunlara adapte olmak demek, hem de sürekli adapte olmak…