Proje yönetiminde PERT, CPM ve İndirgeme (Crashing)

Yazan: Şadi Evren ŞEKER

PERT (Program Evaluation and Review Technique) diyagramları ve CPM (Critical Path Method) proje yönetimi için kullanılan ve projedeki işlerin sırası, verimliliği, önemi veya aralarında problem olan işlerin ve bu problemlerin etkileri gibi kritik bilgilerin gözlemlenmesi için kullanılan yöntemlerdir. Basitçe bir projedeki işler ve bu işlerin sürelerinin çıkarılması ile işe başlanır. Ardında projedeki işlerin hangi işlere bağlı olduğu bulunur ve sonrasında PERT diyagramı çizilebilir. CPM ise PERT diyagramları üzerinde kullanılan bir yöntemdir.

Konunun daha iyi anlaşılabilmesi için bir örnek üzerinden PERT diyagramının nasıl çizildiğini gösterelim. Öncelikle işleri ve öncesinde bitmesi gereken işleri örnek olarak verelim. Burada işler için A, B gibi harfler kullanılmıştır ancak gerçek hayatta bu işler yönetilen projenin alt işleri olarak düşünülebilir. Örneğin bir yazılım projesindeki müşteri görüşmeleri, projenin fonksiyonel özelliklerinin yazıldığı adımlar veya testler gibi projede yer alan işlemler düşünülebilir. Buradaki öncelikler veya işlemlerin süreleri genelde uzmanlar tarafından belirlenir. İşlem sürelerinin belirlenmesi çoğu projede problem olabilmektedir. Bunun için farklı yöntemler kullanılabilir. Örneğin Scrum Poker veya Delphi Metodu gibi tahmin yöntemleri kullanılabileceği gibi işlerin kestirilmesinin zor olduğu durumlarda daha alt işlere bölünmesi veya benzer işlerin sürelerinin kullanılması gibi yaklaşımlar da uygulanabilir.

pert_cpm1

Yukarıdaki işlem ve öncelik listemizden artık bir PERT diyagramı oluşturmamız mümkün.

pert_cpm2

PERT diyagramı, şekilde de görüldüğü üzere proje adımlarının düğümlere (node) yazılı olduğu bir diyagramdır. Ancak bazı kaynaklarda aynı diyagramın proje adımları kenarlara (edges) yazılı olarak da çizildiği görülebilir. Burada işlemlerin düğümde (activity on node AON) veya işlemlerin kenarda (activity on edge AOE) olarak tutulmasına göre iki yaklaşımdan bahsetmek mümkündür.

Aşağıda, farklı durumlar için düğümlerde olan işlemlerin nasıl kenarlarda gösterildiği (veya tam tersi) şekiller ile açıklanmıştır.

pert_cpm3

pert_cpm4

pert_cpm5

Dolayısıyla, yukarıda çizmiş olduğumuz PERT diyagramının işlemlerini kenarlara aldığımız zaman aşağıdaki şekilde de çizilebilir.

pert_cpm6

PERT diyagramı çizildikten sonra her düğüm için (her işlem için) en erken başlama, en erken bitme, en geç başlama ve en geç bitme durumlarını hesaplayarak işlemlerin dizilimi üzerindeki kritik yolu bulmaya çalışacağız. Bu yol daha sonra işlemler için farklı yorumlar yapmamızda yardımcı olacak. Öncelikle bu 4 değeri şekilde göstermek için düğümlere aşağıdaki gibi 5 farklı alan ekliyoruz:

pert_cpm7

Buna göre ilk çizdiğimiz PERT diyagramındaki her işlemin süresini düğüme yerleştirirsek aşağıdaki gibi bir şekil elde ederiz:

pert_cpm8

Şekilde her düğüm için kendinden önceki bitiş değeri başlangıç değeri olarak kabul edilmiştir. Örneğin E işi, C işinin bitmesinden sonra başlayabilmektedir. Bu yüzden E işinin başlangıç değeri C işinin bitiş değeri olan 4 olarak kabul edilmiş ve yine E işleminin süresi olan 4 değeri eklenerek 4+4 = 8 olarak E işinin bitiş süresi bulunmuştur. Bir iş, şayet birden fazla işin bitmesinden sonra başlayabiliyorsa, bu işlerin en son bitenini beklemek zorundadır. Örneğin D işi kendinden önce A ve B işlerinin bitmesini gerektirmektedir. Bu durumda A işi 2 ve B işi 3 zaman sonra bittiğinden D işinin en erken başlama süresi bu iki değerden yüksek olan 3’tür.

