Açıkçası staja kabul edildiğimi öğrendiğim ilk gün içimde hem büyük bir heyecan hem de ufak bir korku vardı. "Uzaktan (remote)" çalışacak olmak ev rahatlığında disiplini kaybetme endişesi yaratıyordu. Stajın daha ilk gününde staj hocamız, Unity motorunda tecrübem olduğunu görünce bana harika bir kapı aralayarak, *"Eğer istersen vizyonunu genişletip bir VR (Sanal Gerçeklik) projesi yapabilirsin. Kendi proje fikrini belirle, bana sun, uygun bulursam onaylayacağım"* dedi. Unity bilmeme rağmen Sanal Gerçeklik gibi hata toleransının çok düşük olduğu bir alana girmek beni epey düşündürse de bu meydan okumayı kaçırmak istemedim. Kendi tasarladığım "Recycle Rush VR" fikrini sundum ve onayı kaptım! Stajın başından itibaren firmamızın kuralları ve kendi paneli üzerinden her gün düzenli staj defteri doldurma zorunluluğu, beni inanılmaz bir düzene soktu ve tıpkı ofisteymişim gibi ciddi bir disiplinle çalışmamı sağladı.
Beni en çok etkileyen şeylerden biri, kurumsal dünyadaki iletişim ve şeffaflık kültürü oldu. Her sabah 10:00'da Ümit Hocamız ile gerçekleştirdiğimiz "Stajyer Daily Stand-up" toplantıları çalışma rutinimin kalbi haline geldi. Bu Google Meet toplantılarında "Dün ne yaptım? Bugün ne yapacağım? Hangi teknik hataları aldım ve nasıl çözdüm?" sorularını şeffafça tartışarak güne çok net bir odakla başlıyoruz.
Kendi seçtiğim ve onaylattığım Recycle Rush VR projesinin büyüklüğü ilk başta gözümü korkutsa da, projeye direkt kod yazarak bodoslama dalmadım. Staj kurallarımız gereği ilk adım olarak detaylı bir "Implementation Plan" (Uygulama Planı) hazırladım ve tüm işi "Faz 0, Faz 1, Faz 2..." şeklinde 20 günlük bir yol haritasına böldüm. Bu stratejik planlama sayesinde o devasa dağ, günlük olarak tırmanılabilir küçük görevlere dönüştü.
Adaptasyon sürecimdeki en büyük kırılma noktası ise versiyon kontrol sistemlerine (GitHub) ve profesyonel Git iş akışına alışmam oldu. Eskiden yazdığım yüzlerce satır kodu tek seferde kaydederken, burada çok katı ama hayat kurtaran bir kuralımız var: "Eğer o gün commit atılmazsa, o gün çalışılmamış sayılır." Bu yüzden kendime çok net bir döngü kurdum: Stand-up sonrası o günkü görevim için bir "Issue" açıyor, ana projeyi bozmamak için hemen taptaze bir "Branch" oluşturuyorum. Gün içinde yazdığım her bir özelliği ayrı bir paket olarak, "Atomic Commit" mantığıyla (anlamlı başlıklarla) yüklüyor, günün sonunda ise bu dalı birleştirmek için "Pull Request (PR)" açarak mesaimi bitiriyorum. İlk başlarda bu kadar sıkı bir disiplin zor gelse de, kodlar çakıştığında geriye dönmenin ne kadar hayat kurtarıcı olduğunu yaşayarak tecrübe ettim.
Şu an stajımın ilk evrelerini geride bırakırken geriye dönüp baktığımda; kendi başına plansız kod yazan birinden, günlük stand-up toplantılarına katılan, profesyonel kod kültürüyle çalışan disiplinli bir yazılımcıya dönüştüğümü hissediyorum. Oyun geliştirmek dışarıdan göründüğü kadar kolay değilmiş, ama kesinlikle tahmin ettiğimden çok daha keyifli. Bir sonraki yazımda, bu süreçte saç baş yolduran AR/VR teknik hatalarından ve onları nasıl çözdüğümden bahsedeceğim!