smaple.tr
teknik borç

MVP'den Ürüne Geçişte Teknik Borç Yönetimi: Refactoring Stratejileri

Mehmet Kurtipek
January 10, 2026
9 min read
teknik borç
refactoring
kod kalitesi
mvp
SonarQube
yazılım mühendisliği

Teknik Borç Nedir ve Neden Önemlidir?

MVP geliştirme modeli hızlı pazara çıkış sağlar, ancak sıklıkla teknik borç oluşturur. Smart Maple olarak, 50'den fazla startup ile çalışırken gördük ki MVP teknik borç yönetimi proaktif bir disiplin gerektiriyor—yoksa geliştirme hızı her ay yüzde 15-25 arasında düşebiliyor. Teknik borç kavramı, türleri ve iş perspektifli yönetim stratejileri için Teknik Borç Yönetimi Strateji rehberimize bakın.

Bu rehber, MVP'den ürüne geçişte karşılaşılan somut borç kalemlerini tespit etmeye, önceliklendirmeye ve kod seviyesinde çözmeye odaklanır.

Kod Kalitesi Ölçütleri: Neyi İzlemeliyiz?

Ölçülemeyen şey yönetilemez. Bu metrikleri haftalık takip etmelisiniz:

Metrik İyi Durum MVP Ortalaması Kötü Durum
Code Coverage (%) 80+ 15-40 < 10
Cyclomatic Complexity < 5 8-15 > 20
Code Duplication (%) < 3 5-15 > 20
Bağımlılık Freshness (%) 95+ 60-80 < 40
Security Hotspots 0 5-20 > 50
Maintainability Index > 85 40-60 < 30

SonarQube gibi otomatik analiz araçları, bu metrikleri sizin adınıza takip eder. Araç, kod taraması yaparak hangi fonksiyonların karmaşık olduğunu, test kapsamının düşük olduğunu ve potansiyel güvenlik risklerinin nerede bulunduğunu gösterir. GitHub Actions gibi otomatik pipeline'lar, her pull request'te bu analizi çalıştırarak standartları zorunlu hale getirir.

Borç Envanter Matrisi: Önceliklendirme Yöntemi

Her borç için Etki (1-10), Çaba (1-10) ve Risk (1-10) değerlerini belirleyin. Formül: (Etki + Risk) / Çaba size öncelik puanı verir. Yüksek puan = erken ele alınması gereken borç.

# Borç Tanımı Etki Çaba Risk Öncelik Takvim
1 Hardcoded secrets (7 yer) 10 4 10 5.0 Hafta 1
2 MongoDB indexes eksik 9 3 7 5.3 Hafta 1
3 Authentication tests yok 9 6 8 2.8 Hafta 1-2
4 React bileşenleri >500 lines 8 4 5 3.2 Hafta 2-3
5 PostgreSQL migration scripts yok 8 9 7 1.8 Hafta 3-4
6 API dokumentasyonu eksik 6 3 4 3.3 Hafta 2
7 Node.js v14'ten 20'ye upgrade 7 8 6 1.6 Hafta 3-4
8 Error handling inconsistent 6 5 5 2.2 Hafta 2
9 Package.json'da 40+ outdated 5 7 6 1.6 Hafta 3
10 UI state management spaghetti 7 10 4 1.1 Hafta 4-5

Kritik borçlar (özellikle güvenlik açıkları) hemen ele alınmalıdır. Yüksek etki ve risk ama düşük çaba olanlar (hardcoded secrets, missing indexes) ilk seçilecekler. Düşük çaba, yüksek çaba gerektiren mimari borçlar ise daha sonraya bırakılabilir.

Refactoring Stratejileri: Beş Temel Yaklaşım

Kodunuzu güvenli bir şekilde iyileştirmek için belli başlı yöntemler vardır. Bu yöntemler, sistemi çalışır durumda tutarken değişiklik yapmanıza olanak sağlar.

Strangler Fig Yöntemi monolitik sistemleri parça parça modernize etmektir. Eski sistem çalışırken, yeni microservice'ler yanında oluşturulur. Gelen istekler önce yeni servise yönlendirilmeye çalışılır; başarısız olursa eski sisteme geri dönülür. Bu şekilde sıfır kesinti ile geçiş yapılır.

