Ana içeriğe atla

Uluslararası Yazılım Firmasında Çalışmak

Türkiye merkezli 5 ülkede ofisi olan 50’den fazla mühendisi bulunan ve müşterileri hariç 8 farklı milliyetten kişiler bulunan bir yazılım firmasında yaklaşık 11 aydır çalışmaktayım. Bu süreç boyunca hem çalıştığım şirkette hem de iletişimde bulunduğum diğer uluslararası şirketlerde gözlemlediğim noktaları paylaşmak istedim.

Buradaki görüşlerim tamamen kişiseldir ve firmadan firmaya değişebilir. Eleştiriyi önce en günahsız olanınız yapsın!




İşe giriş ve mülakat süreçleri zor. İş ilanlarını mantıklı ve açıklayıcı olarak açılıyorlar. Öyle her şeyden anlayan süper yazılımcı aramıyorlar. Şirketin ihtiyacını göz önüne alarak ve her yazılımcının şirkette kullanılan teknolojileri bilemeyeceğini göz önüne alınarak iş ilanını açılıyor. Özgeçmişimde yazan her kelime ile ilgili sorguya çekildim. Başvurduğum pozisyon için gereken yeteneklerle ilgili zor sorular soruldu. Nasıl yaptılar bilmiyorum ama şirket kültürüne uyumumu ve iletişim yeteneğimi de ölçmüşler. Açıkça ilk 2 ayın deneme süreci olduğunu belirtiyorlar. Yapamayacaksan gelme diyorlar. Ama esnek çalışma saatleri ve yoğun çalışma temposu demiyorlar. İş şu, senden şunu bekliyoruz diyorlar.

Şirkette ağırlıklı olarak İngilizce kullanılacağını tahmin ediyordum. Ancak toplantılar ve yazılı iletişimler dışında, takımların içinde ve sohbet ortamlarında kulağınıza birçok dil gelebilir. Farklı dillerde selamlaşma ve kısa sohbet cümleleri öğrenmek çok güzel bir duygu. Aksanlı İngilizce konuşmalar duymaya hazır olun. Gramer yanlışlıkları ya da yanlış kelime kullanımları kimsenin umurunda değil. Anadili gibi ingilizce konuşanların genelde takım lideri olması yabancı dilin terfi almak için önemli olduğunu gösteriyor. Çünkü iletişim herşey!

Kültür farkı deyince aklınıza sadece yeme, içme ve giyinme kültürü gelmesin. Aynı soruna farklı çözümlerin sunulması, aynı yazılım araçlarının farklı bir biçimde kullanılması, toplantı süreçlerinin farklılığı, aynı e-postadan farklı anlamların çıkarılması, resmî tatillere ve izinlere farklı yaklaşımlar, hiyerarşi ve organizasyon şemasının farklılaşması … İşte bunlar hep farklı, hepsini anlatamam.

Saat farkına hazır olun. Değişik saatlerde toplantı yapmak zor olsa da akşam saatlerinde tespit ettiğiniz bir sorunun sabah mesai başlangıcında çözülmüş olduğunu görmek her yazılımcının tatması gereken bir duygu. İletişim ve proje yönetimi araçları ile asenkron olarak çalışmaya alışmanız lazım. Bu araçları ne kadar iyi kullandığınız, ne kadar iletişim becerisine sahip olduğunuz olarak algılanıyor. Çünkü şirketteki çoğu kişi için siz, bu araçlardaki bir kullanıcı profilisiniz. Tekrarlayan e-postalar veya mesajlar azaltılmaya çalışılsa da yine de karşılaşacağınız şeyler. Bir süre sonra bu duruma alışıp tekrar eden mesajları kolayca tespit edip yönetebilir hale geliyorsunuz.

İklim farkları hiç aklıma gelmeyen bir konuydu. Okyanusta sahil kenarında çalışıp nemden şikâyet edenler, -20 derecenin sıcak bir hava olduğunu söyleyenler, 30 derecede klima açma ihtiyacı hissetmeyenler …

Teknik terimlerin anlamına dikkat edin! Anlamını tam bilmediğiniz bir teknik terim kullandığınızda bu işin pirinden ders niteliğinde birkaç cümle duyabilirsiniz. Türkiye’de genelde teknik terimler havada uçuşurken diğer ülkelerde kimse teknik terimlerin anlamını tam bilmeden ve konuşulan ortamda ihtiyaç duymadan kullanmıyor.