Sonuçta en son işlem olan H işinin en erken bitiş süresi 15 olarak bulunmuştur. Diğer bir deyişle işlerimizin sıralandığı ilk tablodaki bütün işler toplandığında 25 değerine sahip bir iş listesi varken, şu anda bu işlerin doğru sıralama ve paralel ilerleme ile 15 zamanda biteceğini biliyoruz.

Artık CPM hesaplamasının ikinci aşamasına geçebilir ve en geç başlama ve en geç bitiş değerlerini de hesaplayarak diyagrama ekleyebiliriz. Burada işlemi sondan başa doğru ilerletiyoruz:

pert_cpm9

Örneğin en son düğüm olan H işleminin bitişinin 15 ve başlangıcının 13 olduğunu biliyoruz ancak bu düğümün öncesinde gelen F ve G düğümleri H düğümünün en erken 13. zamanda başlayacağı göz önüne alınırsa en geç 13. zamanda bitmelidir. Bu durum G düğümü için sorun teşkil etmez çünkü G düğümü zaten 13. zamanda bitecekti ancak F düğümü 7. Zamanda bitebilecekken artık 7. zamanda bitmesinin bir anlamı yoktur çünkü kendisinden sonra gelen H düğümü ancak 13. zamanda başlayabilecektir.

Basit bir analizle bu durum F düğümü için ayrılan kaynakların (insan gücü, makine vs.) en az 6 zaman boyunca israf olacağı olarak yorumlanabilir. İşlemin devamında F düğümü 3 birim zaman gerektirdiği için 13 – 3 = 10 ise F düğümünün “en geç başlama” zamanı olarak bulunur. Yani diğer bir deyişle F düğümü 4 yerine 10’da başlarsa ve işlem süresi olan 3 birim zaman boyunca yapılırsa sistemin toplam bitiş süresine bir gecikme yansımaz.

Sistemde gecikmeye sebep olan düğümler artık hesaplanabilir.

pert_cpm10

Görüldüğü üzere bazı işlemlerin sistemde gecikme (oyalanma) imkanı varken bazı işlemlerin gecikme şansı 0’dır. Diğer bir deyişle bu işlemlerdeki herhangi bir gecikme sistemin toplam zamanının gecikmesine sebep olmaktadır. Bu yüzden sıfır gecikme hakkına sahip işlemleri kritik yol üzerindeki işlemler olarak kabul edebiliriz.

Sistemdeki kritik yol üzerinde bulunan işlemler yine PERT diyagramı üzerinde aşağıdaki gibi gösterilebilir:

pert_cpm11

Süreçteki Değişkenlik

Bu aşamaya kadar PERT ve CPM kullanarak işlemlerin önceliğe göre akışını ve işlemlerin kritik olanlarını, en erken başlama, bitiş ve en geç başlama bitiş değerlerini bulduk. Buna göre işlemlerin her birinin iyi ihtimalle (en erken) ve en kötü ihtimalle (en geç) ne kadar zamanda biteceğini artık biliyoruz. Bu bilgiler ışığında istatistiksel bir analiz ile işin tahminen (ortalama) ne kadar zamanda biteceğini bulabiliriz. Burada basitçe bir istatistik dağılımdan faydalanacağız. İstatistiksel dağılımlar, bir olay gerçekleşmeden önce yaşanabilecekler hakkında tahmin yapmak için kullanılır. Olayların genel olarak en iyi, en kötü veya ortalama durumlarda bitmesi ihtimalleri hesaplandığında genelde Beta Dağılımına benzer bir durum elde edilir. Bu dağılım aşağıdaki şekilde görselleştirilebilir:

pert_cpm15