Branch by Abstraction eski ve yeni kodları paralelinde çalıştırır. Örneğin React state management'ı Redux'tan Zustand'a taşımak istiyorsanız, her iki sistemi de destekleyen bir ara katman oluşturursunuz. Feature flag (çevre değişkeni) ile hangisi kullanılacağı kontrol edilir. Bu, A/B test ve performans karşılaştırmasına izin verir.

Feature Toggle Yöntemi yeni kodu prodüksiyonda hazırda tutup kontrol altında tutmaktır. MongoDB'den PostgreSQL'e geçişte, her iki veritabanına da yazabilirsiniz (dual-write). Okuma işlemlerini önce PostgreSQL'den denersiniz; başarısız olursa MongoDB'ye geri dönülür. Güven arttıkça PostgreSQL'e geçiş tamamlanır. Bu haftalarca süren güvenli bir geçişi mümkün kılar.

Veritabanı Migrasyonu dikkat gerektirir. Yeni şema parallel olarak oluşturulur. Trigger'lar ile yeni şemaya da veri yazılır. Backfill yapılarak mevcut veriler kopyalanır ve bir validation check yapılır. Son olarak eski tablo yenisi ile değiştirilir. Ardından eski tablo silinir.

API Versioning eski ve yeni API'yi beraber sunmaktır. Eski API'nin 6 ay daha support edileceği belirtilir (Deprecation ve Sunset headers). Müşteriler yeni version'a geçiş için zaman bulurlar.

Sprint Planı: 8 Haftalık Refactoring Takvimi

Tavsiyemiz: Her sprint'in 20% kapasitesi teknik borça ayırın. Bu, feature development'ı durdurmazken borçları sistematik biçimde ödersiniz.

Hafta 1-2: Kritik Güvenlik Borçları Hardcoded secrets bulunup AWS Secrets Manager'a taşınır (2 gün). SQL injection riski taranır (1 gün). npm audit çalıştırılarak kritik/yüksek güvenlik açıkları düzeltilir (2 gün). Authentication testleri yazılarak coverage 0%'den 80%'ye çıkarılır (3 gün). Sonuç: Security hotspots 7'den 1'e iner.

Hafta 3-4: Kod Kalitesi Refactoring 400+ satırlı React bileşenleri daha küçük parçalara bölünür (3 gün). API endpoint'leri OpenAPI 3.0 standartında dokumente edilir (2 gün). Error handling standardize edilir (2 gün). Karmaşıklığı 10'un üzerinde olan fonksiyonlar refactor edilir (2 gün). Sonuç: Maintainability Index 45'ten 70'e çıkar.

Hafta 5-6: Node.js Upgrade ve Bağımlılık Yönetimi Node.js v14'ten v20'ye geçiş yapılır (2 gün). npm paketleri gözden geçirilerek güncellenir (2 gün). Bağımlılık konflikfleri çözülür (1 gün). npm audit başarıyla tamamlanır (1 gün). E2E testler çalıştırılır (1 gün). Sonuç: Bağımlılık freshness 65%'ten 95%'e çıkar.

Hafta 7-8: Veritabanı Optimizasyonu ve Belgeler PostgreSQL eksik indexler eklenir (1 gün). MongoDB migration script'leri yazılır (2 gün). Veritabanı schema'sı belgelenir (1 gün). Integration testleri yazılır (2 gün). Deployment ve troubleshooting playbook oluşturulur (1 gün). Sonuç: Query yanıt süresi 400ms'den 80ms'ye düşer.

Kanban board yapısı şu kolonnalardan oluşur: TODO, IN PROGRESS, CODE REVIEW, TESTING, DONE. Kurallar: Hiç kimse aynı anda 2'den fazla task'ta çalışmaz. Pull request'ler 24 saat içinde review edilir. Test geçmeyen kod DONE olmuyor.

Otomatik Kalite Kapıları: Araç Entegrasyonu

Pre-commit hook'lar, her commit öncesi kodu otomatik olarak kontrol eder. Linting (kod stiline uyum), prettier (biçimlendirme) ve TypeScript type checking çalıştırılır. Sorun bulunursa commit engellenir.

