Düşünce Liderleri

Yapay Zeka Kod Yazıyor, Ancak Altyapınız Takip Edebiliyor mu?

mm
Unite.AI sitesini Google'daki tercih ettiğiniz kaynaklara ekleyin

Yazılım mühendisliği tarihindeki en garip dönüşümlerden birini yaşıyoruz. Onlarca yıl boyunca determinizm hedeflenirdi; her zaman aynı şekilde davranan sistemler oluşturulmaya çalışılırdı. Şimdi ise bu temel üzerinde olasılıksal AI ajanlarını katmanlıyoruz ve kodları alarm verici bir ölçekte ve hızda üretiyoruz. Ve dürüst olmak gerekirse, çoğu altyapımız bunun için tasarlanmadı.

DevOps araçları üzerinde yıllarca çalıştım, araştırmalar yazdım ve mühendislik ekiplerine en yüksek performanslarını ulaşmalarında yardımcı oldum. Şimdi AI sürücülü geliştirme ile neler gördüğüm, sadece bir evrim değil. Mevcut iş akışlarımızdaki her çatlak ortaya çıkıyor.

Sorun Zaten Burada

Bir 2025 GitClear çalışması neredeyse %7’si AI tarafından üretilen kod içerdiğini buldu. Daha önceki analizleri 153 milyon satır değişen kodun maliyetini ortaya koydu: “kod değişimi”—iki haftada yeniden yazılmış veya silinmiş kod—2024’te AI öncesi réféns noktalarına kıyasla iki katına çıktı.

Güvenlik etkileri aynı derecede çarpıcı. Son analiz 100’den fazla büyük dil modeli üzerinden 80 kodlama görevinde AI tarafından üretilen kodun %45’inde güvenlik açıkları ortaya çıkardı. Gerçek dünya etkisi? Birçok CISO artık AI tarafından üretilen kodun doğrudan neden olduğu önemli olayları rapor ediyor.

Hız kazanımları gerçek, ancak istikrar maliyetleri de öyle.

Büyütme Etkisi

Öğrendiğim bir şey var: AI her şeyi büyütür. İyi uygulamalarınız varsa, AI onları daha iyi ve daha hızlı hale getirir. İşlemleriniz karmaşıksa, AI bu karmaşıklığı da artırır. Bu, her yıl DORA‘nın DevOps raporlarında görünen bir modele benzer: daha az değişken, daha iyi sonuçlar anlamına gelir. Başarılı ekipler daha az işletim sistemi, daha az programlama dili ve daha az işlem yöntemi ile standartlaşıyorlar. Karmaşıklığı kasıtlı olarak azaltıyorlar.

AI ajanları da aynı modele uyuyor. Onlara tutarlı bir ortam verin, her geliştiricinin makinesinde Python aynı sürüm olsun, bağımlılıklar kilidli ve izleniyorsa, onlar da mükemmel çalışır. Onları 17 farklı yapılandırma ile karşı karşıya bırakın, her biri küçük farklılıklarla, ve tokenleri çevresel tuhaflıkları çözmek için harcıyorsunuz, gerçek sorunları çözmek için değil.

Determinizm Çelişkisi

Bu, ilginç bir gerilime neden oluyor. Yıllarca bilgisayar bilimi determinizmi en yüksek hedef olarak takip etti. Şimdi ise olasılıksal iş yükleri, AI modelleri çalıştırıyoruz ve bunlar aynı çıktıyı iki kez garanti edemez, deterministik sistemler üzerine kuruluyor.

Cevabım: Yığının mümkün olduğunca çok kısmını deterministik tutun. Altyapınızın %80’ini deterministik seviyede tutabilirseniz, AI ajanlarınız daha az değişkeni yönetmek zorunda kalır. “Bu bağımlılık neden kurulmadı?” veya “Bu derleme komutunu tekrar dener misin?” gibi sorularla uğraşmazlar. Gerçekten yaptıkları işe odaklanırlar.

Düşünün: Bir ajan bir şeyi derlemeye çalıştığında ve yerel bağlamalar ImageMagick kurulmadığı için başarısız olursa, bu bir token-pahalı detour’dur. Ortamınız zaten gerekli her şeyi içeriyorsa (derleyiciler, kütüphaneler, tam bağımlılık ağacı libc’ye kadar), ajan sadece çalışır. Hiçbir hata ayıklama, hiçbir deneme yanılma, sadece ilerleme.

Özellik ve Doğrulama Anahtardır

Açıkça görülüyor ki AI sürücülü geliştirme, iki tarihi olarak düşük değerli beceri hakkında daha sert düşünmemizi zorluyor: özellik ve doğrulama. Gerçekten ne inşa ettiğinizi açıklamanız ve bunu doğrulamak için güçlü yollarınız olmalıdır.

İlginç bir şey fark ettim: Ürün yönetimi veya ürün mühendisliği geçmişleri olan insanlar genellikle şu anda AI ajanları ile daha başarılılar. Zaten gereksinimler, başarı kriterleri ve ticaretler hakkında düşünmeye alışkınlar. “Neden bu seçimi yaptın?” sorusunu sormaya ve nedenlerine göre ayarlamalara alışkınlar.

