Mobil uygulamada teknik borç, bir uygulamanın ilk sürümde hızlı çıkması için ertelenen teknik kararların zamanla bakım maliyeti, hata oranı ve geliştirme hızına zarar vermesidir. İlk bakışta “şimdilik böyle kalsın” denilen küçük kararlar, altı ay sonra yeni özellik eklemeyi zorlaştıran bir mimari probleme dönüşebilir.
Örneğin bir restoran sipariş uygulamasında kampanya sistemi ilk etapta yalnızca “yüzde indirim” mantığıyla kodlanırsa, ileride “2 al 1 öde”, “sadece belirli şubede geçerli kupon”, “saat bazlı indirim” gibi ihtiyaçlar geldiğinde her ekleme eski kodu yamamaya dönüşebilir. Bu teknik borçtur; çünkü ürün çalışıyor görünür ama değişime direnç göstermeye başlar.
Atalay Tech’in mobil uygulama geliştirme projelerinde teknik borç, yalnızca kod kalitesi meselesi olarak ele alınmaz. Ürün kapsamı, API tasarımı, tasarım sistemi, test stratejisi, yayın süreci ve teslim sonrası bakım birlikte değerlendirilir. Çünkü mobil uygulamada teknik borç genellikle tek bir kötü kod satırından değil, plansız kararların birikmesinden doğar.
Mobil uygulama pazarında hız baskısı yüksektir. Data.ai’nin mobil pazar raporlarında kullanıcıların uygulama kullanımı, harcama alışkanlıkları ve indirme davranışları düzenli olarak izlenir; bu da mobil ürünlerin sürekli güncelleme, iyileştirme ve optimizasyon gerektirdiğini gösterir: data.ai State of Mobile. Google da Android uygulamalarında performans, kararlılık, pil tüketimi ve kullanıcı deneyimi gibi teknik kalite sinyallerinin takip edilmesini önerir: Android Developers - App quality.
Teknik Borç Nedir ve Mobil Uygulamada Neden Daha Hızlı Büyür?
Teknik borç, yazılımda bugün hız kazanmak için alınan kararların ileride faizli maliyet üretmesidir. Bu faiz; daha uzun geliştirme süresi, daha fazla bug, daha yüksek bakım bütçesi, daha riskli yayın süreci ve daha düşük kullanıcı memnuniyeti olarak geri döner.
Mobil uygulamalarda teknik borç web projelerine göre daha hızlı hissedilir. Çünkü kullanıcı cihazları farklıdır, işletim sistemi sürümleri değişir, App Store ve Google Play kuralları güncellenir, push bildirimleri, kamera, konum, ödeme, abonelik ve arka plan servisleri gibi platforma bağlı özellikler kırılgan olabilir.
Bir e-ticaret mobil uygulamasında sepet modülü aceleyle geliştirildiğinde ilk sürüm sorunsuz çalışabilir. Fakat ileride çoklu satıcı, kupon, kargo entegrasyonu, stok rezervasyonu ve iade akışı eklendiğinde eski sepet mimarisi yeni ihtiyaçları taşıyamaz. Uygulama hâlâ mağazada yayındadır ama her sprintte ekip aynı kod parçalarını düzeltmek zorunda kalır.
Teknik borç her zaman kötü değildir. MVP aşamasında bazı kararları bilinçli şekilde ertelemek doğaldır. Problem, borcun kayda alınmaması, önceliklendirilmemesi ve bakım planına dahil edilmemesidir.
Mobil Uygulamada Teknik Borcun En Yaygın Nedenleri
Teknik borç genellikle “kötü yazılımcı” problemi değildir. Çoğu zaman ürün, bütçe, zaman ve teknik kapsamın aynı masada doğru yönetilmemesinden kaynaklanır.
| Teknik borç nedeni | Mobil uygulamadaki tipik örnek | İlerideki etkisi |
|---|
| Acele MVP teslimi | Login, profil ve ödeme modüllerinin test senaryosu olmadan yayına alınması | Her yeni sürümde regresyon hatası |
| Zayıf API tasarımı | Mobil ekranların backend response formatına bağımlı yazılması | Backend değişince mobil uygulamanın kırılması |
| Plansız state yönetimi | Sepet, kullanıcı oturumu ve bildirim durumunun farklı yerlerde tutulması | Tutarsız ekran davranışları |
| Eksik loglama | Çökme ve ödeme hatalarının yeterince izlenmemesi | Hata kaynağının geç bulunması |
| Tasarım sistemi olmaması | Her ekranda farklı buton, boşluk ve font kullanımı | UI bakım maliyeti ve marka tutarsızlığı |
| Test otomasyonu eksikliği | Kritik akışların manuel kontrol edilmesi | Yayın öncesi süre uzaması |
| Platform güncellemelerini takip etmeme | iOS veya Android izin davranışlarının eski kalması | Mağaza reddi veya özellik bozulması |
Bu tablo teknik borcun yalnızca kod seviyesinde oluşmadığını gösterir. Ürün sahibi, tasarımcı, backend geliştirici, mobil geliştirici ve test süreci aynı sistemin parçalarıdır.
Mobil uygulama yaptırmayı planlayan şirketler için bu ayrım kritiktir. mobil uygulama yaptırmak yalnızca ekran tasarlatmak veya uygulamayı mağazaya yükletmek değildir; uzun vadede sürdürülebilir bir teknik temel kurmak anlamına gelir.
Teknik Borç Erken Aşamada Nasıl Fark Edilir?
Teknik borç genellikle uygulama tamamen bozulduğunda fark edilmez. Daha erken sinyaller verir. Bu sinyalleri doğru okumak, bakım maliyetini büyümeden kontrol etmeyi sağlar.
En net sinyal geliştirme hızının düşmesidir. İlk aylarda bir özellik 3 günde çıkarken, birkaç ay sonra benzer karmaşıklıktaki bir özellik 10 gün sürmeye başlıyorsa sistemin içinde görünmeyen sürtünme oluşmuştur.
İkinci sinyal aynı hataların tekrar etmesidir. Örneğin her bildirim güncellemesinden sonra oturum kapanıyor, her ödeme geliştirmesinden sonra sepet kırılıyor veya her tasarım revizyonunda eski ekranlar bozuluyorsa teknik borç davranışsal hale gelmiştir.
Üçüncü sinyal ekip bağımlılığıdır. Uygulamanın belirli modüllerini yalnızca tek bir geliştirici anlayabiliyorsa, kod çalışıyor olsa bile organizasyonel risk vardır. Bu durum özellikle büyüme aşamasındaki startup ve kurumsal mobil uygulamalarda ciddi gecikme üretir.
Gerçekçi Kullanıcı Senaryosu: Derya’nın Operasyon Uygulaması
Derya, 34 yaşında bir operasyon yöneticisi olsun. Sahada çalışan 120 kişilik ekip için mobil görev takip uygulaması kullanıyor. İlk sürümde ekipler görev alıyor, fotoğraf yüklüyor ve konum gönderiyor.
Uygulama hızlı yayına alınmış. Fakat fotoğraf yükleme modülü çevrimdışı senaryoları düşünmeden yazılmış. Sahada internet zayıf olduğunda fotoğraflar yüklenemiyor, kullanıcı tekrar denediğinde aynı görev iki kez kapanıyor.
İlk çözüm “yükleme butonuna tekrar dene ekleyelim” olabilir. Fakat asıl problem kuyruklama, local cache, retry politikası ve backend idempotency tasarımının eksik olmasıdır. Bu çözülmezse her yeni saha özelliği aynı borcun üzerine kurulur.
Bu örnek, teknik borcun çoğu zaman kullanıcı deneyimi problemi olarak göründüğünü ama kök nedeninin mimari karar olduğunu gösterir.
Teknik Borcu Önlemek İçin Doğru Mimari Nasıl Kurulur?
Mobil uygulamada teknik borcu azaltmanın ilk adımı, uygulamayı ekranlardan değil, domain modüllerinden düşünmektir. Login, profil, ödeme, bildirim, mesajlaşma, medya yükleme, abonelik, arama ve raporlama gibi alanlar birbirinden net ayrılmalıdır.
İyi bir mimaride mobil uygulama backend response formatına körü körüne bağımlı olmaz. API katmanı, veri dönüştürme katmanı ve UI katmanı ayrılır. Böylece backend alan adı değiştirdiğinde veya yeni bir field eklendiğinde tüm ekranlar kırılmaz.
Örneğin randevu uygulamasında “appointment_status” alanı backend’de pending, approved, cancelled olarak gelebilir. Mobil tarafta bu değerler doğrudan ekranlara dağıtılırsa ileride rescheduled eklendiğinde onlarca ekran kontrol edilmek zorunda kalır. Bunun yerine domain model ve merkezi durum eşlemesi yapılırsa değişiklik tek noktadan yönetilir.
| Mimari karar | Borcu artıran yaklaşım | Borcu azaltan yaklaşım |
|---|
| API kullanımı | Response doğrudan ekranda işlenir | API adapter ve domain model kullanılır |
| State yönetimi | Her ekran kendi durumunu ayrı tutar | Kritik durumlar merkezi ve kontrollüdür |
| Navigasyon | Ekran geçişleri dağınık tanımlanır | Rol, auth ve deep link akışları planlanır |
| Tasarım sistemi | Her geliştirici kendi component’ini yazar | Ortak component library kullanılır |
| Hata yönetimi | Hatalar sadece alert ile gösterilir | Log, kullanıcı mesajı ve retry ayrılır |
| Dosya yükleme | Tek seferlik upload mantığı yazılır | Queue, progress, retry ve cancel desteklenir |
Atalay Tech’in mobil, web platformu ve AI entegrasyonu içeren projelerde izlediği yaklaşım da bu ayrımı temel alır. Mobil ekranın hızlı görünmesi tek başına yeterli değildir; arka plandaki yapı yeni özellikleri taşımaya hazır olmalıdır.
MVP Aşamasında Teknik Borç Nasıl Kontrol Altında Tutulur?
MVP geliştirme teknik borçsuz olmak zorunda değildir. MVP’nin amacı, pazara çıkmak ve temel hipotezi test etmektir. Fakat MVP’de alınan kısa yollar bilinçli olmalı ve sonraki fazlar için kayıt altına alınmalıdır.
Bir pazar yeri uygulamasında ilk sürümde gelişmiş öneri algoritması yapılmayabilir. Bu bilinçli bir MVP kararıdır. Ancak ödeme, kullanıcı kimliği, ürün stok durumu ve bildirim altyapısı zayıf kurulursa bu artık stratejik sadeleşme değil, riskli teknik borç olur.
MVP’de teknik borcu yönetmek için üç soru net cevaplanmalıdır:
- Bu kısa yol kullanıcı güvenliğini, ödeme akışını veya veri bütünlüğünü etkiliyor mu?
- Bu karar ileride değiştirilmesi zor bir mimari bağımlılık oluşturuyor mu?
- Bu borç ürün yol haritasında hangi sprintte kapatılacak?
MVP, orta ölçek ve kurumsal mobil uygulama arasında maliyet farkı çoğu zaman ekran sayısından değil; test, güvenlik, entegrasyon, ölçeklenebilirlik ve bakım seviyesinden doğar.
| Uygulama seviyesi | Tahmini geliştirme maliyeti | Tipik süre | Teknik borç riski | Uygun senaryo |
|---|
| MVP mobil uygulama | 250.000 - 600.000 TL + KDV | 4-8 hafta | Orta; kontrollü kapsam gerekir | Fikir doğrulama, pilot kullanıcı |
| Orta ölçek uygulama | 600.000 - 1.500.000 TL + KDV | 8-16 hafta | Kapsam büyürse yüksek | E-ticaret, randevu, saha operasyonu |
| Kurumsal uygulama | 1.500.000 - 4.000.000 TL + KDV | 4-8 ay | Entegrasyon yönetilmezse çok yüksek | ERP, ödeme, çok rol, raporlama, AI |
Bu aralıklar 2026 Türkiye pazarında ajans, ekip kıdemi, entegrasyon yoğunluğu ve bakım beklentisine göre değişebilir. Daha net kapsam için mobil uygulama fiyatları aracını kullanarak proje tipine göre ön değerlendirme yapılabilir.
Test Süreci Teknik Borcu Nasıl Azaltır?
Test, teknik borcun sigortasıdır. Test yapılmayan bir mobil uygulamada her yeni özellik eski bir akışı bozma ihtimali taşır. Bu yüzden test yalnızca yayın öncesi kontrol listesi değil, geliştirme sürecinin parçası olmalıdır.
Mobil uygulamada test stratejisi dört katmanda düşünülmelidir: birim testleri, entegrasyon testleri, manuel senaryo testleri ve gerçek cihaz testleri. Ödeme, kayıt, giriş, şifre sıfırlama, push bildirim, medya yükleme ve hesap silme gibi kritik akışlar her sürümde tekrar kontrol edilmelidir.
Apple’ın App Store Review Guidelines dokümanında uygulama kalitesi, kullanıcı gizliliği, ödeme akışları ve minimum işlevsellik gibi başlıklar net şekilde tanımlanır: Apple App Review Guidelines. Bu nedenle test süreci yalnızca kullanıcı hatalarını değil, mağaza reddi riskini de azaltır.
| Test alanı | Kontrol örneği | Teknik borca etkisi |
|---|
| Auth testi | Token süresi dolunca kullanıcı doğru yönleniyor mu? | Oturum hatalarını azaltır |
| Ödeme testi | Başarısız ödeme sonrası sepet korunuyor mu? | Gelir kaybı riskini azaltır |
| Bildirim testi | Kullanıcı izin vermezse uygulama akışı bozuluyor mu? | Platform bağımlı hataları azaltır |
| Medya testi | Zayıf internetle fotoğraf/video yükleniyor mu? | Saha kullanım riskini azaltır |
| Regresyon testi | Eski kritik akışlar yeni sürümde çalışıyor mu? | Her sprintte güven sağlar |
| Cihaz testi | Düşük RAM’li Android cihazda performans nasıl? | Gerçek kullanıcı problemlerini yakalar |
Test bütçesi ilk bakışta ek maliyet gibi görünür. Fakat yayın sonrası kullanıcı kaybı, mağaza puanı düşüşü ve acil hata düzeltme maliyetiyle kıyaslandığında çoğu projede daha ucuzdur.
Backend ve API Tasarımı Mobil Teknik Borcu Nasıl Etkiler?
Mobil uygulamanın teknik borcu sadece mobil kodda oluşmaz. Backend tarafında yapılan zayıf API tasarımı, mobil uygulamayı doğrudan etkiler.
Örneğin bir haber uygulamasında liste endpoint’i hem haberleri, hem reklamları, hem kullanıcı önerilerini, hem yorum sayılarını tek karmaşık response içinde döndürüyorsa mobil tarafta veri işleme zorlaşır. İleride “sadece video haberleri filtrele” gibi bir ihtiyaç geldiğinde endpoint ve mobil ekran birlikte kırılabilir.
Sağlıklı bir API tasarımında versiyonlama, hata formatı, pagination, rate limit, yetkilendirme, dosya yükleme ve loglama önceden belirlenmelidir. Özellikle Laravel tabanlı backend projelerinde bu yapı doğru kurulduğunda mobil uygulama daha stabil çalışır. Atalay Tech’in Laravel yazılım geliştirme yaklaşımında API katmanı, yönetim paneli ve mobil istemci ilişkisi uzun vadeli bakım düşünülerek tasarlanır.
API tarafındaki teknik borcu azaltan bazı kararlar şunlardır:
- Endpoint isimlendirmesini ürün domain’ine göre yapmak
- Mobil uygulamaya özel gereksiz veri döndürmemek
- Hata mesajlarını standart formatta vermek
- Auth, refresh token ve logout akışlarını açık tasarlamak
- Dosya yükleme için progress ve retry desteklemek
- Breaking change gerekiyorsa API versiyonlama kullanmak
- Backend loglarıyla mobil crash raporlarını eşleştirmek
özel yazılım geliştirme projelerinde mobil uygulama, web paneli, API ve entegrasyonlar aynı ürünün parçalarıdır. Teknik borcu azaltmak için bu parçaların ayrı ayrı değil, birlikte tasarlanması gerekir.
Tasarım Sistemi ve UX Borcu
Teknik borcun bir başka türü UX borcudur. Kullanıcıya doğrudan “kod kötü” diye görünmez; daha çok tutarsız ekranlar, anlaşılmayan akışlar, fazla adım, karışık hata mesajları ve zayıf erişilebilirlik olarak ortaya çıkar.
Bir sağlık randevu uygulamasında tarih seçimi her ekranda farklı çalışıyorsa kullanıcı güveni azalır. Bir finans uygulamasında hata mesajı “Bir şeyler ters gitti” seviyesinde kalıyorsa kullanıcı ne yapacağını bilemez. Bir sosyal ağ uygulamasında bildirim ayarları profilin içinde gizliyse destek talepleri artar.
Tasarım sistemi teknik borcu azaltır çünkü ortak buton, form, modal, boş durum, hata durumu, skeleton loading ve typography yapısı sağlar. Yeni ekran eklemek, sıfırdan tasarlamak yerine mevcut component’leri doğru kullanmaya dönüşür.
| UX borcu örneği | Kullanıcı etkisi | Teknik etkisi |
|---|
| Tutarsız buton davranışı | Kullanıcı hangi aksiyonun önemli olduğunu anlayamaz | Her ekran ayrı ayrı düzeltilir |
| Belirsiz hata mesajı | Destek talebi artar | Hata kaynağı geç teşhis edilir |
| Uzun kayıt formu | Dönüşüm oranı düşer | Sonradan akış bölünür ve refactor gerekir |
| Loading durumu yok | Uygulama dondu sanılır | Tekrarlı istek ve veri tutarsızlığı oluşur |
| Erişilebilirlik eksikliği | Bazı kullanıcılar ürünü kullanamaz | Mağaza ve marka riski artar |
Teknik borcu önlemek için tasarım teslimi yalnızca Figma ekranı olmamalıdır. Component davranışları, boş durumlar, hata mesajları, loading durumları ve edge case senaryoları da tanımlanmalıdır.
Yayın ve Sürümleme Süreci Teknik Borcu Nasıl Azaltır?
Mobil uygulamada yayın süreci, teknik borcun görünür hale geldiği aşamadır. Test ortamı, staging API, sürüm notları, feature flag ve rollback planı yoksa küçük bir değişiklik bile kriz yaratabilir.
Örneğin bir abonelik uygulamasında yeni fiyatlandırma ekranı yayına alınacaksa hem App Store hem Google Play kuralları, backend ürün eşleşmeleri, ödeme sağlayıcı durumu ve eski kullanıcı senaryoları kontrol edilmelidir. Sadece ekranın çalışması yeterli değildir.
Sürümleme sürecinde her release için şu bilgiler tutulmalıdır:
- Hangi özellikler eklendi?
- Hangi bug’lar düzeltildi?
- Hangi API değişiklikleri yapıldı?
- Hangi cihazlarda test edildi?
- Hangi riskli alanlar izlenecek?
- Yayından sonra ilk 24 saatte hangi metrikler takip edilecek?
Google Play Console ve App Store Connect, çökme oranları, kullanıcı geri bildirimleri ve sürüm performansı açısından düzenli izleme gerektirir. Yayın sonrası takip yapılmazsa teknik borç sessizce büyür; ekip problemi ancak kullanıcı yorumlarında görür.
Bakım Planı Olmadan Teknik Borç Önlenemez
Mobil uygulama yayına alındığında proje bitmez. Asıl riskli dönem çoğu zaman ilk yayın sonrası başlar. Kullanıcı davranışı görülür, işletim sistemi güncellemeleri gelir, cihaz çeşitliliği artar, yeni özellik talepleri çıkar ve entegrasyonlar değişir.
Bu yüzden teknik destek ve bakım, teknik borcu önlemenin merkezinde yer alır. Bakım yalnızca “hata çıkarsa düzeltiriz” yaklaşımı değildir. Sürüm takibi, güvenlik güncellemeleri, performans izleme, bağımlılık güncellemeleri, mağaza uyumu ve küçük iyileştirmeler düzenli şekilde yönetilmelidir.
Bakım planı olmayan uygulamalarda teknik borç genellikle şu şekilde büyür:
- Küçük hata geçici çözümle kapatılır.
- Aynı modül birkaç sprint sonra tekrar bozulur.
- Yeni özellik eski geçici çözüme göre yazılır.
- Refactor maliyeti ertelenir.
- Ekip artık modüle dokunmak istemez.
- Ürün büyüdükçe teknik risk iş riskine dönüşür.
Bakım planı, teknik borcu sıfırlamaz; görünür ve yönetilebilir hale getirir. Bu da özellikle gelir üreten mobil uygulamalarda kritik fark yaratır.
Mobil Uygulamada Teknik Borcu Önleme Kontrol Listesi
Teknik borcu önlemek için her proje aynı derinlikte süreç gerektirmez. Fakat belirli kontroller neredeyse her mobil uygulamada uygulanmalıdır.
| Kontrol alanı | Sorulması gereken soru | İdeal çıktı |
|---|
| Keşif | Kritik kullanıcı akışları net mi? | Önceliklendirilmiş kapsam dokümanı |
| Tasarım | Edge case ve hata durumları çizildi mi? | Component ve durum bazlı tasarım |
| MVP | Bilinçli ertelenen işler kayıtlı mı? | Teknik borç backlog’u |
| Backend | API versiyonlama ve hata formatı var mı? | Stabil mobil API sözleşmesi |
| Test | Kritik akışlar her sürümde kontrol ediliyor mu? | Regresyon test listesi |
| Yayın | Sürüm notu ve rollback planı var mı? | Kontrollü release süreci |
| Bakım | Aylık teknik kontrol yapılıyor mu? | Bakım raporu ve öncelik listesi |
Bu kontrol listesi özellikle proje teklif aşamasında işe yarar. Çünkü teknik borcun çoğu, geliştirme başlamadan önce kapsamın eksik tarif edilmesiyle doğar.
Atalay Tech Perspektifi: Teknik Borç Bir Bakım Değil, Yönetim Meselesidir
Atalay Tech’in mobil uygulama, web platformu, yönetim paneli ve AI entegrasyonu içeren proje deneyiminde teknik borç çoğu zaman tek bir ekip disiplinine indirgenemez. Mobil geliştirici iyi kod yazsa bile API plansızsa uygulama kırılabilir. Tasarım güçlü olsa bile hata durumları düşünülmemişse kullanıcı deneyimi zayıflar. Backend ölçeklenebilir olsa bile test ve yayın süreci yoksa risk devam eder.
Bu yüzden teknik borç; keşif, tasarım, MVP, test, yayın ve bakım adımlarının birlikte yönetilmesiyle azaltılır. Sürdürülebilir mobil uygulama geliştirmek isteyen şirketler için amaç “ilk sürümü en hızlı çıkarmak” değil, ilk sürümden sonra ürünü güvenle büyütebilmektir.