MSF e Genel Bakış

MSF e Hızlı bir bakış - 1

Diyelimki çok önemli bir işe başlayacaksınız, ancak bu işi nasıl yapabileceğiniz konusunda sadece bir öngörünüz var, bu işi daha önceden yapmadınız ve biliyorsunuz ki bir çok şeyi deneme yanılma yolu ile öğreneceksiniz, ve bu size vakit ve para kaybına mal olacak, düşünüyorsunuz, bu işi acaba daha önce yapan insanlar nasıl yapmış ? önünüzde en azından bir model olursa o modeli takip edip, size uygun olmayan bölümlerini törpüleyip, size uygun olan faydalı ve güzel bölümlerini kullanıp, bu işi daha az kaza ile atlatabilirsiniz ve bu size çok fazla zaman kazandırabilir.

İşte MSF bu mantık ile doğdu. MSF bir iş yapma şeklidir, ancak biz programcıların anladığı kod satırlarından oluşmaz, bu işin mantık çerçevesinde nasıl yapılacağı üzerinde durur. Yani MSF derki, “projenizi yazarken en uygun yazılım alt yapısını saptayın” sizde bunun .Net olduğuna karar verirsiniz :)

MSF aslında bir projenin baştan aşağıya süreçlerini anlatan, karşılaşabileceğiniz olası riskleri saptamanızı sağlayan, takımınızdaki insanların hangi rollerde olacağını anlatan ve projelerinizi tekrar edecek şekilde geliştirmenizi sağlayan bir alt yapı mantığıdır.

MSF, “Microsoft Solution Framework” ün kısaltılmışıdır. Ancak buradaki Framework bizim bildiğimiz Class mantıklarını içeren Framework değil, iş yapma mantıklarını içeren Framework tür (alt yapıdır).

MSF’in  en güzel yanlarından bir tanesi, Dünyanın en büyük yazılım firması olan Microsoft ta denenmiş, kullanılmış, geliştirilmiş olmasıdır. Yani biz maça 1 – 0 değil belki direk 5 – 0 önde başlıyoruz, çünkü bizim yanlışlarımızın bir çoğunu MS yapıp bize daha düzgün bir alt yapı çıkartmış bulunuyor.

Dediğimiz gibi MSF süreçleride yönetir. Çok fazla kullanılan iki tane süreç modelini MSF birleştirip, ikisininde iyi yönlerini kullanmıştır. Bu süreç modellerinin ilki Waterfall modelidir. Bu modelde süreçlerden ilki bitmeden diğerine geçilmemesi gerektiği temel mantıktır (bu süreçlerin bittiği yere milestone yani kilometre taşı denir bir milestone’a gelmeden diğer süreç e geçilmez). Ancak bu yöntem ile projeler çok yavaş sonuçlanır. İkinci model ise Spiral modeldir. Bu model de ise süreçler kendi içinde ayrılmaz. Müşteri istekte bulunur ve bu isteğin projeye eklenmesi bir döngüyü bitirir. Böylece çok daha hızlı projeler oluşturulur ve müşterinin isteklerine uygun olur. MSF in süreç modelinde ise aslında yapılan Waterfall modelindeki süreçlerin adımlarının küçültülmesidir. Böylece bir Spiral daha çabuk biter ve müşteriden gelen geribildirimler ile yeni bir spiral daha başlar ve yeni milestone larınız olur.

 

Bu süreçleri diğer makalelerde daha detaylı olarak inceleyeceğiz. Ancak şimdilik bu süreçlerin neler olduğuna bir göz atalım

Tasarlama Planlama Geliştirme Stabilize Etme Dağıtma

İşte bu süreçler geçilince projenin bir sürümü ortaya çıkar ve daha sonra tekrar geliştirmeye açıktır. Bu makalenin sonlarında projelerin tekrarlarına bir göz atabilirsiniz.

 MSF için bir diğer önemli model de takım modelidir. bu takım modelinde insanlar guruplandırılır ve her bir gruba bazı görevler düşer. Böylece proje daha sağlıklı olarak ilerler ve sorumluluklar bilinir.

MSF de temel olarak 6 çeşit rol bulunur. Bu rollerin yapacakları işe açıktır. Ancak bu rollere ilave bazı diğer rollerde eklenebilir.

