Makale Özeti

Bu makalemde sizlere MSF yani Microsoft Solutions Framework nedir, nereden türemiştir, bilişim firmalarına ne gibi modeller ve disiplinler sunmaktadır konuları aktarmaya çalışacağım.

Makale

MSF teknik bir konu değil, bir altyapı veya çerçeve diyebileceğimiz uygulanabilir model ve disiplinlerden oluşan yapıdır. Bu yüzden makalenin hemen başlangıcında neden MSF'e ihtiyaç duyulduğunu değişen iş dünyasını anlatarak açıklamak istiyorum.

İş dünyası hiç olmadığı kadar hızlı giden bir yarışın içinde. Eğer bu yarışta birinci olmak istiyorsanız rakiplerinizden farklılaşarak oyunu sürekli önde götürmeniz gerekmekte. Yaptığınız iş yazılım çözümleri geliştirmek ve üretmek olunca da bu yarış biraz daha hızlı gidiyor, iyi olan kazanıyor kötü olan kaybetmekle kalmıyor silinip yok oluyor. Artık ürünleri geliştirmek için çok daha az zamanınız var ve bunu yaparken kaliteli bir ürün ortaya çıkarmanız bekleniyor. Küreselleşme iş dünyasındaki iş yapış şekillerini baştan sona değiştiriyor. Bu durumda bilişim firmaları iş dünyasının yeni altyapısını oluşturarak bilgi odaklı bir düzen kurulmasına yardımcı oluyor. 1970'ler sonrasını yazılım geliştirmenin mümkün olduğu yılların başlangıcı olarak düşünecek olursak geçen 35-40 yıllık süreçte yeni doğan bir sektör çok büyük evrimler geçirdi.

Çok fazla yazılım mühendisliği tarihinin derinliklerine inmeden hızlıca bir geçmişe dönmek istiyorum. İlk yıllarda "nasıl yazarsan yaz ama kod yaz" düşüncesiyle başlayan yazılım dünyası adım adım işlerin detaylı analiz edilmesi, programın kodunun en son yazılımasını vurgulayan şelale yani waterfall modelini belirli bir süre denemiş ardından bir ara ürün ortaya çıkaran ve bu ara ürünü değerlendirip iyileştiren prototip modeli üzerinde yoğunlaşmıştır. Sonrasında oluşan spiral model ise yazılım dünyasının yaptığı işin ne kadar karmaşık olduğunu ve süreçlerin analiz, kodlama, değerlendirme ve yeninden tasarım gibi aşamalardan oluştuğunu göstermiştir. İşler karmaşık görünse de aslında bu iş dünyasının gereksinimlerine göre şekillenmiş yeni bir işleyişten başka birşey değildir. Sanayi devriminde üretimde olan hızlı süreç modelleri geliştirme, artık küreselleşmeyle bilgi odaklı üretimde de yerini almıştır.

MSF yani Microsoft Solutions Framework; başarılı bilişim çözümleri için insanların nasıl organize edileceği, nasıl projelerin planlanacağı, nasıl bir süreç yapısı üzerinden geçileceği, risklerin değerlendirilip nasıl kurulumun tamamlanacağıyla ilgili bir rehberdir.

MSF Nereden Doğdu?

1975 yılında kurulan Microsoft, yaptığı birçok yazılımla birlikte yazılım sektörünün şekillenmesine en fazla etki eden firmaların başında oldu. Windows'dan Office uygulamalarına kadar birçok alanda kullanılan yazılımları geliştiren ekipler, dünya çapında yazılım geliştirmede çok büyük bir bilgi birikimine sahip oldular. Ayrıca Microsoft'un Danışmanlık Servisleri (MCS); verdiği yazılım destekleri sonucunda işin müşteri tarafında nasıl bir yapıya ihtiyaç olduğunu iyi analiz etti.

Microsoft kendi bilişim teknolojileri grubunun yanında en büyük bilgi birikimi Microsoft'un işortaklarından geldi. Farklı sektörlere çözüm geliştiren ve altyapıda Microsoft teknolojilerini kullanan işortakları yaşadıkları tüm tecrübelerden çok büyük dersler çıkardılar. İşte aslında MSF tüm bu dört farklı grubun bilgi birikimleri ve tecrübeleri sonucunda ortaya çıktı.

MSF Modelleri

MSF içerisinde iki farklı model bulunmaktadır. Bunlardan birincisi takım modelidir. Bir bilişim projesi mutlaka farklı rollere sahip çalışanların biraraya gelip doğru iletişim altyapısı üzerinden etkileşime geçerek başarıya ulaşabilir. Değişen yeni iş dünyasında başarı mutlaka ekip çalışmasında yatmaktadır. İşte bu yüzden MSF'in son sürümü olan 4.0 sürümü içerisinde tanımlı olan roller bulunmaktadır. Bu roller şunlardır;


Şekil 1 - MSF 4.0 Takım Modeli

Eğer daha önce MSF versiyon 3'ü biliyorsanız değişen daha doğrusu eklenen yeni bir rol olduğunu göreceksiniz, Yazılım Mimarisi. Mimari yazılım dünyasına son yıllarda yeni girmiş ama bir anda tüm ilgiyi üzerine toplayabilmiş olan bir rol. Gelin öncelikle hızlıca rollerin kısa tanımlarını yapalım.

