Ekibin Dikkati ve Saygısı Nasıl Kazanılır?

Her programcı yeni bir ekibe dahil olduğunda kendisini ispatlamak zorundadır. Bu gerçekleşene kadar ekip içindeki diğer programcılar yeni programcıyı dikkate almazlar. Birilerinin ekibe dahil olduğunu beyinlerinin en arkasında çalışan bir thread ile belki farkederler, ama bunu dikkate almadan günlük işlerine devam ederler. Yeni programcıya kendisini ispatlayana kadar pek ekibin bir parçası olarak bakmazlar. O yokmuş gibi davranabilirler, çünkü kendi aralarında sosyal bir ağ kurmuşlardır ve tüm iletişim trafiği mevcut bu ağlar üzerinden gerçekleşir. Programcı bu sosyal ağa henüz dahil olmadığı için oyun dışı kalabilir. Ekibe ve ekibin sosyal ağına dahil olmak ve ciddiye alınmak için programcının derhal kendisini ispatlaması gerekmektedir.

Yeni bir ekibe katılan bir progrmacının kendini ispatlama stratejisi nasıl olmalıdır? Eğer programcının ünü yeni ekibe kendisinden önce ulaşmadı ise, o zaman programcının işi hiç te kolay değildir. Eğer ünü yoksa, durum daha da vahimdir. Kendisini o projede ispatlayana kadar canı çıkabilir, belki de bunu hiç başaramaz ve bu onu mutsuz olmaya itebilir.

Bu stratejinin nasıl olmaması gerektiği ile başlayalım isterseniz. Eğer programcı bir kenara çekilip, “bana verilen işleri yapmaya çalışayım” derse, o zaman baştan oyunu kaybetti demektir. Farklılık yaratmak ve profil oluşturmak istiyorsa, bir görevin (task) kendisine verilmesini beklemeyip, kendisi görev seçmelidir. Genelde kimsenin cesaret edip, üstlenemediği görevler ortada kalır. Bu tip görevler, diğer ekip arkadaşları arasından sıyrılıp, kendisini kısa zamanda ispatlamak için biçilmiş kaftan gibidir. Doğal olarak zor görevler yetkinlik gerektirir. Ama programcıyı pişiren bu tür görevlerdir. Örneğin her projede mutlaka ve mutlaka performans problemleri yaşanır. Uygulama sunucusu göçer, JVM takılır kalır, threadler bloke olur vs. Yaşanan bu tür problemler her programcının ilgi alanına girmediği için bu tür işlere bulaşmadan kendi işlerine devam ederler. Yeni programcı bunu fırsat bilip balıklama bu tür görevlerin üstüne atlamalıdır. Herkesin başını ağrıtan bu tür problemlerden birisini çözdüğü andan itibaren kendisini ispatlamış sayılır ve yeni ekibi kendisini sevgi, hürmet ve selamla kuçaklar. Buradan da anlaşıldığı gibi en büyük erdemlerden birisi cesarettir; cesaret edip görev üstlenmektir.

Hadi diyelim yeni programcı üstlenebileceği enteresan bir görev bulamadı ya da kendisine bir görev tayin edildi. Bu durumda işini en iyi şekilde tamamlayıp, elde ettiği neticeleri tüm ekibe duyurmanın yollarını bulmalıdır. Her ekibin kullandığı e-posta listeleri vardır. Bir e-posta iletisi ile tüm ekibe, hatta proje ve takım yöneticilerine erişmek mümkündür. Yeni programcı kod yazarken nasıl farklılık yaratarak, takım arkadaşlarının dikkatini çekebileceği hakkında düşünmelidir. Örneğin kendisine verilen görevi test güdümlü kodlayıp, elde ettiği yüksek seviyedeki testlerin kod kapsama alanı metriğini e-posta listesi üzerinden duyurabilir. Otomatik çalışan unit testleri, %90 üzerindeki code coverage (kod kapsama alanı), SOLID uyumlu ve kolay okunan sınıflar ekip arkadaşlarını etkileyecektir. Birçok projede programcılar unit testleri yazmadığı için, yeni programcının oluşturduğu ve otomatik çalışan testler dikkat çekmeyi kolaylaştıracaktır. Yerlerde sürünen kod kapsama alanı, yeni programcının oluşturduğu unit testleri ile birden bire tavana fırladığında, bakın bakalım kim anında yıldız programcı oluveriyor. Yeni programcının yazılımın nasıl olması gerektiği yönündeki dolaylı boy göstermeleri, onun kısa sürede ekibin sosyal ağına dahil olmasını kolaylaştıracaktır

