Token ve Üretim Kapasitesi İlişkisi

Oh, oh! Gpt haftalık limitim full, üzerinde birde bedava fulleme kredisi vermişler. Etti mi %200. Claude codex de aynı şekilde full. Orada da bir resetleme kredisi var. Toplamda %400 yapay zeka sermayem var. Şimdi bu %400’ün yani yapay zeka sermayesinin ne anlama geldiğini somut bir örnek ile açıklayayım. Ben burada harcayabileceğim token görmüyorum. Ben burada […]

Yapay Zeka İle TDD

Daha önce TDD (Test Driven Development) yaptınız mı? TDD’de çalışma mekanizması kabaca şöyle işler: Önce bir test yazarsınız. Test çalışmaz, çünkü henüz kodda karşılığı yoktur. Sonra testi çalışır hale getirene kadar implementasyonu yaparsınız. Ardından yeni bir test yazarsınız. O da çalışmaz. Onu çalışır hale getirecek kodu yazarsınız. Böylece sürekli çalışmayan testler yeni kodu doğurur. Testler […]

Macroservice Event Driven Domain Based Monolith Architecture

Microservice mimarileri bence yanlış anlaşıldı. SRP’den (Single Responsibility Principle) yola çıkılarak sadece tek bir iş yapan, kendi içinde koherent minnak servisler oluşturuldu. Sonra bütün bu servisleri HTTP üzerinden birbirine bağlayıp ortaya dağıtık bir cümbüş çıkardılar. Aklı başında kimse bir sisteme microservice mimarisi ile başlamaz. SRP yerine domain bazlı düşünmek lazım. Oluşturulan uygulama kendi domainine tam […]

Yapay Zeka Daha İyi Kod Yazıyor

Yazılımcıların yapay zeka araçlarının yaptığı işlere karşı tereddüt etmesinin bence temel bir sebebi var: Yazılımcılar, yazılımın ne kadar kırılgan olduğunu biliyorlar. Mutlaka düşünülmemiş bir edge case vardır. Mutlaka hesaba katılmamış bir yan etki vardır. Bir yeri düzeltirsin, başka bir yer bozulur. Hop, sistem yamulur. :) Zaten yazılımcılar yıllardır tam da bu nedenle regresyonu önleyecek mekanizmalar […]

Runtime’da Kendini Tamir Eden Uygulamalar

Kendi kendini tamir (hot refactoring) eden uygulamalar devrinden bahsetmiştim. Bunu kendi projelerimde nasıl uygulayacağımın reçetesini veriyorum. – OpenAI’in max 20 aboneliğini kullan – Sunuculara Codex CLI kur – Git üzerinden projeleri klonla, yerlerini Codex ile paylaş – Uygulamaların runtime çalışma ayarlarını Codex ile paylaş – Çalışan uygulamalar için eşdeğer bir staging alanı oluştur – Her […]

Tek Kişilik Dev Yazılım Kadroları Dönemi

Tek kişilik dev kadrolarla yazılım geliştirmek için gerekli son eşiğin de aşıldığını düşünüyorum. Bu son eşik neydi? Sürümleme, deployment ve canlı işletim. Kod yazmayı zaten yapay zekaya devretmeye başladık. Test, analiz ve refactoring süreçlerinde de aynı dönüşüm yaşanıyor. Şimdi buna deployment ve production operasyonları da ekleniyor. Bunların tamamını yapay zekayı yazılım geliştirme sürecine entegre ederek […]

Hot Refactoring

Ok, kritik bir eşiğe geldik. Ben uygulamaların canlıya alınması ve orada işletilmesi konusunda da yapay zekayı öncelikli araç olarak kullanıyorum. Neler yaptırıyorum? – Sunucularda yeni bir servis için gerekli altyapı kurulumu (nginx, service start/stop scriptleri, veri tabanı oluşumu vb) – Bir ürünün doğrudan HA konfigürasyonda rollilng deployment – Hata olması durumunda hatanın analizi ve çözümü […]

Sadece İyi bir Yazılımcı İyi Bir Yapay Zeka Kullanıcısı Olabillir

Yeni bir backend sürümü için ship.sh ile deployment başlattım. Lakin sunucu bir türlü ayağa kalkmıyor. Dakikalarca EventListener içinde bekliyor. Konvansiyonel yöntemlerle bu problemi nasıl çözerdim? Thread dump alarak. Thread dump içinde çalışan tüm thread’lerin stack trace’lerini görebilir, sistemin nerede takıldığını veya bir deadlock olup olmadığını analiz edebilirim. Bunun için sunucuya bağlanmam, gerekli komutları hazırlamam, thread […]

Canlı ve Bugfixing

Bir production bug’ın çözülmesi günler, hatta haftalar alabilir. Çünkü bug’ın kendisini düzeltmek, sürecin sadece küçük bir parçasıdır. Önce problemin fark edilmesi gerekir. Sonra anlaşılması ve kategorize edilmesi. Ardından önceliğinin belirlenmesi, bir ticket’a dönüştürülmesi ve bir yazılımcıya atanması gerekir. Yazılımcı problemi yeniden analiz eder, ilgili kodu bulur, çözümü geliştirir, test eder ve deployment süreci başlar. Yani […]

Solo Founder

Ben şahsen startup ekosisteminde venture capital ve gidişatı para ile hızlandırma işine sıcak bakanlardan değilim. Nedenlerini daha önceki yazılarımda paylaşmıştım. Bu yazımda başka bir konuya değinmek istiyorum. Melek yatırımcılar ve VC’ler genelde solo girişimcilere mesafeli yaklaşırlar. Bunun temel gerekçelerinden biri, tek bir insanın bir startup’ın bütün yükünün altından kalkamayacağı düşüncesidir. Durum böyleyken bazen 5-10 kişinin, […]

