SEN2022 · 3. hafta · Project Management, Scope Definition

Proje yönetimi ve kapsam: function point, timeboxing, WBS

Proje büyüklüğünü function point ile tahmin etme, efor ve süreye çevirme, kapsam kayması ve timeboxing. Vizede adım adım function point hesabı sık çıkar.

project managementproject managertrade-offs (size, time, cost)function pointTUFP (total unadjusted function points)adjusted processing complexity (APC)person-monthindustry standards estimationscope creeptimeboxingwork breakdown structure (WBS)work planstaffing planrisk assessment

Planlama evresinde fizibilite “yapalım” dedikten sonra proje yöneticisi (project manager) devreye girer. Sorusu: “Bu iş ne kadar büyük, kaç kişi, kaç ay?” Bu haftanın sınav kalbi function point hesabıdır: bileşenleri say, ağırlıklandır, karmaşıklıkla düzelt, satır sayısına, efora ve süreye çevir. Yanına kapsam kayması (scope creep), timeboxing ve WBS tanımları gelir.

Altın kurallar:

  1. Size, time, cost üçlüsü. Biri değişirse en az biri daha değişir.
  2. Function point dört adım: TUFP → APC → AFP → efor ve süre.
  3. Ağırlık tablosunu ezberle ya da sınavda verilmişse doğru satırı kullan.
  4. Kapsam yazılı değişir. Değişiklik isteği belge ile gelir, etkisi hesaplanır.

Proje yönetimi nedir?

Proje yönetimi (project management), sistemi istenen zamanda, bütçede ve kalitede teslim etmek için planlama, organize etme, izleme ve kontrol etme işidir. Proje yöneticisinin dört ana işi:

  1. Proje büyüklüğünü tahmin etmek (size, effort, time).
  2. İş planı oluşturmak (work plan: görevler, süreler, bağımlılıklar).
  3. Ekip planı yapmak (staffing plan: kaç kişi, hangi rol, raporlama yapısı, motivasyon).
  4. Projeyi koordine etmek ve kontrol etmek (CASE araçları, standartlar, belgeleme, risk yönetimi, kapsam yönetimi).

Bu dört iş size, time ve cost arasındaki dengeyle yapılır. Patron “sistemi 3 ayda istiyoruz” derse, proje yöneticisi ya kapsamı daraltmayı ya da bütçeyi büyütmeyi önermek zorundadır.

Tahmin yöntemi 1: endüstri standartları

En basit yöntem: benzer projelerde evrelerin toplam eforun yüzde kaçını aldığına bak. Sık kullanılan bir oran tablosu:

EvrePay
Planning%15
Analysis%20
Design%35
Implementation%30

Planlama bitince gerçek planlama eforunu bilirsin, gerisini oranla tahmin edersin. Planlama 3 person-month sürdüyse toplam 3 / 0.15 = 20 person-month: analiz 4, tasarım 7, implementation 6. Hızlı ama kaba bir yöntemdir.

Tahmin yöntemi 2: function point

Function point, sistemin büyüklüğünü kullanıcının gördüğü işlevlerden ölçer, satır sayısından değil. Programlama dilinden bağımsızdır.

Beş bileşen

BileşenKısaltmaAnlamıÖrnek (yemek sipariş uygulaması)
External inputEISisteme veri giren ekran/formSipariş ver, adres ekle
External outputEOHesaplanmış çıktı, raporGünlük satış raporu, fatura
External inquiryEQHesap yapmadan veri getiren sorguSipariş durumunu sorgula
Internal logical fileILFSistemin kendi tuttuğu veri grubuMüşteri, Sipariş, Menü tabloları
External interface fileEIFBaşka sistemin tuttuğu, okunan veriÖdeme sağlayıcısının işlem kaydı

EI, EO, EQ işlemlerdir; ILF ve EIF dosyalardır (veri grupları).

TUZAK · EO ile EQ. İkisi de veriyi kullanıcıya gösterir. Fark: EO bir hesap içerir (toplam, ortalama, rapor). EQ sadece kayıtlı veriyi getirir. “Sipariş durumunu göster” EQ, “aylık ciro raporu” EO.

Ağırlıklar

Her bileşen düşük (low), orta (average), yüksek (high) karmaşıklıkta sayılır:

BileşenLowAverageHigh
EI346
EO457
EQ346
ILF71015
EIF5710