Eger proje bünyesinde Jenkins, Sonar gibi araçlar kullanılmıyorsa, yeni programcının söz alıp, bu araçların kullanımının proje için ne kadar faydalı olduğunu dile getirmesinde fayda vardır. Örneğin yeni programcı Sonar kurulduktan sonra tüm kodun statik analizini yapıp, sonuçları daha önce bahsettiğim e-posta listesi üzerinden tüm ekip çalışanlarına duyurabilir. Kendisi bu gibi araçları kurmaya ve işletmeye talip olmalıdır. Bu onu bir vuruşta belli bir alanda söz sahibi yapar. Yeni araçları kullanmak isteyecek olan ekip çalışanları yeni programcıya danışmak isteyecekler ve bu şekilde yeni programcının ekibe entegre edilme sürecini kolaylaştıracaklardır. Yeni programcının, yazılım sürecini olumlu etkileyecek yeni fikirlerle gelmesi, kendisini ispatlama sürecini kısaltacaktır.

Yeni programcı ekip toplantılarında mutlaka kendi fikrini beyan etmelidir. Yanlışta olsa bir fikir beyan etmek, hiç fikir beyan etmemekten daha iyidir (tamamen saçmalamamak şartıyla). Eğer susup, konuşulanları dinlerse, ekip arkadaşları onu dikkate almamayı sürdüreceklerdir. Bir fikir sahibi olmayan ya da bunu beyan etmeyi bilmeyen bir insanın toplum içinde yer bulması zordur. Ekip içindeki programcılar karşılaştıkları problemleri e-posta aracılığı ile çalışma arkadaşlarına duyururlar. Bu gibi e-postalara herkesin okuyacağı şekilde cevap vermek, çözüm önerilerinde bulunmak, zaman içinde yeni programcının profilini biler.

Kendini ispatlamanın bir diğer yolu takım arkadaşları ile kod inceleme (code review) seansları düzenlemektir. Çoğu ekip bu tür bir alışkanlığa sahip değildir. Beraber kod inceleme seansları karşı tarafı eleştirme olarak algılanır ve bu yüzden bu aktiviteden kaçınılır. Yeni programcı bunu fırsat bilip, kendi kodunun ekip içinden başka bir programcı tarafından incelenmesini sağlamalıdır. Daha önce de bahsettiğim gibi kodun özenli yazılmış, her sınıfın sadece bir sorumluluğa sahip (SRP prensibi), diğer SOLID prensipleri ile uyumlu, otomatik çalışan unit testlerine sahip, değişken ve metot isimlerinin kodun ifade gücünü artıracak şekilde seçilmiş olması, kodu inceleyen programcıda hayranlık uyandıracaktır. Bunu kendisi için tutmaz ve mutlaka diğer ekip arkadaşları ile paylaşır. Bundan emin olabilirsiniz. Yeni programcı bu şekilde kendisi için bir taban oluşturduktan sonra, diğer programcılar tarafından kod inceleme seanslarına davet edilip, fikri alınan bir programcı olacaktır.