Bir satır kod yüz satır dokümantasyon! Aynen öyle, valla öyle, gerçekten öyle. Code review yapmak ve QA’den azar işitmek rutin bir iş. Yazdığınız kodun CI/CD sürecinden geçip canlıya alınması için ayrıntılara dikkat etmeniz gerek. Yazdığınız birkaç satır kod için dokümantasyonun hangi bölümünü güncelleyeceğinizi bulmanız ve dokümantasyon yazım kurallarına uygun bir biçimde güncelleme yapmanız ilk aylarda sinirinizi bozabilir. Hep dokümantasyon eksikliğinden şikâyet ederken bu sefer dokümantasyon fazlalığından şikayet eder olmuştum. Ancak hem teknik ekibin kalabalık olması hem dil ve coğrafya farklılıkları nedeniyle bunun vazgeçilmez bir unsur olduğunu fark ettim. Markdown bilmeyeni dövüyorlar!

Bu kodlar var ya işte onların önceden yazılmışı var! Büyük bir hevesle kodlamaya başladınız. İhtiyaç duyulan başka bir fonksiyona gerek var, yazdınız. İşte öyle değil. Dokümantasyona ve kodlara bakıp ihtiyaç duyduğunuz fonksiyonun codebase’de olup olmadığını kontrol etmeniz gerek. Bu genellikle işinizi hızlandırsa da küçük bir özelliğine ihtiyaç duyduğunuz kocaman bir projeyi referans göstermeniz gereken durumlar olabiliyor. Örneğin bir XML işlemini 10-15 satır kodla halledebilecekken şirketin daha önceden yazılmış XML kütüphanesini projenize dahil edip, onun nasıl kullanıldığı anlayıp derleme zamanını biraz daha şişirerek gününüze neşe katabilirsiniz.

Şirkette kullanılan teknolojiler genelde kendini kanıtlamış teknolojiler. Hem frontend hem de backend tarafında yıllanmış teknolojiler görmek mümkün. Yeni teknolojiler takip ediliyor. Ancak yeni teknolojilerin kullanılmasındaki en büyük engel: yazılımcılar. Evet, öyle. Hani şu sürekli yeni teknolojileri takip eden ve kullanmak için heves eden yazılımcılar var ya, işte onlar büyük bir projede bu yeni teknolojiyi kullanacaksın deyince kafayı yiyorlar. Hem de ülke ve milliyet fark etmiyor, hepsi böyle bunların. Çözüm basit: zorunluluk ve sorumluluk. Her proje için kullanılan teknolojiler her yılın başında gözden geçiriliyor ve yıl içinde değiştirilecek teknolojiler kararlaştırılıyor. Eğitim desteği ve zaman planlaması ile seve seve öğreniyorsunuz yeni teknolojileri. Hem canlı ortamda hem de sorumlusu olarak! Neden saçların beyazlamış arkadaş demeyin işte bu yüzden.

Bulutun dibini gördüm! Azure, AWS ve Google Cloud sistemlerini kullanıyoruz. Coğrafi yakınlık, ülkelerin kendi mevzuatları ve istediğimiz servisin bulunup bulunmaması bulut sistemi seçiminde ana sebepler. Manzara pek hoş değil. Her bulut sisteminin uzmanı farklı çünkü hepsinin yapısı ve kullanımı farklı. Ben AWS’de uzmanlaştım ama başka bir bulut sistemine göz ucuyla dahi bakamıyorum. Çünkü AWS her gün gelişiyor ve değişiyor. Çalışan yazılımları takip etmek ve optimizasyon yapmak, CI/CD süreçlerini güncel tutmak derken diğer bulut sistemlerini kurcalamak için geriye pek zaman kalmıyor. Backend tarafındaki yenilikleri takip etmek varken bulut sistemlerindeki yenilikleri takip etmek ya da etmemek. İşte bütün mesele bu.

Maaşlar ve yan haklar çalıştığınız ülkeye göre değişiyor. Gönül ister ki dövizle maaş alayım. Her ülkede yazılımcıların farklı ücretler talep etmesi, muhasebe olarak her ülkedeki ofislerin kendi bütçelerinin olması nedeniyle maaş ve yan haklar çalıştığınız ülkenin koşullarına göre. Yine de maaş konusunda kimsenin şikayet ettiğini duymadım. Personel değişiminin en az oranda tutulması için maaşlar ve yan haklar ülke ortalamasının yukarısında tutuluyor.

