Yazılım Mimarının Görev ve Sorumlulukları

Yazılım Mimarının Görev ve Sorumlulukları

Mimar; akıllarda elitist, sanatsal ve bazen mükemmellikle özdeşleşen kavramları çağrıştıran önemli bir kelime. Aklıma amerikanın çok izlenen komedi dizisi Seinfeld’deki George tiplemesi geliyor. Diziyi takip eden müdavimleri bilirler, Georgu’un olmak istediği ama hiçbir zaman olamayacağı şey; mimar olmak yada Matix’de geçen “the architect” mimar tiplemesi. Bu ve benzeri analojiler aslında her alanda mimar kelimesinin ne denli önemli olduğunu gösteriyor. Fikir mimarları, yapı mimarları …. Ve bizim ilgi alanınımız yazılım mimarları. 

 

Yazılım projelerinin en kritik rollerinden yazılım mimarlarının görev alanları ve sorumlulukları bu yazımızın konusunu teşkil ediyor. Yazılım mimarları, yazılımlara tırnak içinde ruhunu kazandıran ve adeta onu bi eser gibi şekillendirmeye ve kalıcı olmasına uğraşan bir kimliktir. Yazılım mimarlarının sorumluluk alanları çok geniş ve zordur. Bu sorumluluk alanlarını ana başlıklar halinde incelemeye başlayalım:

 

Projede kullanılacak teknolojileri seçerler

 

Çoğu organizayon ve kurumda tercih edilen veya standart kullanılan teknolojiler vardır (J2EE, .NET, C++), buradan aslında mimarların bir seçim yapma şanslarının olmadığı düşünülebilir fakat bu durum her zaman böyle değildir. Bazı projelerde kesin teknoloji kısıtları yoktur, müşteri seçim şansını size bırakmıştır yada uzun sürmesi düşünülen bir projede hangi ata oynadığınız büyük önem kazanmaktadır. Teknoloji seçerken o teknolojinin tarihini yada hangi firmaların bu teknolojiye destek verdiğini kısacası bu gibi alanlarda stratejik karar verme yetisine sahip bir entelektüel olmanız gerekmektedir. Bu tecrübeyle kazanılan, edinilmesi kişisel bilgi ve kültüre bağlı bir süreçtir.

 

Her zaman teknoloji seçimi karşınıza geliştirme ortamı şeklinde de çıkmayabilir. Mesela projenizde J2EE kullanacaksınız fakat veri katmanında EJB, JDO yada Hibernate arasında kendinizi zor bir dönemeçte bulabilirsiniz. Teknoloji seçme kabiliyeti kendini bir çok alanda gösterebilir;

v      IDE: seçeceğiniz IDE ekibin hızını ve üretkenliğini etkileyebilir

v      Geliştirme Ortamı (Java, .NET): çözüm stratejileri göz önüne alındığında bu 2 teknoloji farklı parametreler sunabilirler

v      Framework: yazılım dünyası artık frameworklerin dünyası haline gelmeye başladı, frameworkleri doğru kullanmak eskisinden çok daha hayati

v      3. parti kontroller: size hız kazandıracak hazır kontrolleri seçmek ve onlardan haberdar olmak

 

Proje metodolojisi ve süreçlerinde tavsiyelerde bulunmak

 

Projede izlenecek süreçler ve proje yönetimi konusunda proje parametrelerine (kapsam, takım, zaman, kalite, teknik…) uygun olanların değerlendirilmesi ve Proje yöneticisine bu noktalarda tavsiyelerde bulunulması bir gerekliliktir. Çünkü bu gibi parametreler bir noktada teknik sezgi ve bilgi gerektiren konulardır. Proje yöneticisi ve yazılım mimarı burada ortak çalışmalı ve proje yöneticisi mimarın görüşlerini dikkate almalıdır. Sonrasında uygulanacak süreç ve metodların proje teknik ekibine aktarılması ve uyarlanması da yine yazılım mimarının sorumluluğu altındadır. Sorumluluk alanlarına;

v      Metodoloji yada süreç seçimi: XP, RUP, MSF

v      Kalite standartları: CMM, AQAP, ISO

v      Geliştirme teknikleri: TDD (Test Driven Development), DDD (Domain Driven Development), MDA (Model Driven Architecture)

 

gibi alanlar örnek olarak gösterilebilir.

 

