Bu yaz ofise iki stajyer aldık. İlk hafta ikisinden birine küçük, kenarda duran bir bug verdik: tarih formatı yüzünden raporun yanlış sıralanması. Yirmi beş dakika sonra düzeltme PR'ı masamdaydı — temiz, çalışıyor, testi bile var. Etkilendim. Sonra sordum: "Peki bu neden çalışıyor?" Sessizlik. Kodu ajan yazmıştı; bizim stajyer sadece sorunu tarif etmişti. İkisi de işini yapmıştı aslında. Ama ortada öğrenen biri yoktu.
Yanlış anlaşılmasın, seçim sürecini savsakladığımız için olmadı bu. Mülakatta algoritma bilmecesi sormayı yıllar önce bıraktık; onun yerine adayla yarım saat birlikte hata ayıklıyoruz — içine bilerek üç kusur yerleştirdiğimiz küçük bir projede. Aradığımız şey kusurları bulması değil; nasıl aradığı, neyi yüksek sesle düşündüğü, "bilmiyorum" diyebilme rahatlığı. İki stajyerimiz de bu elemeden alnının akıyla geçmişti. Mesele yetenek değildi; bizim programımızın yeni araçlar karşısında eskimiş olmasıydı.
O yirmi beş dakika, staj programımızı baştan düşünmemize sebep oldu. Bu yazı o düşünmenin güncesi; biraz da itirafnamesi.
Kod Yazmayı Değil, Koddan Şüphelenmeyi Öğretiyoruz Artık
2010'da ben mesleğe başlarken öğrenmenin yolu belliydi: yaz, patlat, düzelt, tekrar yaz. Sancının kendisi müfredattı. Bugünse ilk satırından itibaren yanında son derece yetenekli bir yardımcıyla kod yazan bir nesil var. Bunu yasaklamak — bazı şirketlerin yaptığı gibi stajyere "AI kullanmak yasak" demek — bize hem gerçekdışı hem ikiyüzlü geliyor; kendi kıdemlilerimiz gün boyu ajanlarla çalışırken çocuklara taş devri oynatamayız.
Onun yerine soruyu değiştirdik. Stajyerden istediğimiz şey kodu yazması değil, koddan sorumlu olması. PR'ının her satırını savunabilecek misin? "Bu satır niye var?" sorusuna "ajan öyle yazdı" cevabı bizim ofiste geçersiz; "şu sebepten, şöyle olmasaydı şu bozulurdu" cevabı geçerli. İlk haftalarda bu sorgular acımasız görünüyor; üçüncü haftada stajyerin ajana verdiği talimatların kalitesi gözle görülür şekilde değişiyor, çünkü savunamayacağı kodu artık baştan kabul etmiyor.
Bu dönüşümün en verimli sahnesi, bizim "üç kişilik pair" dediğimiz seanslar oldu: stajyer, mentor ve ekrandaki ajan. Stajyer ajana talimatı yazıyor, mentor talimatın kendisini eleştiriyor — kodu değil. "Bu isteği neden bu kadar muğlak bıraktın? Kabul kriterin ne? Ajanın yaptığı şu varsayımı fark ettin mi?" Bir kuşak önce kod review'da öğretilen düşünme disiplini, şimdi talimat review'da öğretiliyor. Araç değişmiş; öğretilen şeyin özü, yani niyetini net ifade etmek ve sonucu şüpheyle okumak, yerli yerinde duruyor.
Oyuncak Proje Yok, Kenarı Köşesi Alınmış Gerçek İş Var
Staj programlarının klasiği "yapay proje"dir: kimsenin kullanmayacağı bir todo uygulaması. Biz bunu yıllar önce bıraktık. Stajyer ilk haftadan platformun gerçek kod tabanında çalışıyor — ama dikkatle seçilmiş, patlarsa kimsenin canının yanmayacağı işlerde: iç raporlama ekranı, operasyon panelindeki kullanım aksaklıkları, test kapsamı düşük modüllere test yazımı.
Bu yazın somut çıktısı da güzel oldu: iki stajyer dönem ortasında ortak bir iş aldı — destek taleplerini haftalık özetleyip kategorilere ayıran küçük bir iç araç. Fikir kısmen onlardan çıktı, mimari kararlarında mentor eşlik etti, üretime kendi elleriyle aldılar. O araç bugün hâlâ her pazartesi rapor atıyor ve ekipte "stajyerlerin aracı" diye değil, adıyla anılıyor. Yaptığı işin yaşadığını görmek, bir stajyere verebileceğiniz en iyi maaş zammı.
Gerçek işin öğrettiği şeyleri oyuncak proje öğretemiyor. Kod review'da "burası niye böyle?" diye sorduğunda cevabın "2019'daki bir kampanya talebinin kalıntısı" olması; deploy'un cuma öğleden sonra yapılmaması; iş biriminin "küçük bir rica" diye başlayan mailinin üç günlük işe açılması. (Stajyerlerden biri buna "yazılımın görgü kuralları" dedi, terimi ofiste tuttuk.)
Ritim de kendiliğinden oturmadı, kurduk: her sabah mentorla on beş dakikalık baş başa, her cuma bütün ekibin önünde beş dakikalık demo. Demo şartı ilk hafta ikisini de gerdi; dördüncü haftada "cuma ne göstereceğim" sorusunun haftayı planlayan bir pusulaya dönüştüğünü kendileri itiraf etti. Mentorluğun maliyetini de dürüstçe yazayım: adanmış mentorun haftasından aşağı yukarı yarım gün gidiyor. Bu yarım günü fazladan masraf olarak görüyorsanız stajyer almayın; yatırım olarak görüyorsanız geri dönüşü bizce tartışmasız.
Beklemediğimiz bir yan etki de ekip diline oldu. Toplantıda içeriden kısaltmalarla konuşurken durup açıklamak zorunda kalmak, önce yorucu geldi; sonra fark ettik ki bir şeyi yeni birine sade cümlelerle anlatamıyorsak, muhtemelen kendimiz de tam anlamamışız. İki aylık staj döneminde ekip içi dokümanların dili gözle görülür sadeleşti. Stajyerler gitti, sadelik kaldı. Yönetim katına teknik bir konuyu anlatırken de bu sade dilin karşılığını aldığımı söylersem, kazancın sadece ekip içinde kalmadığı anlaşılır sanırım.
Öğretirken Kendi Paslarımız Döküldü
İşin bize bakan yüzü daha ilginç çıktı. Birine bir şeyi öğretmeye kalktığınızda, "hep böyle yapıyoruz" ile "şu sebepten böyle yapıyoruz" arasındaki farkı acı biçimde görüyorsunuz. Stajyerin masum "neden?" soruları, en az üç yerde cevabımızın "alışkanlık" olduğunu ortaya çıkardı. Deployment checklist'imizdeki iki adımın yıllardır gereksiz olduğunu, bir stajyerin ısrarlı sorusu sayesinde fark ettik. Utandık mı? Biraz. Düzelttik mi? Aynı hafta.
İkinci ders dokümantasyon hakkındaydı. "Dokümanımız var" diyorduk; stajyer o dokümanla ortamı kuramayınca aslında "dokümanımız vardı" dememiz gerektiği anlaşıldı. Yeni birinin takıldığı her nokta, dokümantasyonun deliğidir — stajyerler bu delikleri bulmakta radar gibiler, üstelik kıdemlilerin aksine "ben hallederim" deyip deliği sessizce atlamıyorlar.
Üçüncüsü daha kişisel: sabır kası. Kıdemli bir geliştiricinin refleksle yaptığı şeyi adım adım anlatmak, o adımları kendi kafanızda da yeniden sıralamanızı gerektiriyor. Mentorluk yapan iki kıdemlimiz de dönem sonunda aynı şeyi söyledi: "Anlatırken ben de öğrendim." Klişe ama bu sefer sahiden öyle oldu.
Stajın Sonunda Elde Ne Kaldı?
Somut bilanço: iki stajyerden biriyle dönem sonunda yarı zamanlı devam anlaşması yaptık; öbürü okuluna döndü ama açık kaynak tarafında bizim bir kütüphanemize katkı vermeye devam ediyor. Ekipte dokümantasyon yenilendi, checklist sadeleşti, code review kültürümüz "hata bulma"dan "gerekçe sorma"ya biraz daha kaydı.
Ve bir karar çıktı: staj programı artık yaza sıkışmayacak. Yılda iki dönem, her dönemde en fazla iki kişi, her stajyere adanmış bir mentor. Az sayıda, derin ilgi — kalabalık stajyer grubu alıp kendi haline bırakan modelin kimseye faydası olmadığını hem kendi geçmişimizden hem başkalarının hikâyelerinden biliyoruz.
Staj programı kuran ya da kurmayı düşünen ekiplerle bu deneyimi tartışmayı severim; iletişim sayfası açık. Sorusu bol olanları özellikle severiz — pasımızı onlar döküyor.