Yazılımda Kırılma Anları

Otuz yıla yakın yazılımcı kariyerimde iki büyük kırılma yaşadım. Bunlardan ilki imperatif programlamadan fonksiyonel programlamaya geçişti. Çok uzun süre imperatif kod yazmaya alışmış bir beyin, fonksiyonel programlamaya kolay adapte olamıyor. O dönemde çok zorlandığımı hatırlıyorum. İkinci büyük kırılmayı ise üç sene önce yapay zeka ile tanıştığımda yaşadım. İlginç olan, bu sefer hiç zorlandığımı hatırlamıyorum. Bunun […]

Emin Misin?

Aynen gelen bir yorumu paylaşıyorum. Sonra problemin ne olduğunu açıklamaya çalışacağım. “ancak ai tarafindan cok kez yanlis sonuc olduguna emin oldugum cevaplar aldim eminmisin dedigimde haklisin deyip yeni bir kod verdi.. ya da verdigi koddaki guvenlik aciklari saymakla bitmez.” Öncelikle şunu belirtelim: Bu şekilde yapay zeka ile yazılım geliştirilmez. Karşınızda deterministik olmayan bir yapı var. […]

Zaman Kaybı

Dikkat ettiyseniz, yapay zekanın yazılımcılar tarafından kabullenilme oranı son altı ayda dramatik bir şekilde arttı. Eskiden “Yapay zeka kod yazamaz!” deniliyordu. Şimdi ise “Yapay zeka ile kod yazmak mesele değil, asıl mesele onu yönetebilmek!” deniliyor. Kabulleniş, gerçeklerin her zaman en az 3-6 ay gerisinden geliyor. Burada çok büyük bir sıkıntı görüyorum. Çünkü yapay zekanın gelişim […]

Loop Engineering ve Dark Factory

Kod yazmak için IDE, yapay zeka ajanlarıyla etkileşime girmek için CLI kullanmak artık gereksiz. Kod yazmıyoruz. O halde neden bir kod editörü kullanalım? Ajanlarla sürekli etkileşime girmek de zaman kaybından başka bir şey değil. 30 farklı CLI penceresinde 30 ajanı yönetmeye çalışmak ölçeklenebilir bir yöntem değil. Yapay zekaya işleri devrediyoruz ama bu sefer de ajanları […]

Nokia İle Yazılımcıların Kaderleri Arasındaki Parallellik

Nokia ile günümüz yazılımcılarının kaderleri arasında ilginç paralellikler var. Nokia bir zamanlar cep telefonu piyasasının tartışmasız lideriydi. Piyasadaki hakimiyetinin verdiği rahatlıkla kendisini yeterince yenileme ihtiyacı duymadı. Sonra Apple geldi ve bütün oyunu değiştirdi. Apple sadece yeni bir telefon üretmedi. Telefonun ne olduğunu yeniden tanımladı. Nokia’nın elinde dünyanın en iyi mühendisleri vardı. Telefon üretmeyi çok iyi […]

One-Shot Product mı, MVP First mü?

One-Shot Product mı, MVP First mü? Yazılım geliştirirken tek seferde bütün bir ürünü ortaya çıkarmak mı, yoksa birçok iterasyonla bir MVP’yi zaman içinde ürüne dönüştürmek mi daha iyi sonuç verir? Benim favorim One-Shot Product. Neden? İterasyon bazlı MVP geliştirme yaklaşımının büyük ölçüde klasik yazılım geliştirme metodolojilerinden miras kaldığını düşünüyorum. Eskiden bir ürünü geliştirmek aylar, hatta […]

Dokümantasyon

Yıllarca bize “Yazdığın kod için dokümantasyon da yaz!” dediler. İlk patlayan her daim kodun içine gömülü Javadoc vari dokümantasyonlar oldu. Çünkü üvey evlat muamelesi gördüler. Kod yazmak daha zevkliydi. Genel olarak yazılım dokümantasyonunu kod ile güncel tutmak her zaman büyük bir problem olmuştur. Artık kod yazmıyoruz. Dokümantasyon da yazmamıza gerek yok. Bunun için bir yapay […]

Araç Kullanımı

Yapay zeka ile birlikte bir de araç enflasyonu oluşmuş durumda. Her şey için yeni bir araç tavsiye ediliyor. Araç olmayan yerde bir skill devreye giriyor. Bunların büyük bir kısmına gerek yok. Bizim yapay zeka ile yaptığımız kontratları, doğal dilde ifade ettiğimiz istekler oluşturuyor. Bunun için yapmak istediğimiz işleri belirli kalıplara sokan daha fazla araca ihtiyacımız […]

Holakratik Yönetimin Yaşayan Hali

Şirket yönetim kültürü olarak holakrasiyi benimsediğimizi daha önce paylaşmıştım. Bu yönetim modelinde doğrudan yöneticiler bulunmuyor. Şirket, canlı bir organizma gibi hücrelerden ve onları kapsayan çemberlerden oluşuyor. Klasik yönetim anlayışında yönetim kültürünü oturtmak için eli sopalı yöneticilere ihtiyaç duyarsınız. Günün sonunda yöneticiler neyin nasıl yapılacağına karar verir, çoğu zaman sorumluluk almadan çalışanları ellerindeki sopayla hizaya sokarlar. […]

Soru Cevap

Soru: Neden yapay zeka araçlarını kullanırız? Cevap: Bizim yerimize iş yaptırmak için. Soru: Ne zaman yapay zeka ajanlarını kullanırız? Cevap: Ortadan kaldırmak istediğimiz her türlü işi organize etmek ve yürütmek için. Soru: Ajanlara neyi devrederiz? Cevap: İşin nasıl yapılacağını ve uygulanmasını. Soru: Peki bize ne kalır? Cevap: Neyi, neden istediğimizi ve ortaya nasıl bir sonuç […]

