Author Archives: Özcan Acar

About Özcan Acar

Bilgisayar mühendisi olan Özcan Acar 1997 yılından beri programcı olarak çalışıyor. KurumsalJava.com, SmartHomeProgrammer.com ve Mikrodevre.com adresleri altında blog yazıyor. Pratik Programcı Yayınları bünyesinde Pratik Spring, Pratik Agile, Pratik Git ve Design Patterns ismini taşıyan kitapları bulunmaktadır. 21.12.2009 tarihinde Java Champion olarak seçildi.

Hayaller Nasıl Gerçekleşir?

Ok, biraz da vizyon ve hayallerin nasıl gerçekleştirilebileceğinden bahsedlim. Bunun için karanlık oda prensibine deyinmek gerekiyor. Önce evrenden başlayalım. Evren genişliyor. Üstelik çok uzak mesafelerde bu genişleme öyle boyutlara ulaşabiliyor ki, bugün bazı galaksilerden yayılan ışık gelecekte bize hiçbir zaman ulaşamayacak. Burada ışığın uzay içerisinde ışık hızından daha hızlı hareket etmesinden değil, uzayın kendisinin genişlemesinden […]

Sosyal Sorumluluk Kültürü

Yönetim kültürü ve şirket kültüründen bahsettik. Bir şirketi ayakta tutabilecek, faaliyetlerini anlamlı kılacak, çalışanlarında aidiyet hissi oluşturacak ve onları tatmin edecek üçüncü bir ayaktan bahsetmek istiyorum. Sosyal sorumluluk kültürü. Bir şirket ekonomik kazanç oluşturmak için kurulur. Bu kazanç çok küçük bir oranda şirketin çalışanlarına yansırken, büyük bir kısmı şirket sahiplerinin ceplerinde kaybolur. Bu sebeple şirket […]

Şirket Kültürü Hakkında

Yönetim kültüründen bahsettikten sonra, şirketin çalışanları için oluşturacağı ortamın temeli olan şirket kültüründen bahsedelim. İnsanlar arasındaki ilişkiler kültürleri seviyesinde şekillenir. Kültür, öğrenilmiş birlikte yaşama kurallarını da ihtiva eder. Bir toplumda insanların birbirleriyle nasıl konuşacağı, birbirlerine nasıl davranacağı, neyin kabul edilebilir, neyin kabul edilemez olduğu büyük ölçüde o toplumun kültürü tarafından belirlenir. Şirketler de aslında küçük […]

Holakrasi İle Yeni Bir Yönetim Kültürü Oluşturmak

Yeni bir yönetim kültürü modeli olan holakrasiye, en azından bizim yeni oluşturduğumuz startup bünyesinde bunu nasıl implemente etmek istediğimize değinmek istiyorum. Abdullah Kiğılı’nın bir sözü var: “Çalışanlar müdüre başka, patrona başka davranırlar. Türkiye’de patron işin başında olmadığı sürece o iş yürümez.” Haklı! Ama bunun sebebi, yanlış yönetim kültürünün bizzat patron tarafından bu şekilde inşa edilmiş […]

Yapay Zeka ve Refactoring

Ben yazılımcıların severek ne test yazdıklarını ne de refactoring yaptıklarını gördüm. Halbuki her ikisi de sağlıklı ve uzun ömürlü bir uygulama oluşturmak için elzem. Testler olmadığı için kimse refactoring yapmaya cesaret edemiyor. Ya “bana ne” diyor ya da bunun için gerekli zamanı bulamıyor. Yapay zeka ile yazılım geliştirme döngüsü ise test etme ve refaçtoring üzerine […]

Ajan Skill’leri Değişen Kültür

Agent skill’leri hakkında konuşalım. Ben Claude Code bünyesinde hiçbir SKILL dosyası kullanmıyorum. Açıkçası kullanmayı da tavsiye ve tasvip etmiyorum. Neden? Bu, sizin çocuğunuzu başka birisinin terbiye etmesi gibi bir şey. Yapılacak işin tüm kurallarını bir skill set tanımlıyor. Siz ajana bir iş veriyorsunuz, skill ise ona bu işi nasıl yapması gerektiğini söylüyor. Ama benim tam […]

Yazılım Üretim Hattı

Fikirden canlı ürüne nasıl geliyoruz, 10 adımda anlatalım (uçtan uca üretim modeli) 1. Güzel bir fikir buluyoruz. Başka kimsede bu fikrin olmaması lazım ;-) 2. Sonra Gpt ile geniş kapsamlı, saatler süren analiz seansları yapıyoruz. 3. Daha önce bolca bahsettiğim gibi loop engineering yapabilmek için gerekli iş paketlerini Gpt’ye hazırlattırıyoruz. 4. Akabinde loop.sh ile döngüyü başlatıyoruz […]

Yoruldum

Ben eskiden kod yazarken bu kadar zihinsel yorulmuyordum. Spesifik bir şeye odaklanıp, saatlerce onunla uğraşabiliyordum. Şimdi durum değişti. Kod yazmıyorum. Kodu yazdırıyorum. Kodu da artık okumuyorum. Ama eski çalışma sistemime göre bir değişim söz konusu. Artık herşeyi en ince detayına kadar anlayıp, yapay zeka ajanlarını yönlendirmem ve yönetmem gerekiyor. Paralelde 2-3 değişik proje ve onlarca […]

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.” […]