Pair Programming
Herkese Merhaba,
Bugünkü yazımızda yazılım geliştirme süreçlerinde verimliliği arttırma yöntemlerinden biri olan Pair Programming hakkında konuşacağız. Peki nedir Pair Programming? Anlamına, avantajlarına ve zorluklarına birlikte göz atalım.
Adından da anlaşılacağı gibi, pair programming, iki (sınırlama sinir getirebilir, belki de üç)geliştiricinin yalnızca bir makine kullanarak birlikte çalıştığı (yazılım geliştirdikleri) bir yöntemdir. Her yazılımcının kendisine ait bir klavyesi, bir faresi vardır. Bir programcı, kodlayan yani sürücü olarak hareket ederken, diğeri yazılan kodu gözler, kontrol eder, düzeltir ve yazım denetimi yapar, aynı zamanda kodun nereye gideceğini de belirleyerek gözlemci olarak görev yapar. Bu roller herhangi bir zaman diliminde değişebilir; sürücü daha sonra gözlemci olabilir ve bunun tam tersi de geçerlidir. Bu durum, aynı zamanda "pairing", "programming in pairs" ve "paired programming" olarak da adlandırılır.
İlk olarak sürücü kodla ilgili bir sorunla karşılaşırsa, sorunu çözecek iki kişi olacaktır. Bu durum da bize bir elin nesi var iki elin sesi var dedirtecektir. Bununla birlikte, pair programming yapıldığında birtakım olarak çalışmaya zorlanırız. Bu da koda daha fazla kalite kontrolü sağlar. Her iki taraf da sorunlar ortaya çıktıkça daha hızlı çözmek için ortak deneyim ve bilgilerini kullanır. Partneriniz kendi yanılgılarını ve önyargılarınızı daha kolay tespit edebilir ve daha hızlı yolunuza devam etmenize yardımcı olabilir. Geliştiriciler ayrıca, daha gelişmiş programcılardan en iyi uygulamaları ve daha iyi teknikleri edinebilirler. Ayrıca, iki programcı arasındaki mentorluk ilişkilerini de kolaylaştırabilir. Utah Üniversitesi tarafından yapılan bir araştırmaya göre, pair programming sırasında ortaya çıkan kodda yüzde 15 oranında daha az hata vardır.
Pair programming, çalışanların kişiler arası becerilerini geliştirir. Tek bir proje üzerinde iş birliği yapılması ekibin iletişim ve ekip çalışmasının değerini anlamasına yardımcı olur. İş ortakları arasında en iyi uygulamaların paylaşılması, daha iyi kod kalitesi sağlar. Özellikle, partnerinize karşı sorumlu olmak, her iki üyeyi de herhangi bir kısayol veya hack kullanmaktan caydırır. Pair programming, ekipleri daha sonra beklenmedik hatalar yaratmayacak sağlam çözümler oluşturmaya teşvik eder. Pair programming ortakları genellikle iki uzman veya bir uzman ve bir acemidir. Bu ikinci durumda, pair programming, genç ve yeni ekip üyelerinin daha deneyimli meslektaşlarından bilgi almalarına olanak tanır. Bu, ilk katılım sürecini büyük ölçüde hızlandırabilir. Böylelikle eğitim süreci ivme kazanır. Pair programming size proje üzerinde konuşabileceğiniz ve sizinle empati kurabilecek ve sorunlarınızı çözmenize yardımcı olacak bir başkasının olmasına olanak verir. Bu, ekibin bir bütün olarak daha üretken ve daha mutlu olmasına yardımcı olur. İş yerinde pair programming uygulayan kişilerin yüzde 96'sı, tek başına programlamaya göre işlerinden daha çok zevk aldıklarını söylüyorlar.
Pair programming sürecinde dikkat edilmesi gerekenler de vardır. Bu süreçte katılımcılar eşit derecede meşgul ve üretken olmalıdır. Aksi takdirde hiçbir faydası olmaz.
Denemeyenler ise bir projede iki geliştirici olduğu için maliyetin ikiye katlanacağını düşünebilir. Ancak bu açıklığa kavuşturulması gereken bir yanılgıdır. Doğru yapıldığında eşleştirmenin, tekil çıktı açısından yalnızca yüzde 15 yavaşlamayla sonuçlanmasının yanı sıra, aslında kodlama sürecini hızlandırdığı ve daha kaliteli kod sağladığını, bu da programın yeniden yapılması gerekme olasılığını azaltır.
Aynı zamanda, pair programming, çiftin ne yaptığını sözlü olarak detaylandırdığı yüksek sesle bir programlama süreci olması açısından oldukça sosyal ve etkileşimlidir.
Eşleştirmeye yaklaşmanın en iyi yolu, iki geliştiriciye ortak olmak ve bir bilgisayarı paylaşmalarını sağlamaktır. Birlikte mimarlık, kodlama ve kodlarını gerçek bir ortaklık anlayışı içinde test etmelerini sağlamaktır. Eşit derecede yetenekli (uzman - uzman veya acemi - acemi) iki programcı içerecek olsa da, eğitim ve eğitim amaçlı (uzman - acemi) Pair programming kullanılmalıdır. İkili işin nasıl bölüneceğine karar verebilmeli ve sık sık rol değiştirmeleri de tavsiye edilir.
Ben de meslekte yolun henüz başlarında denilebilecek bir developer olarak, yaklaşık altı aydan bu yana içinde bulunduğum geliştirmesini ve desteğini yaptığım projemde pair programming yöntemi ile çalıştım ve halende keyifle çalışmaya devam etmekteyim. Takım çalışması ve güçlü iletişim ile birçok problemin üstesinden geldik. Uzman yazılımcıların tatmin edici donanımlı yapıları ve bilgilerini paylaşıma açık olmaları ile, aynı zamanda kaliteli bir 'eğitim süreci' de sürdürülmüş oldu. Pair programming beni motive edip güçlendirdi diyebilirim. Naçizane tavsiyemdir.
Herkesin de en kısa sürede başlaması dileğiyle...
Asya