Ürün Yöneticisi : Projenin müşteri tarafı ile ilgilenir. Müşterinin programdan beklentilerini, iş ihtiyaçlarını saptar, müşteri ile toplantılar organize eder ve projenin gelişmesini, projenin satışını sağlar. Aslında belkide görevlerinden en önemlisi, müşterilerden alınan ufakta olsa geribildirimleri Program Yöneticisi ne aktarmaktır. Program Yöneticisi : Projenin adım adım geliştirilmesinden ve projenin müşteriye ihtiyaçlarını görecek şekilde teslim edilmesinden sorumludur. Projenin yazılımı yapan tarafındadır ve özellikle yönetim vasıflarının ve teknolojik bilgisinin iyi olması beklenir. Programcı : Program yöneticisinin tasarladığı teknik verilere uygun olarak projenin kodlanmasını sağlar. Aslında programı yazan kişidir. Ancak neyi yazacağı program yöneticisi tarafından tarihleri ile belirtilmiş olmalıdır. Test Edici : Programcı tarafından yazılan kodların düzgün çalışmasından tutunda Programın bileşenlerinin uyumuna kadar bir çok aşamada görevi vardır. Esas amacı programın kaliteli bir ürün olarak çıkmasını sağlamaktır. Dağıtım Sorumlusu : Program oluşturulduktan sonra, programın düzgün bir şekilde kullanıcı bilgisayarlarına kurulmasını ve setup paketlerinin oluşturulmasını sağlar. Kullanıcı Memnuniyeti : Kullanıcıların programdan ne kadar verimli olarak faydalanabildiklerini inceler. Bununla birlikte programa katılabilecek yeni özelliklerin kullanıcılara ne kadar fayda sağlayacağını saptar.

İlave roller ise aşağıdaki gibi olabilir.

Proje Sponsoru : Projeler genelde bir firma analiz edilerek yapılır. Ancak bazı durumlarda özellikle paket program yazılma çalışmalarında Sponsor firmanında Programdan bazı beklentileri olabilir. Bunların saptanması ve iletilmesidir.

Son Kullanıcı ve / veya Operatör : bu rol özellikle çok önemlidir. (Ben yaptığım projelerde özellikle dikkat ederim.) programı kullanacak olan kullanıcıların fikirleri program yapılırken saptanabilirse vakit kazanılmış olur. Bu rolün bir diğer artısı ise programı ilk öğrenen kişiler oldukları için programı diğer kullanacak kişilere o anda şirket içinden birisinin anında destek verebilmesi ve kullanıcının programı kullanmaktan kopmamasını sağlamaktır.

Bu ilave roller arttırılabilir… 

MSF bazı disiplinleri vardır. Bu disiplinleri projenin başlangıç zamanlarında ne kadar iyi oturtturabilirseniz projeniz o denli sağlam temeller üzerine oturur.

Risk Yönetimi disiplini : Projenin başından sonuna kadar karşınıza çıkabilecek ve gerek projenin iptal olmasını sağlayacak gerekse projenin yavaşlamasını sağlayacak her türlü etmeni bu etmen ortadan kalkana kadar takip etmek ve değerlendirmek ile ilgilidir. 6 adımda incelenir.

Riski Tanımlama : karşınıza çıkabilecek herhangi bir riski saptamak Riskin Analizi : bu riski takımın anlayabileceği hale getirmek Risk Planlama : Risk karşımıza çıktığında ne gibi önlemler alınabileceğinin saptanmasıdır. Risk İzleme : Riskin karşınıza ne zaman çıkabileceği ve hangi durumlarda karşılabileceğinizdir. Risk Kontrolü : Riskler için oluşturduğumuz faaliyet planının düzenli aralıklarla kontrol edilmesidir. Risk Öğrenme : Risk oluştuğunda çözümünden çıkarılan dersler ve çözümünü oluştururken yaptığınız programatik veya yapısal değişikliklerin dökümante edilmesidir.

Hazırlık Yönetimi Disiplini : Projeye başlanılmadan önce, projenin geliştirilmesinde ve yönetilmesindeki bilgi ve beceri yeterliliklerinin hazır olması konusunda yardımcı olur. 4 bölümü vardır.

