Yazılım Mimarı Kimdir ve Ne İş Yapar?
Yazılım mimarı sistemin yapısını ve teknik kararları belirler. Görevleri, çözüm mimarından farkı, gereken beceriler ve geçiş yolu bu sayfada.
Yazılım mimarı nedir?
Yazılım mimarı, bir yazılım sisteminin ana yapısını belirleyen kişidir: sistem hangi parçalardan oluşacak, parçalar birbiriyle nasıl konuşacak, veri nerede duracak, yük artınca ve bir bileşen çöktüğünde sistem nasıl davranacak? İngilizce karşılığı software architect, iş dünyasında yakın kullanımla çözüm mimarı (solutions architect) olarak da anılır.
Mimar çoğu zaman satır satır kod yazan kişi değildir ama kodun hangi sınırlar içinde yazılacağını belirler. Verdiği kararların bir kısmı sonradan değiştirilmesi zor ve pahalı olduğu için, rolün özü iyi gerekçelendirilmiş trade-off (ödünleşim) kararları vermektir. Hız mı tutarlılık mı, esneklik mi basitlik mi gibi sorulara iş hedefiyle uyumlu cevap arar.
Görev ve sorumluluklar
Yazılım mimarının günlük işi sistemin teknik yönünü geliştirme ekipleriyle ve iş tarafıyla birlikte şekillendirmektir. Başlıca sorumlulukları şunlardır:
- İş gereksinimlerini teknik kalite hedeflerine çevirmek: performans, güvenlik, erişilebilirlik, ölçeklenebilirlik, bakım kolaylığı
- Sistemi bileşenlere ve servislere ayırmak, bileşenler arası sözleşmeleri ve API'leri tanımlamak
- Veri depolama, mesajlaşma, önbellekleme ve entegrasyon yaklaşımlarını seçmek
- Mimari kararları kısa kayıtlarla belgelemek ve gerekçesini ekibe anlatmak
- Kod incelemelerinde ve tasarım toplantılarında mimari ilkelerin korunmasını sağlamak
- Teknik borcu görünür kılmak, yönetimle önceliklendirmek
- Yeni teknolojiyi küçük denemelerle sınayıp ekibe önermek
Bir iş gününden somut örnekler
Örneğin bir e-ticaret şirketi sipariş sistemini, kampanya dönemlerinde yavaşlayan tek parça bir uygulamadan ayırmak istiyor. Mimar önce yavaşlamanın nerede oluştuğunu inceler: veritabanı mı, ödeme çağrısı mı, stok kontrolü mü? Sonra siparişi alan, stoğu düşen ve bildirim gönderen bileşenlerin ayrışabileceğini, bunun için olay tabanlı bir iletişimin uygun olup olmadığını tartışır. Her seçeneğin kazandırdığı ve getirdiği maliyeti (daha karmaşık izleme, eventual consistency gibi) ekibe ve ürün sahibine açıkça yazar.
Başka bir gün, başka bir ekip yeni bir API açmak istediğinde mimar, sürümleme, kimlik doğrulama ve hata biçimi gibi ortak kuralların tutarlı uygulanmasına bakar. Çıktısı, ekiplerin kendi başına karar verebileceği kısa bir rehber ve gerektiğinde bir tasarım incelemesi olur.
Bir diğer sık durum, geçmişten kalan sistemin yenilenmesidir. Mimar tüm sistemi bir seferde yeniden yazmak yerine parça parça taşımanın yolunu çizer ve her adımda sistemin çalışır kalmasını sağlar.
Yazılım mimarı ile çözüm mimarı arasındaki fark
İki unvan birçok şirkette iç içe kullanılır, ama vurguları farklıdır. Yazılım mimarı genellikle tek bir ürünün ya da sistemin iç yapısına odaklanır: bileşenler, kod tabanı, teknik ilkeler. Çözüm mimarı ise bir iş problemini çözmek için birden çok sistemi, ürünü ve bazen dış tedarikçiyi bir araya getirir; müşteriyle ve iş birimleriyle daha çok konuşur.
Kurumsal mimar bir basamak daha geniş bakar: şirketin tüm teknoloji ve iş yapısını uzun vadeli hedeflerle hizalar. TOGAF gibi çerçeveler bu seviyede kullanılır. Bulut mimarı ise bu çatının bulut sağlayıcısı üzerindeki kısmına odaklanır.
Bazı şirketlerde bu unvanlar ters anlamda kullanılabilir; bu yüzden ilandaki sorumluluk listesinde sistem sınırının mı yoksa müşteri ve tedarikçi entegrasyonunun mu öne çıktığına bakın.
Gereken beceriler
Teknik derinlik bu rolün zemini. Mimar, en az bir dilde ve ekosistemde uygulayıcı deneyimine sahip olmalı; veritabanı türlerini, ağ ve güvenlik temellerini, dağıtık sistemlerin sorunlarını (gecikme, kısmi hata, tutarlılık) bilmelidir. API tasarımı, olay tabanlı mimari, mikroservis ve monolit arasındaki seçimler günlük konulardır.
İkinci kutup iletişimdir. Mimari karar yalnız doğru olmakla yetmez, ekibin benimsemesi gerekir. Karar gerekçesini farklı seviyeye göre anlatmak, çizim yapmak, itirazları dinleyip kararı güncelleyebilmek rolün büyük kısmını oluşturur. Üçüncü kutup iş anlayışıdır: maliyet, zaman ve risk hesabı yapmadan teknik olarak güzel ama işe uymayan çözümler çıkar.
Sık hata şudur: yeni ve gösterişli teknolojiyi problem gerektirmeden seçmek. İyi mimar çoğu zaman en sade çözümü savunur.
Yazılım mimarı nasıl olunur?
Mesleğe girişte yaygın bir zorunlu lisans ya da sertifika uygulaması bilinmez; kesin koşullar işverene göre değişir. Pratikte mimarlar, yazılım geliştirici olarak başlayıp sorumluluk alanını genişleterek bu role gelir. Bilgisayar ya da yazılım mühendisliği geçmişi yaygındır ama tek yol değildir.
Tipik yol şöyle ilerler:
- Bir ya da iki teknoloji yığınında sağlam bir geliştirici olmak ve canlı sistem işletmeyi öğrenmek
- Tasarım toplantılarına katılmak, küçük bir bileşenin tasarımını sahiplenmek
- Sistem tasarımı, API tasarımı ve olay tabanlı mimari gibi konularda çalışmak
- Mimari kararları yazılı hale getirmeyi alışkanlık yapmak
- Daha geniş sistemlerde tasarım sorumluluğu almak, ardından mimar ya da kıdemli mühendis unvanına geçmek
İsteyenler kurumsal mimari çerçevelerini de öğrenir; bu, özellikle büyük kurumlarda çözüm ve kurumsal mimarlık yönüne geçişi kolaylaştırır.
Bu alanı Mindset programlarında nerede çalışırsınız?
Mindset kataloğunda mimari becerilerinize dokunan birkaç program var. Sistem Tasarımı mülakat hazırlığı kapasite tahmini, veri katmanı ve ölçeklenme kararları, servis mimarisi ve dayanıklılık başlıklarını işler. API Tasarımı ve Yönetimi programı tasarım prensipleri, versiyonlama, güvenlik ve gateway yönetimini kapsar. Event-Driven Mimari programı olay tasarımı, olay kaynaklaması ve CQRS ile entegrasyon gibi konulara odaklanır.
Kurumsal mimari yönüyle ilgilenenler için Kurumsal Mimari (TOGAF) Temelleri ve TOGAF Certified Sertifikasyon Hazırlık programları da ADM ve mimari yönetişim başlıklarını içerir.
İlgili Mindset programı
Sistem Tasarımı (System Design) Mülakat Hazırlığı
Sık sorulan sorular
Yazılım mimarı kod yazar mı?
Çoğu zaman yazar, ama oranı şirkete göre değişir. Mimar prototip yazar, kritik bileşenlerde ekibe eşlik eder ve kod incelemelerine katılır. Rolün ağırlığı ise kod miktarından çok, kodun hangi yapı ve sınırlar içinde yazılacağını belirlemek ve kararların gerekçesini anlatmaktır. Küçük ekiplerde mimar aynı zamanda ana geliştiricidir; büyük kurumlarda ise birçok ekibe rehberlik ettiği için daha az kod yazar.
Mimar olmak için kaç yıl deneyim gerekir?
Sabit bir süre yoktur; belirleyici olan deneyimin niteliğidir. Canlı sistem işletmiş, ölçekleme ve hata durumlarıyla karşılaşmış, kararlarının sonuçlarını görmüş bir geliştirici daha hızlı yetkinleşir. Unvanı beklemek yerine tasarım sorumluluğunu erken ve adım adım almak daha etkili olur. Sabit bir yıl sayısından çok, kaç farklı sistemi büyüttüğünüz ve kaç tasarım kararının sonucunu yaşadığınız önem taşır.
Mimarlık için sertifika şart mı?
Hayır, şart değildir. Sertifikalar bilgiyi yapılandırmaya ve özgeçmişte görünürlüğe yardımcı olabilir, özellikle kurumsal mimari ve bulut tarafında. Ancak işe alım kararlarında genellikle sistem tasarlama ve gerekçelendirme becerisi, yani mülakatta ve geçmiş projelerde gösterilen yetkinlik öne çıkar. Bir sertifika tek başına mimarlık yetkinliğini kanıtlamaz; yanında somut bir sistem tasarımı örneği anlatabilmek gerekir.
Sistem tasarımı mülakatı neden mimarlığa hazırlık sayılır?
Çünkü mülakat formatı mimarın günlük işine benzer: belirsiz bir gereksinimi alıp kapasiteyi tahmin etmek, veri katmanını seçmek, hata durumlarını düşünmek ve seçimlerin bedelini açıklamak. Mülakata hazırlanırken edinilen düşünme biçimi, gerçek tasarım toplantılarında da doğrudan kullanılır. Bu nedenle mülakat için çalışmak, aynı zamanda gerçek işte kullanacağınız karar verme alışkanlığını geliştirir.
Yapay zeka mimarlığı ortadan kaldırır mı?
Yapay zeka araçları kod üretmeyi ve taslak tasarımı hızlandırıyor, ancak iş hedefine göre ödünleşim yapmak, kurumun kısıtlarını bilmek ve kararın sorumluluğunu almak insanda kalıyor. Araçlar mimarın elini hızlandırır; hangi problemin çözüleceğine ve neyin riskli olduğuna karar vermenin yerini almaz.