Adımlar

  1. TUFP (total unadjusted function points): her hücrede sayı × ağırlık, hepsini topla.
  2. PC (processing complexity): 14 genel sistem özelliğini (veri iletişimi, dağıtık işlem, performans, online veri girişi, kullanım kolaylığı, yeniden kullanılabilirlik vb.) 0-5 arası puanla, topla. PC 0 ile 70 arası.
  3. APC (adjusted processing complexity): APC=0.65+0.01×PCAPC = 0.65 + 0.01 \times PC.
  4. AFP (adjusted function points): AFP=TUFP×APCAFP = TUFP \times APC.
  5. LOC: AFP × dile özgü “function point başına satır” sayısı.
  6. Efor (person-month): efor=1.4×KLOC\text{efor} = 1.4 \times \text{KLOC} (KLOC = bin satır).
  7. Süre (ay): su¨re=3.0×efor1/3\text{süre} = 3.0 \times \text{efor}^{1/3}.

Çözümlü örnek: KampüsYemek

Üniversite içinde kafeteryalardan sipariş verilen bir uygulama. Analist şu sayımları çıkardı:

BileşenLowAvgHigh
EI642
EO321
EQ420
ILF231
EIF110

Adım 1: TUFP.

EI : 6x3 + 4x4 + 2x6   = 18+16+12 = 46
EO : 3x4 + 2x5 + 1x7   = 12+10+7  = 29
EQ : 4x3 + 2x4 + 0x6   = 12+8+0   = 20
ILF: 2x7 + 3x10 + 1x15 = 14+30+15 = 59
EIF: 1x5 + 1x7 + 0x10  = 5+7+0    = 12
                          TUFP    = 166

Adım 2-3: APC. 14 faktörün puanları toplandı: PC = 32.

APC = 0.65 + 0.01 x 32 = 0.97

Adım 4: AFP.

AFP = 166 x 0.97 = 161.02

Adım 5: LOC. Uygulama Java ile yazılacak, ekip geçmiş projelerde function point başına 60 satır ölçmüş:

LOC = 161.02 x 60 = 9,661 satır  (9.661 KLOC)

Adım 6: Efor.

efor = 1.4 x 9.661 = 13.53 person-month

Adım 7: Süre ve ekip.

süre = 3.0 x 13.53^(1/3) = 3.0 x 2.383 = 7.15 ay
ekip ≈ 13.53 / 7.15 = 1.89 → yaklaşık 2 kişi

Yorum: 2 kişilik bir ekip bu uygulamayı yaklaşık 7 ayda bitirir. Yönetim 4 ay isterse proje yöneticisi kapsamı daraltmayı (örneğin EIF’i, yani dış ödeme entegrasyonunu sonraki sürüme bırakmayı) ya da timeboxing’i önerir. Sadece kişi eklemek süreyi aynı oranda kısaltmaz.

İPUCU · küp kök. Hesap makinesinde x1/3x^{1/3} için x ^ (1/3) yaz. Parantezi unutursan x^1 / 3 hesaplanır.

İş planı ve WBS

İş planı (work plan), projenin bütün görevlerini, sürelerini, sorumlularını ve bağımlılıklarını gösteren dinamik bir takvimdir. Temeli work breakdown structure (WBS): projeyi hiyerarşik olarak küçük görevlere bölmek.

1 KampüsYemek
  1.1 Planning
      1.1.1 System request
      1.1.2 Fizibilite
  1.2 Analysis
      1.2.1 Kafeterya görüşmeleri
      1.2.2 Use case modeli
  1.3 Design
      1.3.1 Veritabanı tasarımı
      1.3.2 Arayüz taslakları
  1.4 Implementation
      1.4.1 Kodlama
      1.4.2 Test

WBS iki şekilde kurulabilir: SDLC evrelerine göre (yukarıdaki gibi) ya da ürünlere göre (sipariş modülü, ödeme modülü, raporlama modülü). Her en alt görev için: süre tahmini, sorumlu kişi, bağımlılıklar, çıktı. Bir görev bir raporlama döneminden uzun sürüyorsa daha da bölünür. WBS’den sonra Gantt ve PERT gibi araçlarla takvim çizilir (4. hafta).

Kapsam yönetimi

Scope creep

Kapsam kayması (scope creep), proje başladıktan sonra gereksinimlerin plansızca büyümesidir. “Şunu da eklesek, küçük bir şey” cümlesi en tehlikeli cümledir. Tasarım veya kodlama sırasında eklenen bir özellik analiz sırasında eklenenden kat kat pahalıdır.

Kontrol yolları:

  • Gereksinimleri erken ve eksiksiz topla (JAD, prototip).
  • Gereksinimleri yazılı hale getir ve onaylat.
  • Değişiklikleri change request ile al: kim istedi, neden, süreye ve maliyete etkisi, onay.
  • Onaylanmayan ya da düşük öncelikli istekleri sonraki sürüme ertele.

