eXtreme Programming ve Bir Başarı Öyküsü

0
FZ
Bill Clementson son blog girdilerinden birinde birkaç gün önce gerçekleştirdikleri etkinlikte sunum yapan ve bir başarı öyküsü aktaran Ken Dickey'e yer vermiş.

Avustralya kökenli başarılı bir start-up olan Memetrics'in öyküsünü çarpıcı bir dille anlatan Dickey, eXtreme Programming metodolojisi ve Common Lisp'ten faydalanarak geliştirdikleri sistemi anlatan güzel bir sunum hazırlamış.

Keskin rekabetten ve gizli silahların gücünden hoşlananlar için incelenesi bir örnek. Afiyet olsun.

Görüşler

0
neurorebel
Hımm... XP... Amatör Delphi ve VB programcılarının proje geliştirme mantalitesinin "cool" bir isim verilmiş hali... Yazıda bahsi geçen geliştirme adımları standart bir sistem analizinin iterasyonları zaten. Eğer işin başında doğru dürüst analiz yapılırsa çok daha sağlam ve esnek ürünler ortaya çıkar. Ayrıca başarıyı neye göre ölçüyoruz ? Eğer amaç, hayatında konsol bile kullanmamış bir kaç adamı kaşıkla yavaş yavaş mama vererek memnun etmekse; evet XP iyi bir tekniktir. Ama XP modern yazılım geliştirme anlayışıyla kesinlikle uyuşmaz. Yazılım *katmanlardan* oluşur. Bu nedenle ürünün kalitesi işin başında modellemeye ayrılan vakitle doğru orantılıdır. Ortalıkta nerede n'aptığı belli olmayan ve 10larca megabytelık paket boyutlarına ulaşan pek çok başarılı(!) yazılım var. Bunlar ölçüt değil... Olmamalı...
0
anonim
Keşke bu satırları yazmadan önce XP hakkında biraz daha okusaydınız. XP de katmanlar vardır, hatta XP de dizayn da vardır. AMA XP her bir ayrıntıyı en ince şekilde planlamaya karşıdır. XP için kabaca şöyle bir algoritma uygulanabilir.

1 İhtiyaç analizini yap, gereksinimleri belirle
2 İskelet tasarımı oluştur.
3 Testleri yaz
4 Çalıştırılabilir kodu yaz
5 Test et
6 Kodu değiştir
7 Dokümantasyonu değiştir
8 Müşteriye göster ve değişen ihtiyaçlara göre 3 adıma geri git.

Daha fazlası için aşağıdaki adreslere gözatılabilir.

http://www.fazlamesai.net/index.php?a=article&sid=1300
http://www.bilgidata.com/localhost/bilgidata/yazi_liste.jsp@kategori=Proje.html
http://www.godoro.com/Divisions/Ehil/Mecmua/Magazines/Columns/txt/html/article_XP.html
http://www.martinfowler.com/
0
mdakin
XP, üzerinde çok tartışılan ve bence de eksikleri olan bir metodoloji olsa da "Amatör Delphi - VB programcılarının mentalitesi" diye aşağılanamayacak kadar iyidir. Etrafımızdaki bir kaç kişi XP yapıyorum diye işleri ellerine yüzlerine bulaştırdıysa bu metodolojinin suçu değil. Örnek verecek olursak amatör (hatta kendisini profesyonel sanan) delphi ve VB programcıları:
  • Tasarım yapmaz, XP tasarıma önem verir
  • Asla test yapmaz, Otomatize edilmiş testler XP nin belkemiğidir, olmazsa olmaz
  • iteratif geliştirme yapmaz, blok halinde bir çamur yığını oluşturur, XP en baştan itibaren çalışabilen bir yazılımın adım adım planlı şekilde sürekli testlerle kontrol edilerek ilerlemesini sağlar. Otomatize edilmiş build ortamları ve sürekli testlerin işletilip regresyonların belirlenmesi de XP nin önerisidir

Bunlardan başka, sürekli refactoring gibi şeylerin amatör VB programcılar için hiç bir şey ifade etmediği de aşikar. XP bu kuralalrı kendisi uydurmadı, hemen hepsi zaten yıllardır iyi programala ve geliştirme teknikleri olarak zaten biliniyordu. Dediğinizin tam aksine, XP modern yazılım geliştirme anlayışının bir parçasıdır, kullanılabileceği yerler de çoktur. Siz istediğiniz kadar "katmanlı" yazılımınızın başında uzuun bir süre modellemeye zaman ayırın, eğer müşteriniz fırıldak gibi karar değiştiriyorsa, takımınızın tamamı guru seviyesinde adamlardan oluşmuyorsa o yazılımı bitene kadar en az on kere baştan modellersiniz. Hızlı değişime adapte olan modellerin, ki XP olmak zorunda değil, başka çevik yöntemler de var, gayet başarılı olduğu örnekler var. XP için benim de eleştirebileceğim şeyler var, ama bu şekilde körü körüne kötülemek doğru değil.
0
neurorebel
Evet biraz körü körüne kötüledim. Kusura bakmayın :) Sadece bu aralar bu konuda biraz hassas ve sinirliyim... XP'nin daha iyi bir seçim olabileceği projeler mutlaka olabilir. Ama sinir bozucu olan, kimi insanların VB'yle, Delphi'yle veya benzer komponent tabanlı herhangi bir geliştirme sistemiyle yaptığı yanlışları doğruymuş gibi göstermek namına "Bunun adı XP !" diye bağırması.
0
bm
Aslinda anliyorum ben ruh halinizi. Ben de pek memnun degilim zaten bildigimiz bazi seylerin paketlenip sonra bilip anlayamayacak insanlarin agzina sakIz olmasindan. Hmm iyi bu calisti ama biraz temizleyip duzenlemek istiyorum yerine simdi refactor etmem lazim denmesinin merifet olmasi benim de hosuma gitmiyor. Yalniz bu bahsedilen insanlar tam oyle degil. Buyuk bir _yenilik_ iddialari yok bence, yalniz XP demekten, o terminolijiyi kullanmakan filan cekinmiyorlar, presniplerinin bir butun olarak faydali olduguna inanmislar. Bir ara bu Memetrics, sirf ortamin hoslugu yuzunden pek de para vermeden ABD'den AU'ya genc lispci getirtip calistirirdi. (pair programming ya, hizli uyum, hizli verim vs. vs.).
0
FZ
Valla Delphi'cileri ve VB'cileri bilmem de görülen o ki berbat bir sözdizimi olan Common Lisp dilini kullananlar da bu proje için eXtreme Programming kullanmışlar. Söz konusu adamların hayatlarında konsol kullanmamış adamlar olmadıklarına bahse girerim (hayatında konsol kullanmış olmak her ne demekse ve konumuzla ne ilgisi varsa). Memetrics'in başarısına gelince herhalde rekabet ettiği ortamlara bakarak bir karar verilebilir.

