 Merhabalar ARGE Akademi takipçileri. Uzun bir aradan sonra tekrar aranızda bulunmanın mutluluğunu yaşıyorum. Efendim bu kadar süredir ne yaptın sorusuna verebilecek tonlarca mazeretim olsa da en kestirme yoldan yoğunluk diyeyim :) Bu yazımda şu an teorik olarak ilgilendiğim, "uç programlama" olarak çevirisi hoşuma giden "Extreme Programming"'in kavramlarından "eşli programlama (Pair Programming)" hakkında bir iki şey anlatacağım. Eşli Programlama Nedir? Öncelikle “nedir eşli programlama?” sorusuna yanıt arayalım. Basitçe anlatacak olursak bir kodu aynı makineyi paylaşan iki kişinin yazmasına dayanan yönteme verilen isim. Gayet normal görünen bu durumun işleyişi ise biraz farklı oluyor. Burada gerekli olan "iki programcının, bir iş istasyonunda geliştirme güçlerini birleştirmesi suretiyle olaya katılması". Aşağıdaki şekillerde de görüldüğü gibi; çalışma sistemi bir kişiye dayanan geliştirme yöntemine alternatif yerleşim çeşitleriyle bir makine başına iki kişinin yerleşimi sağlanmış. Düşünsenize, tek bilgisayar başında iki kişi! Eee ne işe yarayacak ki dediğinizi duyar gibiyim? Araştırmalara göre bu yöntemin programcılara getirisinin diğer yöntemlere göre daha yüksek olduğu görülmekte. Bir kere arada eşler arası rekabet var. Önce bir eş programcı test kodu yazıyor ardından diğer eş o testi geçip kodun üzerine kendisininkini yazıyor (bkz. Test Driven Development). Uygulama Mantığı, Artı ve Eksileri Girişi biraz açmak ve kafalarda oluşabilecek karmaşayı önlemek adına olayın daha açıklayıcı tarifi aşağıdaki gibi verilebilir: • Her eşte iki rol bulunmaktadır. Klavye ve fareyi elinde bulunduran eş, metodu en uygun şekilde yerleştirmeyi düşünür. Diğer eş ise daha stratejik düşünür: • “Bütün Yaklaşım” çalışacak mı? • Çalışmayabilecek diğer bazı test durumları neler? • Problemin yok olacağı sistemi basitleştiren herhangi bir yol var mı? • Eşleme işlemi dinamiktir. İstendiğinde eşler diğer gruplarla değiştirilebilir. • Pek alışık olunmayan bir alanda yapılması gereken bir iş olduğunda, bu işi daha önce tecrübe edinmiş birisiyle eş olunması o iş için tecrübe basamaklarının nispeten hızlı atılması demektir.
Başlangıçta biraz uçuk görünse de proje içerisinde eş değiştirmelerle projenin, bir veya iki kişiye bağlı kalmaması sağlanır. Bu da bazı firmaların bu tarz sıkıntısına ilaç gibi görünmektedir. Artı bir kişi illaki bu kodu ben yazdım deme lüksüne de sahip olamıyor. Bazı faydalarını sıraladık, ancak hiç mi olumsuz yönleri yok? • Araştırmalara göre (North Carolina State University) eşli programlama ile geliştirme süresi tek başına programlamaya göre %15 daha uzun sürebilir. • Kullanılan makinedeki oturum hangi kullanıcıya ait? Bu durumda diğer kullanıcının hesabı ne olacak? Şeklindeki sorulara aranılan cevaplara bulunan çözümler tatminkar görünmüyor. Liste daha da uzatılabilir… Eşli programlamada başarılı olmanın bazı anahtarları; sık ara vererek tekrarlanabilecek gerginlikleri aza indirmek, geliştirmeye başlamadan geliştirme esnasında kullanılacak elemanların (editör, derleyici, pencere tasarımı vs) kararlaştırılması, gereksiz veya abartılı sözler verilmemesi, diğer eşi dinlemeye zaman ayırmak ve güvenmek şeklinde sıralanabilir.
Ülkemizde Eşli Programlama Peki, ülkemizin şartları ele alınırsa bu yöntemin uygulanabilirliği var mıdır? Şu an için yöntemi uygulayan irili ufaklı şirket sayısı az değil ve tartışma listelerinden edindiğim gözlemlerde uygulama sonucunda memnun kalanların sayısı hayli çok. Ancak ülkemizde klasik işveren mantığında hareket edenler için biraz soğuk görünmekte. Çünkü bir iş için bir yazılımcı yerine iki yazılımcıya para verme fikri kulağa pek hoş gelmiyor. Bunun aşılması için ise eşli programlamanın tek başına olmadığının diğer uç programlama teknikleri ile bütünleşildiğinde verimin arttığının anlatılması gerekebilir. İlerleyen yazılarda daha fazla uç programlamaya değinmek üzere hoşça kalın.  İletişim :
Bu mail adresi spam botlara karşı korumalıdır, görebilmek için Javascript açık olmalıdır
1. Yazan: atalay, 29-09-2007 16:39 Verdigin Bilgiler icin saol devamını bekliyoruzz(Arge Takipcisi Olarak )
| . : : Sadece Kayıtlı Kullanıcılar Yorum Yazabilirler : : . . : : Yorum yazabilmek için Lütfen Sisteme Giriş Yapın veya Kayıt Olun : : . |