Kod Tabanın, Kimsenin Çıkarmadığı Bir Bilgi Madeni
İşte her CTO ve kıdemli geliştiriciyi rahatsız edecek bir düşünce: İşiniz hakkındaki en sofistike anlayış, üretimde çalışan kodun içinde başka hiçbir yerde olmayabilir.
ServiceMatch ekibinden yakın tarihli bir araştırma makalesi provokatif bir fikir ortaya atıyor. Olgun yazılım sistemlerinin sadece işletmenizi çalıştıran araçlar olmadığını, organizasyonun o işletme hakkında öğrendiği her şeyin çalıştırılabilir temsilleri olduğunu savunuyorlar. Sorun şu: Bu bilgi gözümüzün önünde saklıydı, yıllardır sadece derleyicilerin ve (ara sıra) insanların okuduğu repository'lerde kilitli kalmıştı.
Dokümantasyon Yanılgısı
Hepimiz oradayız. Yeni bir mühendis ekibe katılır ve bir sürü Confluence sayfası, mimari karar kayıtları ve Wiki girişleriyle karşılaşır. "Bu seni hızla işin ehli yapar," diye biri umutlu bir kesinlikle söyler.
Yapmaz.
Dokümantasyon, birinin yazmaya değer bulduğunu düşündüğü şeyi, belki yıllar öncesinde bir anda yakalar. Edge case'leri kaçırır. Kararları şekillendiren toplantılardaki tartışmaları kaçırır. Binlerce commit üzerinden, her biri gerçek bir senaryoyla boğuşarak evrilen iş mantığını kaçırır.
Peter Naur'un 1985'teki argümanına göre (evet, Backus-Naur form'u bize veren aynı Naur), program dokümantasyonu bir sistemin "teorisini" asla tam olarak yakalayamaz. Gerçek anlayış insanların kafasındadır. O insanlar gittiğinde, teori de onlarla birlikte gider.
Ama işler burada ilginçleşiyor.
AI Okuyucu Problemini Değiştiriyor
Naur'un argümanı iki tür okuyucu hakkındaydı: kodu anlamadan çalıştıran derleyiciler ve onu yavaş ve pahalıya anlayan insanlar. Dokümantasyon yeniden canlandırma umudunun imkansızlığı, başka tür okuyucunun olmadığını varsayıyordu.
Büyük dil modelleri üçüncü bir okuyucu türüdür. Ve kodda gömülü örtük teorileri yeniden yapılandırmakta şaşırtıcı derecede iyidirler.
ServiceMatch sistemi ikna edici kanıtlar sunuyor. Kurumsal konfigürasyon yönetimi bilgisini doldurması kitaplar dolusu olacak bilgileri, CMDB platformlarında kodluyorlar. Ama mesele şu — bu zaten yazılmış, sadece düz yazı olarak değil. Kod olarak yazılmış.
Kimlik çözümleme mantıklarını düşünün. Bir danışmanın "cihaz kimliği nasıl çalışır" hakkındaki denemesi yerine, ağırlıklarla bir konfigürasyon dosyası var: seri numarası (25), hostname (25), varlık etiketi (25), IP adresi (20), MAC adresi (15). Artı güven eşikleri ve çakışma çözüm kuralları. Her sayı, birinin kazandığı bir argümanı temsil ediyor. Her çakışma türü, bir yerde gerçekten yaşanmış bir olayı temsil ediyor.
Bu, politikanın bir açıklaması değil. Bu politikanın kendisi — gerçek kurumsal sistemlere karşı her gece çalışan politika.
Ekibiniz İçin Bu Ne Anlama Geliyor
Geliştiriciler ve teknik liderler için bu araştırmanın pratik etkileri var:
Kodunuz, bakımını yapmadığınız bir dokümantasyon — ve bu kendi avantajlarına sahip. Eskimiş wiki sayfalarının aksine, üretimde çalışan kod sürekli doğrulanır. Dokümantasyon kodla uyuşmuyorsa, dokümantasyon yanlıştır.
AI araçları bu bilgiyi çıkarmakta gittikçe iyileşiyor. Bir AI'ya "cihaz kimliği çakışmalarını nasıl ele alıyoruz" diye sorduğunuzda sadece dokümantasyon değil, ağırlıklara ve eşiklere kodlanmış gerçek muhakemeyi döndürebilecek bir dünyaya doğru ilerliyoruz.
Gerçek bilgi edge case'lerde yaşıyor. Ana akışlar genellikle iyi dokümante edilmiştir. Yıllar içinde çözülen özel durumlar, istisnalar, köşe vakaları — işte derin kurumsal bilgi onlarda gizli.
Uyarı İşareti
Bunların hepsinin rahatsız edici bir sonucu var: İş mantığınız sadece kodunuzdaysa ve kodunuzun test coverage'ı düşükse, naming'i belirsizse veya yapısı kaotikse, çıkarılması neredeyse imkansız bir bilgi yığınınız var demektir.
ServiceMatch ekibi, "repository yeterli" iddialarının öngörülebilir şekillerde çöktüğünü buldu. Naur'un örtük kalıntısı gerçek. Bazı bilgiler gerçekten sadece insanların kafalarında yaşıyor.
Ama daha güçlü bulgu, kodda bizim düşündüğümüzden çok daha fazlasının hayatta kalması. Repository, dokümantasyonun asla başaramayacağı kadar çok teori yakalar — sadece onu çıkaracak yeni tür bir okuyucuya ihtiyacımız vardı.
Bununla Ne Yapacaksınız
Bir girişim veya büyüyen teknoloji şirketiyseniz, bunun üzerine düşünmek için bir çerçeve:
- Dokümantasyonla kod uyuşmadığında koda daha çok güvenin
- Muhakemesini dokümante eden kodlar yazın — anlamlı değişken isimleri, temiz fonksiyonlar, NEDEN'i, sadece NE'yi değil açıklayan yorumlar
- Konfigürasyonu kurumsal bilgi olarak görün — o ağırlıklar ve eşikler korumaya değer kararlar
- Kod tabanınızı bir bilgi kaynağı olarak sorgulayabilecek AI araçlarını keşfetmeye başlayın
Bugün yazdığınız kod, yarının kurumsal bilgisidir. Değerini artırın.