Timeboxing

Timeboxing’de teslim tarihi sabitlenir, işlevsellik esnetilir:

  1. Teslim tarihini belirle ve dondur.
  2. Gereksinimleri önceliklendir.
  3. En önemli çekirdek özellikleri yap.
  4. Tarih gelince ne bitmişse teslim et (kaliteden ödün vermeden).
  5. Kalan özellikleri sonraki “timebox”a taşı.

Agile’daki sprint de bir timebox’tır.

Ekip ve risk

Staffing plan: Eforu süreye bölerek ortalama ekip büyüklüğü bulunur. Ekip büyüdükçe iletişim kanalları n(n−1)/2n(n-1)/2 ile artar: 4 kişide 6, 8 kişide 28 kanal. Bu yüzden büyük ekipler alt gruplara bölünür ve bir raporlama yapısı (reporting structure) kurulur.

Risk assessment: Her risk için olasılık, etki ve azaltma planı yazılır. Örnek: “Ödeme sağlayıcısı API’si değişebilir; olasılık orta, etki yüksek; adaptör katmanı yaz.”

Standartlar ve belgeleme: Belgeleme standartları, kodlama standartları, değişiklik istek formları projeyi tutarlı tutar. Proje defteri (project binder) bütün çıktıları saklar.

Sık yapılan hatalar

Yanlış düşünceDoğrusu
APC = 0.65 × PCAPC = 0.65 + 0.01 × PC
PC en fazla 1414 faktör × 5 puan = en fazla 70
EO ve EQ aynı şeyEO hesap içerir, EQ sadece getirir
ILF = her ekranILF sistemin tuttuğu veri grubudur (tablo kümesi)
Efor = AFP × 1.4Efor = 1.4 × KLOC; önce satır sayısına çevir
Süre = efor / 3Süre = 3.0 × efor üzeri 1/3 (küp kök)
Timeboxing’de kalite esnerKapsam esner, kalite ve tarih sabit
Geç projeye adam ekleİletişim yükü artar, daha da gecikir

Kendini test et

Sınavdaki gibi İngilizce sorular. Önce kâğıt kalemle çöz, sonra cevabı aç.

Soru 1kolay

What are the three trade-offs a project manager balances?

Cevabı göster
Size (scope), time, and cost

Proje büyüklüğü, süre ve maliyet birbirine bağlıdır. Kapsam büyürse ya süre ya maliyet (ya da ikisi) artar. Süre kısaltılmak istenirse ya kapsam küçülür ya daha çok kaynak (para) gerekir. Kaliteyi sabit tutarak üçünü birden iyileştiremezsin.

Soru 2kolay

A system has 5 average external inputs, 3 high-complexity external outputs and 2 average internal logical files. What is its TUFP? (Weights: EI avg 4; EO high 7; ILF avg 10.)

Cevabı göster
61

5 × 4 = 20, 3 × 7 = 21, 2 × 10 = 20. Toplam 20 + 21 + 20 = 61 unadjusted function point.

Soru 3orta

A system has TUFP = 200. The sum of the 14 processing complexity ratings (PC) is 45. What is the adjusted function point count?

Cevabı göster
220

APC=0.65+0.01×45=1.10APC = 0.65 + 0.01 \times 45 = 1.10. AFP=TUFP×APC=200×1.10=220AFP = TUFP \times APC = 200 \times 1.10 = 220.

Soru 4orta

Each of the 14 processing complexity factors is rated 0 to 5. What are the minimum and maximum possible values of APC?

Cevabı göster
0.65 and 1.35

PC en az 0 (hepsi 0), en çok 14 × 5 = 70. APC = 0.65 + 0.01 × PC, yani 0.65 ile 1.35 arası. Karmaşıklık ayarı TUFP'yi en fazla %35 azaltır ya da %35 artırır.

Soru 5kolay

If all 14 complexity factors are rated 3 (average), what is APC?

Cevabı göster
1.07

PC = 14 × 3 = 42. APC = 0.65 + 0.42 = 1.07.

Soru 6zor

A system is estimated at 150 adjusted function points and the language averages 50 lines of code per function point. Using effort = 1.4 × KLOC and schedule = 3.0 × effort^(1/3), find the effort and the schedule.

Cevabı göster
Effort 10.5 person-months, schedule ≈ 6.57 months