Program Yönetimi; projenin doğru zaman, bütçe ve kapsamda gidip gitmediğinden ve proje ekibinin temel olarak koordinasyonundan sorumludur. Ürün Yöneticisi ise müşteri tarafında çalışan, müşterinin isteklerini anlayan ve bunu proje ekibine anlatan roldür, hem müşteri hem de proje yöneticisi arasında iletişim köprüsüdür. Yazılım Geliştirme; adından da anlaşılacağı gibi yazılım geliştirme süreçlerinden sorumlu rolü temsil etmektedir, tek ve yegane işi kod yazmaktır. Test rolü ise en önemli rollerden biri olarak yapılan tüm işlerin doğru çalışıp çalışmadığını kontrol eden ve kapsamlı testler gerçekleştiren roldür. Yapılan yazılımın kurulumundan sorumlu olan, kolay ve sorunsuz bir geçiş için çalışan rol ise sürüm yönetimidir. Bu yazılımı kullanacak kişilere eğitim veren ve yazılımdan maksimum verim alınmasını sağlayan rol de kullanıcı yönetimi rolüdür. Son olarak yazılım mimarisi MSF 4.0 ile birlikte eklenmiş olan ve yazılımın mimari olarak yapısını şekillendiren roldür. Önemli olan bu rollerdeki çalışanların kendi görevlerini yerine getirmesi kadar ekip içerisinde de iletişimi yüksek tutmalarıdır. Takım modelini bundan sonraki yazılarımızda daha detaylı olarak inceliyoruz olacağız.

Süreç modelinde ise MSF 3'de aşağıdaki gibi bir resim ile karşılaşmaktaydık:


Şekil 2 : MSF 3 Süreç Modeli


Görüldüğü gibi önce bir Vizyon Belirleme aşaması ile başlayan süreçler Planlama aşaması ile devam etmektedir. Bu aşamalarda iş yoğunluğu proje yöneticisi ve ürün yöneticisine görevler düşerken geliştirme aşaması yazılım geliştiricilerin sorumluluğunda olan bir aşamadır. Kararlılık ve sonrasında gelen kurulum aşamalarında sürüm yönetimi ve kullanıcı yönetimi sorumlu roller olarak 5 aşamadan oluşan süreçleri tamamlamaktadırlar.

MSF 4 ile birlikte süreç modeli ikiye ayrılmıştır. Birincisi MSF Agile adı verilen ve iterasyonlar üzerine kurulu olan daha çevik bir süreç modeli; ikincisi ise CMMI yani Yetkinlik Olgunluk Modeli Entegrasyonu (Capability Maturity Model Integration) daha yapısal olan süreç modelidir.

Şuan MSF 4 Beta aşamasında olduğu için çok detaylarına giremesek de genel olarak Çevik Model ile CMMI Modelini karşılaştırmak isterim:


Şekil 3 : MSF 4.0 Çevik Süreçler İçin



Şekil 4 : MSF 4.0 CMMI Süreçleri İçin


Disiplinler

MSF'de 3 farklı disiplin bulunmaktadır. Bunlar "Proje Yönetim Disiplini", "Risk Yönetim Disiplini" ve "Hazırlık Yönetim Disiplini"dir. Yapılan iş; zaman, kapsam ve maliyet arasındaki uyumu gerektirdiği için bir proje yönetimi disiplini gerekmektedir. MSF kendi içerisinde süreç ve takım modellerinden türeyen bir proje yönetim metodolojisine sahiptir.

Riskler ise her projede mutlaka olan proje planında oluşacak muhtemel sapmalardır. İyi veya kötü değillerdir, yönetilmesi gereken gecikmelerdir. İşte bu yüzden MSF Risk Yönetimi disiplinini de içermektedir. Risk yönetim planı hazırlayarak, riskleri öncelendirmek ve projedeki muhtemel sapmalar oluşmadan çözmeyi hedeflemektedir.

Son olarak projelerin her aşamasında kurulum, gereksinim, eğitim gibi ara aşamalar yer almaktadır ve olası dağıtım senoryolarında hazırlık yönetimi gerekmektedir. MSF hazırlıklı olmak ve daha hızlı ve risksiz hareket edebilmek için bir Hazırlık Yönetim disiplini de içermektedir.


Şekil 5: MSF Disiplinleri

MSF'un önceki sürümleri çok detaylı olarak projelerin nasıl yapılacağı konusunda yönü tam olarak göstermese de MSF 4.0 Çevik ve CMMI süreçlere uygunluğuyla bunu sağlamaktadır. Visual Studio Team System adlı yeni ürün ile birlikte bu yapının bütünleşik geldiği düşünülürse, Microsoft'un ne kadar büyük bir yenilik yarattığı anlaşılacaktır. MSF ile ilgili detaylı bilgiyi www.microsoft.com/msf adresinden alabileceğinizi hatırlatır, yeni bir yazıda daha bilgiyi paylaşmak üzere esenlikler dilerim.

 

Mehmet Nuri ÇANKAYA
www.nuricankaya.com