Web yazılım; tarayıcı üzerinden erişilen bir tanıtım sitesinden, kullanıcı hesabı ve iş akışları bulunan bir SaaS ürününe kadar farklı çözümleri kapsar. Bu yüzden “hangi teknoloji?” sorusundan önce ürünün kimi, hangi işi yaparken destekleyeceğini netleştirmek gerekir.
Aşağıda web yazılımın temel katmanlarını, web sitesi-web uygulaması farkını, geliştirme sürecini ve teklifleri karşılaştırırken aranacak teslim kriterlerini açıklıyorum.
Web Yazılım Nedir?
Web yazılım, temel arayüzü bir internet tarayıcısında çalışan yazılım çözümüdür. Bazı ürünler yalnız çevrim içi kullanılır; bazıları kurulabilir PWA özellikleri, önbellek veya sınırlı çevrim dışı akışlar sunabilir. Tarayıcıdan erişilmesi, tüm iş mantığının kullanıcı cihazında çalıştığı anlamına gelmez.
Web Yazılımın Temel Bileşenleri
Bir web yazılımı üç ana katmandan oluşur:
1. Front-end (İstemci Tarafı)
Kullanıcının gördüğü ve etkileşim kurduğu kısım. HTML (yapı), CSS (görünüm), JavaScript (etkileşim) ile inşa edilir.
2. Back-end (Sunucu Tarafı)
İş mantığı, hesaplamalar, veritabanı erişimi sunucuda çalışır. Kullanıcı görmez ama her şey burada olur.
3. Veritabanı
Verinin saklandığı yer. PostgreSQL, MySQL, MongoDB, Redis gibi farklı türleri var.
Web Sitesi mi, Web Uygulaması mı?
Çözüm türünü özellik listesinden önce temel kullanıcı görevine göre seçin:
| İhtiyaç | Uygun başlangıç | Ayırt edici gereksinim |
|---|---|---|
| Hizmetleri ve içerikleri yayımlamak | Statik site veya CMS | Editör akışı, SEO, form ve ölçüm |
| Ürün satmak | E-ticaret altyapısı | Katalog, ödeme, sipariş ve iade akışı |
| Şirket içi işi yönetmek | Özel web uygulaması | Yetki, durum geçişleri, kayıt geçmişi |
| Abonelikle bir ürün sunmak | SaaS | Hesap, tenant ayrımı, plan ve kullanım yönetimi |
| Başka sistemlere veri veya işlem sağlamak | API / entegrasyon katmanı | Kimlik doğrulama, sözleşme, hata ve kota yönetimi |
Bir kurumsal tanıtım sitesi için özel uygulama geliştirmek gereksiz maliyet yaratabilir. Buna karşılık rol, onay, hesaplama veya başka sistemlerle entegrasyon içeren bir iş akışını yalnız sayfa şablonlarıyla çözmeye çalışmak da ürünü sınırlar.
Web Yazılım Türleri
1. Statik Web Siteleri
Sayfalar istek anında veritabanından üretilmek yerine önceden oluşturulur; içerik kaynak dosya veya CMS üzerinden güncellenip yeniden yayınlanabilir. Tanıtım siteleri, bloglar ve portfolyolar bu modele uygundur.
2. Dinamik Web Siteleri
İçerik veya arayüz istek, kullanıcı ve güncel veriye göre sunucu ya da tarayıcı tarafında oluşturulur. Hesap alanları, paneller ve kişiselleştirilmiş akışlar bu yapıyı kullanabilir.
3. Web Uygulamaları (Web Apps)
Karmaşık iş mantığı içeren, kullanıcı etkileşimi yoğun yazılımlar. Gmail, Trello, Notion, Figma örnek.
4. SaaS (Software as a Service)
Abonelik modeliyle web üzerinden sunulan yazılımlar. Salesforce, HubSpot, Shopify, Slack.
5. E-ticaret Platformları
Online ürün satışı için tasarlanmış web yazılımları. Shopify, WooCommerce, Magento, ya da özel platformlar.
6. Web API’ler ve Microservice’ler
Diğer uygulamaların kullandığı, doğrudan kullanıcıyla iletişime geçmeyen backend servisler.
7. PWA (Progressive Web Apps)
Web platformu teknolojileriyle geliştirilip destekleyen cihazlarda kurulabilir deneyim sunan uygulamalardır. Çevrim dışı akış ve bildirim gibi yetenekler ürüne ve tarayıcı desteğine göre tasarlanır; ayrıntılar MDN PWA rehberinde bulunabilir.
8. Headless Sistemler
Front-end ve back-end tamamen ayrılmış mimari; bu modelin artıları headless CMS yazısında.
Web Yazılım Teknolojisi Nasıl Seçilir?
React, Vue, .NET, Node.js veya başka bir aracın popüler olması tek başına seçim gerekçesi değildir. Teknoloji kararı aşağıdaki gereksinimlerden türemelidir:
| Karar alanı | Sorulacak soru | Mimariye etkisi |
|---|---|---|
| İçerik | Kim, ne sıklıkla yayın yapacak? | CMS, statik üretim ve editör yetkileri |
| Kullanıcı | Hesap, rol veya kurum ayrımı var mı? | Kimlik doğrulama ve yetkilendirme modeli |
| Veri | Hangi veri saklanacak ve ne kadar süre tutulacak? | Veritabanı, yedekleme ve silme politikası |
| Entegrasyon | Ödeme, ERP, CRM veya haricî API var mı? | Kuyruk, webhook, hata ve tekrar deneme tasarımı |
| Trafik | Ortalama ve tepe kullanım senaryosu nedir? | Önbellek, ölçekleme ve altyapı kapasitesi |
| Ekip | Sistemi yayın sonrasında kim sürdürecek? | Dil, framework, dokümantasyon ve işe alım riski |
| Uyum | Güvenlik, kayıt veya veri yerleşimi şartı var mı? | Kontroller, erişim kayıtları ve barındırma seçimi |
Teklifte yalnız teknoloji adını değil, bu kararların gerekçesini isteyin. Aynı ihtiyaç farklı yığınlarla güvenilir biçimde çözülebilir; sürdürülebilirlik çoğu zaman ekibin yetkinliği, test disiplini ve operasyon tasarımına bağlıdır.
Web Yazılım Geliştirme Süreci
Bir web yazılım projesinin aşamaları ve her aşamada beklenen somut çıktı şöyledir:
1. İhtiyaç Analizi
Hedef kullanıcı, temel görevler, kapsam dışı işler ve başarı ölçütleri tanımlanır. Çıktı: önceliklendirilmiş gereksinim ve kabul kriterleri.
2. Sistem Tasarımı
Mimari kararlar, veri modeli, entegrasyon sözleşmeleri ve teknoloji gerekçeleri hazırlanır. Çıktı: karar kayıtları ve risk listesi.
3. UX/UI Tasarım
Kritik akışlar wireframe ve prototiplerle doğrulanır; erişilebilirlik ve farklı ekranlar tasarım sistemine dâhil edilir. Çıktı: onaylanmış akışlar ve durumlar.
4. Geliştirme
Küçük ve test edilebilir parçalar halinde geliştirme yapılır. Her parça kod incelemesi, kabul kriteri ve çalıştırma notuyla tamamlanır.
5. Test
Birim, entegrasyon ve kullanıcı kabul testlerinin kapsamı riske göre belirlenir. Performans ve güvenlik kontrolleri yalnız yayın sonunda değil, geliştirme boyunca çalıştırılır.
6. Yayın (Deployment)
Ortam değişkenleri, veri geçişi, geri alma planı, gözlemleme ve alarm akışıyla birlikte yayın yapılır. Çıktı: tekrarlanabilir dağıtım ve operasyon runbook’u.
7. Bakım ve Geliştirme
Hata düzeltme, bağımlılık ve güvenlik güncellemeleri, kapasite takibi ve yeni özellikler planlı bir bakım kuyruğuyla yönetilir.
Web Yazılım Geliştirici Rolleri
Bir web yazılım projesinde tipik roller:
- Front-end Developer: Kullanıcı arayüzünü inşa eder
- Back-end Developer: Sunucu mantığı ve API’leri yazar
- Full-Stack Developer: Hem ön hem arka uçta çalışır
- DevOps Engineer: Cloud altyapı, CI/CD, monitoring
- Database Administrator: Veritabanı tasarımı ve optimizasyonu
- QA / Test Engineer: Kalite güvencesi
- UX/UI Designer: Kullanıcı deneyimi tasarımı
- Product Manager: Ürün stratejisi
- Scrum Master / PM: Süreç yönetimi
- Solution Architect: Sistem mimarisi kararları
Web Yazılım Projesinin Maliyeti ve Süresi Nasıl Tahmin Edilir?
Proje türüne bakarak sabit fiyat veya takvim vermek sağlıklı değildir. Aynı görünen iki uygulama; rol sayısı, entegrasyon, veri geçişi ve güvenlik gereksinimleri nedeniyle çok farklı efor isteyebilir.
Tahmini şu bileşenlerle kurun:
- Kapsam: Kullanıcı akışları, ekranlar ve iş kuralları
- Veri: Modelleme, içe aktarma, saklama ve raporlama
- Entegrasyon: Haricî sistemler, ödeme, webhook ve hata senaryoları
- Kalite: Tarayıcı/cihaz kapsamı, performans, erişilebilirlik ve test seviyesi
- Güvenlik: Rol, hassas veri, kayıt, doğrulama ve bağımsız test ihtiyacı
- Operasyon: Barındırma, gözlemleme, destek ve yayın sıklığı
- Belirsizlik payı: Henüz doğrulanmamış iş kuralı veya dış bağımlılıklar
İlk tahmin bir aralık olmalı; kapsam netleştikçe güncellenmelidir. Teklifleri karşılaştırırken “kaç ekran?” sorusunun yanında her ekranın durumlarını, yetkilerini ve entegrasyonlarını da sayın.
Web Yazılım Teklifinde Hangi Teslimatlar Olmalı?
| Teslimat | Kabul sorusu |
|---|---|
| Kaynak kod ve depo erişimi | Kod, sürüm geçmişi ve gerekli lisanslar müşteriye devrediliyor mu? |
| Gereksinim ve kabul kriterleri | Tamamlandı kararı hangi ölçülebilir koşulla verilecek? |
| Tasarım durumları | Boş, hata, yüklenme ve mobil durumları tanımlı mı? |
| Test kapsamı | Kritik iş akışları otomatik veya belgeli olarak doğrulanıyor mu? |
| Güvenlik gereksinimleri | Kontroller risk düzeyine göre sözleşmede tanımlı mı? |
| Yayın ve geri alma | Yeni sürüm tekrarlanabilir biçimde dağıtılıp geri alınabiliyor mu? |
| Dokümantasyon | Kurulum, ortam değişkenleri, yedekleme ve operasyon adımları mevcut mu? |
| Bakım modeli | Hata, güvenlik güncellemesi ve yeni özellik birbirinden ayrılmış mı? |
Güvenlik maddelerini yalnız “güvenli geliştirilecektir” cümlesine bırakmayın. OWASP Application Security Verification Standard, doğrulanabilir web uygulaması güvenlik gereksinimleri için sözleşme ve testlerde kullanılabilecek bir temel sunar.
Sıkça Sorulan Sorular
Web yazılım ile web tasarım arasındaki fark nedir?
Web tasarım görsel arayüz ve kullanıcı deneyimi ile ilgilenir. Web yazılım ise kodlama ve fonksiyonel yapı ile. Tasarım sitenin nasıl göründüğünü, yazılım nasıl çalıştığını belirler. Profesyonel projelerde her ikisi paralel ilerler.
Web yazılım öğrenmek için nereden başlamalıyım?
Önce HTML, CSS ve JavaScript ile tarayıcı temelini öğrenin; ardından HTTP, erişilebilirlik, sürüm kontrolü ve test kavramlarına geçin. Framework seçimini temel kavramları uygulayabildiğiniz bir küçük projeden sonra yapın. MDN Web Docs tarayıcı teknolojileri için doğrudan bir başvuru kaynağıdır.
Web yazılım için hangi dil en iyisidir?
Tek bir “en iyi” dil yoktur. Mevcut ekibin deneyimi, ürünün kütüphane ve entegrasyon ihtiyacı, performans profili, barındırma modeli ve uzun vadeli bakım kapasitesi birlikte değerlendirilmelidir. Tarayıcı tarafında JavaScript temel bir teknolojidir; sunucu tarafında ise aynı problem birden fazla dil ve framework ile çözülebilir.
Web yazılım projesi ne kadar sürer?
Süre; doğrulanacak akışların sayısı, entegrasyonlar, veri geçişi, tasarım olgunluğu, güvenlik ve kabul sürecine bağlıdır. Önce küçük ama uçtan uca çalışan bir kapsam tanımlayın; tahmini gereksinim listesi, bağımlılıklar ve ekip kapasitesi görüldükten sonra aralık olarak isteyin.
Web yazılım projesinde hangi rollere ihtiyaç vardır?
Her projede tüm roller ayrı kişiler olmak zorunda değildir. Ancak ürün kararları, UX/UI, front-end, back-end, test ve yayın operasyonlarının sorumluları açıkça belirlenmelidir. Hassas veri veya yüksek işlem riski varsa güvenlik ve alan uzmanı incelemesi de plana eklenmelidir.
Web yazılım için hangi framework’ü seçmeliyim?
Önce içerik üretimi, etkileşim yoğunluğu, ekip yetkinliği, barındırma ve bakım gereksinimlerini yazın. Sonra adayları bu ölçütlerle küçük bir teknik deneme üzerinden karşılaştırın. Sadece marka bilinirliği veya trend listesiyle karar vermeyin; framework karşılaştırma yazısı proje tipine göre bir başlangıç çerçevesi sunar.
Hazır web yazılım mı özel yazılım mı tercih etmeli?
İhtiyacın çoğu hazır platformun standart akışlarıyla karşılanıyor ve farklılaşma içerik/operasyondaysa hazır çözüm güçlü bir başlangıçtır. Özel iş kuralları, karmaşık yetkiler veya kritik entegrasyonlar platformu sürekli zorlamaya başlıyorsa özel geliştirme değerlendirilebilir. Lisans, eklenti, geçiş ve bakım maliyetlerini toplam sahip olma maliyetinde birlikte hesaplayın.
Web yazılım güvenliği için ne yapmalı?
Güvenlik kontrol listesi uygulamanın veri ve işlem riskine göre oluşturulmalıdır. Kimlik doğrulama, yetkilendirme, girdi doğrulama, gizli anahtar yönetimi, kayıt, bağımlılık güncellemeleri, yedekleme ve olay müdahalesi temel başlıklardır. Gereksinimleri doğrulanabilir hale getirmek için OWASP ASVS gibi bir standarttan yararlanın; genel riskleri web sitesi güvenliği yazısı ayrıca açıklar.
Web yazılım bakımı ne kadar tutar?
Bakım bütçesi; çalışma süresi hedefi, destek saatleri, bağımlılık sayısı, altyapı, güvenlik güncellemesi ve değişiklik hacmine göre belirlenir. Teklifte hata düzeltme, önleyici bakım, altyapı gideri ve yeni özellik geliştirmesini ayrı kalemler halinde isteyin.
Özet
Web yazılım projesinde doğru başlangıç teknoloji adı değil; kullanıcı görevi, kapsam, veri, entegrasyon ve kabul ölçütleridir. Bu kararlar yazılı olduğunda teknoloji ve ekip seçenekleri karşılaştırılabilir, fiyat ve takvim tahmini de daha savunulabilir hale gelir.
Web projenizin kapsamını netleştirmek için kurumsal web sitesi hizmetimizi inceleyebilir veya iletişim sayfasından mevcut akışlarınızı paylaşabilirsiniz.