LOC = 150 × 50 = 7,500 → 7.5 KLOC. Efor = 1.4 × 7.5 = 10.5 person-month. Süre = 3.0×10.51/3=3.0×2.190=6.573.0 \times 10.5^{1/3} = 3.0 \times 2.190 = 6.57 ay. Ortalama ekip ≈ 10.5 / 6.57 ≈ 1.6 kişi.

Soru 7orta

A project of 20,000 lines of code: what is the estimated effort and schedule with the same formulas?

Cevabı göster
28 person-months, ≈ 9.11 months

20,000 LOC = 20 KLOC. Efor = 1.4 × 20 = 28 person-month. Süre = 3.0×281/3=3.0×3.037=9.113.0 \times 28^{1/3} = 3.0 \times 3.037 = 9.11 ay.

Soru 8orta

Using the industry-standard ratios planning 15%, analysis 20%, design 35%, implementation 30%: planning took 3 person-months. Estimate the design effort.

Cevabı göster
7 person-months

Planlama toplamın %15'i: toplam = 3 / 0.15 = 20 person-month. Tasarım = 20 × 0.35 = 7. (Analiz 4, implementation 6.)

Soru 9orta

What is scope creep and name one way to control it.

Cevabı göster
Uncontrolled growth of requirements after the project starts; control it with a formal change-request process (or defer extras to a later version).

Scope creep, proje başladıktan sonra yeni özelliklerin plansızca eklenmesidir. En pahalı hali tasarım ya da kodlama sırasında gelen değişikliklerdir. Kontrol: gereksinimleri erken netleştir, değişikliği yazılı change request ile al, etkisini (süre, maliyet) hesapla, onaylanmayanları sonraki sürüme bırak.

Soru 10kolay

Which statement describes timeboxing?

  1. Adding people to a late project
  2. Fixing the delivery date and reducing functionality if needed
  3. Estimating effort from lines of code
  4. Drawing tasks as boxes in a network diagram
Cevabı göster
B) Fixing the delivery date and reducing functionality if needed

Timeboxing'de teslim tarihi sabittir. Önce en önemli gereksinimler yapılır, yetişmeyen düşük öncelikli özellikler sonraki sürüme kalır. Kalite düşürülmez, kapsam esnetilir.

Soru 11zor

In a work breakdown structure, what is a task that cannot be broken down further usually called, and what should it have?

Cevabı göster
A work package (lowest-level task); it should have a duration, an owner (person) and a deliverable.

WBS projeyi hiyerarşik olarak görevlere böler. En alt seviyedeki görevler (work package) atanabilir, tahmin edilebilir ve ölçülebilir olmalıdır: süre, sorumlu, bağımlılık, çıktı. Kural: bir görev raporlama döneminden (ör. 1-2 hafta) uzunsa böl.

Soru 12zor

Adding more people to a late software project usually does what, and why?

Cevabı göster
Makes it later, because new members need training and communication overhead grows.

Brooks yasası: geç kalmış projeye insan eklemek onu daha da geciktirir. Yeni kişiler öğrenme süresi ister, eski ekip onları eğitmekle uğraşır, iletişim kanalı sayısı n(n-1)/2 ile büyür. 5 kişide 10 kanal, 10 kişide 45 kanal.

Doğrulama: Bütün function point, APC, LOC, efor ve süre değerleri node ile hesaplandı (verify/SEN2022/03.mjs, ağırlık tablosu lib.mjs). Efor ve süre için kullanılan formüller (efor = 1.4 x KLOC, süre = 3.0 x efor^(1/3)) ve APC = 0.65 + 0.01 x PC sayfada açıkça verildi. Kavramsal sorular standart tanımlarla karşılaştırıldı.

Deftere not kartı

Üçlü denge: size - time - cost (biri değişince diğerleri etkilenir) Tahmin yöntemleri: industry standards (yüzdeler), function point Standart oranlar: planning %15, analysis %20, design %35, implementation %30 FP bileşenleri: EI, EO, EQ (işlemler), ILF, EIF (dosyalar) Ağırlık (low/avg/high): EI 3/4/6 EO 4/5/7 EQ 3/4/6 ILF 7/10/15 EIF 5/7/10 TUFP = sum(sayı x ağırlık) APC = 0.65 + 0.01 x PC (PC = 14 faktör, 0-5 puan; APC 0.65..1.35) AFP = TUFP x APC LOC = AFP x (dile göre satır/FP) Efor (person-month) = 1.4 x KLOC Süre (ay) = 3.0 x efor^(1/3) ekip ≈ efor / süre Scope creep: plansız gereksinim artışı → change request süreci Timeboxing: tarih sabit, kapsam esnek, kalite sabit WBS: hiyerarşik görev listesi; en alt görev: süre + sorumlu + çıktı