Yazının başlığını dikkat çeksin diye biraz popüler yaklaşım ile yazdım, yoksa kesinlikle saçmalık falan değil…Aman diyim…Uzun zamandır irdelediğim, zaman zaman üzerinde çalıştığım, tam olarak farkında olunmadığını düşündüğüm bir konu hakkında yine sesli düşünerek bir şeyler karalıyor olacağım…Evet başlıyoruz…Kurumsal Mimari…
Belli bir amaç doğrtulsunda ortaya çıkan her oluşumun, bir vizyonu ve misyonu vardır. Oluşumun büyüklüğüne göre, bu vizyonun ve misyonun, çeşitli yan ve farklı alanlar ile gerçekleştirilebilmesi sağlanır. Oluşum ne kadar büyükse ya da büyür ise bu alanların sorumlulukları ve işleyişi önem kazanıyor ve kurumsal mimarı denen kavram ortaya çıkıyor.
Kurumsal mimari dediğimiz kavram, bir oluşumum en küçük birimden, en büyük birimine kadar, stratejilerinin oluşturulduğu,yönetildiği; oluşum içerisindeki verinin yapısı, saklanma biçiminin tanımlandığı; iş süreçlerinin geliştirildiği ve işletildiği mimari alt yapıdır diyebiliriz. Bütün bu kavramlar yönetim, reklam, insan kaynakları, teknoloji ve bilişim sistemleri alt yapıları gibi alt maddelerde çeşitlilik gösterebilir. Kurumsal mimarinin bu noktada en önemli özelliği tüm bu alt yapılar ve sistemler arasında düzenli bir ilişki ve iletişimi sağlayıp, yönetebilir olmasıdır.
Büyük oluşumlarda(genelde kurumsal şirketler ve büyük ölçekli firmalar mesela) kurumsal mimari kavramı, büyüklüğü yönetebilmek adına çok daha fazla önem taşır. Diğer oluşumlar da, çok farkında olunmasa da, mutlaka oluşturulmaya çalışılan bir mimari vardır. Sadece biraz daha özgür, başı boş ve dağınık olur. Bu noktada önemli olan, böyle bir mimarı anlayışın ve alt yapının gerekliliğinin farkında olup, en uygun mimariyi oluşturmaya çalışmaktır.
Peki neden gerekli?
Oluşumlar meydana gelirken, zaman içerisinde büyümeyle beraber farklı birim ve bireyler ortaya çıkar. Bu birim ve bireylerin, oluşumun vizyonuna hizmet etmesi, misyonu gerçekleştirmesi adına, iletişimleri ve ilişkileri çok önemlidir. Bu ilişkilerin yönetilmesi ve sürdürülebilir olması için mimari bir alt yapı gereklidir. Tamamen yazılım mimarisinde ki yaklaşım ile aynı diyebiliriz aslında.
Mimari alt yapı oluşturulurken, oluşumun amacı ve bu amaç dahilinde ki operasyonları iyi analiz edilmeli ve tasarlanmalıdır. Kurumsal mimari, değişikliklere açık ve yeniliklere de uygunluk sağlayabilmedir. Bu sürdürülebilirliğin en önemli kriteri bence. Bu yüzden mimarinin bu yönden güçlü ve açık olması, kafa yorulması gereken önemli konulardan olmalı.
Büyük oluşumlar, zaman içerisinde sahip oldukları tecrübelerinden dolayı kurumsal bir mimariye sahiptirler aslında; ama çok farkında değillerdir. Belli standartlara uyma çalışmaları ve büyümelerin hızlı olması artık bu mimarilere daha önem vermeyi ve daha sağlam adımlar atmayı gerektiriyor. En azından Türkiye için böyle gibi diyebilirim. Küçük oluşumlar ise bu farkındalığa, günümüzün getirdikleri sayesinde daha önceden sahip olup, adımlarını o yönde atmaya çalışarak büyüme adına daha sağlam adımlar atma şansına sahip. Bu noktada belli tecrübelerin ortaya koyduğu çeşitli kurumsal mimari modeller mevcut.
Bir yazılımcı olarak, kurumsal mimarinin yazılım açısından önemi sanırım asıl ilgilendiğim tarafı. Bu yüzden de, biraz bu açıdan saçmalıyım. Kurumsal mimarinin, yazılım ile ilgili iki tarafı var aslında. Bir tanesi bu mimarinin oluşturulmasında ve sürdürülebilirliğinde kullanılan yazılım araçları, araçların oluşturduğu sistemler; diğer tarafı da yazılım geliştirme süreçlerindeki etkisi. Yazılım araçlarına bu yazıda çok girmiyor olacağım. Ancak ilerleyen zamanlarda, bu yazılım araçlarının oluşmasında ya da neler yapılması gerektiğine dair bir çok şey saçmalıyor olacağım…Şimdilik biraz yazılım geliştirme süreçlerine olan etkisinden bahsetmek istiyorum.
Oluşumların yine vizyonları çerçevesinde, misyonlarını gerçekleştirmek adına sağlamaya çalıştıkları çözümler yazılım alt yapısı gerektirebilir. Daha doğrusu bu çözümler yazılım çözümleri olabilir. Bu çözümlerin geliştirilmesi aşamasında, kurumsal mimarinin bazı alt sistemlerine uyumluluk, bazı süreçleri işletebilmek, ortaya çıkan çözümün kalitesi adına önemli olabilir. Burada önemli olan şey, oluşumun ve çözümün büyüklüğü… Oluşum küçük bir yapıysa ve ortaya sunduğu çözümler büyük hacimlere seslenmiyorsa kurumsal mimari yaklaşımı farklılık gösterebilir. Haa sonra bana demeyin, güzel bir çözümüm var, kurumsal bir mimarim yok ama kaliteli…Olabilir, çok da mümkündür; hatta örnekleri de vardır…Ancak ne kadar farkında olmasanız da, uyduğunuz, uymaya çalıştığını bir framework vardır. Sadece mimari ölçekte yeteri kadar büyümemiştir. Neyse çok dağılmadan devam edelim…
Yazılım süreçleri, kurumsal mimari çerçevesinde belli bir framework üzerinden yürüyebilir. Mimari gereksinimler ile ortaya çıkan bu framework içerisinde, analiz, tasarım, kullanıcı ön yüz tasarımı, test geliştirilmesi, kod yazımı, kod kaynağı kontrolü, bug ve problem çözümü, kod gözden geçirmesi gibi süreçler olabilir. Bu süreçlerin hepsinin olması ya da farklı süreçlerin eklenmesi kurumsal mimariye göre çeşitlilik gösterebilir. Bu noktada, süreçlerin varlığından çok, süreçlerin nasıl işletildiği daha önemlidir bence. Süreçleri düzgün işletemedikten sonra onların varlılığı karşamışlığa yol açacaktır. Yazılım geliştirme süreçlerine uyum, büyük oluşumların sunduğu çözümler adına çok önemli olabilmektedir. Geliştiren ekip, belli bir yol izleyip, bu yolun belli kriterlerine uyar ise ortaya çıkacak sonuç tüm paydaşlar için kaliteli olacaktır. Ama tabi ki bu yolu izlemek ve süreçleri işletmek böyle yazdığım kadar kolay değil. Kısa süre içerisinde olabilecek ya da hemen sonuçlarını alabileceğiniz bir durum da değil ne yazık ki. Ama böyle bir şeyin bilincinde olmak ve uymaya çalışmak bile çok önemli.
Sona doğru yaklaşırken, kurumsal mimariden dolayı ortaya çıkan süreçler içerisinde kaybolmanın, kurumsal mimarinin gelişebilirliği ve genişletilebilirliği adına çok büyük zarar sağlayacağının da altını çizmek isterim. Tamamen ayrı bir konu olarak ele alınabilinir ama önemli olduğunu düşündüğüm için son olarak söylemek istedim. Haaa bir de tekrardan hatırlamak isterim, süreçlerden çok süreçlerin işletilebilirliği önemli…O süreci işletemiyorsanız eğer, işletebileceğiniz şekilde süreci değiştirip, hiç olmuyorsa yeni bir süreç olarak düşünmek daha faydalı olacaktır…
Şimdilik bu kadar…