Yazılımcı Mülakatları Bitmiştir

Bugün bir yazılımcı ile iş görüşmesi yapsam, kendisine neredeyse hiçbir şey sormazdım. Önüne bir bilgisayar koyardım. Bilgisayarda Codex ve Claude Code hazır olurdu. Bunun yanı sıra uygulamalarımızın kaynak kodlarına da erişimi olurdu. Sonra: “Canlıda şöyle bir problem çıktı. Düzeltin lütfen” der ve sadece yaptıklarını seyrederdim. Ardından Jira’dan gerçekçi bir ticket açardım: “Bunu implemente edin lütfen.” […]

Kutsal Sürümler

Gelelim başka bir kutsal akdin demistifiye edilmesine: “Sadece ürünün gelişmiş ve stabil hali sürüm olarak canlıya alınır. Onu stabilize etmek için her şey mübahtır.” Yanlış! Yazılım geliştirmek çok maliyetli olduğu için, sürüm oluşturmak ve canlıya almak da bu maliyet dünyasının bir parçasıydı. Bir değişikliği üretmek pahalıydı. Test etmek pahalıydı. Hataları bulmak ve düzeltmek pahalıydı. Release […]

Native AI Olmak

Eskiden büyük şirketler küçük şirketleri yutardı. Sonra teknoloji gelişti. Küçük şirketler, büyük şirketler için ciddi birer tehdit olmaya başladı. Şimdi yapay zeka geldi. Yeni dönem bence daha farklı olacak: AI-native şirketler, AI-native olmayan şirketleri zorlayacak. Neden? Çünkü AI-native bir şirket sadece yapay zeka kullanan şirket değildir. Ürün geliştirmesini, operasyonlarını, pazarlamasını, müşteri hizmetlerini, analizlerini ve karar […]

Devops Devri Kapanıyor mu?

Kod yazma, okuma devri kapandı dedik. Tepkiler gecikmedi. Lakin hakikatler kendini kısa sürede gösteriyor. Yazılımcıların bilimum çalışma yöntemleri tepe taklak olmuş durumda. Bu yazılım mühendisliğinin sonu değil. Tam tersine, artık daha fazla mühendislik söz konusu, çünkü yazılımcılar sistemler inşa etmeye odaklanacaklar. Bunun için de mühendislik yetileri gerekiyor. Tabi yapay zekadan tek nasibini alan sadece yazılımcılar […]

Kim Yapay Zeka Ile Bir Ürün Geliştirip, Canlıya Alamaz?

Canlı tecrübesi olmayanlar! Daha önce sürüm yapıp, canlı deployment’i, bir canlı problemi için kök neden analizi, thead ya da ya heapdump ya da memory leak analizi yapmamış ve gerekli monitoring ve tracing altyapısını kurmamış birisi süper bir uygulama da geliştirse, onu canlıda işletemeyeceği için bu alandaki faaliyetlerinin hiçbir anlamı yoktur. Lokalde çalışıyor söylemine başvuranlara selamlar.

Canlıda Patlayan Uygulamalar

Evet, yeni ortaya çıkan bir yapay zeka söylemini de demistifiye edelim. Söylem şöyle: “Yapay zeka ile geliştirilmiş uygulamalar canlıda patlar ve sen ne yaptığını bilmiyorsan başın büyük beladadır.” Doğru. Ama insan tarafından geliştirilmiş uygulamalar da canlıda patlar. Bu yüzden onlarca yıldır yazılım mühendisliğinde şu mekanizmaları oluşturuyoruz: – Automated tests – E2E tests – Static analysis […]

Tam Otonom Yazılım İçin Gerekli Şartlar

Tam otonom yazılım yani kod yazmadan, okumadan ajanların software factory tarzı ve loop engineering ile ürün çıkardikarı bir ortam için gerekli olan şeyler: 1. Tecrübeli ve gidişata hükmedip, yönetebilecek bir senior yazılımcı 2. Bu şahsın ne istediğini ya da müşterinin ne istediğini çok iyi bilmesi 3. İyi gereksinim analizi ve code review yapabilen bir llm […]

Eski ve Yeni Yazılım Dünyasının Çatışması

Eski yazılım mühendisliği dünyası ile yeni, yapay zeka destekli yazılım mühendisliği dünyası arasında muazzam bir çatışma ve çakışma yaşanıyor. Bunu burada paylaştığım yazılara gelen yorumlarda da açıkça görüyorum. Siz kör birisine mavi rengin nasıl göründüğünü anlatamazsınız. Aynı şekilde, eski yazılım mühendisliği dünyasından gelen birisine, yeni yapay zeka destekli yazılım dünyasının sunduğu imkânları anlatmak da çok […]

Yapay Zeka Çok Daha İyi ve Çok Daha Hızlı Bugfix Yapabilir

Bir programcının hataları anlama (root cause analizi) ve bugfix yapma hızını düşünün. Programcıların takılıp, kaldığı en belirgin alanlar bunlardır: troubshooting, root cause analizi ve bugfix. Bunun nedeni nedir? Programcıların yapay zekaya kıyasla sahip oldukları bağlam kapasitesi. Ben yapay zekaya milyon satırllık logları bir seferde yükleyip, ana root cause analiz yap diyebilirim. Bu onun 5 dakikasını […]