Bir Googler'dan yazılımcılara tavsiyeler

İşte Google’da mühendisliğin temel ilkesi!
Bir Googler'dan yazılımcılara tavsiyeler

Açıklama: Yazılımcılara Tavsiyeler başlıklı yazı dizimizde Türkiye internet sektörünün tecrübeli yazılım geliştiricilerini teker teker Webrazzi.com’da konuk edip, kendilerinden genç yazılım geliştiricilere olan tavsiyelerini ve tecrübelerini dinliyoruz.

Konuk yazarımız Kaan Tarıman, Google'ın Mountain View/Kaliforniya'da bulunan ofisinde Yazılım Mühendisi olarak çalışıyor. Kendisiyle daha önce yaptığımız röportaja buradan ulaşabilirsiniz.

kaan-tarimanBir şeyi yapmanın iki yolu var: Bir tanesi eski ve önerilmeyen yol, diğeri de yeni ve henüz çalışmayan yol. İşte Google’da mühendisliğin temel ilkesi!

Google’ın inovasyon gücünü, gözünün yaşına bakmadan silinen milyonlarca satır kodun miktarından anlayabilirdiniz. Silinen bu kadar kod, bazen ne kadar oturmuş ve ihtiyacı karşılayan bir durumda da olsa, her zaman yenisi tarafından bir kenara itilecek ve yenisinin olgunlaşması bitene kadar görevini yapacaktır. Yeni kodun sağlıklı olması için gerekli olan bu acılı sürecin cefasını da tabii ki biz yazılımcılar çekiyor.

Google’da yeni gelenlere Noogler deniyor. Bu sevimli yaratıklar, silikon vadisindeki kampüsün nimetlerinden faydalanmayı öğrenirken, bir yandan da ne zaman işe yaramaya başlayacaklarını merak ediyorlar. İşteki ilk haftalarında dünyayı kurtarmaya hazırlanırken, birkaç hafta sonra hala kullanacakları araçları bile tam öğrenmediklerini farkederek bir moral bozukluğu yaşıyorlar.

Evet, tamam hepsi değil belki ama benim gibi ölümlüler diyelim. Efsanelerini önceden duyup, sonra tanıyınca neden efsane olduklarını anladığınız süper kahraman mühendislerden (bkz. Jeff Dean) bahsetmiyorum. O zaman Google gibi büyük şirketlerde çalışan ya da çalışmayı düşünenler için birinci tavsiye, kendinin büyük resmin sadece küçük bir parçası olduğunu kabul et ama gerektiğinde tek başına yepyeni resimler çizebileceğine inan.

Burada kullanılan araçların tamamına yakını ‘ev yapımı’. Yazılım geliştirme ara yüzleri, kod derleme ve test alt yapıları, kod denetleme, versiyonlama, yayınlama otomasyonu başta olmak üzere bir çok sistem. Haliyle bu araçların devamlılığı ve yeni versiyonlari için de yüzlerce insan çalışıyor. Eğer birinin verimliliğini bozan bir durum varsa, bunun için ses çıkartması ondan bekleniyor ki, diğerleri de faydalansın. Aynı şey, herhangi bir üründe kullanıcıyı kötü etkileyen durumlar için de geçerli, kullanıcı herşeyin üstünde. Bu da ikinci tavsiyeme zemin oluşturuyor: Eğer bir şey bozuksa, ya tamir etmek icin uğraş, ya da tamir edilmesi icin doğru insanları bul.

yazilim-testi

Yazılım mühendisliğinin en önemli unsurlarından biri de tabii ki testler. Eğer bir yerde debugging yapılıyorsa, yeterince test yazılmamış demektir. Google test yazmaya ve test otomasyonu sürekliliğini sağlamaya neredeyse kutsal boyutta bağlanmış bir kültür içeriyor. Kod tabanına eklenecek herhangi bir ‘changelist’, etkilediği projelerin testlerinden yeşil ışık almadan eklenemiyor. Kod eklenirken varolan testler ve yeni testler yanında tabii ki o alandan anlayan bir başka mühendisin de onayını alması gerekiyor. Üçüncü tavsiye: Test yaz, debugging yapma. Eğer test yazılamıyor diyorsan, test yazılacak alt yapıyı hazırla. Kendi koduna asla güvenme.

kaan-tariman-googleSon olarak bir de güvenlik ve gizlilikten bahsetmek gerek. Bu iki kardeş kavram, kullanıcı veritabanı olan herhangi bir şirketin anayasasının birinci kuralı olmalı. Özellikle NSA skandalından sonra genel olarak insanların Google ve kullanıcısı bol diğer şirketlere olan güveninin azalması doğal ama gerçekten üzücü bir durum.

Diğer şirketler adına konuşamam ancak Google’da kullanıcı ile ilgili herhangi bir bilginin, bırakın bir devlet ya da başka bir kullanıcının eline geçmesini, Google çalışanlarının bile erişiminin ne kadar imkansız olduğunu bilmenizi isterim. Bunun için de daimi olarak en yeni kripto uygulamaları geliştiriliyor ve iç eğitimler yapılıyor. Kullanıcıların güveni yazılımcılar için en değerli şey.

ABD ve Türkiye gibi devletler gizliliğe her ne kadar saldırmaya kararlı olsa da, bizler bunu korumakla mükellefiz. Bunun en iyi yolu da ‘şeffaflık’tan geçiyor. Son tavsiyem de: Kullanıcının bilgisini gizli tut, güvenle sakla ve o bilgiyle ne yaptığınla ilgili her zaman şeffaf ol, kullanıcıya kontrolü ver.

İster tavsiye, ister teknik ayrıntı, ister müzikle ilgili (!) elimden geldiğince her türlü soruyu bu sayfanın altındaki yorumlardan cevaplamaya çalışırım. Hah bir son tavsiye daha yazılımcılara: Aman devamlı hareket edin, spor yapın, sağlam kafa, sağlam vücut!

(Fotoğraflar: Özgün-Faruk Yılmaz)

Teknoloji dünyasındaki gelişmeleri takip edin. Neleri size ulaştırmamızı istersiniz?
Abonelik kaydınız başarıyla oluşturuldu.