Pair Programming Nedir? Eşli Programlama Nedir?
Bu makalede Pair Programming Nedir konusunu anlatmaya çalışacağım. Yöneticilerin büyük çoğunluğu yazılım geliştiricileri nadir birer kaynak gibi görür. Onlar için bir parça kodu iki kişi yazmak çöp (israf) yaratır ve buna izin vermezler.
Yazılım geliştirme -eskiden beri- tek başına yapılması gereken bir iş olarak öğretildi ve insanlar hep tek başlarına kod yazdı.
Birçok deneyimli yazılım geliştirici bir başkasıyla kod yazmaya hevesli değildir. Bazı deneyimli yazılım geliştiriciler kodlarının “kişisel” -özel, başkasına kapalı olan- olduğunu ya da başkasının onları yavaşlatacağını söyler.
Bazı deneyimli yazılım geliştiriciler bir partner ile çalışmanın çalışma sürelerini uzatacağını söyler. Başka deneyimli yazılım geliştiricilerse biriyle beraber çalışmanın kodlarında problemlere neden olabileceğini söyler.
Şimdi sizlere Pair Programming’i anlatacağım. Yukarıda söylenenlerin ne kadar yanlış olduklarını ispatlamaya çalışırken aşağıdaki konulara değineceğim ve bunu elimden geldiğince kolay anlaşılabilir bir şekilde yapmaya çalışacağım.
- Eşli Programlama Nedir?
- Faydaları
- Eş Olma Varyasyonları
- Uzaktan Eşli Programlama Nedir?
- Eleştiriler
Pair Programming Nedir? Eşli Programlama Nedir?
Pair Programming, Çevik Pratikler’den biridir. eXtreme Programming tekniği olarak ünlenmiştir fakat 90’lı yılların başından itibaren farklı kişiler tarafından farklı adlar altında kullanılmaya ve anlatılmaya başlanmıştır. Yazının bundan sonraki bölümünde Türkçe karşılığı olan Eşli Programlama’yı kullanacağım. Bu pratikte yazılım geliştiren iki kişi bir özelliğin geliştirilmesi için beraber çalışır. Tıpkı rallide olduğu gibi geliştiricilerden biri pilot koltuğuna oturur, kodu yazan kişidir ve Sürücü -yazının bundan sonraki bölümünde sürekli olarak Sürücü terimini kullanacağım- olarak anılır. İkinci pilot ise Gözlemci -yazının bundan sonraki bölümünde sürekli olarak Gözlemci terimini kullanacağım- olarak anılır. İkinci pilotun işi gözlemlemek ve Sürücü yolla ilgili bir problem yaşadığında araya girip doğru yolu bulmasına yardımcı olmaktır.
Gözlemci kodun yazılmasını izlerken aynı zamanda stratejik yaklaşımlar sergiler. Örneğin işin gittiği yönü, gelecekte yaşanabilecek sıkıntıları yaşanmadan önleyebilmek için alınması gereken aksiyonları düşünür. Böyle bir durum için şu örneği düşünebiliriz.
Eşli Programlama Örneği
Yazılması gereken 5 servis bulunuyor. Bu servislerden ikisi kullanıcıdan farklı değerler alıp veritabanında arama yaparak cevabı dönüyor. Diğer üç servis ise kullanıcıdan GUID’ler alıp bu GUID’lerin bulunduğu kayıtları cevap olarak dönüyor. Sürücü ilk servisi yazarken sadece servisi yazmayı düşünür. En kısa yoldan servisi bitirmek amacındadır – en kısa yoldan servisi bitirmek kötü birşey değildir, verimliliği artırmayı amaçlayarak bu yaklaşımı sergiler, ayrıca insan lineer düşünür*-, Gözlemci ise diğer servisleri de düşünerek bu servislerde kullanılabilecek Interface’ler ya da bu servislerin Extend edilebileceği base class’lar yazmayı düşünmeli ve Sürücü’yü yönlendirmelidir.
*Burada önemli olduğunu düşündüğüm bir konuyu vurgulamak istiyorum. İnsan lineer-doğrusal- bir şekilde düşünür. Yani bir problemi çözerken zihin doğru görünen ilk ve en kısa yoldan çözmeye çalışır. Gözlemci burada devreye girer. Sürücü ilk kararlarında kısa yolu seçmeye meyillidir. Gözlemci, Sürücü hata yaparsa araya girmelidir.
Gözlemci’nin bu şekilde düşünmesi Sürücü’nün kendi yaptığı işte özgürleşmesini sağlar. Bu özgürlükle Sürücü kendi yaptığı işe daha kolay odaklanabilir. Yukarıdaki örnek üzerinden devam edersek istenilen servisin bitirilmesi için gerekli taktiksel yaklaşımı hızlıca uygulayabilir. Burada unutulmaması gereken nokta Gözlemci’nin bir rehber olarak bulunmasıdır ve Sürücü’nün ona güvenmesidir.
Yeni başlayacak olanlar; ilk yaptığınızda hatta ilk üç dört seferde belkide bir faydası olmadığını düşüneceksiniz. Dokuzuncu, onuncu yapışınızda ve geriye dönüp baktığınızda işlerin çok daha kolay, hatasız ve size geri dönüşü olmayan bir şekilde bittiğini göreceksiniz.
Not: Eğer onuncu seferde hala bir fayda sağlayamıyorsanız birşeyleri gerçekten yanlış yapıyor olabilirsiniz. O zaman bana yazın 🙂
Bu yazı bir serinin devamıdır. Yazının tamamına erişmek için lütfen tıklayınız.
“Pair Programming Nedir? Eşli Programlama Nedir?” hakkında 3 yorum