Kataların Eşli Programlanması

Yaptığım kataları KodKata.com‘da sizinle paylaştım. Her gün düzenli olarak kod katalarımı yapıyorum. Her gün değişik bir kata yapmaya gayret ediyorum. Kataları tekrarladıkça katanın öngürdüğü birçok işlem benim için rutinleşiyor. Zaman zaman katanın öngördüğü yoldan saparak, başka şeyler deniyorum. Bu yeni bir tasarım kararı olabiliyor ya da yeni bir refactoring metotunun kullanımı. Netice aynı olmakla beraber, takip ettiğim yol farklı olabiliyor. Bu benim sorunlara değişik açılardan yaklaşma yeteneğimi pekiştirmemi sağlıyor. Ama sonuç itibariyle katayı programlarken kullandığım her şey benim kendi kafamda oluşturduğum program yazma ve programcı olma modelinden besleniyor. Bu modelin ya da modellerin çizilmiş belli sınırları var. Bu sınırları tanımlayan benim programcı olarak edindiğim tecrübeler ve bu konuda sahip olduğum yetenekler.

Bu sınırları programcının tek başına kata yaparak aşması bir yere kadar mümkün. Bu sınırları aşmak ve edinilen tecrübe ve pratikleri yeni bir boyuta taşımak için kataların eşli programlama yöntemi ile yapılmasında fayda var.

İlk zamanlar kataları tek başıma yapmamın daha faydalı olduğunu düşünüyordum. Code Retreat gibi toplantılarda diğer programcılarla kataları eşli programlanın ne kadar faydalı olduğunun farkına vardım. Her programcının sorunlara yaklaşım tarzı, sahip olduğu tecrübe birikimi ve yetenekleri farklı. Durum böyle olunca eşli programlama seansında programcının eşinden öğrenebileceği çok şey oluyor. Bu şekilde mevcut sınırları biraz daha genişletip, yeni bir bakış açısı kazanmak mümkün oluyor. Kişisel gelişim için işin sırrı biraz da mevcut sınırları devamlı başkı altına alıp zorlamakta yatıyor. Sınırlar genişlemek için baskı altında tutulmadıkları sürece daralma eğilimi gösterirler. Programcı bu sınırlara dayanacak şekildeki uğraşılarla daha iyi bir programcı haline gelir.

Kataların eşli programlanması konusunda bir uyarıda bulunmak istiyorum. Bir katanın ihtiva ettiği belli bir ilerleme şeması vardır. Bu şemanın eşli programlama yapacak iki programcı tarafından biliniyor olması gerekir. Katadan en büyük fayda bu şemaya sadık kalındığında sağlanır. Eğer programcıların katayı nasıl yapacaklarına dair bir fikirleri yoksa, katanın büyük bir ihtimalle verim alınamayan, programcıların ne yapacaklarını tam olarak anlayamadıkları ve deneme, yanılma usulü ile bir şeyler yapmaya çalıştıkları bir oturum haline gelme ihtimali yüksektir. Ben bu tecrübeyi ilk yaptığımda, kendimi panik içinde etrafa koşusan bir tavuk gibi hissetmiştim :) Bu sebepten dolayı bir katayı eşli programlayacak programcılara, kata oturumu öncesinde ilgilendikleri katayı ve nasıl yapıldığını yakından incelemelerini tavsiye ediyorum. Bu konuda KodKata.com kaynak olarak kullanılabilir.

Bugün SocRaTes 2012 toplantısı başlıyor. Sınırları lastik gibi sündürme zamanıdır ;-)

EOF (End Of Fun)
Özcan Acar