Yapay Zeka İle Yemek Yapma Arasındaki İlişki

Hiç hamur işi yapıp fırına verdiyseniz iyi bilirsiniz. Arada bir fırının kapağından içeri bakıp hamurun nasıl kabardığını, şekil aldığını görmek çok zevklidir. İnsan emeklerinin karşılığını canlı canlı görür. İşte yapay zeka ile ürün geliştirmek de artık fırına yemek vermek gibi bir şey. En azından bana böyle hissettiriyor. Üstelik yemeği de artık kendiniz hazırlamıyorsunuz. Star Trek […]

Sektör Ne İsterse O Olur

Yapay zeka ile çalışan bir yazılımcıdan bütün ekibin işini yapmasını beklemenin doğru olmadığı fikri savunuluyor. Galiba siz sektörü tanımıyorsunuz! Eskiden fullstack developer diye bir rol vardı, hatırlarsınız belki. Neden böyle bir rol ortaya çıktı? Çünkü iki kişinin işini bir kişiye yaptırmak istediler. Üstelik o zaman yapay zeka falan da yoktu. Sektörün temel eğilimi hep aynıdır: […]

Nereden Nereye

Kurduğum setup içerisinde şu an tek darboğaz GPT. Oluşturduğum Software Factory bünyesinde, Loop Engineering yaklaşımıyla projelerin nasıl otonom bir şekilde geliştirildiğinden daha önce birçok kez bahsettim. Loop Engineering için GPT + Opus ikilisini kullanıyorum. İş bölümü oldukça net: Opus: Implementasyon ve kod geliştirme GPT: Analiz, mimari değerlendirme ve code review Opus Max 20x üyeliğiyle bu […]

Çocuk Oyuncağı

Gerçekler artık şu şekilde: Software Engineer ünvanı artık sadece yazılım geliştirme yetkinliğini ifade etmiyor. Bir Software Engineer’ın aşağıdaki rolleri de üstlenebilecek yetkinliğe sahip olması gerekiyor: – Requirements Engineer – Software Architect – Test / QA Engineer – Security Engineer – Release and Deployment Engineer – DevOps Engineer – Performance Engineer – Site Reliability Engineer (SRE) […]

Her Yazılımcı Artık bir Gereksinim Analizcisi

Yapay zeka sizi gereksinim analisti olmaya zorluyor. Zamanla gereksinimleri ne kadar net ifade etmeniz gerektiğini anlıyorsunuz, çünkü yapay zekanın ürettiği çıktılar her zaman beklentilerinizle örtüşmüyor. Bu noktada kendinize şu soruyu sormaya başlıyorsunuz: “Ben ne istediğimi nasıl daha iyi anlatabilirim?” Bu soru sizi daha detaylı, daha sistematik ve daha analitik düşünmeye zorluyor. Eskiden yazılımcıların gereksinim analizi […]

Her İstediğini Yapabiliyor Olmak

Yapay zeka araçları ile çok hızlı proje çıkarmak mümkün. Ancak bunun bir de karanlık tarafı var: Maymun iştahlılık! Bir girişimciyseniz, üstüne üstlük bir de yazılımcıysanız ve senior developer seviyesindeyseniz, yüzlerce yazılımcıdan oluşan bir ordunuz varmış gibi istediğiniz projeyi geliştirebiliyorsunuz. Lakin bu muazzam üretim kapasitesi beraberinde ciddi bir tehlike getiriyor. Bahsettiğim maymun iştahlılık ya bir ürüne […]

DevOps Rolünün Geleceği

Daha önce de bahsetmiştim. Ajanların parladığı tek alan kod yazmak değil. Canlı ortamların yönetimi için yapay zeka ajanları biçilmiş kaftan. DevOps süreçlerinin çok büyük bir bölümünü, hatta zamanla neredeyse tamamını ajanlara devretmek mümkün. Bu amaçla Agentic Operations Center (AOC) adını verdiğim bir altyapı kurgulamaya başladım. Bir uygulama düşünün. Bu uygulama bünyesinde aşağıdaki çalışma alanları tanımlı: […]

Gereksinim Analizi

Eskiden bir uygulamanın nasıl olması gerektiğini anlamak için gerçek anlamda bir araştırma yapmak, müşteriye detaylı sorular sormak, gereksinimleri çıkarmak, mockup ve prototipler hazırlamak, ardından mimariyi oluşturmak gerekiyordu. Simdi yapay zekaya istediğiniz şeyin bir resmini vermeniz bile yeterli olabiliyor. Detaylara haftalarca kafa patlatmadan, “Şöyle bir şey istiyorum” diyorsunuz ve kısa süre içinde çalışan bir karşılığını görebiliyorsunuz. […]

Vibe Coding ve Kalp Cerrahları

İşin vahametini göstermek için bir analoji aktarayım. Kalp cerrahlarını düşünün. Şimdi de herkesin yapay zeka aracılığıyla kalp ameliyatı yapabileceğine inandığını ve gerçekten ameliyat yapmaya başladığını düşünün. Yazılım geliştirmek, özellikle büyük ve kritik sistemlerde, her zaman açık kalp ameliyatı yapmak gibiydi. Bir cerrahin insan vücuduna müdahale edebilecek seviyeye gelmesi yıllar süren eğitim, gözetim ve pratik gerektirirken; […]