29 Şubat 2012 Çarşamba

Takım Formasyonu ve Liderlik


Hepimiz öyle veya böyle bir takımın parçasıyız. Projelerde hepimiz proje takımlarıyla çalışıyoruz. Proje bazlı takımlar, kuruluyor, çalışıyor, işlerini bitiriyor ve dağılıyor. Bütün takımların aslında aynı aşamalardan geçerek şekillendiğini biliyor muydunuz? Bruce Tuckman’ın bu konuyu ele alan teorisine göre tüm takımlar aynı evrelerden geçiyor, bunlar: Şekillenme (Forming), Çatışma (Storming), Durulma (Norming), Üretme (Performing), Dağılma (Adjourning). Şekillenme aşamasında ekip üyeleri birbirini tanımaya çalışır. Çatışma aşamasında takım üyeleri, takıma kendini kabul ettirmeye çabalar, bu esnada ağırlıkla baskın takım üyelerinin başını çektiği çatışmalar olur. Durulma aşamasında ekip birbirini tanımış ve kabullenmiştir; üretkenlik artmaya başlar. Üretme aşamasında artık ekip en verimli aşamaya gelmiştir ve işe odaklanmıştır. Dağılma evresinde ise işlerin tamamlanması ile takımın üyelerinin eski durumlarına dönmesi gerçekleşir. Takımın bulunduğu duruma göre ihtiyaçları farklıdır, duruma göre farklı liderlik stilleri ile çalışmak en etkin sonuca götürür:

  • Şekillenme aşamasında direktif verici liderlik takımı doğru yöne kanalize eder. Takım üyeleri ne yapılması gerektiğini bilmediği için özellikle taktiksel detayların ekibe net olarak gösterilmesi beklenir.
  • Çatışma aşamasında dinleyen ve çatışmaların çözümüne motive eden liderlik en etkin sonuca götürür.
  • Durulma aşamasında artık takım arasında uyum yükselmiştir, taktiksel amaçlar anlaşılmıştır, bu noktada takımı motive etmek için iddialı hedefler sunulması gerekir. Liderin detaylarla ilgilenmekten çok ileriyi gösteren konumda olması gerekir.
  •  Üretme aşamasında de durulma aşamasındaki takıma olduğu gibi hedefler verilmesi en etkin sonucu verir. Bu aşamada liderlik stilinin direktif verici olmaktan çok delege edici yönü ağır basmalıdır.
  • Dağılma aşamasında takım üyelerine mutlaka teşekkür edilmeli ve yeni çalışmalar için motive edilmelidir.
Proje takımlarında da bu aşamaları hep birlikte yaşıyoruz. Özellikle takımın iyi gözlenmesi ve hangi evrede olduğuna bağlı olarak doğru yaklaşım ile ekibin motive edilmesi projenize mutlaka katkı sağlayacaktır. Uyumlu takımlar ve üretken projelerde görev almanız dileğiyle.

19 Şubat 2012 Pazar

Risksiz Proje Olur Mu?


Riskin ne olduğunu hepimiz az çok biliyoruz. Projelerin de risklerle dolu olduğunu biliyoruz. Risksiz proje olur mu? Elbette olmaz J Peki tüm projelerde ortak riskler olduğunu biliyor musunuz? Burada bahsettiklerimiz negatif riskler bu arada. DeMarco ve Lister (Waltzing with Bears, 2003) bu konuyu araştırmış ve sektörü ne olursa olsun tüm projelerde ortak riskler olduğunu saptamışlar. Bunlardan en önemli olanları burada ele alacağız.
  • En başta kusurlu tahmin: Projeye veya işe başlarken buzdağının altı görülemediği için, olması gerekenden çok daha iyimser tahminler verilmesi. Bunu çoğumuz görmüşüzdür. Bazen üst yönetimin de baskısıyla gayet iyimser süre ve maliyet tahminleri ortaya çıkar. Ne yazık ki bu projelerdeki en temel risktir.
  •  Paydaşlar arası uzlaşı eksikliği: Projedeki farklı tarafların farklı beklentileri ve bu konuda tam bir uzlaşı olmadan projenin hayatına başlaması diğer bir risktir. Beklentileri karşılanmayan taraflar ilerleyen aşamalarda projeye olan desteği kesecektir ve bazı engeller ortaya çıkaracaktır. Tabi ki en kritik paydaş müşteridir, ve onunla uzlaşı önemlidir, bununla beraber diğer paydaşların da beklentilerinin tam olarak anlaşılması ve uzlaşılması olmazsa olmazdır.
  •  Kapsam kayması: Projeye başlanırken belirlenen kapsamın öyle veya böyle proje boyunca değişmesi bir başka temel risktir. Proje bütçesi ve süresi kapsamdaki değişimden payını genellikle negatif yönde alacaktır.
  • Eleman kaybı: Proje ekibindeki elemanlardan bir veya daha fazlasının işten ayrılması da önemli bir başka risk kaynağıdır. İşten ayrılan eleman beraberinde proje boyunca edindiği bilgi ve tecrübeyi de götürecektir. Yerine yeni kaynak verilse bile bu bilgi ve tecrübeden yoksun olduğu için bir adım geriden başlayacaktır. Proje de işlerdeki gecikme olarak bu riskin gerçekleşmesiyle oluşan sorundan payını alacaktır.
  • Üretkenlik dalgalanması: Proje ekibinin üretkenliğinin çeşitli nedenlerle dalgalanması, proje planını gerçekleştirmeyi zorlaştıran bir başka önemli risktir.

