Bölüm Hakkında
- Konuk katılımcıların kısa yaşam öyküsü ve kariyer gelişimi
- Innovance ve teknoloji danışmanlığı hizmeti
- Innovance’te hangi projeler geliştiriliyor?
- Innovance yazılım ekipleri neler yapar?
- Innovance teknoloji ekibinin kullandığı tech stack’ler
- Innovance’te projeler nasıl geliştiriliyor?
- Innovance’te analiz ile çalışma kültürü
- Scrum çalışma modeli ve devops…
- Innovance çalışma kültürü ve ekip yapısı
- Innovance yazılım ekiplerinde çalışanların 1 günü nasıl geçiyor?
- Innovance, teknoloji çalışanlarının kariyer yolculuğuna nasıl katkıda bulunuyor?
- Innovance’in gelecekteki hedefleri ve sektördeki rolü
Bölüm Metni
Ahmet Hoşgör:
— Herkese merhabalar. Coderspace’in podcast serisi Codecast’in yeni bir bölümüyle sizlerleyiz. İstanbul’da bahar aylarına yavaş yavaş girdiğimiz bir dönemde, keyifli bir bölüm olacağına eminim.
Innovance ile daha önce de bir bölüm gerçekleştirmiştik. Orada biraz daha Innovance’i tanımıştık. Bu sefer yine Innovance’i dinleyeceğiz ama özellikle React tarafı, React Native tarafı, framework’ler, frontend ve bu tarz teknolojileri de yoğun konuşacağız.
Bugün konuğum Özgün Bal. Innovance’te React / React Native Development Lead olarak çalışıyor. Hoş geldin Özgün.
Özgün Bal:
— Hoş bulduk Ahmet.
Ahmet Hoşgör:
— Nasılsın, her şey yolunda umarım; şirkette, hayatta?
Özgün Bal:
— İyiyim, çok teşekkürler. Sen nasılsın?
Ahmet Hoşgör:
— İyiyim ben de. Harika. Aslında seni biraz tanımak isterim. Aynı üniversiteden mezunuz. Üniversite hayatı sonrasında Innovance’e geçişin var. Tabii Innovance’i duymayanlar da olabilir. Seni ve Innovance’i dinledikten sonra spesifik konularda sorular sormak için heyecanlıyım. Sözü sana bırakayım.
Özgün Bal:
— Tamamdır. Innovance’e geçmeden önce kısa bir eğitim hayatımdan ve beni buraya getiren süreçten bahsedeyim.
Ben Boğaziçi Üniversitesi Elektrik-Elektronik Mühendisliği mezunuyum. Lisans sonrasında yüksek lisansımı da yine Elektrik-Elektronik Mühendisliği alanında yaptım.
Bu süreçte yazılım sektörüne dahil oldum. Önceki işimde embedded sistemlerde televizyon yazılımı geliştiriyorduk. Yüksek lisansım devam ederken bir yandan orada çalışmaya başladım. Aslında biraz daha low-level kodlamayla yazılım sektörüne giriş yaptım.
Zamanla beni daha dinamik bir yazılım geliştirme ortamına iten bir süreç oldu. Kodu compile edip televizyona atıp beklediğim, o sırada çay içtiğim bir süreçten; yaptığım değişikliğin sonucunu anlık görebildiğim bir tarafa evrildim.
Bu noktada seçeneğim JavaScript ekosistemi oldu. Beni oraya götüren, çalıştığım şirketteki bir projeydi. Sonrasında seçimlerimi hep web tabanlı ya da JavaScript teknolojileri üzerinde geliştirme yapabileceğim şekilde tasarladım. Kendimi o alana biraz bilerek ittirdim diyebilirim.
Eski işimde televizyon yazılımı geliştiriyorduk ama aslında içinde bir web browser vardı ve kumandayla navigasyon yapılıyordu. Kullanıcının nereye gideceğini biz JavaScript ile belirliyorduk. Sonrasında Electron projeleri geldi. Modern kullanımlara yakın, televizyonda çalışan ama React ile yazılmış uygulamalar geliştirdik.
Birkaç projede yer aldıktan sonra oradan ayrıldım ve şu an bulunduğum yerde, Innovance’te başladım. 2018 Ağustos’ta girdim, beş buçuk seneyi geçti.
Innovance’te ne yapıyorum? Başlangıçta outsource modelle çalışıyorduk. Ben de o şekilde dahil oldum. Yazılım danışmanı olarak ilgili kuruluşta frontend tarafında görev aldım. Projelerde hem coder olarak hem de ilgili know-how eksikse yönlendirmeler yaparak başladım.
Zamanla ekip büyüdükçe ekip lideri konumunda yer aldım. Frontend ekibinin teknik sorumluluğu, onboarding süreçleri, code review’ler gibi konularda sorumluluk aldım. Organizasyon büyüyünce tek proje değil, çoklu proje yapısına geçtik. Yeni iş geldiğinde bunu nasıl ele alırız, gereksinimleri nasıl değerlendiririz, nasıl çözüm üretiriz gibi konularda da görev almaya başladım.
Ahmet Hoşgör:
— Innovance hızlı büyüyen bir şirket. Bunun kaynağı da aldığınız projeler muhtemelen. Müşteri taleplerine göre değişiyordur ama sizin de yönlendirmeleriniz oluyordur diye düşünüyorum. Hangi teknolojilerle çalışıyorsunuz? Ekip nelerle uğraşıyor? Innovance’te çalışan bir yazılımcıyı genelde ne tarz projeler ne tarz stack’ler bekliyor?
Özgün Bal:
— Frontend tarafında ağırlıklı yatırım yaptığımız yer React.js ve React Native diyebilirim. Ekibin büyük kısmı React.js kullanıyor. Bunun dışında Flutter ile geliştirme yaptığımız projeler de var. Angular var, Vue.js var ama ana ağırlık frontend’de React.js tarafında.
Backend tarafında çoğunlukla Java Spring Boot ve .NET Framework tercih ediliyor. Bir ara Python ile geliştirme yaptığımız projeler de oldu ama daha küçük ekip diyebilirim. Ana temelde şirkette Java üzerinde diyebilirim.
Frontend tarafında React.js ve vanilla JavaScript genelde tercih etmiyoruz; TypeScript ve React.js diyebilirim. Gününü çoğunlukla bir frontend developer bu teknolojilerle geçiriyor.
Yaptığımız işler genelde teknoloji üreten bir firma olarak bankalarla çalıştığımız, biraz fintech diyebileceğimiz projeler. Dijital dönüşüm projeleri ana odaklarımızdan biri.
Bankalarda kullanılan bazı sistemler işlevsel olarak devam etse de kullanıcı deneyimi veya teknolojik altyapı açısından eski kalabiliyor. Bizden genelde bu sistemleri modernize etmek, daha güncel ve kullanıcı dostu hâle getirmek talep ediliyor.
Ahmet Hoşgör:
— Dijital dönüşüm projelerini tabii yoğun yapıyorsunuz. Ben böyle birkaç structure içerisinde sormak isterim; frontend–backend ayrımı ve frontend içerisindeki framework savaşları… Frontend’e döndüğümüzde sen üniversitede C++ öğrenmişsindir, algoritma geliştirmeyi görmüşsündür. Sonra frontend tarafına kaymışsın. Eskiden frontend biraz daha “tasarıma yatkınım, somut bir şey görmek istiyorum” motivasyonuyla tercih ediliyordu. Hâlâ doğru olabilir ama artık çok kompleks bir alan. Backend ile iletişim artı API’larla haberleşme konuları önem kazandı; React Native, Flutter diğer taraftan geldi. Zaten çok fazla framework var; Angular gibi, React gibi yeni çıkanlar da oluyor.
Frontend geliştiriciler ve frontend hakkında ne düşünüyorsun? Bu tarafa yönelenler, yönelmek isteyenler. Senin oradaki yönelme hikâyen nasıl oldu?
Özgün Bal:
— Benim hikâyem biraz önce bahsettiğim gibi yaptığım işin sonucunu hızlı görebilmekti. Bir kutuyu sola yaslıyken sağa yaslı yapıp Enter’a bastığımda ekranda onu görebilmek. Bu görsellik hoşuma gitmişti. Benim tahminim bu işe frontend’den başlayanların da en büyük motivasyonu budur yani. O yüzden aslında tasarıma yakın olma durumu var. Ama oradaki kreatif taraf genelde frontend developer’dan beklenen değildir. Frontend developer o kreatif taraftan gelen çıktıyı koda döküp istenilen şekilde interaktif, kullanılabilir hâle getirmekle yükümlü; en temel tanımı için bunu söyleyebilirim.
Backend ile karşılaştırınca o biraz kişilerin mizacıyla da alakalı. Görsel bir şeyden mi hoşlanıyor ya da daha soyut bir geliştirme kafasını hayal etmek mi istiyor gibi bir taraftan da ele alabiliriz. Ya da hakikaten computer science, yani bilgisayar mühendisliği eğitimi almış kişilerin backend’de daha fazla rol aldığını, buradaki karmaşık diyebileceğim sistemleri kurgulamaktan daha keyif aldıklarını da görüyorum. Piyasaya baktığımda frontend developer’ların önemli bir kısmının sonradan yazılıma başladığını ya da alaylı dediğimiz profilden geldiğini de görüyorum.
Ahmet Hoşgör:
— Evet evet, o sanırım hakikaten somut bir şey görme, oluşturma isteği.
Özgün Bal:
— Konseptte konuya daha hızlı girmeyi sağladığı için de olabilir. Yani şu an seninle konuşurken bakıyorum, backend developer dediğimiz kişi eğer hakikaten bilgisayar mühendisliği eğitimi alırsa zaten formal eğitimi dört sene içinde olduğu için çoktan benimsemiş oluyor. Ama bu işe ufak ufak girmek isteyen bir kişi daha iteratif, daha “yaptığımı hemen göreyim” şeklinde olduğu için frontend’in revaçta olmasının bir sebebi de budur: Daha hızlı bir şey yaptığını görebilmek.
Ahmet Hoşgör:
— Daha hızlı bir şey yapma motivasyonu herhalde pek değişmeyecek bir motivasyon bazı kişiler için. Ben de Coderspace’in ilk versiyonunu Bootstrap’ta kendim kodlamıştım, frontend’ini; backend’e girememiştim ama hakikaten farklı bir keyif veriyor o taraf.
Peki Özgün, aslında frontend vs. backend’i biraz konuştuk ama frontend’in içerisinde de son dönemde çok ayrışma var. Burada framework’ler biraz kafa karıştırıyor. Yani şu anlamda da karıştırıyor: “Ben projeye başlayacağım, ne ile başlayayım?” diye de karıştırıyor bence. Ben özel frontend developer olarak bir yere yöneleyim, hangisi olsun, bir yeri sahipleneyim konusu da biraz kafa karıştırıcı. Orada işte Vue, React, Angular ya da farklı yeni çıkanlar var. Neler düşünüyorsun hepsi hakkında? Senden duymak bence çok önemli olur.
Özgün Bal:
— Ben şuna bakıyorum: Yatırım yaptığımız ana teknoloji -en azından son 4–5 senedir- React.js olsa da bağnaz olmaya gerek yok. Günbegün değişiyor ve o değişiklikleri takip ediyoruz. Hem kurumsal hem bireysel perspektif farklı olabilir.
Eğer bir freelancer gibi ya da birey olarak ne yapmak istediğinize bakıp “Benim işimi en hızlı yapabileceğim tool hangisi? Soru sorduğumda cevap bulabileceğim teknoloji hangisi?” diye düşünürseniz; Stack Overflow’da sorabilirim, belli başlı Discord kanalları olabilir, Medium’daki yazıların sayısı olabilir. Anketler olabilir.
Her sene State of JavaScript bu işle ilgilenen kişilere anket açar: “En çok hangi teknolojileri kullandınız?” Buna aşinaydım, buna güveniyorum, bunu duydum ama çok kullanmadım gibi detaylı JavaScript özelinde; backend yazan projelerde, frontend’de, cross-platform’da; sadece bundling ya da linting tools da dâhil olmak üzere pek çok klasmanda sıralıyor. Bu bizim için bir belirten nokta olabilir. Ben her sene bakıyorum; evet, hâlâ güvenilir noktadayız.
Ben mesela React’i bırakmaya karar vermemek için bakacağım noktalardan biri, her seneki trendin ne olduğu olur. Şu an hâlâ güveniyorum. Bundan bağımsız, kuruluşları ikna etmek özelinde de “Arkasındaki teknolojiyi kim destekliyor?” sorusu bir güven noktası olabilir.
Vue aslında kendini kanıtladı ama ilk çıktığı zamanlarda Evan You diye Çinli bir arkadaşın geliştirdiği ve sonra community’den çok destek bulup genişleyen bir library olarak gözüküyordu. O yüzden hep soru işaretiydi: “Bunun arkasında bir kuruluş yok.” Nasıl ki React’in ana contributor’ı Facebook, Angular ve Flutter’ınki Google şeklinde; orada en azından Google’a, Facebook’a olan bir güven var ve tercih ederken de bunları uzun süre daha bırakmayacaklarını, under manintenance şekilde “Ben bu işten vazgeçtim” demeyeceklerini varsayarak bir riske ediliyor diyebilirim.
Ahmet Hoşgör:
— Doğru, buraya kişisel olarak zaman ayırma, şirket olarak kaynak ayırma durumu var, bu anlamda önemli. Bunu yaptıktan sonra aslında baş aşağı mı gidecek yoksa maintained edilmeye devam edilecek mi?
Özgün Bal:
— Maintenance şu yüzden önemli: Bizim de zaten yazılım geliştirirken bug çıkardığımız tabii ki doğrudur, bug’sız yazılım olmaz. React’in, React Native’in X versiyonundaki bug’ı Facebook’taki ekibin takip ediyor ve çözüyor olması ekstra güven sağlıyor.
Ahmet Hoşgör:
— Peki keyif alma açısından bakınca senin için bir fark var mı? En çok kodlamayı sevdiğin?
Özgün Bal:
— Ben ilk başta aslında Angular.js’in ilk versiyonuyla başlamıştım frontend geliştirmeye. Orada mesela object-oriented bir yaklaşıma daha uygun; günümüz Angular’ı da öyledir. O yüzden backend’den geçenler Angular’ı daha rahat bulurlar. Ben JavaScript’i daha functional programming gibi kullanmayı sevdiğim için React bana daha yakın geldi. React’te bir state’in vardır ve o state’e göre ekran çizilir. Arada bir fonksiyon input alır, output üretir. Oradaki değişiklikleri de her zaman data değiştiği için değiştiririm gibi bir felsefesi ya da yaklaşımı var. Bu yaklaşım hoşuma gittiği için başta mantıklı bulmuştum.
Ahmet Hoşgör:
— Evet, güzel bir ayrım oldu. Bir de tabii şöyle bir konu var Özgün; burada mobil geliştirmede de bir karar noktası yaşanıyor: “iOS / Android ayrıca mı develop edelim yoksa cross-platform mu edelim? Cross-platform develop edeceksek hangisiyle edelim?” gibi.
Buradaki dünyayı nasıl görüyorsun? Ne zaman cross-platform, ne zaman native? Veya cross-platform seçildiğinde React Native mi, Flutter mı? Oradaki fark nasıl sence?
Özgün Bal:
— Biraz aslında geriye gidip cevap vereyim: Aslında React Native, Flutter yokken ya da React Native tam olgun değilken bile bu tarz girişimler vardı. Ionic kullanılmaya çalışılıyordu. Çok native hissiyatı vermese de WebView olacak şekilde, ama ben bunu bir mobil uygulama olarak yükletebileyim diye. Yani bunlar aslında belli bir ihtiyaçtan dolayı çıktı. Cross-platform geliştirme neden? Aslında farklı iki yazılım dili ve ortamıyla iki ayrı ekip kurup aynı uygulamayı, aynı business logic’i iki kere yaptırıyorum; hem iOS hem Android’de.
Ya da günümüzde bazı firmalar bu cross-platform geliştirmeyi şu anlamda değerlendiriyorlar: Desktop uygulamaları eskisi kadar revaçta değil ama ben yazdığım uygulamayı hem Microsoft, hem Linux hem macOS’te çalışacak hâle getireyim. Bu da aslında cross-platform. Örneğin bütün detaylarını bilmiyor olabilirim ama yanlış bilmiyorsam Microsoft Teams’in uygulaması React Native ile yazılmış ve bunu hem macOS’te çalıştırıyor Microsoft, hem kendi cihazlarında hem Linux’ta çalışıyor vs. Yani bu onun için de önemli ve geliştirme maliyetini azaltacak bir şey.
Daha küçük ölçekte bir firmada üç ayda yetiştirilmesi gereken bir mobil uygulama var ve isterlere bakıldığında aslında temel olarak bir servisten yatacak cevabı gösterecek ve kullanıcıyla etkileşime girecek. Yani bazı uygulamalar hakikaten performance-extensive olmayan işler yapıyor. Bunun için de cross-platform uygundur ve dediğim gibi MVP, yani markete hızlı çıkma süresi de kısa olduğu için tercih edilir. Bu, cross-platform’un genel tercih edilmesine dair.
Orada ben hangi teknolojiyi seçeceğim dersek; Ionic’ler ve benzeri çözümler artık miadını doldurdu ve istenmediği için daha native hissiyat veren çözümler olarak React Native geldi, Flutter geldi. Burada Flutter’ı kötüleyecek bir söz söylemeyeceğim, sadece hâlâ temkinli bakıyorum. Çünkü yazılım geliştirme dili olarak Dart’ı seçmiş Google. Hatta Angular’ı ilk başta Google Dart ile çıkarmak istedi ve community buna biraz çekingen yaklaştı, sevmedi. Sonra Google mecburen Dart’la ilerlemek istemesine rağmen ilerleyemedi, Microsoft’un TypeScript’ini kullandı Angular için. Community’de destek bulan TypeScript’ti çünkü.
Şimdi Dart’ı Flutter’da kullandırıyor Google. Ne kadar benimsendi bana biraz şüpheli geliyor. Yeni bir dil öğrenmek ve bunu sadece burada kullanacaksınız demek, cross-platform’un mantalitesine bir tık aykırı gibi geliyor. Ama React Native ile geliştirmeyi tercih ettiğimde, hâlihazırda JavaScript, TypeScript bilen bir web developer’ı hiçbir şekilde ortam ve deneyim değiştirmeden diğer tarafa kanalize edebiliyorum. Bu yüzden tercih edildiğini düşünüyorum.
Ahmet Hoşgör:
— Evet, buradaki tercih durumlarını, popülerliği vs. Stack Overflow anketlerinden arkadaşlar takip edebilir değil mi?
Özgün Bal:
— Evet. Stack Overflow’un son senelerdeki en popüler on yazılım dilinin içinde, hatta birinci ile üçüncü ya da dördüncü sırada hem JavaScript hem TypeScript var. Şimdi orada Dart eğer gelir, JavaScript’in arkasında çok kısa farkla ikinciliğe oturursa o zaman bir şeylerin değiştiğini fark eder ve dünyanın gittiği yere doğru dümen kırabiliriz. Ama şu an için ben kendi adıma böyle bir ayrım yapıyorum.
Benim çok fazla web developer’ım varsa, bunlarla cross-platform yazmak için React Native daha mantıklı. Çok fazla iOS, Android developer varsa ve bunlar zaten yeni bir ortama geçecekse Flutter daha uygun bir tercih olabilir. Çünkü onun için JavaScript de yeni olacak, Dart da yeni olacak. Biraz ekibin know-how’ı nasıl şekillendirmek istediğimiz ve piyasada benzer know-how’da ne kadar kaynak olduğu önemli. Benim yeni yatırım yaptığım teknoloji piyasada çok karşılık bulmamışsa, bir iş değişikliğinde oradaki yazılımcıyı değiştirmem daha maliyetli olur.
Ahmet Hoşgör:
— Evet, aklıma şu geldi; bazı teknik direktörler taktiğe göre oyuncu, bazıları oyuncuya göre taktik belirler. Sen biraz daha eldeki kaynaklara göre karar vermenin önemli olduğunu da söyledin.
Özgün Bal:
— Ekosistem önemli. Bu bazen şirketlerin “Onlar öyle yapıyorsa biz böyle yapalım” yaklaşımından da kaynaklanabiliyor. Ama aslında diğer şirketin teknolojisiyle seninki aynı olduğunda, belki oradaki ile seninki arasında bir oyuncu değişikliği de daha kolay olabilir. Ben belki de yeni çıkacak X framework’ü ilk adapte eden firmayım ama onu yazan üç arkadaş bir şekilde gittiğinde ben ne yapacağım? Çünkü tekrar birilerine öğretme maliyetim fazla olacak. O yüzden bu riskleri geriden takip edip, freelancer’lar ya da ufak start-up’lar denesin; büyük organizasyonlar olgunluğa oturduktan sonra adapte etmeyi tercih eder.
Ahmet Hoşgör:
— Burada tabii yeni teknolojiler de çıkıyor ama bir yandan da müşteri var dünyanızda. Yeni teknolojilere nasıl bakıyorsunuz? Hemen atlamamak da gerekebilir. Buradaki karar alma süreçleri nasıl oluyor, kendi içinizde değerlendiriyor musunuz?
Özgün Bal:
— Bazı noktalarda “Ben yeni şöyle bir şey denedim” deyip şirket içinde ilgilenen arkadaşlara aktarabiliyoruz. Fikir alıp ufak denemeler, demo projeler yapılabiliyor. Ya da çok internal ve alanı dar bir projeyi “Öğrenmek için yeni bir şeyle deneyelim” deme lüksümüz olabiliyor. Ama bunun kapsamını çok aşmaması lazım. Dediğim gibi, aldığınız risk başka bir müşterinizi etkilememeli.
Development lifecycle’da benim kendi tercihim olabilir ama bu müşterinin deneyimini etkilememeli diye düşünüyorum. O aldığımız risk iç bir riskse daha kabul edilebilir olur. Örneğin bir dashboard uygulamamız olacak, çok internal bir şey; admin dashboard gibi. Bunu Svelte ile deneyelim deme lüksümüz olabilir. Vaktimiz varsa, geliştirecek ekip böyle bir teknoloji öğrenmeye hevesliyse bu tarz şeyler denenebilir. Bunun öğrenme amaçlı olduğu baştan kabul edilerek yapılıyor zaten.
Ahmet Hoşgör:
— Peki Innovance’e biraz dönecek olursak; Innovance’e yazılımcı olarak girdim, junior, mid ya da farklı bir seviyede. Beni neler bekliyor? Bir günüm nasıl geçiyor, bir haftam neye benziyor, nelerle karşılaşıyorum? Biraz somutlaştıralım mı dinleyenler için?
Özgün Bal:
— Genelde Agile metodoloji kullanarak yazılım geliştiriyoruz. Gün, ekip ile daily meeting ile başlıyor. Herkes ne yapıyor, engel var mı, ek olarak konuşulması gerekenler konuşuluyor. Jira üzerinden iş üzerindeki task’ların statülerini düzenleyip update ederek, işini takip ederek aslında ne yapması gerektiğini biliyor.
Source control tool değişebilir; Bitbucket olabilir, GitLab olabilir. Çoğunlukla GitLab tercih ediyoruz. Developer, local’de yaptığı kod geliştirmesini ilerletip senior’larına review edilmesi için gönderiyor. Burada code review’e biraz parantez açmak isterim. Seviyeden bağımsız olarak bir yazılımcıyı geliştiren en önemli şeylerden biri code review. Tecrübesi azsa, tecrübelilerin ne yaptığını okuyup öğrenmesi için. Alacağı feedback’lerle aynı hataları ya da daha iyi yöntemleri fark edip bunları kendi bilgisine dönüştürmesi ve bundan sonra başkalarına da aynı bilgiyi iletebilmesi önemli.
Ben işe ilk girdiğimde bana şöyle feedback’ler geliyordu. Ben de ekibe yeni gelen arkadaşa “Biz genelde bunu burada şöyle kullanıyoruz” yorumunu yapabileyim ki organizasyon kendi kendini sürekli besleyebilsin, kişiler üzerinde kalmasın. Örneğin tek başıma başladığım projeye üç arkadaş dahil edip belli bir ortaklaşma sağladıysam, artık hepsi benim gibi ya da biz ortak kod yazıyormuş gibi yazıyoruz. Ben gittikten sonra bunun ilerlememesi sürecin iyi oturmadığı anlamına gelir. O yüzden code review her seviyede, yazdığım kodun hatası var mı, düzgün mü diye kontrol edilmesi açısından öğrenme süreci için önemli.
Ahmet Hoşgör:
— Projeler de değişkenlik gösteriyordur muhtemelen. Ne kadar sürüyor? Bir kişi genelde bir projede mi çalışıyor ya da kaç ay çalışıyor?
Özgün Bal:
— Kısa dönemli proje değişiklikleri çok istediğimiz şeyler değil. Genellikle projelerin daha uzun vadeli olmasını isteriz. Tabii belli bir başlangıç, yoğun geliştirme, sonra canlıya çıktıktan sonra biraz daha maintenance’a kayma durumları oluyor. Projenin başındaki ekip büyüklüğü, atıyorum yedi-sekiz developer iken sonrasında bir-ikiye kayabiliyor. Bu çok doğal bir süreç.
Maintenance’a geçtiği durumda da çok fazla proje geliştiren ve farklı müşteriyle çalışan bir şirket olduğumuz için iç rotasyonlar sağlanıyor. Ama buradaki süreler iki-üç ay değildir. Genelde bir seneye yakın olur. Bir projeye başladıktan sonra prod’a çıkması, maintenance’ı, yeni feature’ların eklenmesi… Bir seneden erken çok sık proje değiştirilmiyor. Bu bir kural değil ama projelerimiz çok kısa olmadığı için doğalında böyle oluyor.
Ahmet Hoşgör:
— Siz bir ürün şirketi olsanız yine önemli olurdu ama danışmanlık ve proje yaptığınız için teknolojileri takip etmek daha da kritik. Yeni müşteriler gelebilir, yeni bir dünya açılabilir. Buralarda ekibi nasıl besliyorsunuz? Eğitim tarafında ya da yeni teknolojiler çıktığında adaptasyon nasıl oluyor? Ya da kişi “React yazıyordum, Angular’a geçeyim” derse bu nasıl gerçekleşiyor?
Özgün Bal:
— Öncelikle şirketin çalışanlarına bir eğitim bütçesi var. Bu bütçeyi belli bir liste üzerinden kullanabiliyorlar ya da listeye ekleme yapabiliyorlar. “Ben şöyle bir eğitim almak istiyorum” deyip bunu bütçeden karşılayabiliyorlar. Kişisel, bireysel kullanabilecekleri bir eğitim bütçesi var.
Geçişlerden bahsettin. Örneğin yakın zamanda Python geliştiren bir arkadaş İnsan Kaynakları üzerinden bana geldi. Birlikte konuştuk. “Ben React, React Native öğrenmek istiyorum. Ekip değişikliği de söz konusu olabilir. Nasıl çalışayım, nerelere bakayım?” dedi. Biz onunla bir yol haritası çizdik. Yeni başlayan arkadaşlar için de — uzun dönem staj yapan arkadaşlar oluyor, kısa dönem staj yapan arkadaşlar oluyor — zaten belli bir roadmap’imiz var. “Şunları biliyor musun? Bilmiyorsan buradan başlayıp sonra yavaş yavaş task’larla gelişebilirsin.” şeklinde. Böyle bir iç öğrenme süreci yakın zamanda yaşadık.
Bundan bağımsız olarak “Ben şu konuyu çalıştım, biliyorum, size anlatayım arkadaşlar” dediğimiz şirket içi eğitimlerimiz var. Bu daha çok gönüllülük esaslı ama ekipte “Şunu öğrenmek istiyorum, sen anlatsan ne güzel olur” gibi motivasyonla da gerçekleşebiliyor. Bana da bu tarz istekler geliyor. İş programım uygunsa tamam deyip söz veriyorum.
Ahmet Hoşgör:
— Kapanışa geçerken; Innovance’te çalışmak isteyenler nereden ulaşabilir? Developer experience’ın da iyi olduğunu düşünüyorsunuz içeride. Süreç nasıl ilerliyor?
Özgün Bal:
— LinkedIn sayfamızdan ilanları takip edebilirler. Çoğu zaman aktif alımımız oluyor. Ayrıca internet sitemiz innovance.com.tr üzerinden yaptığımız işleri, ekip görüşlerini ve ilanları inceleyebilirler.
Developer experience’ı şöyle özetleyeyim: Development’ta kişinin gününü nasıl geçirdiği, mutlu olup olmadığı bizim için önemli. Hem gelecek kişi bize ne katacak, biz ona ne katacağız? Geliştirme yapmaktan mutlu bir ortam olacak mı? Teknolojiler elinin altında olacak mı? Arkaik kalmamış, modern gelişmeleri takip eden bir yapıda çalışırken bize katkı sağlayabilecek mi? Bu önemli.
Bu şekilde best practice’leri öğrenecek, bize katkı da sağlayacak. Yaşla alakalı da şunu söyleyebilirim: Frontend tarafının yaş ortalaması genç. Muhtemelen otuzun altında. Bu da iletişim dili ve öğrenme motivasyonu açısından besleyici oluyor. Bunu frontend özelinde söylüyorum, diğer ekipler alınmasın. Sadece frontend’ler bir tık daha genç belki.
Ahmet Hoşgör:
— Şöyle bir bakınca özetle büyüyen bir şirket var. Birincisi büyüyen bir şirket Innovance. İkincisi senin gibi dolu dolu insanlar var içeride. Çok fazla teknoloji anlattın, çok fazla öğrenme fırsatı anlattın, bir sürü geçişkenlikten bahsettin. Genç ve öğrenmek isteyen bir ekip olduğundan da bahsettin. Üçüncü olarak da projelerden bahsettin. Çok fazla farklı proje olması, bir kişi bir projeye devam etse bile yanındaki arkadaşı başka bir projede olabiliyor. Bu da büyük bir büyüme ve öğrenme fırsatı gibi geliyor bana.
Özgün Bal:
— Evet, proje sayısının fazla olması da bir avantaj. Bazen tek bir projeye girip onu devam ettirdiğiniz durumda biraz daha sıkıcı hâle gelebilir. Farklı projeler, farklı business’lar, farklı kültürler görme şansı oluyor. Bu da ayrı bir zenginlik.
Ahmet Hoşgör:
— Evet, harika. Çok teşekkürler Özgün, konuk olduğun için. Çok keyifli bir sohbet oldu. Çok fazla farklı konuya girdik. Frontend’i kendim de sevdiğim için heyecanlandım. Uzun süredir GitHub’ım temiz, commit’ler pek görünmüyor ama bir ara bayağı doluydu. Sonra developer’lara devrettim. Ağzına sağlık, çok teşekkürler.
Özgün Bal:
— Burası dediğin gibi biraz kodlamanın sosyal medyası gibi.
Ahmet Hoşgör:
— Evet, doğru. Özgün Bal konuğumuzdu, Innovance’te React/React Native Development Lead olarak çalışıyor. Bugün bir sürü farklı konuya değindik. Hem kendisini tanıdık hem Innovance’i daha yakından tanıdık. Çok teşekkürler Özgün.
Özgün Bal:
— Ben teşekkür ederim. Son bir not olarak, girişte bahsettiğin gibi Innovance’i daha detaylı öğrenmek isteyenler için Ahmet’in Backend Chapter Lead’imiz Melihcan ile yaptığı bir bölüm var. Onu da dinleyebilirler. Güzel bir konuşma olmuştu.
Ahmet Hoşgör:
— Buradan da o bölüme linklemiş olalım. Oradan da belki bu bölüme gelenler olur. Çok teşekkürler, iyi günler.