Doğrulama, şeyin gerçekten doğru olup olmadığını bilme, her zaman yazılım mühendisliğinin en zor problemi oldu. QA on yıllarca suçlu olarak düşük değerli görüldü, ancak en zor kısmı bu: yazılımın gerçekten kullanıcı ihtiyacını çözüp çözmediğini belirleme. AI bunu çözmez. Aslında, olasılıksal çıktıları deterministik gereksinimlere karşı doğrulamak daha kritik hale gelir.

Güven, Ancak Doğrula (Ve Kontrol Et)

Kabul etmeye başladığım bir düşünce var: AI tarafından üretilen kodu, aksi ispatlanana kadar düşmanca olarak varsaymalıyız. AI’nin kötü niyetli olmadığından değil, sadece bilmediğimizden. Her satırı denetleyemeyiz, ajanlar günde binlerce satır kod üretiyor.

Bu, kontrol noktalarını değiştirmeyi gerektirir. Geliştirme zamanında her şeyi kapayamıyorsak, çalışma zamanında daha güçlü kontrollere ihtiyacımız var. Operatörler, SRE’ler, platform ekipleri, üretimden sorumlu olanlar, ne çalıştırıldığını, tam bağımlılık izlemesini ve her artifact için net bir kökeni görebilmeli.

Bu, tekrar üretebilirliğin neden önemli olduğu yer. Yerel olarak test ettiğiniz artifact’ın üretimdeki artifact ile aynı olduğunu matematiksel olarak kanıtlarsanız, akıllıca kararlar alabilirsiniz. Belki CI’de birim testlerini yeniden çalıştırmana gerek yok, yerel olarak çalıştırdın ve hiçbir şey değişmedi. Belki test kapsamını kod değişikliklerine eşleyebilir ve alakasız test süitlerini atlayabilirsiniz.

Sonraki Nedir

Bir dönemeç noktasındayız. İyi uygulamaları olan ekipler AI ile büyük verimlilik kazanımları görüyor. Çabalayan ekipler şimdi daha hızlı çabalıyorlar.

AI sürücülü geliştirmeyi güçlendircek altyapı, tekrarlanabilirlik için temel düzeyde inşa edilmelidir. Sonradan tarama araçları ve denetimlerle değil, geliştiricilerin ilk günden itibaren çalıştığı şekilde tasarlanmalıdır. Geliştirme ortamınız Mac ve Linux arasında aynı olduğunda, her bağımlılık izlenip kilidlendiğinde, her artifact için tam kökeni olduğunda, AI ajanları kaos yaratıcılar yerine güç çarpanları haline gelir.

AI çağındaki ekiplere verdiğim en büyük tavsiye:

  • Ruthless standartlaştırma. Daha az değişken, daha yüksek performansla ilişkili. Teknoloji yığınızı kilitleyin, tüm platformlar boyunca tutarlı ortamları zorlayın ve AI’nin büyütmeden önce yapılandırma kaymasını ortadan kaldırın. Python sürümü uyuşmazlıkları şimdi sorunlara neden oluyorsa, AI kod üretecek ölçeğe ulaştığında 10 kat daha fazla sorun çıkarır.

  • Doğrulamayı iş akışınıza entegre edin, sonuna değil. AI’nin insanlardan daha hızlı kod üretebildiği bir dünyada, yalnızca manuel kod incelemesine güvenemezsiniz. Kodun gerçekten çalıştığından değil, gerçek gereksinimi çözdüğünden emin olmak için otomatik testleri uygulayın. CI/CD pipeline’inizi üretim dağıtımları için güçlü kapılar ile güvenlik ağını yapın.

  • Tekrarlanabilirliği altyapı olarak yatırım yapın. Ortam tutarlılığını ilk sınıf altyapı endişesi olarak tedavi edin. Yerel ortamınız, CI ortamınız ve üretim ortamınızın aynı olduğunu matematiksel olarak kanıtlarsanız, “çalışıyor benim makinede” sorunlarının tüm bir sınıfını ortadan kaldırabilirsiniz. Bu deterministik temel, olasılıksal AI iş yüklerini güvenle üzerine katmanlamanıza izin veren şeydir.

Soru, AI’nin çoğumuzun kodunu yazıp yazmayacağı değil. Zaten birçok ekibin kodunu yazıyor. Soru, altyapımızın takip edebilip edemeyeceği.

Michael Stahnke, 15 yılı aşkın süredir geliştirme ve operasyonel araçlar alanında çalışmış bir mühendislik yöneticisidir ve Puppet'ın DevOps Raporları'nda araştırma ve yazar olarak görev almıştır.

Michael şu anda Flox'ta Mühendislik Başkan Yardımcısı olarak görev yapmaktadır. Daha önce CircleCI ve Puppet'te üst düzey mühendislik liderliği görevlerinde bulunmuş ve mühendislik ekiplerini 5 kat veya daha fazla büyütmüştür. Yüksek performanslı ekipler, organizasyonlar ve mühendislik etkinliğini araştırmanın yanı sıra paketleme ve yayın sistemleri üzerinde çalışmıştır. 2007 yılından bu yana DevOps ve Otomasyon etkinliklerinde konuşmacı olarak görev yapmaktadır. 2005 yılında OpenSSH hakkında bir kitap yazmış ve Extra Packages for Enterprise Linux (EPEL) paket deposunu kurmuştur.