Bu riskleri bilmek ve yeni projelere bunu bilerek başlamak bazı avantajlar sağlayacaktır. Riskle birlikte alınacak önlemleri de en baştan belirlemek bu risklerin etkisini azaltmaya veya kaçınmaya katkı sağlacayaktır. Negatif riskleri az ve keyifli projeler yönetmeniz dileğiyle.

11 Şubat 2012 Cumartesi

Çevik Yazılım Projelerinde Başarının Anahtarları Nelerdir?


Başarının ne olduğunu düşündünüz mü? Hangi durumlarda kendinizi veya işinizi başarılı olarak değerlendirirsiniz? Herkesin kendine göre bir başarı tanımı vardır. Genel bir tanım bulmak gerekirse, Standish’in tanımına bakabiliriz, bütçe sınırları içinde ve istenen özelliklerle ürün sunabilmedir. Başarının farklı boyutları vardı: kurumsal başarı, teknik başarı ve kişisel başarı. Gerçek anlamda başarı bu üç boyutunda kesişimi olandır. Kurumsal başarının olmadığı bir ortamda kişisel başarının bir anlamı yoktur. Tam tersi kişisel başarının olmadığı bir ortamda tek başına kurumsal başarı yetersiz olacaktır. Bu yazıda bu üç başarının birlikte ortaya çıkması için gerekli olan anahtarlardan bahsediyoruz.

Projelerde başarının anahtarları birçok yerde yazılmış anlatılmıştır. Çevik Yazılım Geliştirme (Agile Development) yapılan projelerde başarının olmazsa olmazlarını altta listeledim:

·         Yönetim desteği: Yönetimin destek olmadığı bir çalışmanın kurum içinde destek görmesi ve başarılı olması mümkün değildir.

·         Ekip uyumu: Ekip üyelerinin uyumlu çalışabilmesi, birbirini tamamlar özellikler ile donanmış olmaları çok önemlidir.

·         Aynı lokasyona toplanmış ekip: Ekip üyelerinin aynı ortamda çalışması, sorularını doğrudan (telefon, eposta, vb gerek kalmadan) sorabilmeleri büyük avantaj sağlar.

·         Ekiple aynı ortamda ve birlikte çalışan müşteri: Müşterinin de ekiple birlikte olduğu, ekibin sorularına anında yanıt verebildiği bir ortam, proje süresini oldukça kısaltacaktır.

·         İdeal ekip büyüklüğü: Ekibin 4-6 teknik personel ve diğer personelden oluşması en idealidir.  

Bu ön koşulları oluşturduktan sonra, başarıya giden yolda en önemli ekibin nokta güçlü tasarım yetkinliğidir. Tasarımların sağlamlığı ileride oluşabilecek potansiyel sorunları önlemede, çıkabilecek yeni talepleri karşılamada en önemli yardımcı olacaktır. Arkadaşlık ve bağlılık olan bir ekip ortamı oluşturulması da başarıya giden yolda bir diğer yardımcı olacaktır. Seçilen yazılım dilinin yeniden düzenlemeye (refactoring) elverişli olması da iyileştirme çalışmalarına dolayısıyla  başarıya katkı yapacaktır. Agresif teslim tarihleri bir noktaya kadar ekibi motive etse de ulaşılması imkansız hedeflerin yarattığı stres, hedeflenen süreyi kısaltmak yerine uzatmaktadır (McConnell 1996). Ulaşılabilir ama iddialı hedefler konulması da ekibi motive etmektedir. Herkese başarılı projeler, keyifli çalışmalar...