Yukarıdaki paragrafta ağzınızın suyu akmış olabilir. İddia ediyorum bence Türkiye’de performans değerlendirmesi diye birşey yok. Daha işe yeni başlamıştım. Bana atanan bir görevi bitirmem gecikmişti. Mesaj kutumda gecikmeyle ilgili sorular görünce bana yardımcı olmaya çalışıyorlar diye düşünmüştüm. Aslında hem böyleydi hem de değildi. Gecikme için gerçekçi bir neden sunduğum için şanslıydım. Kod içerisindeki başka bir hatayı düzeltmiştim. Ancak buna proje takip yazılımına yeni hatayı girdikten sonra ve bana atanan görevin gecikeceğini yazdıktan sonra başlamam gerekiyormuş. Eğer geciken bir iş için geçerli bir sebebiniz yoksa bu kayıt altına alınıyor, sebebi araştırılıyor ve sorun sizdeyse önce yardımcı olmaya çalışıyorlar. Ancak şirketin temposunu düşürmenize izin yok. Birkaç kereliğine gecikmeye göz yumulsa da tekrarlayan gecikmeler size kapıyı gösterebiliyor. Bununla baş etmenin yolu: iletişim. Bir göreve başlamadan önce o görevi iyice anlamanız gerek. Anlamadığınız noktaları sorunca hiçbir önyargı olmadan size yardım ediyorlar. Bu görevin verilen sürede bitirilemeyeceğini mantıklı bir şekilde açıklarsanız görevin süresi değiştiriliyor ve neden yanlış süre hesaplandığı araştırılıyor. Sürece katkınız olduğu için takdir ediliyorsunuz. Tek satır kod yazmadan önce yapılan mesaj trafiğini görseniz şaşırırsınız. 6 ay sonra hem kodlara hem şirket kültürüne aşinalık kazandığım için tempo bana ilk aylardaki gibi hızlı gelmiyor. Tam tersine basit görevler için bile dokümantasyon, code review ve QA için uzunca süreler veriliyor. İşin sırrı işe başlamadan önce işi anlamak.

Tatil günlerinin farklı olması şaşırılacak bir olay değil. Ancak Türkiye’deki dini bayramlar öncesinde farklı dinlere mensup kişilerden tebrik mesajı alıp bayram tatili boyunca acil durumlar olsa bile bir kez bile rahatsız edilmemek çok hoş bir durum. Benim projemde çıkan bir sorunu tatilde olduğumu bildikleri için beni rahatsız etmeden çözen hatta alarmı kapatıp bildirim gelmesini önleyenler, acımasızca performans değerlendirmesi yapanlarla aynı kişiler! Demek ki neymiş iş zamanı iş tatil zamanı tatil.

Parayı veren düdüğü çalar! En çok kullanıcısı olan ürün şirket içinde kültürel olarak ağırlık kazanıyor. Ürünün kullanıcılarının kültürüne göre şirketin ana kültürünün oluştuğunu söyleyebilirim. Çalıştığım şirketin Türkiye merkezli bir şirket olmasına rağmen en çok kullanıcının olduğu ülke şirket yapısını şekillendirmiş. Bunun nedeni bu kullanıcıların geribildirimlerinin diğer ürünlerin geribildirimlerinden fazla olması, kullanıcıların farkında olmadan geribildirimlerinde kültürlerini de iletmesi.

Toplantı benim en sevdiğim şey! Durun vurmayın, neden mi? Çünkü şirketin farklı coğrafyalarda farklı dillerde ve kültürlerde çalışanları olduğu için toplantılarda sadece konuşulması gereken hususlar konuşuluyor ve istisnalar hariç toplantılar kısa sürüyor. Ana iletişim yazılı olarak (e-posta, anlık mesajlaşma, proje yönetim aracı) sürdürülmeye çalışılıyor. Toplantıya genelde takım liderleri katıldığından toplantıda konuşulan hususların bir de takım içerisinde paylaşılması gerektiğinden kimse toplantıyı uzatmak istemiyor. Diyelim ki toplantı uzadı, bunu belirttiğinizde kimseden tepki almıyorsunuz. Tam tersine toplantı hemen bitirilmeye çalışılıyor. Bu güzel bir şey olsa da siz de aynı şekilde toplantıyı uzatmamalısınız. İngilizce olarak yönettiğiniz bir toplantıyı soru-cevap dahil zamanında bitirmeniz gerekli. İletişim yeteneğinin önemli olduğunu söylemiş miydim acaba?

Başka bir ülkedeki takıma bilgi aktarmak kendi takımınız içinde bilgi paylaşmaktan daha kolay olabiliyor. Çünkü uzak tarafa bilgi aktarırken yazılı olarak aktarıyorsunuz ve bu bilgi alıcılar tarafından okunuyor. Ancak kendi takımız bu yazılı bilgiyi okumaktansa size soruyor. Sonra gelip bir daha soruyorlar, sonra üstüne yorum katıp kendi içlerinde paylaşıyorlar, sonrası malum: iletişim kazası. Ben derdimi İngilizce olarak nasıl anlatacağım diye kara kara düşünürken asıl aynı dili ve kültürü paylaştığım çalışma arkadaşlarıma derdimi nasıl anlatırım diye düşünmem gerekiyormuş. Ey Türk gençliği (gençlere selam olsun), birinci vazifen okumak! Gelen e-postaları, proje takip yazılımına yazılan detayları, anlık mesajlaşma uygulamasındaki mesajları okusanız iyi birisiniz aslında.

