- "Vibe Engineering", yapay zeka kodlama araçlarını kullanan profesyonel bir geliştirme biçimi için yeni bir ad olup; hızlı, sorumsuz "vibe coding"den farklı olarak usta bir mühendisin LLM’lerden yararlanırken kod kalitesini ve sorumluluğu koruduğu bir yaklaşımı ifade eder
- Claude Code, OpenAI Codex CLI ve Gemini CLI gibi kodlama ajanlarının ortaya çıkmasıyla gerçek dünya projelerinde LLM kullanımı hızla arttı; bazı mühendisler birden fazla ajanı aynı anda çalıştırarak paralel iş yürütüyor
- LLM’leri etkili kullanmak için otomatik testler, önceden planlama, kapsamlı dokümantasyon, sürüm kontrolü, kod inceleme kültürü gibi zaten yerleşmiş üst düzey yazılım mühendisliği pratikleri gerekiyor
- Yapay zeka araçları mevcut uzmanlığı büyütme eğilimine sahiptir; kıdemli bir mühendisin sahip olduğu beceri ve deneyim arttıkça LLM kullanımıyla daha hızlı ve daha iyi sonuçlar alınabilir
- Bu terim, "vibe coding" ile net bir ayrım kurarak prodüksiyon yazılım geliştirme için daha zor ve daha rafine bir yapay zeka kullanım biçimi olduğunu vurgular; mühendislik ile "vibe"ın çelişkili birleşimi ise terimi daha akılda kalıcı kılar (yapay zeka araçları geliştikçe geliştirme süreçlerinin değişmesi ve uzmanlığın öneminin öne çıkması)
Vibe coding ile vibe mühendisliği arasındaki ayrım
- Vibe coding, yapay zekayla hızlı, gevşek ve sorumsuz bir yazılım geliştirme biçimidir; tamamen prompt odaklıdır ve kodun nasıl çalıştığına dikkat etmeyen bir yaklaşım izler
- Yelpazenin diğer ucunda ise LLM’lerle işini hızlandırırken ürettiği yazılımın sorumluluğunu güvenle üstlenen, yaptığı işle gurur duyan yetkin uzmanların yaklaşımı vardır; buna vibe mühendisliği adı verilir
- Oyuncak projeler değil gerçek projeler üzerinde bir yazılım mühendisi olarak LLM’lerle verimli çalışmanın sanıldığından daha zor olduğu pek bilinmeyen bir gerçektir; araçların nasıl kullanılacağını anlamakta ciddi bir derinlik gerekir ve kaçınılması gereken çok sayıda tuzak vardır
Kodlama ajanlarının yükselişi ve etkisi
- Şubat 2025’te çıkan Claude Code, Nisan’da çıkan OpenAI Codex CLI ve Haziran’da çıkan Gemini CLI gibi kodlama ajanı araçları, gerçek kodlama problemlerinde LLM’lerin faydasını dramatik biçimde artırdı
- Bu araçlar, belirtilen hedefe ulaşana kadar kodu tekrar tekrar düzenleyip aktif biçimde test ederek çalışır
- Deneyimli ve güvenilir yazılım mühendisleri, birden fazla ajanı aynı anda çalıştırarak çeşitli sorunları paralel biçimde ele alıyor ve iş kapsamını genişletiyor
- Yazar başlangıçta şüpheci olsa da bizzat paralel kodlama ajanları çalıştırdıktan sonra bunun zihinsel olarak yorucu ama şaşırtıcı derecede etkili olduğunu gördü
- tools.simonwillison.net koleksiyonunun büyük kısmı klasik vibe coding tarzında inşa edilmiş olsa da, kodlama ajanlarıyla iteratif şekilde çalışarak ileride bakım yapılabilecek prodüksiyon kalitesinde kod üretmek tamamen farklı bir süreç gibi hissettiriyor
LLM’lerin güçlendirdiği mevcut yazılım mühendisliği pratikleri
- Otomatik testler: Güçlü, kapsamlı ve istikrarlı bir test paketi varsa ajan tabanlı kodlama araçları hızlı çalışabilir; testler yoksa ajan gerçekte test etmeden çalıştığını iddia edebilir ya da yeni değişiklikler alakasız özellikleri bozabilir
- Önce test geliştirme, döngü içinde çalışan ajanlar için özellikle etkilidir
- Önceden planlama: Bir şeyi birlikte hızlıca ortaya çıkarmak için oturulduğunda üst düzey bir planla başlamak işleri çok daha iyi götürür; ajanlarla çalışırken bu daha da önem kazanır
- Önce planı yineleyip sonra kodu yazması için bunu ajana devredebilirsiniz
- Kapsamlı dokümantasyon: İnsan programcılar gibi LLM’ler de aynı anda kod tabanının yalnızca bir bölümünü bağlam içinde tutabilir; ilgili belgeler sağlanırsa başka alanlardaki API’leri önce kodu okumadan da kullanabilirler
- Önce iyi doküman yazılırsa model yalnızca bu girdiden yola çıkarak buna uyan bir implementasyon oluşturabilir
- İyi sürüm kontrol alışkanlıkları: Bir kodlama ajanı değişiklik yapmış olabileceğinde hataları geri almak ve bir şeyin ne zaman, nasıl değiştiğini anlamak daha da önemli hale gelir
- LLM’ler Git konusunda oldukça iyidir; hatanın kökenini izlemek için geçmişi doğrudan araştırabilir ve çoğu geliştiriciden daha iyi
git bisect kullanabilir
- Etkili otomasyon: Sürekli entegrasyon, otomatik biçimlendirme ve linting, önizleme ortamlarına sürekli dağıtım gibi uygulamalar ajan tabanlı kodlama araçlarına da yardımcı olur
- LLM’ler hızlı otomasyon script’leri yazmayı kolaylaştırarak bir işin bir sonraki sefer doğru ve tutarlı biçimde tekrarlanmasını sağlar
- Kod inceleme kültürü: Kod incelemesinde hızlı ve verimliyseniz LLM’lerle çalışırken çok daha iyi bir deneyim yaşarsınız
- Başkasının (veya başka bir şeyin) yazdığı şeyi gözden geçirmek yerine kodu kendiniz yazmak istiyorsanız bu size zor gelecektir
- Oldukça tuhaf bir yönetim tekniği biçimi: Kodlama ajanlarından iyi sonuç almak, insan işbirlikçilerden iyi sonuç almaya rahatsız edici ölçüde benzer
- Net talimatlar vermeli, gerekli bağlamı sağlamalı ve ortaya çıkan iş için uygulanabilir geri bildirim sunmalısınız
- Bunun gerçek insanlarla çalışmaktan çok daha kolay olmasının nedeni, onları kırma ya da heveslerini kaçırma endişesi taşımamanızdır; yine de mevcut yöneticilik deneyimi şaşırtıcı derecede işe yarar
- Gerçekten iyi manuel QA (kalite güvencesi): Otomatik testlerin yanında, uç durumları öngörüp derinlemesine kurcalamayı da içerecek şekilde yazılımı elle test etmede gerçekten iyi olmak gerekir
- Güçlü araştırma becerileri: Verilen bir kodlama problemini çözmenin onlarca yolu olabilir; en iyi seçeneği belirlemek ve yaklaşımı doğrulamak her zaman önemliydi, ajanı bırakıp gerçek kodu yazdırmadan önce de hâlâ bir engel olarak duruyor
- Önizleme ortamına dağıtım yapabilme yeteneği: Ajan bir özellik geliştirdiğinde, bunu güvenli biçimde önizleyebileceğiniz bir yönteminiz varsa (doğrudan prodüksiyona çıkmadan) inceleme çok daha verimli olur ve bozuk bir şeyi gönderme riski ciddi biçimde azalır
- Yapay zekaya outsource edilebilecek şeylerle elle yapılması gerekenleri ayırt etme içgüdüsü: Modeller ve araçlar daha etkili hale geldikçe bu da gelişmeye devam ediyor
- LLM’lerle etkili çalışmanın büyük bir kısmı, bunların en iyi ne zaman kullanılabileceğine dair güçlü bir sezgiyi korumaktır
- Güncellenmiş tahmin duygusu: Bir projenin ne kadar süreceğini tahmin etmek, her zaman kıdemli mühendis olmanın en zor ama en önemli yönlerinden biriydi; özellikle bütçe ve strateji kararlarının bu tahminlere dayandığı organizasyonlarda
- Yapay zeka destekli kodlama bunu daha da zorlaştırıyor; eskiden çok uzun süren şeyler artık çok daha hızlı olabiliyor, ancak tahminler artık hepimizin hâlâ anlamaya çalıştığı yeni etkenlere bağlı
Vibe mühendisliğinin özü ve önemi
- Bu yeni araçların yeteneklerinden gerçekten yararlanmak için oyunun en üst seviyesinde çalışmak gerekir ve buna şunlar dahildir:
- yalnızca kod yazmaktan sorumlu olmak değil,
- yaklaşım araştırması,
- üst düzey mimari kararlar,
- spesifikasyon yazımı,
- başarı kriterlerinin tanımlanması,
- ajan döngülerinin tasarlanması,
- QA planlaması,
- fırsat bulduğunda sizi kandırmaya çalışan tuhaf dijital stajyerlerden oluşan giderek büyüyen bir ekibi yönetmek,
- ve kod incelemeye ciddi zaman ayırmak
- Bunların neredeyse tamamı, zaten kıdemli yazılım mühendisinin ayırt edici özellikleridir
- Yapay zeka araçları mevcut uzmanlığı büyütür; yazılım mühendisi olarak ne kadar fazla beceri ve deneyime sahipseniz, LLM’ler ve kodlama ajanlarıyla çalışarak o kadar hızlı ve iyi sonuç alabilirsiniz
“Vibe engineering”, gerçekten mi?: terim seçimi üzerine
- "Vibe mühendisliği" adının aptalca olup olmadığı sorusuna: Muhtemelen öyle; yapay zekada "vibe" kavramı bu noktada biraz yıpranmış görünüyor ve "vibe coding" de birçok geliştirici tarafından küçümseyici bir ifadeyle kullanılıyor
- Ama ben, daha yapıcı bir şey için vibe’ı geri kazanmaya hazırım
- "Coder" ile "engineer" arasındaki yapay ayrıma hiçbir zaman sıcak bakmadım; bu bana hep biraz giriş engeli gibi geldi, ama bu durumda tam da ihtiyaç duyulan şey biraz giriş engeli
- Vibe mühendisliği, vibe coding ile net bir ayrım kuruyor ve bunun prodüksiyon yazılımı geliştirmek için yapay zeka araçlarıyla çalışmanın farklı, daha zor ve daha rafine bir yolu olduğunu işaret ediyor
- Bunun biraz küstah ve tartışmalı olma ihtimalini seviyorum; bu alanın tamamı zaten hâlâ çeşitli açılardan absürt
- Bu yeni araçları en verimli şekilde nasıl uygulayacağımızı çözmeye çalışırken kendimizi fazla ciddiye almamamız gerekir
- Geçmişte AI-assisted programming gibi terimleri yerleştirmeye çalıştım ama başarı neredeyse sıfır oldu; bu kez de vibe’ı biraz kurcalayıp ne olacağını görmek fena değil
- "Vibe" ile "engineering" arasındaki belirgin uyumsuzluğu gerçekten seviyorum; bu, birleşik ifadeyi oyuncu ve (umarım) akılda kalıcı bir şekilde kendi içinde çelişkili kılıyor
4 yorum
Kısa süre önce de buna "hangi kodlama?" gibi bir ad verip başarısız olunduğunu biliyorum; en uygun ifade sanırım yapay zeka ile pair programming.
"Bu adı ben buldum." diye iddia etmek için isim uydurma
Birileri buna artırılmış kodlama (Augmented Coding) demişti ama hızla ortadan kayboldu.
Hacker News görüşü
/yologibi bir slash komutu ekleyip pek rehberlik etmeden doğrudan çalıştırdığım oluyor.Anlamsız adlandırmalar uydurmak;