9 Şubat 2012 Perşembe

XP nedir?


XP (Extreme Programming) konusunda birçok yayın, kitap, makale vb. vardır, bir kısmını incelemiş olabilirsiniz. Hatta bunlar arasındaki nüans farklarını da görmüş olabilirsiniz. Genel olarak son yıllarda yurtdışında popülaritesi artan bu yaklaşım zamanla ülkemizde de öğrenilmeye ve kullanılmaya başlandı. XP’nin en temel özellikleri çevik ve hızlı olmasıdır. Diğer çevik yöntemler gibi Agile Manifesto’ya (agilemanifesto.org) bağlıdır. XP’den önemli bulduğum satır başları:
  • Müşteri Rolü’nün sorumlulukları: Kullanıcı hikayelerini (user story) yazmak, önceliklendirmek, test senaryolarını yazmak ve testi yapmak.
  • XP Koçu’nun sorumlulukları: Takım’ın XP pratiklerini uygulamasını takip sağlamak/takip etmek.
  • XP Proje Yöneticisi’nin sorumlulukları: Takıma liderlik yapmak, takımı şirketiçi bürokrasiden ve yönetimden gelecek baskılardan uzak tutmak.
  • Test Odaklı Geliştirme (Test Driven Development) uygulanır. Yazılımcıların birim testleri yazması ve uygulaması beklenir. Proje Yöneticisi, “bugün kaç test geçtin?” şeklinde sorularla gelişmeyi takip eder.
  • Yazılımcılar çiftler şeklinde çalışır. Aynı ekrana iki kişi bakar.
  • Zaman sınırlaması (time boxing) uygulanır. İterasyonların süreleri sınırlı ve bellidir, esnetilmez. Bu süreye sığan işler tamamlanır, diğerleri bir sonraki iterasyona bırakılır. Bu arada müşteri iterasyon dışında kalan işlerin sırasını değiştirebilir. Yeni iterasyonda en yüksek öncelikli olanlardan başlayarak, iterasyona sığacak kadar hikaye alınır ve çalışılır. İterasyona girmiş kullanıcı hikayesi üstünde değişiklik yapılamaz.
Değerleri:
  •  İletişim
  • Basitlik
  • Geri bildirim
  • Saygı
  • Cesaret
Değerlerin hakkını vermek gerekiyor, gerçekten iletişimin kuvvetli olduğu, mümkün olan en basit (uyduruk anlamında değil J gereksiz ayrıntıların olmadığı yalın olan) haliyle çözüm üretildiği, ekipiçi geri bildirimin çalıştığı (yapıcı ve öğretici olan geri bildirimler her zaman katkı yapar), saygının sağlandığı ve ekip üyelerinin cesaretlendirildiği bir ortamda çalışmak hem ekip üyelerinin daha verimli olmasını hem de daha mutlu çalışmalarını sağlar.
Eğer çağlayan modeliyle çalışıyorsanız ve kurum kültürünüz tam XP uygulamasına izin vermiyorsa bile XP’nin faydalı yönlerinden yararlanmak, alabileceklerinizi projenize uygulamak mümkündür. Proje yönetiminin bilimden çok bir sanat olduğunu ve her proje yöneticisinin kendine özgü bir yolu olduğunu unutmadan, XP’de kendi tarzınızı oluşturmaya katkı sağlayacak noktalar bulacaksınız.

7 Şubat 2012 Salı

Değer Akış Analizi


Değer Akış Analizi'ni (Value Stream Mapping) duymuş olanlar vardır. Esas itibariyle bir yalın üretim (lean manufacturing) tekniğidir. Üretilmesi hedeflenen ürün veya servisin hazırlanabilmesi için gereken kaynak ve bilgi akışının çizilmesi ve analiz edilmesine dayanır. Tüm üretim süreçlerinde kullanılabilir. Proje yönetimi de ürün veya hizmet ortaya çıkarmayı hedefleyen bir üretim süreci olduğu için bu alanda da kullanılmaya başlanmıştır. Üretime ait tüm süreçleri, bilgi ve kaynak girdilerini göstererek işe başlanır. Aşama aşama ve oklarla süreç simüle edilir. Hangi süreçte neler olduğu belirtilir, analiz aşamasında hangi potansiyel kayıpların (zaman, kaynak vb.) yaşandığı da belirlenir. Kayıplar ve üretim sürecine katkısı olmayan aşamalar, “kayıp” olarak değerlendirilir. Bu kayıpları ortaya çıkartmak ve azaltmak bu tekniğin temel prensipleridir. Kayıpların azaltılması hem üretim sürecini hızlandırır hem de maliyetin düşürülmesine katkı sağlar. Projenizde ürün veya hizmeti ortaya çıkaracağı temel süreçler bu teknik ile görsel hale getirip, kayıpların belirlenerek asgariye indirilmesi projenizde hem zaman planı hem de maliyet planına uyma konusunda önemli katkılar sağlayacaktır.
Bu teknik için kalem ve kağıt yeterlidir. Ama araç olmadan yapamayanlardansanız, bazı yazılım paketleri de kullanılabilir: Visio, Dia vb. Yeni makalelerde görüşmek üzere.