Tanımlama : Projenin rollerindeki kişilerin bu rollerde ne kadar başarılı olabileceklerinin saptanmasıdır. Gerekli yetki ve gerekli yeterliliklere sahip olunup, olunmadığı incelenir. Görüş Bildirme : Belirlenen bu rollerin gerekli yeterlilikleri taşıyıp taşımadığı incelenir. Değiştirme : Takım üyelerinin bilgi ve yeterlilikleri o rol ile uyuşmuyorsa bazı iyileştirmelere gidilmesi gerekir. Buda iki adımda incelenir. Eğitim : Takım üyelerinin bilgi ve becerilerinin artması için bazı eğitimler alınmasıdır. İzleme : Takım üyelerinin izlenip, o rolde ne kadar verimli olarak iş çıkartabileceği incelenir. Değerlendirme : Eğitim ve İzlemenin sonuçları incelenir ve gerekli düzenlemeler varsa yapılır.

Proje Yönetim Disiplini : Planları ve değişiklikleri yönetmek aynı zamanda projenin kapsamını belirlemek ve bu kapsama ne kadar uyulduğunu yönetmektir. Böylece projenin her tekrarında projeye hakim olabilirsiniz.

Bütçeyi ve Yönetimsel maliyetleri hazırlamak Maliyetleri izlemek ve dengede tutmak için çizelge hazırlamak. Proje için tatsis edilmiş kaynakların doğruluğunu onaylamak ve maliyetlerini düzenlemek. Projeye kaynak sağlayanların, satıcıların koordinasyonunu sağlamak. Takımdaki kişilerin ve harici kişilerin (örneğin danışman) iletişimini kolaylaştırmak. Risk Yönetim Sürecini incelemek ve eksikleri düzenlemek. Takım kalitesini ve iş çıkartabilmesini denetlemek ve dökümante etmek.

Takas (TradeOffs) Yönetimi : Takas yönetimi projede bazı birimler artarken diğer birimlerin kaybolmasını dengelemeye yarayan bir yönetim biçimidir. Proje için önemli olan kaynaklar (örneğin maliyet), Zamanlama ve Özellikler olarak üç bölüme ayırabiliriz.

Aslında TradeOffs yönetimi projenin değişkenlerini ve kaynaklarını düzenlemek için oluşturulmuş bir yönetim şeklidir. Bu tipteki değişkenleri ve kaynakları müşterilerle olan toplantılarda nasıl daha denetim altına alacağınız ortaya çıkacaktır.

TradeOff mantığını şöyle düşünebilirsiniz. Projenize Müşteriler tarafından yeni bir özellik eklenmeniz istendi, bu sizin zamanlamanızı etkileyecek (arttıracak) ve maliyetinizi arttıracaktır. Veya siz maliyetleri biraz kısmak istediniz. O zaman zamanda biraz azaltılmalı ve dolayısı ile özelliklerde azaltılmalıdır. Bu ve bunlar gibi birbirine etki edecek birimlerin iyice saptanması gerekmektedir.

Projedeki tekrarlamalar (Iteration):

MSF yapısı tekrarlamalalı bir yapıdır. Çözümün geliştirilmesi ve iyileştirilmesindeki her faz tekrar tekrar yapılabilir. Tekrarlama işlemlerinde projeler genellikle alt modüllere ayrılır ve bu alt modüllerde kendi içlerinde tekrarlanabilirler.

Proje tekrarı yaptıkça projeniz her tekrarda daha fazla işlevsellik, kolaylık ve yetkinlik kazanır. Bu tekrarlamanın ne zaman biteceği, müşteri ve teknik ekip en uygun çözümü bulduklarını düşündüğü zamandır.

Her tekrarlama sırasında daha önceden belirlenen dökümanlar gözden geçirilmeli ve revize edilmelidir.

Proje tekrarlamalarının en önemli noktalarından birisi ise projenin modüllerinde yapılabilmesidir. Böylece bir programcı kendi bölümünün tekrarlamasını bitirir. Test edecek kişiye verir, diğer bölümün tekrarlamasını yapar. Birden çok mödül üstünde rahatça çalışılabilir.

MSF 3.0 ile ilgili ilk makalemiz bu kadar, daha sonraki makalelerde MSF in Süreçlerini inceleyeceğiz. MSF 4.0 ın kapımızı çaldığı şu günlerde hızlı bir MSF 3.0 ile temelinizi daha sağlam atarak 4.0 daha hazır bir şekilde başlayabilirsiniz.

İstek eleştiri ve önerileriniz için aşağıdaki mail adresimi kullanabilirsiniz.

Döküman Arama

Başlık :

Kapat