GitHub Actions ile pull request'ler CI pipeline'dan geçer. ESLint, type checking, unit testler ve SonarQube analizi otomatik çalışır. SonarQube quality gate (kalite standard'ı) başarısızsa merge yapılamaz. Test coverage raporu pull request'te yorum olarak görülür.

PR review kontrol listesi: coverage düştü mü, yeni dependencies eklendi mi, cyclomatic complexity 10'un altında mı, duplication 3%'ün altında mı, güvenlik açığı taraması temiz mi, TypeScript hataları var mı, critical path'lerde unit test var mı, API documentation güncel mi, error handling consistent mi, performance regression test var mı?

Maliyet Analizi: Refactoring'in ROI'si

Borç ödenmemesi durumunda yapılan zaman kaybının maliyeti yüksektir. Kötü kod kalitesi olan 6 geliştirici takımda, her feature için eski kodu anlamaya 3 saat harcayıp, haftalık 2 gün bug fix yapıp, manuel test sırasında ek zaman kaybı yaşarsa ve production incidents'lar meydana gelirse aylık verimsizlik maliyeti ciddi rakamlar eder.

Tahmini aylık maliyet: $21,000 maaş + $5,250 verimsizlik overhead + $2,400 acil bug fix'ler + $3,000 production incidents = $31,650.

Yılda bu borç ödenmezse: $127,800 kayıp.

8 haftalık refactoring projesi yaklaşık $8,290 maliyet eder. Ancak 3-6. aylar arasında geliştirme hızı %30 artar, bug rate %40 azalır, deployment frequency 2x/haftadan 4x/haftaya çıkar. Aylık tasarruf başlayınca bu sayı çabucak telafi edilir.

Break-even zamanı yaklaşık 4-5 aydır. Yani 8 haftalık refactoring, 5 ay içinde kendini amorti eder ve birinci yılda $43,000+ tasarruf sağlar.

Smart Maple Teknik Borç Audit Süreci

Smart Maple client codebase'lerinde teknik borç audit yaparken şu 5-adım metodoloji kullanır:

Adım 1: Statik Kod Analizi (2-3 gün) — SonarQube ve özel ESLint kuralları ile tüm kod taranır. Max line limit, nested callback limit, cyclomatic complexity, unused variables ve güvenlik kuralları belirlenir. Sonuç: Code quality dashboard ve severity heatmap.

Adım 2: Bağımlılık Analizi (1-2 gün) — npm audit, Snyk ve depcheck ile güvenlik açıkları ve outdated paketler tespit edilir. Sonuç: Security vulnerabilities ve technical debt impact raporu.

Adım 3: Performans Profiling (2-3 gün) — Lighthouse ile web performance, Node.js profiling ile sunucu performansı ve veritabanı query'leri EXPLAIN ANALYZE ile analiz edilir. Sonuç: Performance bottleneck ve optimization opportunities.

Adım 4: Dokümantasyon & Test Kapsamı Denetimi (1-2 gün) — Test coverage, API documentation completeness ve code comment density kontrol edilir. Kontrol listesi: API endpoint'lerin %100'ü documented mi, unit test coverage >70% mi, integration test >50% mi, critical path'ler E2E test'leri mi, README ve deployment guide var mı?

Adım 5: Risk Matrisi & Eylem Planı (1 gün) — Tüm bulgular bir template'e yerleştirilir. Her risk için severity, effort ve days-to-fix belirlenir. Deliverable: 15-20 sayfalık audit raporu ve 3-6 aylık refactoring roadmap.

Sıkça Sorulan Sorular

Teknik borç ne kadar "normale"? Yeni MVP için %20-30 code coverage, %10-15 duplication normal ve kabul edilebilir. Ama 6 ay sonra bu sayılar iyileşmeli. 1 yıl sonra hala düşükse, refactoring planlanmamış demektir.

Tüm borcu bir seferde ödemelisiniz mi? Hayır. Öncelik: (1) Güvenlik, (2) Production incidents'ı etkileyen performans, (3) Developer productivity'yi etkileyen maintainability, (4) Stil/convention sorunları.

Teknik borç yönetimini kim denetler? CTO/Engineering Lead stratejik borçu, Tech Lead taktik refactoring'i, QA test coverage'ı, DevOps bağımlılık/security updates'i takip eder.

Feature development'ı durdurmalı mıyız? Hayır. Sabit bir kapasite (%20) teknik borça ayırırken, %80'i feature'lara harcayın.

Başarısızlık sinyalleri neler? Unit test coverage 6 ayda 50%'den 30%'e düştü, deploy frequency 2x/haftadan 1x/ayda düştü, MTTR 2 saatten 8 saate çıktı, "legacy code" mühendisler arasında yaygın hale geldi, new hire onboarding 2 haftadan 8 haftaya çıktı.

Refactoring sırasında bug riski ne? Coverage >70% ve feature toggle kullanıyorsanız, regression riski <%1. Ama coverage <30% ise, risk %20+. Önce test yazarsınız.

Hangi metrikler en önemli? Sırasıyla: (1) Code coverage, (2) Cyclomatic complexity, (3) Security vulnerabilities, (4) Dependency freshness, (5) Deployment frequency.

Teknik borç veritabanında nasıl takip edilir? Jira/Linear/GitHub Projects'te Epic açarsınız. Her Epic altında Story'ler, her Story altında Task'lar. Teknik Borç Epic'i altında: Security audit Story'si (Hardcoded secrets taraması, npm audit, SSL/TLS check), React components refactoring Story'si, Database indexing Story'si.

Sonuç: Disiplinin Gücü

MVP'den ürüne geçiş heyecan vericidir, ancak teknik borç kaçınılmazdır. Smart Maple'ın başlıca mesajları şunlardır:

Borç ölçülebilir olmalıdır. SonarQube, Jest coverage, npm audit ile takip edin. Borç önceliklendirilebilir olmalıdır. Etki-Çaba-Risk matrisleri kullanın. Borç ödenmesi planlı olmalıdır. 20% capacity allocation, 8 haftalık sprintler ile yapın. Borç ödeme kendini amorti eder. 5-6 ay içinde ROI pozitif. Borç yönetimi takımın sorumluluğudur. CTO, TechLead, QA, DevOps ortaklaşa çalışır.

MVP'nin başarısı sadece feature'larda değil, kalitede gizlidir. Refactoring'i ihmal eden başlangıç şirketleri, 18 ayda "legacy code" sorunuyla boğuşurlar. Ama disiplinli borç yönetimi yapanlar, 3 yıl sonra 10x daha hızlı iterasyon yapabilirler.


Teknik borç audit'i planlıyor musunuz? Smart Maple'ın React Native, Flutter, Node.js ve Python uzmanlarından gelen danışmanlık hizmeti sizin startup'ınızı yüksek kalitede ölçeklemek için tasarlanmıştır. Daha fazla bilgi için smart-maple.com adresini ziyaret edin.

Related Articles

August 10, 2026

MLOps Rehberi: Makine Öğrenmesi Modellerini Production'a Taşıma

Giriş: MLOps Nedir ve Neden Önemlidir? Makine öğrenmesi modelleri geliştirmek günümüzde nispeten kolaydır. Açık kaynak kütüphaneleri kullanarak son derece başarılı modeller oluşturabiliriz. Ancak bu modelleri production ortamına taşıyarak, ölçeklendirebilir, güvenilir ve sürdürülebilir şekilde çalıştırmak tamamen farklı bir hikayedir. Araştırmalara göre, veri bilimcileri tarafından geliştirilen makine öğrenmesi modellerinin %87'si hiçbir zaman production ortamına ulaşmaz. Bu başarısızlı

Read More
August 9, 2026

LLM Fine-Tuning ve Özel Model Eğitimi Rehberi [2026]

LLM Fine-Tuning: Kurumsal Yapay Zeka Stratejisinin Temel Taşı Büyük dil modelleri (LLM), genel amaçlı metin üretimi ve anlama konusunda etkileyici performans sergiliyor. Ancak kurumsal ortamlarda belirli bir alan, terminoloji veya iş sürecine uyum sağlamaları gerektiğinde, genel bilgileri çoğu zaman yetersiz kalıyor. Bu noktada fine-tuning, yani ince ayar süreci devreye giriyor. Fine-tuning sayesinde mevcut bir temel modeli, kendi verileriniz ve ihtiyaçlarınız doğrultusunda özelleştirmek

Read More
August 8, 2026

Bilgisayarlı Görü Uygulamaları: Nesne Tespiti, OCR ve Endüstriyel AI

Bilgisayarlı Görü Uygulamaları: Endüstriyel ve Medikal AI'nin Temel Teknolojisi Bilgisayarlı görü, makine öğrenmesinin en etkili alanlarından biridir. Türkiye'de yaşanan dijital dönüşüm sürecinde, özellikle üretim, sağlık ve lojistik sektörlerinde görü tabanlı otomasyon kritik hale gelmiştir. Smart Maple olarak Ankara'da geliştirdiğimiz çözümler, son beş yılda 150+ kuruluşunun üretim verimliliğini ortalama %35 oranında artırmıştır. Bu rehberde, bilgisayarlı görü teknolojisinin iş değeri

Read More