5 Şubat 2012 Pazar

Konuşma, Dinleme ve Proje Yönetimi


Proje yönetiminin önemli bir kısmının iletişim yönetimi olduğunu, dolayısıyla etkili konuşma ve dinlemenin proje yönetimine çok önemli katkıları olacağını her zaman hatırlamak gerekir.
Konuşmada verilen mesajın öncelikle beden diliyle, ikinci sırada ses tonuyla ve son sırada sözlediklerinizle aktarıldığını duymuş olabilirsiniz. Beden dilinizi etkili kullanabilmek, ses tonunuza hakim olmak sözlediklerinizin etkisini ve anlamanı karşı tarafa doğru iletmeniz için çok önemlidir. Proje yöneticilerinin dikkat etmesi gereken bir diğer konuşma kuralı da ilk konuşan olmamak, hep konuşan olmamaktır. Karşınızdaki insanların görüşlerini öncelikle açıklamasına izin vermek, konuşmadan önce dinlemek hem karşınızdakinin diyaloğa dahil olmasını sağlar, hem de konuşmanızı karşınızdakinin görüşlerine göre revize etme imkanı kazanma anlamına gelir. Hep konuşan karşısındakine fırsat vermeyen insanlarla kimse konuşmak istemez, proje yöneticilerinin konuştuklarından daha fazla dinleyen konumunda olması bu açıdan önemlidir. Proje ekibinin ve paydaşlarının görüşlerini açıklamalarına imkan tanımak projelerdeki sorun ve risklerin ortaya çıkması, beklentilerin netleştirilmesi ve projenin sağlığı açısından önemlidir.
Dinlemenin ne kadar önemli olduğu açıktır. Bu konuda birçok bilimsel çalışma yapılmış olmakla beraber Dinlemenin Seviyeleri (Whitworth, 2007) çalışması dinlemeyi 3 seviyede tanımlar:

  • İçsel Dinleme (Seviye 1): Dinleyenin “karşıdakinin anlattığı konu bende hangi düşünceye karşılık geliyor”, “bu konu beni nasıl etkiler” arka plan düşünceleriyle yaklaştığı ve kendi “kişisel lensi” ile dinlediği seviyedir. En az etkili dinleme seviyesidir. Karşıdakinin ne anlatmaya çalıştığı yakalanamaz, gerçek anlamda iletişim yoktur.
  • Odaklanmış Dinleme (Seviye 2): “Kişisel lens” in olmadığı, karşıdakinin ne söylediğine odaklanmış dinlemedir. Konuşan ve dinleyen arasında bir iletişimin kurulduğu seviyedir. 
  • Genel Dinleme (Seviye 3): Dinleyenin Seviye 2’ye ek olarak ortamdaki tüm sinyalleri (konuşanın mimikleri, beden dili, ses tonu, diğer dinleyicilerin davranışları, ortam ısısı, ortamdaki nesneler vb.) aldığı seviyedir. En etkili dinleme şekli olup, geçek anlamda odaklanma gerektirir ve verilen mesajların tamamına yakınının yakalanmasının önünü açar.
Konuşma ve dinleme projedeki iletişim yönetiminin temelini oluşturur. Tüm sektörlerdeki tüm proje çeşitlerinde geçerli ve önemlidir.

4 Şubat 2012 Cumartesi

Duygusal Zeka ve Proje Yönetimi


