Yazılım Geliştiricinin 3 Hali
Hayat doğrusunu üçe bölersek: bebeklik - çocukluk, ergenlik - gençlik, orta yaş - yaşlılık.
Gerçi herkes kendi parçalarını getirse, hiç kimsenin parçaları diğerlerininkiyle örtüşmeyecektir. Kimisine hayat şartları çocukluğunu yaşama şansı tanımamıştır, kimisi ergenlikten kurtulup yetişkin olmayı becerememiştir.
Bizi de etkileyecek bir karar alma noktasında üç farklı pozisyon içinde bulunabiliriz: edilgen, yarı etkin, tamamen etkin.
Edilgen olduğumuz durumda hayat kolaydır, seçimleri biz yapmayız. Başkaları bizim için seçim yapar. Biz sadece alınan kararlara, yapılan seçimlere uyarız. Yapılan seçimden zarar göreceğimiz hissine kapılmadığımız sürece sorun yoktur. Bu evre bebeklik ve çocukluk evresidir. Ailemiz bizim adımıza karar verir, çatışma genellikle yoktur, olsa da saman alevi gibidir. Ağlarız, meme verirler, susarız, geçer.
Tamamen etkin olduğumuz durumda da hayat çok zor değildir, kendi tercihlerimizi yaparız. Bizi zorlayacak şey, alternatiflerin çokluğu durumunda neyin tercih edileceği sıkıntısıdır. Sonuçlarına katlanmayı göze alarak tercihlerimizi yaparız. Bu tercih, içinde bulunduğumuz toplum, zaman ve tarisel geçmişten bağımsız olmaz ancak yine de teorik olarak bunları aşıp özgürce karar verebiliriz, verebilebileceğimizi düşünürüz. Veya hayatın akışına kendimizi bırakıp bebeklik edebiliriz, ama bu irademiz olduğu gerçeğini dışlamaz. Bu evre orta yaş ve yaşlılık dönemidir. Bu evrede de bebeklikte olduğu gibi çok çatışma yaşamayız, genellikle hayatın diğer evrelerine kıyasla daha dingin olduğumuz bir evredir.
Yarı etkin olduğumuz durumda kendimizi çatışma ve uzlaşma, sonra yine çatışma sonra yine uzlaşma döngüsünün içinde buluruz. Ne bizim dediğimiz olur, ne çevremizdekilerin veya ailemizin. Herkesin mutlu olacağı, en azından mutsuz olmayacağı bir karar/seçim bulma çabası yorar. Bir durumda bizim dediğimiz olur, bir durumda sıra yanımızdakindedir, onun dediği olur. İte kaka böyle devam eder. Bu evre ergenlik – gençlik evresidir. En çok çatışma yaşadığımız, en huzursuz olduğumuz dönemdir bu. Ailemizle, çevremizle, herşeyle kavgalı oluruz. Kendi kararlarımızı kendimiz almak isteriz, bir ses sahibi olmak, sesimizi duyurmak isteriz. Bizim için iyi olduğu düşünülen ile bizim kendimiz için iyi olduğunu düşündüğümüz şeyler kavga eder durur.
Mesleki hayatımız da, gerçek büyük yaşamımızın içinde onun küçük versiyonu gibidir. Akış bakımından benzeşirler, aynı anda doğal olarak akarlar ve etkileşirler.
Burada bir parantez.
Bir yazılımcı geliştirici, üniversiteden, üzerine iş hayatında yazılmak üzere boş parlak bir levha olarak ayrılır. Çalıştığı yerler onu ya klasik bir kitap veya ne diyorlar “okuması kolay bir kitap” haline ya da bu ikisinin arasında bir yerlere getirir. O geçtiği yerleri etkiler, geçtiği yerler de onu etkiler. Çalışma kültürü, iyi/kötü, doğru/yanlış algılaması geçtiği yerlerin izlerini taşır.
Hayal dünyasının sınırları, neyin gerçekçi neyin gerçeküstü olduğu hakkındaki algılamamız, gerçek ile hayal arasındaki sınır hep içinden geçerken tanık olduğumuz, elle tutup gözle görebildiğimiz somut şeylere dayanır. Dünyanızın sınırları gözünüzün görebildiği çizginin berisidir. Ötesi hayaldir. Köyden çıkmamışsanız sizin gerçekliğiniz küçüktür. Büyük şehirde yaşıyorsanız dünyanız ve dolayısıyla gerçekliğiniz daha büyüktür. Faklı ülkelere kıtalara gitmişseniz gerçeklik sınırlarınız daha da büyür.
Örneğin, devops ve continuous integration kavramlarına aşina olan, otomasyona önem verip operasyonel verimliliği yükseltmeye çalışan, mobil uygulama geliştirirken bir eposta ile test veya gerçek ortam için herhangi bir svn revizyonuna ait uygulama sürümü (apk) çıkarılan bir duraktan geçmişseniz, gerçeklik sınırlarınız biraz genişlemiştir. Başkalarına hayal türünden gelen şeyleri siz elle tutmuş, gözle görmüşsünüzdür. HipChat ile Jenkins/Bamboo/.. vb. CI sunucusunu entegre edip, HipChat satırından yazdığınız bir satır yazıyla sürüm işlemini tetiklemek, çıkan sürümün buluttaki bir depoya kaydedilmesi ve 5 dakika sonra aynı yere sürümü (apk yı) indirebileceğiniz bir linkin gelmesi hayal gelmez. Bunun verimlilik ve operasyonel mükemmeliyet için varılması gereken bir hedef olarak görürsünüz.
Yani? Çalıştığımız yerler önemlidir, bizim formasyonumuz için. Özellikle “son format atılma tarihi” geçmemişken. Ne demişler, ağaç yaş iken eğilir, eğilmeye gönlü varsa.
Parantezi kapatıp dönecek olursak, mesleki hayatımız da etkin, yarı etkin ve tam etkin olduğumuz dönemlerden oluşur. Geliştirici olarak ilk işimize başladığımızda boş bir sayfa gibiyizdir. Ne verilirse almaya eğilimli oluruz. İçine düştüğümüz dünya bizi yutacak gibidir. Uzatılan herhangi bir dala tutunma ihtiyacı duyarız. Henüz yüzmeyi öğrenmemişizdir. Etrafımıza bakarız debelenirken, sonra en azından batmamayı öğreniriz. Yavaştan büyürüz, gelişiriz, beraber çalıştığımız arkadaşlarımızın stiliyle yüzmeye başlarız. Kendisinden daha iyi yüzen kıdemli arkadaşları, kollarını böyle yaparsan, kulacı böyle atarsan, ayaklarını da böyle böyle depreştirisen daha iyi yüzersin diye tavsiyede bulunurlar. Yüzebilmeyi öğrenme heyacanı ile her öneriyi dinleriz, deneriz. Böyle böyle bir yüzmeyi öğreniriz. Artık kuş kafesini beğenmez olur, içinde fırtınalar başlar. Uzaklara kanat çırpıp gitmeyi, başka diyarları görmeyi heves eder. Yazılım geliştiricinin bebeklik evresidir bu. Bu dönem çatışmanın az olduğu bir dönemdir. Karar verici konumda olmayız bu dönemde genellikle. Daha çok edilgen bir pozisyonda oluruz.
Sonra kuş yuvadan uçar, başka bir yerde başka bir ağaca yuva yapar. Veya civciv artık genç bir horoz olmuştur. Ama sorun şu ki orada zaten bir horoz vardır, veya civcivlerin arasından bizim gibi başka horoz adayları çıkmıştır. Veya ilk metaforumuzu kullanacak olursak, başka bir yazılımcı arkadaş gelmiştir. Bakarız ki bizim görmediğimiz bir şekilde yüzüyor. “Böyle yüzme mi olur” diye itiraz ederiz, “olur mu, bu kurbağalama yüzmedir” cevabını alırız. Bu dönem kavga dönemimizdir. Bu dönem yazılımcının ergen – gençlik dönemidir. Sürünün kıralı kim olacak? Günler çekişme, kendi öğrendiklerimizi dayatma, mutlak otorite olarak tanınma telaşıyla geçer. Bazen karşımızdakini tam dinlemeyiz. Bazen biz “elma”, karşımızdaki “apple” der, sonra kendi haklılığımızı kabul ettirmeye çalışırız. Çoğunlukla nesnel sınanabilir temellendirmeler yerine duygusal çıkışları tercih ederiz. Analitik düşünüp, artıları eksileri ortaya koymak, gösterilecek referansları aramak, geçerliliğini kabul etmede uzlaşacağımız örnekleri bulmak, hazmetmek, ve birliştirip ortaya koymak zaman alıcı ve uğraştırıcıdır. Bak, sen RestAPI yi böyle yapmışsın ama Twiter API sini şöyle hazırlamış, Date formatını böyle alıyorsun ama Facebook API şöyle bir formatta iletilmesini şu şu sebeplerle öneriyor demek, bunları araştırıp, tartışmayı öznel bir zeminden nesnel bir zemine çekmek, çekebilmek efor gerektiriyor. Eğer ortada herhangi bir üst-kral yoksa sürtüşmeler daha da tatsız olabiliyor. (CIO, CEO, CTO ... bunlar boşuna yok, demokrasi de de bir tane başbakan, bir tane milli eğitim bakanı vb var, müzakereye konu olsa da sonuçta bir horoz son sözü söylüyor tartışmalı bir konuda).
Her konuda haklı olmayız, haklılığımızı kendine bir çevrim yapacak şekilde ispatlamaya çalışmak yerine (doğruyum çünkü benim söylediğim doğru) zor olanı tercih edip, araştırmak, eksik taraflarımızı giderip, soru işareti olan kısımlardaki bilinmezleri bilinir hale getirmeyi, hatalı olduğumuz kısımları atmamız, unutmamaz en doğrusu gibi. Tek bir doğrunun olmadığı konularda bile bunu şu nedenle tercih ediyorum diyebilmek lazım. Yaşam sınırlı, mesleki yaşamımız daha da sınırlı. Herşeyi öğrenmek mümkün değil. Ne demiş, ben bildiklerim için para alıyorum, bilmediklerim için alsaydım hazinede para kalmazdı. Ama en azından tartışmak, kendi doğru bildiğimizi savunmak ihtiyacı hissettiğimiz konularda, o doğruya nasıl ulaşmıştık, gerekçeleri nelerdi, bu gerekçeler hala geçerli mi, alternatif olabilir mi vb diye hafıza tazeleyip, araştırma yapmak, kendi bilgimizi güncellemek iyi olur.
Bir yazılımcının mesleki hayatının son evresi, bilgiyle ve tecrübeyle yoğrulup, insanlarla iletişimi doğru bir şekilde yönetmeyi belirli bir seviyede öğrendiği, nispeten daha dingin ve huzurlu olduğu, ergenlik dönemine göre daha sakin olduğu yetişkinlik evresidir diye tahmin ediyorum. Ben henüz bu evreye gelmedim. :)
Bir deyişle, düşüncelerimizi ancak paylaşıma açarak sınamasını, sağlamasını yapabiliriz. Gerçekliği varsa karşılık bulur, sahici değilse karşılık bulmaz.
Senior Software Engineer
9yDikkatimi çekmemiş, bilemiyorum. IK cı arkadaşlara sormak lazım, ilanları genç aranıyor diye çıkıyorlarsa. Çatışma konusunda ise, farklı fikirler en azından bende araştırmayı tetikleyici bir etki yaratıyor. Belirli bir noktada uyum oluşmamışsa, birbirimize saygı duyamıyorsak, takdir edemiyorsak, uzun vadede çatışmanın verimlilik yaratacağına inanmıyorum. Kişisel deneyimim böyle, boyumdan büyük laflar etmek istemem.
Software Engineer at Toptal
9yYazılım firmaları sürekli "genç" ekip arkadaşları arıyor. Belki de çatışmasız ortam verimliliği düşürüyordur.