Dağılımda görüleceği üzere bir eğri bulunmakta ve en sol tarafta en kötü durumların ne kadar sıklıkla gerçekleştiği, en sağ tarafta ise en iyi durumların ne kadar sıklıkla gerçekleştiği resmedilmiştir. Diğer bir deyişle, aslında olayların çok büyük bir kısmı ideal olan en iyi durum veya istenmeyen ve kaçınan en kötü durumda gerçekleşmek yerine daha sık olarak ortalama durumda gerçekleşmektedir. Bu dağılım 3 ihtimale, yani en hızlı, en yavaş ve ortalama olarak indirgenecek olursa, genelde en hızlı ve en yavaş ihtimaller birbirine yakın ve ortalama ihtimal ise diğer ihtimallerin 4 misli yüksek şansa sahiptir denilebilir. Bu istatistiksel bilgi kullanılarak aslında her işin gerçekleşme ihtimali aşağıdaki formülle hesaplanabilir

Beklenen zaman = (en iyi + 4 x ortalama + en kötü ) / 6

Yani basitçe ortalama değer alınmış olur. Ayrıca kullanacağımız dağılım beta dağılımı olduğu için, bu dağılımın varyans değerini de aşağıdaki şekilde hesaplayabiliriz:

Varyans = ((en iyi – en kötü ) / 6)2

Bu formüller kullanılarak her iş için aşağıdaki gibi bir hesap yapılabilir:

pert_cpm12

Yukarıdaki her iş için varyans hesabı yapıldıktan sonra projenin tamamının varyans ve standart sapması hesaplanabilir. (Standart sapma, varyansın karekökü olarak bulunur)

σ2= .11 + .11 + 1.00 + 1.78 + .11 = 3.11

ve karekökü

√σ2=   3.11 = 1.76 hafta olarak bulunur.

Artık projenin verilen bir tarihten önce bitme ihtimali hesaplanabilir. Örneğin projenin 16 haftadan önce bitme ihtimalini hesaplamak istiyor olalım. Bu durumda aşağıdaki formülü kullanacağız:

Z = (verilen tarih – beklenen tarih ) / 1.76

Z = (16 – 15) /1.76

Z = 0.57 , yani %57 ihtimalle 16 haftadan önce projenin biteceğini söyleyebiliriz.

Şimdiye kadar geldiğimiz noktanın bir özetini yapacak olursak, projenin en erken 15 haftada tamamlanmasını bekliyoruz. 16 haftalık bir süre verilirse projenin %57 ihtimalle bitmiş olmasını bekliyoruz. Elimizdeki işlerden A, C, E, G ve H işlerinin kritik yol üzerinde olduğunu ve B, D ve F işlerinin ise gecikme opsiyonları olduğunu biliyoruz.

Projenin İndirgenmesi (Crashing)

Yukarıdaki son adımda sayılan durum göz önüne alındığında, projenin süresinin kısaltılması için nasıl bir analiz yapılabilir? Sorusuna cevap arayacağız. Öncelikle bilinmeli ki her kazanımın bir maliyeti vardır. Yani projenin beklenen süreden daha kısa yapılması mümkünse bile bu bir maliyet olarak yansıyacaktır. Bu maliyetin doğrusal olması durumunda aşağıdaki şekilde hesaplanabileceğini söyleyebiliriz:

Zaman başına maliyet = (indirilmiş maliyet – normal maliyet ) / (normal zaman – indirilmiş zaman)

Aynı örnek üzerinden devam ederek, her işlemin örnek maliyeti ve işi hızlandırma (indirme) maliyetleri aşağıdaki tablodaki gibi olsun.

pert_cpm13

Bu tabloya göre aşağıdaki gibi bir indirme ve bunun karşılığında maliyet analizi ortaya çıkacaktır.

pert_cpm14

Bu analiz, proje yöneticisinin zaman / maliyet ikilemini doğru anlaması ve yönetebilmesi için önemlidir.

Kaynaklar

Bu yazı, Heizer/Render, "Operations Management", Pearson, Prentice Hall, 2008 kitabı 3. bölüm için ders notu niteliğinde hazırlanmış ve kitaptaki şekillerden ağırlıklı olarak faydalanılmıştır.

Leave a Reply

You must be logged in to post a comment.