Duygusal Zeka (Emotional Intelligence), duygularınız ortaya çıktığında onları fark etme, ne olduğunu anlama ve en iyi nasıl kullanacağına karar verebilme yetisidir. Duygusal Zeka’sı yüksek olan insanlar duygusal insanlar değildir, duygularını fark edip kullanabilen insanlardır. Proje yönetiminin önemli bir kısmı iletişim (kimi kaynaklara göre proje yöneticisi, zamanının %90’ını iletişimle geçirir ) olduğu için, Duygusal Zeka ayrı bir önem kazanmaktadır. Kurulan iletişimlerde sonuç alabilmek için duygularınızın farkına varmak ve bunları kullanabilmek çok değerli bir avantaj sağlamaktadır. Proje ekibiyle veya projenin diğer paydaşlarıyla yapılan toplantılarda bu avantaj oldukça işe yarayacaktır. Örneğin kızacağınız bir durumla karşılaştınız ve kızdınız, normalde beklenen karşı tarafa kızdığınızı belli eden (bağırmak, saldırgan cümleler kurmak vb.) şekilde tepki vermenizdir. Eğer kızdığınızı tepkinizi vermeden önce fark edersiniz, kızgınlığınızı belli etmek yerine karşı tarafın beklemeyeceği bir tepki vererek karşı tarafı şaşırtma ve iletişimi yönlendirme şansınız olur. Duygusal Zeka’sı yüksek insanlar iyi iletişim kurarlar ve iletişimi yönlendirmeyi ve yönetebilmeyi başarabilirler. 

3 Şubat 2012 Cuma

Kaçan Hatalar


Kaçan Hatalar (Escaped Defects), müşteri tarafından üretim ortamında tespit edilen hatalardır. Proje sürecindeki tüm kalite kontrol adımlarından kaçan ve müşteriye sunulan son üründe tespit edilen bu hatalar, maliyeti en yüksek olan hatalardır. Hata, ne kadar erken fark edilirse o kadar az maliyetle düzeltilir temel prensibiyle, kaçan hatalar aslında istenmeyen hatalardır. Proje kapsamında müşteriye sunulan her bir üründe çıkan hatalar ürün başına listelenir ve istatiksel olarak değerlendirebilir. Müşteri için hazırlanan başka talepler olması halinde kaçan hatalar da öncelikli olarak değerlendirilmeli ve müşteriye sunulan ürün paketleri içinde planlanarak en kısa sürede düzeltmeleri yapılmalıdır. 
Hatanın kaçmasına sebep olan durumlar ve kalite kontrol adımlarının iyileştirilmesi bu yolla yapılır. Ayrıca Kaçan Hata sayıları projelerin izlendiği metriklerden birisi olarak da kullanılabilir. Müşterinin tolere edebildiği seviyenin üzerine çıkmasına izin verilmemeli, devamlı azalan bir trend izlemesi için önlemler alınmalıdır.

1 Şubat 2012 Çarşamba

Devir Süresi


Devir Süresi (Cycle Time) ürün özelliklerini verdikten sonra ürünün teslimine kadar geçen süredir.  Bu sürenin kısalması verimliliğin ve üretkenliğin arttığını gösterir. Otomotiv gibi oturmuş endüstrilerde, bir arabanın siparişi verildikten kaç gün sonra teslim edilebileceği net olarak söylenebilir. Yazılım geliştirme projelerinde ise devir süresi uzundur ki bazen yılları alabilir ve müşterinin bu sürede fikrini değiştirme veya üründen vazgeçme ihtimali de artmaktadır. Çevik yöntemlerle yazılım geliştiren projelerde ise bu süre haftalar mertebesine inmektedir. Bu da müşterinin memnuniyetini artıran önemli bir unsurdur. Devir süresini projelerde ölçmek ve yapılabilecek iyileştirmeleri tespit ederek bu sürenin azaltılmasını sağlamak hem maliyet azaltıcı hem de müşteri memnuniyeti artırıcı getirileri olan önemli bir çalışmadır.

Risk Bazlı Başak


Risk Bazlı Başak (Risk Based Spike) proje ekibinin bilgi sahibi olmadığı, bir işin karmaşıklığını anlamak ve yapılabilirliğini görmek amacıyla kullanılan bir yaklaşımdır. Bu yaklaşımın temeli, bilinmeyen veya riskli olan konuyu diğer etkenlerden izole ederek ve küçük boyutta yaparak veya deneyerek görmeye dayanır. Bilinmeyen konular hakkında konuşmak ve fikir yürütmek yerine onun basit halini yapmak ve gerçeği görmenin daha etkin olacağı düşüncesinden yola çıkmıştır. Teknik araştırma veya soruya yanıt bulmak amacıyla yapılan bir deney olarak da düşünülebilir. Ekibin yeni bir teknoloji veya ürünle tanışmasını sağlamak, büyük bir işin küçük ölçeklisini görmek, teknik riskleri görmek, fonksiyonel davranışı incelemek amaçlarıyla kullanılır. Çevik yazılım projelerinde popüler olmasına rağmen tüm projelerde kullanılabilir.