
Mon Aug 10 2026

Son aylarda ChatGPT, Copilot, Cursor gibi araçlarla kod yazmanın ne kadar hızlandığını hepimiz gördük 🚀
Ama neden hala “feature branch”ten “production”a giderken haftalar kaybediyoruz? ❓
Darboğaz kod yazmada değil, kodun yaşam döngüsünün geri kalanındadır 🎯
Ne oluyor burada?
Bu yazıda o geriye kalan kısım üzerinde duracağız ve nasıl kısaltabileceğimizi konuşacağız 🛠️
Hadi kısaca özetleyelim: AI araçları bazı işlerde harika bir hız kazandırıyor, ama diğerlerinde hâlâ bizim karar vermemiz gerekiyor. Günlük gözlemlerim ve takım arkadaşlarımla yaptığım sohbetlerden çıkardığım tablo şöyle:
| ⚡ AI ile Hızlanan İşler ( %50‑70 kazanç ) | 🐢 Hâlâ Yavaş Kalan / İnsan Gerekli İşler |
|---|---|
| Boilerplate / şablon kod oluşturma | Mimari karar verme (modül sınırları, teknoloji seçimi) |
| Unit test iskeleti yazma | Domain modeling & iş kuralı modelleme |
| Basit SQL sorguları / migration scriptleri | Legacy sistemlerle entegrasyon (eski API, shared DB) |
| Regex / string manipülasyonu | Güvenlik review (threat modeling, pen‑test) |
| Dokümantasyon taslağı (README, changelog) | Performans tuning (profiling, bottleneck analizi) |
| Basit UI bileşen iskeletleri | Ürün stratejisi & önceliklendirme (roadmap) |
Ben de Copilot ile 5 dakikada yazdırdığım bir micro‑service için 2 gün review bekledim.
Kod tamam, testler geçiyor ama mimari uygunluğu, güvenlik politikaları ve legacy veritabanı şemasıyla uyum konusunda hala insan onayı gerekiyordu. AI “yazdı”, ben “onayladım” (ve bazen “reddettim”).
Özetle: AI, kod yazma kısmını %50‑70 hızlandırıyor; mimari, güvenlik, performans ve legacy entegrasyon gibi stratejik noktalarda hâlâ bizim karar vermemiz gerekiyor. 🎯
Hazırsan bu kısım biraz acı olacak 😅 Çünkü asıl darboğaz kod yazmak değil, kod incelemek olmuş durumda.
Düşün: AI günde 1.000 satır kod üretiyor. Senin ekibin günde kaç satır gerçekten review edebiliyor? 200? 300? Belki de "LGTM" diyip geçtiğin 500 satır? İşte tam bu noktada kod inceleme süreci çöküyor.
| Metrik | Ne Oldu? |
|---|---|
| PR sayısı | 🚀 Arttı (daha küçük, daha sık commit'ler) |
| Ortalama PR boyutu | 📉 Küçüldü (AI küçük parçalar halinde üretir) |
| Time to first review | 📈 Uzadı (kimse ilk bakışı yapmak istemiyor) |
| Time to merge | 📈 Uzadı (review döngüleri artık günler sürüyor) |
Mühendislik liderleri bunu görmeli. Asimetriyi ölçmeden çözemezsiniz. "Kod üretiliyor, features gidiyor" demek yetmez — merge'e kadar geçen sürenin nerde harcandığını bilmek lazım.
Terminalde şu komutu çalıştır, kendi ekibinin verisini gör:
gh pr list --limit 100 --json createdAt,mergedAt,additions,deletions,reviews \
--jq '.[] | select(.mergedAt != null) | {
createdAt: .createdAt,
mergedAt: .mergedAt,
additions: .additions,
deletions: .deletions,
reviewCount: (.reviews | length),
timeToFirstReviewHours: (
(.reviews | map(.submittedAt) | min) as $first |
if $first then (($first | fromdateiso8601) - (.createdAt | fromdateiso8601)) / 3600 else null end
),
timeToMergeHours: (
((.mergedAt | fromdateiso8601) - (.createdAt | fromdateiso8601)) / 3600
)
}'
Bu komut ne yapıyor? 🤔
jq ile CSV'ye çevirip Excel/Notion'a atarsınÖzetle: Kod yazma hızı arttı, kod inceleme süreci ise hâlâ insan hızında. Bu farkı yönetmezsen, "hızlı geliştirdik" diye kutlarken production'a giden bug sayısı artar. Lider isen bu metrikleri CTO'na, VP'ye, kendine sun — "Görüyor musun? Darboğaz burası." 🎯
AI bir fonksiyon yazabilir, hatta unit test'lerini de üretebilir. Ama şu soruları cevaplayamaz:
Test piramidinin alt seviyelerini (unit) AI yazabilir. Ama integration/e2e test stratejisi, test veri yönetimi, contract testing... bunlar hâlâ insan kalıyor. 👨💻
| Alan | AI Ne Yapabilir? | Neden İnsan Gerekir? |
|---|---|---|
| Unit test | ✅ Kod üretir, mock'lar kurar | — |
| Integration test | ⚠️ Basit senaryolar yazar | Gerçek bağımlılıklar (DB, cache, 3rd party API) için test veri stratejisi lazım |
| E2E / Contract | ❌ Çok zayıf | Consumer-driven contract, schema evolution, environment parity kararları mühendislik deneyimi ister |
| Flaky test temizliği | ❌ Görmez | Pattern tanıma, root cause analizi, test quarantine stratejisi |
| Deploy stratejisi | ❌ Şablon verir | Blue-green, canary, rollback kararları trafik profiline, SLA'ya, risk toleransına göre alınır |
AI ürettiği pipeline şuna benzer:
# .github/workflows/ci.yml
name: CI Pipeline
on:
push:
branches: [main, develop]
pull_request:
jobs:
unit-tests:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Node
uses: actions/setup-node@v4
with:
node-version: '20'
- run: npm ci
- run: npm run test:unit # ✅ AI bunu yazdı, hızlı çalışır
integration-tests:
needs: unit-tests
runs-on: ubuntu-latest
# ⛔️ BURASI KRİTİK: AI "environment parity" sağlayamaz
# Staging DB'sine, Kafka'ya, Redis'e nasıl bağlanacak?
# Test verisini kim hazırlayacak? Cleanup nasıl olacak?
steps:
- uses: actions/checkout@v4
- name: Run integration tests
run: npm run test:integration
env:
DATABASE_URL: ${{ secrets.STAGING_DB_URL }} # 🔐 Secret yönetimi insan işi
# 🛑 Manuel onay — AI bunu "neden?" diye sormaz, sadece ekler
deploy-staging:
needs: integration-tests
runs-on: ubuntu-latest
environment: staging
steps:
- run: echo "Deploy to staging..."
# Production'a geçişte **insan onayı** — risk kabulü mühendislik kararı
deploy-production:
needs: deploy-staging
runs-on: ubuntu-latest
environment: production
steps:
- run: echo "Blue-green deploy başlatılıyor..."
- name: Manual approval gate
uses: trstringer/manual-approval@v1
with:
secret: ${{ github.token }}
approvers: tech-leads,platform-team
- run: echo "Trafik yeni versiyona yönlendiriliyor..."
Bu sayede ne oluyor?
Verimlilik kod yazmada değil, güvenle teslim etmede.
AI size kod üretir. Ama:
Bu soruların cevabı kod değil, süreç. Ve süreç insan deneyimi ister. 👥
| AI'ye Ver | Beklenti | Gerçeklik |
|---|---|---|
| "Unit test yaz" | ✅ Geçer | ✅ Geçer |
| "Integration test yaz" | ⚠️ Çalışır | ❌ Mock'lar dışında bağlanamaz |
| "Flaky test düzelt" | ❌ Düzeltemez | ❌ Root cause bulamaz |
| "Pipeline optimize et" | ⚠️ Paralelleştirir | ❌ Environment parity, secret management, approval gate'leri kaçırır |
Özetle: AI test kodu yazar. Test stratejisi, veri yönetimi, deploy güvenliği sizin mühendisliğiniz. 🎓
Hazırsan bir sonraki bölümde "Güvenilirlik Mühendisliği: AI SLA Yazamaz, Siz Yazarsınız" konusuna geçelim. 🚀
AI, "nasıl yapılır?" sorusuna mükemmel cevaplar veriyor.
Ama "neden yapılır?", "ne maliyeti var?" ve "uzun vadede ne olur?" sorularını sormuyor.
Bu soruların cevabı hala mühendislerin masasında. 🎯
Bu konular kod yazmaktan daha uzun süren karar alma süreçleri yaratıyor — yani SDLC darboğazları şimdi "kod" değil, "karar" noktasında. 🔁
| Alan | AI Ne Yapar? | Mühendis Ne Yapmalı? |
|---|---|---|
| Kod üretimi | Local optimum’a odaklanır (ör. en hızlı sort) | Global sistem sağlığını görür (ör. cache, observability) |
| Pattern önerisi | Popüler pattern’leri tekrar eder | Trade-off’ları tartışır, context’e göre karar verir |
| Test yazımı | Happy path’i kapsar | Edge case, chaos, contract test’leri ekler |
Özetle: AI danışman, sen patron. 🛠
Aşağıdaki markdown dosyasını projenizin docs/adr/ klasörüne atabilirsiniz. Her önemli karar için bir kopya oluşturun, doldurun, commit’leyin.
# ADR-001: Kimlik Doğrulama İçin JWT Kullanımı
## Status
Proposed / Accepted / Superseded / Deprecated
## Context
- Mevcut session‑based auth, mikro servisler arası paylaşılamıyor.
- Stateless ölçeklenebilirlik gerekiyor.
- Güvenlik ekibi token tabanlı yaklaşımları önerdi.
## Decision
- JWT (RS256) ile access token, short‑lived (15 dk).
- Refresh token rotation + revocation list.
- Public key JWKS endpoint üzerinden dağıtılacak.
## Consequences
### Pozitif
- Servisler arası bağımsız doğrulama ✅
- Horizontal scaling kolaylaştı ✅
### Negatif / Riskler
- Token boyutu header’a sığmayabilir (mitigation: claim minimization) ⚠️
- Key rotation operasyonel yük getirir ⚠️
- Replay attack riski → `jti` + short expiry ile azaltılacak 🔐
Bu şablonu kopyalayıp her karar için doldurursanız, gelecekte "Neden bunu yaptık?" sorusuna saniyeler içinde cevap bulursunuz. 📚
AI size hız kazandırır, mimari sağlığı sizin elinizde. 🚀
Hazırsan başlayalım 🚀
Eski metrikler — LOC, commit sayısı, velocity — artık bize “ne kadar kod yazdık?” sorusuna cevap veriyor. Ama bizim asıl soru şu: “Müşteriye ne kadar değer ulaştırdık?” 🎁
Bu dört metrik, akışın sağlığını ölçer. Hız değil, kesintisiz değer akışı odaklı.
| Metrik | Ne anlar? | Neden önemli? |
|---|---|---|
| PR Review Depth | Her PR’da kaç dosya/line incelendi? | Derinlemesine review = daha az rework |
| Time to First Review | İlk review ne zaman geldi? | Gecikme = bottleneck |
| Rework Ratio | Yeniden yazılan kod / toplam kod | Yüksek oran = planlama/yazım sorunu |
Samimi uyarı ❗️
Eğer hala “Bu sprintte kaç story point bitirdik?” diye soruyorsan, yanlış yarışta koşuyorsun. 🎯
Liderlerin bakması gereken panel artık “Velocity” değil, “Value Delivery” olmalı. Aşağıda Datadog / Grafana için hazır bir JSON örneği var. Kopyala, yapıştır, metriklerinizi eşleştir 👇
{
"title": "DORA Metrics Overview",
"type": "timeseries",
"layout": {
"x": 0,
"y": 0,
"width": 12,
"height": 6
},
"queries": [
{
"query": "avg:ci.change_lead_time{env:prod}",
"name": "Change Lead Time (hours)",
"aggregator": "avg"
},
{
"query": "sum:ci.deployment_count{env:prod}.as_count()",
"name": "Deployment Frequency (per day)",
"aggregator": "sum"
},
{
"query": "avg:ci.change_failure_rate{env:prod}",
"name": "Change Failure Rate (%)",
"aggregator": "avg"
},
{
"query": "avg:ci.mttr{env:prod}",
"name": "MTTR (minutes)",
"aggregator": "avg"
}
],
"widget_options": {
"legend": { "show": true, "position": "bottom" },
"yaxis": { "label": "Value", "scale": "linear" },
"title": { "show": true, "text": "DORA Metrics – Value Delivery Health" }
}
}
Bu sayede ne oluyor?
Özetle:
Dashboard’ınızı bu metriklerle yenileyin, ekibinizle “Neyi ölçüyoruz?” konuşun. Sonra “Nasıl iyileştiririz?” diye plan yapın. ✅
Hazırsan bu değişikliği ekibinize nasıl yaşatacağınızı adım adım planlayalım. Ben kendi ekibimde bu yöntemleri uyguladığında review süresi %40 düştü, kalite ise arttı 🚀
Bu şablonu repo'nuzun .github/PULL_REQUEST_TEMPLATE.md dosyasına ekleyin. AI üretilen kod gelince revieweren zihinsel yük binen bu listeyi sadece işaretler.
## PR Review Checklist for AI-Generated Code
- [ ] **Güvenlik** (SQL injection, XSS, auth bypass)
- [ ] **Performans** (N+1 query, gereksiz loop, büyük payload)
- [ ] **Mimari** (Layer violation, circular dependency, SRP ihlali)
- [ ] **Test Coverage** (> %80, edge case var mı?)
- [ ] **Dokümantasyon** güncellendi (README, ADR, inline comment)
Ne oluyor burada?
Checklist sayesinde herkes aynı kriterlere bakar, "unutuldular" yok. AI kodunda sık görülen hatalar önce listelenir, sonra aranır.
| Metrik | Hedef | Bu Hafta |
|---|---|---|
| Ortalama review süresi | < 4 saat | 3.2 saat |
| PR başına defect sayısı | < 0.5 | 0.3 |
| Stacked PR oranı | > %60 | %65 |
| Checklist tamamlama | %100 | %98 |
Nasıl çalışıyor?
Sayılar konuşur, "hissetmek" yerine görmek sağlarsınız. Düşen trendleri kutlayın, yükselenleri aksiyon alın.
Özetle: Quota → Stacked PR → Checklist → Test Stratejisi → Office Hours → Metrik.
Bu altı adımı sırayla devreye sokarsanız, AI akışı kaos değil, kontrollü bir akım haline gelir. Ben denedim, işe yaradı — siz de deneyin, sonuçları paylaşalım 🤝
Ben E-takip ekibinin teknik lideriyim. Yıl başında AI destekli kod üretim araçlarını devreye soktuk; kod yazma hızı %40 arttı ama merge süresi 3 günden 5 güne fırladı 📈. Kod review kuyruğu tıkanınca mühendisler "bekleme süresi canımı sıkıyor" diye şikâyetçi oldu. Metrikleri açtığımda durum netleşti: change failure rate %15, ortalama merge 5 gün, mühendis memnuniyeti düşük ❗️.
"Başlangıçta direnç gördük, ama ilk hafta sonunda review quota sayesinde kuyruk %30 küçüldü."
Mühendisler "artık neyi review edeceğimi biliyorum" dedi. Merge süresi 4.5 güne düştü, failure rate %13'e indi.
Hafta,Ortalama Merge Süresi (gün),PR Sayısı,Change Failure Rate (%)
1,4.5,32,13
2,3.8,35,11
3,3.0,38,9
4,2.4,40,7
5,1.8,42,6
6,1.5,44,5
Bu sayede ne oluyor?
Sonuç: 6 hafta, 3 basit kural ve şeffaf veri ile hız ve kalite ikisini de kazandık. Siz de ekibinizde benzer bir tıkanma yaşıyorsanız, stacked PR + review quota + hafif test stratejisi kombinasyonunu deneyin — farkı ilk haftadan hissedeceksiniz 🚀.
AI artık kod yazma hızınızı katladı — ama bu, sizin mühendislik sorumluluğunuzun yerini almaz. 🎩
Ne yapmalıyız?
Kod yazmak artisanlık (ustalık), mühendislik ise sistem düşüncesi.
AI artisanlığı hızlandırır; mühendisliği ise siz yöneteceksiniz. 🚀
Siz ne düşünüyorsunuz?
Deneyimlerinizi, bulduğunuz zorlukları ya da başarılı pratikleri yorumlarda paylaşın — birbirimizden öğrenelim! 💬✨
Bu içerik tamamen yapay zeka destekli otomasyon sistemi ile üretilmiştir.
All rights reserved