Her ekip içinde mutlaka en az bir tane, rahatsızlık veren, sivri, kendisinin yıldız programcı (star developer) olduğunu düşünen bir programcı vardır. Bu tip programcılarla çalışmak çok zordur. Yeni programcı da mutlaka bu yıldız programcının hışmına uğrayacaktır. Bu gibi durumlarda yeni programcı alttan almaya çalışmalı, ekip içinde soğuk bir atmosferin oluşmasını sağlayacak karşı karşıya gelmenin önüne geçmelidir. Eğer yeni programcı yıldız programcı ile karşı karşıya gelirse, diğer ekip çalışanları yıldızın yanında olmayı tercih edeceklerdir. Yeni programcı ne kadar haklı olursa olsun, ekip içinde bir nevi sürü içgüdüsü olduğundan, yıldız programcının tarafinda olacaklardir. Bu gibi durumlarda yıldız programcı ile aynı görev üzerinde beraber çalışma fırsatı kollanmalıdır. Yıldız ile iletişim içinde olmak onu yumuşatacaktır. Yeni programcı aynı zamanda yetkinliğini yıldıza gösterme firsatı bulursa, aradaki buzlar eriyip, diyalog normalleşecektir. Yeni programcı aynı zamanda firsatını yakaladığında yıldıza haddini bildirme cesareti göstermelidir. Örneğin sorduğu bir soruya alaylı bir cevap alıyorsa, takım liderinin de bulunduğu bir ortamda yıldıza neden böyle bir cevap verdiği sorulabilir. Yıldız kem, küm edip, afallayacaktır. Bu şekilde yeni programcı yıldızı hafiften ısırabilir ve yıldıza fazla üzerime gelme sinyali verebilir. Yeni programcı başını dik tutma cesareti gösterdiği andan itibaren, yıldızın davranış biçimi değişecektir. Kimse karşısında dik duramayan insana saygı göstermez. Yıldıza karşı dik durma yeni programcıya diger ekip arkadaşlarının saygısını getirir.

Ekibin dikkatini ve saygısını kazanmanın diğer bir yolu ekibe bilgi transferi (know-how tranfer) yapmaktır. Örneğin yeni programcı ekipden diğer bir programcıya “istersen üstlendiğin yeni görevi test güdümlü (Test Driven) ve eşli (pair programming) kodlayalım, bunun nasıl yapıldığını sana gösterebilirim” teklifini götürebilir. Böyle bir teklife, konuyla ilgili bilgisi olmayan programcı hayır diyemez. Teklifi alan programcı yeni birşeyler öğrenme hevesi ile yeni programcıya kendini ispatlama firsatını tanıyacaktır. Yeni edindiği bilgiler programcıda hayranlık uyandırır ve bunu mutlaka diğer ekip arkadaşları ile paylaşır.

Her programcının Xing ya da LinkedIn platformlarında mutlaka bir profili olmalıdır. Programcı bu profillerinde hakim olduğu konuları, daha önce çalıştığı projeleri, sahip olduğu ünvan ve sertifikaları ve kendi projelerini (örneğin açık kaynaklı bir yazılım) sergilemelidir. Bu tür profiller artık programcılar için kartvizit ya da vitrin görevini üstlenmektedir. Mülakata giden her programcı hakkında mutlaka internette araştırma yapılır. Bu tür profillerin keşfedilmesi, mülakatın gidişatını olumlu etkileyebilir. Bu tür profillerin önemli başka bir fonksiyonu daha mevcuttur. Yeni programcı ekip içinde yazılmamış, boş bir defter sayfasıdır. Ekip üyelerinin yeni programcı hakkında geniş çaplı fikirleri yoktur. Bunu değiştirmenin en kolay yolu, ekip üyelerinin internet profillerini araştırmak ve onlara bahsettiğim platformlar üzerinden arkadaşlık teklifi göndermektir. Arkadaşlık teklifi alan diğer programcılar, yeni programcının profilini inceleme ve onun hakkında fikir edinme fırsatı bulacaklardır. Hele hele yeni programcı ender sertifikalardan birine sahipse, bu yemek aralarındaki sohbetlere malzeme olacak ve bu şekilde yeni programcının ekibe entegrasyonunu kolaylaşacaktır.

Ekip elemanları ile smalltalk, onlara çalışma esnasında tatlı birşeyler ikram etmek ve ekip liderine düzenli olarak rapor vermek sayabileceğim diğer yöntemler arasındadır. Olumlu dikkat çekmek her zaman önemlidir. Yetkin ve tecrübeli bir programcı farkında olmadan yukarda saydığım konularda çalışma yapacaktır. Verimli olmanın en önemli şartı, en kısa sürede ekibe entegre olmaktır. Bunu başarmak programcının elindedir.

EOF (End Of Fun)
Özcan Acar

Share Button
0.00 avg. rating (0% score) - 0 votes

One Comments

Bir cevap yazın