Pair Programming ve Mob Programming
Herkese merhabalar 👋🏻, bugün çevik çalışan yazılım ekiplerinde sıkça kullanılan programlama türlerinden ikisini karşılaştıracağız. Bir problem için optimum çözüme ulaşmaya aynı zamanda da geliştiricilerin gelişmesine de katkı sağlayan bu yaklaşımlar pandeminin etkisi ile artan çevik yaklaşımla online platformlarda da yerlerini almış durumdalar. Hadi gelin tek tek inceleyerek başlayalım.
Pair Programming
Pair programming iki gelişitiricinin tek bir bilgisayar üzerinden aynı konuda geliştirme yaptıkları bir sistem. Bir geliştiricinin kodları yazdığı sırada diğeri bu kodları inceler ve hata olasılığı olan, akışta problem yaratabilecek veya yazılan satırın daha performanslı bir yolu olduğunu düşündüğünde müdahale ederek daha iyi sonuçlar alınmasını sağlar.
Yazma ve inceleme rolleri aralıklarla değiştirilerek farklı bakış açılarının sentezlenmesi sağlanmış olur.
Aynı iş için aynı anda iki kişi çalıştığı için burada verim düşüyormuş tuzağına düşebilirsiniz. Ama aslında ortaya çıkan ürün çok daha az hata ile ve yönetilebilir şekilde yazılacağından sonrasındaki bakım ve hata çözme maaliyetleri çok daha düşmektedir. Ekibin gelişimi de pair programming ile artacağından geliştirme süreçlerine de olumlu etkisi olacaktır. 2000 li yıllarda yapılan bir ankete göre kendi isteği ile pair programming yapan geliştiricilerin işlerinden %96 oranında daha fazla zevk aldığı, %95 inin de pair programming ile kendilerine daha çok güvendikleri saptanmıştır.
Evlerden çalıştığımız bu günlerde ekip içi iletişimin önemi daha da artmaktadır. Ekibe gelenler, gidenlerle beraber değişen yapıyla ekibin uzaktan çalışmayla birlikte birbirleri ile etkili iletişim kurmaları bir handikap oluşturabiliyor. Pair programming ile beraber bu iletişim eksikliğinin de önüne geçilmiş oluyor. Çünkü ekip ile sürekli beraber çalışıyorsunuz düşünsenize :)
Pair çalışırken zamanın nasıl geçtiği bazen anlaşılamayabiliyor fakat odağımızın azalmaması için ara vermekte fayda var. Zaman yönetimi için pomodoro tekniği incelenebilir. Ben de zaman yönetimi için kullandığım uygulamaları ekliyorum buraya
- Focus Road iOS
- Forest iOS
- Forest Android
Mob Programming
Mob programming aynı işi tüm ekibin, aynı yerde tek bir bilgisayardan yaptığı sistem diyebiliriz. Tüm ekip tasarım olur, mimari karar verme aşaması olur toplanarak yapılacak iş için ortak kararlar alırlar. Bizler de özellikle riskli veya zorlu gördüğümüz işler için bu yöntemi kullanarak mümkün olan en iyi ve risk teşkil etmeyecek yaklaşımları uygulamaktayız.
Genel olarak pair programming ve mob programming benzer amaca hizmet etmekte, ekip içi iletişim ve maksimum verim, minimum risk. Pair de iki kişi toplanırken mob ta tüm ekip toplanmakta. Büyük bir sorun olduğunda mob programming yöntemi daha çok tercih edilirken genel tasklarda pair programminge bir şans verilebilir ;) Sağlıcakla kalın.
Referanslar
- https://en.wikipedia.org/wiki/Pair_programming
- https://martinfowler.com/articles/on-pair-programming.html
- https://en.wikipedia.org/wiki/Mob_programming
- https://www.agilealliance.org/glossary/mob-programming
Programming vector created by storyset from freepik.com