Remote çalışmak desteklenen ve istenilen bir şey. Çalışma arkadaşlarınızla aynı ofisteyken bile karşılaştığınız bir hatayı proje takip yazılımına detaylı olarak girmeniz gerek, toplantıya video konferans aracıyla girmeniz gerek (yan yana masalarda yankı oluşmasın diye bir kişi hariç hoparlörü kapatmanız lazım), kısaca işleri önce sisteme yazılı olarak girip yine sisteme işleyerek görevleri yapmanız gerek. Diyeceksiniz ki ofise ne gerek var? Gerek yok. Donanım işlerinde bile evden çalışanlar var. Gerek olduğunda ofiste işlerini halledip evden çalışmaya devam ediyorlar. Uzaktan çalışarak şirket kültürü oluşmaz demeyin, adamlar yapmış.

Ürün mü önde insanlar mı? Kullanıcılarla yaptığımız toplantılarda şunu anladım. Doğu ülkelerinde insanlar, batı ülkelerinde ürün önde. Doğu ülkelerinde “biz şu kadar yıllık firmayız, bizim ciromuz şu kadar” diye söze başlayan kullanıcı profili batıya doğru gittikçe “bizim şuna ihtiyacımız var, sizin şu ürününüzü incelemek istiyoruz” şekline geliyor. Doğuda duygusal ilişkiler ağır basarken batıda mantıksal ilişkiler yürüyor.

İlerleyen zamanlarda farklı başlıkları da içeren 2. bir yazı yazacağım. Aklımdaki soruları netleştirip, doğru gözlemlerle yazmak için biraz daha kendimi ve şirketi tanımam gerek. Görüşmek üzere.

Yorumlar

Bu blogdaki popüler yayınlar

Bir Uluslararası Yazılım Şirketinin Batış Hikayesi

 Güzel başlamıştı hikaye. Yazılımcılar mutlu, kullanıcılar memnundu. Sonra pandemi başladı. Sorun para değildi. Olmayan şey huzurdu… Durdurun hype trenini, inecek var kırık kalpler durağında  — Photo by Kelly Sikkema on  Unsplash Gerçek olamayacak kadar güzeldi çalışma ortamı. Yazılımcılara istedikleri eğitim ve donanım alınıyordu, personel arası hiyerarşik bir yapı yoktu, sorumluluğun yanında yetki de veriliyordu, esnek çalışma saatleri yazılımcılara göre esnekti, izin isteyen hiç kimse geri çevrilmiyordu, pandemiden önce bile uzaktan çalışma vardı. Ne oldu bu şirkete? Nazar mı değdi? Şirketin yazılım ürünü Türkiye’de doğmuştu. Ürün birçok ülkede hem kamu tarafından hem de özel sektör tarafından kullanılıyordu. Yazılım geliştirme ekipleri hem Türkiye’de hem de diğer ülkelerde bulunuyordu. Yazılımın argesi için gelen geri bildirimlerin çoğu Türkiye’den geliyordu. Yazılımın kalbi Türkiye’de atıyordu.  Koronavirüs pandemisi nedeniyle Türkiye’de kamu kuruluşları hizmet alımı ile aldıklar

Kamuda Yazılımcı Ol(ma)mak

Yazılımcı olarak 8 yıl kamuda, 2 yıl özel sektörde çalıştım. Bir yandan da freelance olarak çalıştım. Yurtdışındaki firmalarla da güzel yurdumun esnafıyla da çalıştım. En garip manzara bence kamudaki yazılım manzarası. Şu anda bir kamu kurumu için geliştirilen yazılım projesini yönetiyorum. Girdiğim toplantılarda, aldığım e-postalarda, yaptığım telefon konuşmalarında eski kamu anılarım depreşti. Kağıtların arasında hayalleri yıkılmış bir yazılımcı bulabilirsiniz Kamuda çalışırken hem benim hem de arkadaşlarımın başına gelen olaylardan ve şu anda kamuda çalışmaya devam eden tanıdıklarımdan aldığım bilgilerle, kamudaki yazılım dünyasını size sanayi diliyle aktarmaya çalışacağım. Bu yazı şahsi görüşlerimi içerir. Yine de kamuda 8 yılın yeterince objektif bir bakış açısı sunacağını düşünüyorum. Kamuya yazılım projesi geliştirirken karşılaşabileceğiniz durumlar: Bir kamu kurumu ile görüşmeye başlamak için bağlantı gerekir. Kamu kurumuna “sizin şöyle bir ihtiyacınız var ben bunu çözen yazılı