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

Kent Pitman Lisp ve ötesi ile ilgili soruları yanıtladı - Bölüm 2

FZ

Kent Pitman, 2001 yılının sonuna doğru Slashdot camiasının Lisp/Scheme, standartlar, yazılım geliştirme ve diğer konulardaki sorularını cevapladı, meraklarını giderdi. Bir hayli detaylı olan bu soru cevap seansı uzunluğundan ötürü iki bölümde yayınlandı. İkinci ve son bölümü, Bilkent Üniversitesi, Bilgisayar Müh. bölümü öğrencisi Hayrettin Gürkök'ün çevirisi ile karşınızda... (1. bölüm burada, 2. bölümün ilk kopyası ise ileriseviye.org adresinde)

Kor Bilişimden Common Lisp Tabanlı JavaScript Üreteci

aycanirican

Web uygulamaları konusunda araştırma ve geliştirme yapan Kor Bilişim, Core Server ile beraber kullanabileceğiniz tamamen yeni ve özgün bir JavaScript üreteci geliştirdi.

Lisp ile TILSIMLI ve Renkli Programlama: Lisperati

FZ

Tüm zamanların en renkli Common Lisp programlama kılavuzlarından Lisperati artık anadilimizde.

Söz konusu belge İstanbul Bilgi Üniversitesi Bilgisayar Bilimleri Bölümü öğrencisi Seda Çelebican tarafından Türk diline çevrildi. Belgenin Türk kültürüne uyarlanmasında ve genel editörlük işlemlerinde İstanbul Bilgi Üniversitesi eMBA Yazılım Geliştirme ekibinden Emre Sevinç emek harcadı. Bu süreçte çok titiz eleştirileri, geri beslemeleri ile bize yardımcı olan Bilkent Bilgisayar Mühendisliği bölümü öğrencilerinden Hayrettin Gürkök'e ve Lisp konusunda yardımcı olan Bülent Murtezaoğlu'na teşekkürü bir borç biliriz. Belgedeki hatalardan çevirmen ve editör sorumludur. Orjinal belgenin yazarı Dr. Conrad Barski hiçbir maddi hatadan ötürü sorumlu tutulamaz. Belgeyle ilgili tartışma ve her türlü soru için bu haberin altına yorum yazabilir, iletişim kurabilirsiniz.

Lisperati belgesindeki kodları denemek için hiçbir şey kurmanıza gerek yok. Belgede anlatıldığı gibi uzaktaki bir telnet servisine kolayca bağlanıp kodları hemen derleyebilirsiniz ancak bu konularla daha ciddi ilgileniyor ve kendi Lisp ortamınızı kurmak istiyorsanız daha önce FM'de yayınlanan Common Lisp Geliştirme Ortamı Kurulumu kılavuzundan faydalanabilirsiniz.

Güncelleme (2/5/2005): Kılavuzu PDF olarak hazırlayıp Ayhan Barış'a çok teşekkür ederiz.

Common Lisp ile Internet Programlamaya Giriş Kılavuzu

FZ

Beklenen an geldi. Common Lisp kullanarak web programlamaya dair ilk makalemizi yayınlıyoruz. Giriş seviyesindeki bu makalede en temel bilgiler aktarılmış ve Lisp heveslilerinin gerekli araçları nasıl kuracakları ve ayarları nasıl yapacakları gösterilmiş, ilk bebek adımlarını atmaları amaçlanmıştır.

Makale, İstanbul Bilgi Üniversitesi, Bilgisayar Bilimleri Bölümü öğrencilerinden Haldun Bayhantopçu tarafından yazılmış ve Emre "FZ" Sevinç tarafından son düzenlemeleri yapılmıştır. Teknik konular ve teknik üslup konusunda eleştirilerini esirgemeyen Bülent Murtezaoğlu'na teşekkür ederiz.

Afiyet olsun...

Fonksiyonel Geometri, Lisp, Escher, Postscript: Sanat ve Bilgisayarlar

FZ

Daha önce FM'de bir Mars programlama projesi yarışması bağlamında adı geçen Frank Buss bu sefer de gündemimizi Peter Henderson'ın makalelerinden uyarladığı ve Common Lisp kullanarak gerçekleştirdiği bir fonksiyonel geometri uygulaması ile meşgul ediyor. Fonksiyonel programlamanın grafik uygulamalarını kullanarak anlaşılması bakımından çarpıcı bir örnek. Program çıktısını Postscript olarak üretiyor.

Söz konusu grafik yapılar pek çok matematikçinin ve diğer bilim insanlarının da hayranlığını kazanan Hollandalı meşhur sanatçı M. C. Escher'in yapıtlarından esinlenerek hazırlanmış.