Uygulamanın genel tasarım ve yapısını oluşturmak ve korumak

 

Mimar, uygulamaların genel tasarım ve yapısını çıkarmaktan sorumludur. Bazı durumlarda kritik modüllerde mikro seviyede tasarıma da yardımcı olur. Fakat bundan sonraki uygulama süreci programcılara aittir. Uygulama aşamasında mimar bir orkestra şefi gibi takımı tek bir ses çıkarması adına yönetir ve kod parçalarının başta belirlenen tasarımsal ve yapısal bütünleğe uygun olmasını sağlar. Bu zor bir görevdir çünkü her programcının kendine ait alışkanlıkları ve tekniği vardır.

 

Projenin yeterli seviyede tanımlandığından emin olmak

 

Mimarlar projede proje analistleri ve yöneticileri ile birlikte projenin tanımlanmasında ve analizinde beraber çalışırlar. Bu tanımlar projenin teknik yönlerini de etkileyen parametreler olduğundan mimarlar bu tanımların yeterli, tutarlı ve açık olduğundan emin olmalıdırlar.

 

Uygulama tasarımının yeteri kadar dökümante edilmesi

 

Dozunda bir uygulama tasarım dökümantasyonu programcıların takım içi iletişimi için önemli bir adımdır. Dökümante edilmiş somut bir tasarım daha kolay anlaşılır ve sürdürülebilir. Takıma yeni eklenen üyelerin adaptasyonları ve uyumları daha az risk ve maliyet taşır. Ortaya çıkan dökümanlar bir sonraki projelerinizde size çözüm kapılarını açan önemli bir kütüphane olabilir. Bu sayede daha üretken olabilirsiniz.

 

Kodlama standartlarını ve pratiklerini tesis etmek ve korumak

 

Bir çok konuda olduğunu gibi kodlamada  da uyulması gereken standartların ve pratiklerin, çok farklı tercih ve standartlara sahip programcılar arasında tesisi önemlidir.  Standartlar kodların okunabilirliği, iletişimi ve bakımı gibi bir çok alanda size avantaj sağlar. Kodlama standartları şunlardan oluşur;

v      İyi kod pratikleri (değişken kullanımı, parametre, metod parçalama…)

v      İsimlendirme (naming convention)

v      Test

v      İstisnai durumların idaresi (Exception Handling)

v      Loglama

 

Bu standartların tesisi kadar korunması ve kodların uygunluğunu sağlamak da mimarın sorumluluk alanı içersindedir. Standartları korumak ve uygunluğunu sürdürmek adına programcılarla birlikte kod inceleme oturumları yapmak ve bu sayede programcıları buna zorlamak alınması gereken önlemlerden biridir.

 

Proje yöneticisine teknik görev tahminlerinde yardım etmek

 

Proje yöneticilerinin her zaman teknik yetkinliklerinin olması beklenmez. Bu bir avantaj olsada bir şart değildir. Projede atanacak görevler proje yönetici tarafından belirlenirken, süre tahminleri için mimardan yardım alması gerekmektedir.

 

Zor teknik görevlerde programcılara yol göstermek

 

Genel olarak mimarlar programcılardan teknik olarak daha tecrübelidirler. Bazı zor görevlerde programcıların yavaşladığı durumlarda onlara yardım edecek kişi mimardır. Bir çok  projede mimar uygulamacıdan daha çok akıl hocalığı görevini yürütür. Programcıların teknik sorunlarına cevap bulur ve onlara koçluk yapar

 

Proje yöneticisine proje maliyetleri ve yararları konusunda yardımcı olmak

 

Bir çok teknolojinin bir arada kullanıldığı projelerde, kullanılan teknoloji beraberinde de kendine has maliyetleri getirir. Bu maliyetlerin belirlenmesi ve faydalarının araştırılmasında yazılım mimarı bu konuda yetersiz olan proje yöneticisine yardımcı olmalıdır.

 

Teknik personel seçimi ve işe alımında yönetime yardımcı olmak

 

Her ne kadar çalışan seçimi bir yönetim görevi olarak görülse de, yazılım alanında çalışan seçimi özel teknik bir eleminasyon ve süzgeç gerektirir. Mimarların bu alandaki deneyimlerinden ve fikirlerinden yararlanılması uygun olur.

Döküman Arama

Başlık :

Kapat