Ben neyle neyi kıyasladığınızı anlamadığım gibi yazıda linkleri verilen belgeleri, sunumları okuduktan sonra mı böyle bir kanıya vardınız onu da anlamadım.
0
neurorebel
Hayatında konsol kullanmamış demekle yazılım işi hakkında hiç bir fikri olmayan kişileri kastetmiştim...
0
tongucyumruk
Bir süredir aklımda olan birşeydi, tam yazmak için fırsat oldu bana da...

Lisp ortamlarındaki yazılım geliştirme metodolojisinin XP'deki birim testi kavramını farklı bir boyuta taşıyabileceğini düşünüyorum. Şu ana kadar özellikle Practical Common Lisp gibi kaynaklarda gördüğüm kodlar genelde Lisp ile yazılan kodların diğer dillerde belki "aşırı" diye nitelenebilecek ölçüde parçalanmış olduğu. Burada parçalanmadan kastım tabiiki köt birşey değil. Sadece gördüğüm kadarıyla genelde Lisp'te kod yazma tarzı problemi mümkün olabilecek en küçük fonksiyonlara bölüp sonra da bu fonksiyonları bir araya getirerek çözümü oluşturmak yönünde. Bunun tipik bir örneği bahsi geçen kitapta gördüğüm spam filtresi [1].

Bu yönüyle Lisp'in XP tarzı yazılım geliştirmeye fazlasıyla uygun bir dil olduğunu düşünüyorum. Zira yazılımın tamamı genelde çok fazla parametresi olmayan (çoğunlukla tek parametreli) fonksiyonlardan oluştuğunda bu otomatik olarak refactoring'i kolay hale getirdiği gibi yazılımın kendisinin de bir tür birim test gibi çalışmasını sağlıyor ve gerekirse yazılacak ekstra birim testler için uygun bir platform oluşturuyor [2].

[1] http://www.gigamonkeys.com/book/practical-a-spam-filter.html
[2] http://www.gigamonkeys.com/book/practical-building-a-unit-test-framework.html
Görüş belirtmek için giriş yapın...

İlgili Yazılar

Common Lisp ile Oyun Programlama

FZ

Frank Buss, Common Lisp kullanarak Aqueaduct isimli bir mantık bulmaca oyunu (puzzle) geliştirmiş.

Bir grafik kullanıcı arayüzü de olan oyun MS Windows, GNU/Linux ve Mac OS X ortamlarında (kodda bir değişiklik gerektirmeden) çalışabiliyor. Kaynak kodu meraklısı için öğretici olabilir.

Core-Server GNU/Linux Installer

anonim

Hemen herkesin bir miktar güçlük yaşadığı Common Lisp tabanlı web sunucu kurma problemini halledeceğini umdugum yazılımı sizlerle paylaşmak isterim.

http://www.core.gen.tr/projects/core-server-installer-latest.tar.gz*

Hata bildirilerinizi evrim _at_ core.gen.tr adresine gonderebilirsiniz.

*: Gentoo, Debian ve Ubuntu GNU/Linux dağıtımları için test edildi

ECLM '08 ve ELS '08'in Ardından

FZ

ECLM 2008 (European Common Lisp Meeting) ve ELS 2008 (European Lisp Symposium) tamamlandı. ECLM 2008'deki konuşmalardan birkaç örnek vermek gerekirse:
  • Marc Battyani, Lisp-based supercomputing
  • Juan José García-Ripoll, ECL - more than an Embeddable Common Lisp
  • Jeremy Jones, InspireData - how it was written in Lisp
  • Kristoffer Kvello, House Designer - using Knowledge Based Engineering and Lisp to automatically design buildings
  • Nicolas Neuss, Femlisp - solving partial differential equations with Common Lisp
  • Stefan Richter, Using Common Lisp for large Internet systems
  • Kilian Sprotte, PWGL - an environment for sound synthesis and computer aided composition

Core Server Yenilikleri

aycanirican

Core Server Uygulama Sunucusu önceden duyurduğumuz Javascript derleyicisini ilgilenenlere sundu. Bunun yanında sürdürmeler ile web uygulamaları yazabileceğiniz programlama çatısı, örnek programlar ve yeni belgeler de projeye eklendi.

Video: 5 dakikadan kısa sürede TCP/IP network ve multithreaded programlama

FZ

Daha önceden Rebel With A Cause ve A Day At The Beach makaleleri ile tanıdığımız tehlikeli programcılardan Sven Van Caekenberghe gene yapacağını yapmış.