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.
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:
- Size, time, cost üçlüsü. Biri değişirse en az biri daha değişir.
- Function point dört adım: TUFP → APC → AFP → efor ve süre.
- Ağırlık tablosunu ezberle ya da sınavda verilmişse doğru satırı kullan.
- 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:
- Proje büyüklüğünü tahmin etmek (size, effort, time).
- İş planı oluşturmak (work plan: görevler, süreler, bağımlılıklar).
- Ekip planı yapmak (staffing plan: kaç kişi, hangi rol, raporlama yapısı, motivasyon).
- 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:
| Evre | Pay |
|---|---|
| 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şen | Kısaltma | Anlamı | Örnek (yemek sipariş uygulaması) |
|---|---|---|---|
| External input | EI | Sisteme veri giren ekran/form | Sipariş ver, adres ekle |
| External output | EO | Hesaplanmış çıktı, rapor | Günlük satış raporu, fatura |
| External inquiry | EQ | Hesap yapmadan veri getiren sorgu | Sipariş durumunu sorgula |
| Internal logical file | ILF | Sistemin kendi tuttuğu veri grubu | Müşteri, Sipariş, Menü tabloları |
| External interface file | EIF | Baş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şen | Low | Average | High |
|---|---|---|---|
| EI | 3 | 4 | 6 |
| EO | 4 | 5 | 7 |
| EQ | 3 | 4 | 6 |
| ILF | 7 | 10 | 15 |
| EIF | 5 | 7 | 10 |
Adımlar
- TUFP (total unadjusted function points): her hücrede sayı × ağırlık, hepsini topla.
- 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ı.
- APC (adjusted processing complexity): .
- AFP (adjusted function points): .
- LOC: AFP × dile özgü “function point başına satır” sayısı.
- Efor (person-month): (KLOC = bin satır).
- Süre (ay): .
Çözümlü örnek: KampüsYemek
Üniversite içinde kafeteryalardan sipariş verilen bir uygulama. Analist şu sayımları çıkardı:
| Bileşen | Low | Avg | High |
|---|---|---|---|
| EI | 6 | 4 | 2 |
| EO | 3 | 2 | 1 |
| EQ | 4 | 2 | 0 |
| ILF | 2 | 3 | 1 |
| EIF | 1 | 1 | 0 |
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 için
x ^ (1/3)yaz. Parantezi unutursanx^1 / 3hesaplanı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:
- Teslim tarihini belirle ve dondur.
- Gereksinimleri önceliklendir.
- En önemli çekirdek özellikleri yap.
- Tarih gelince ne bitmişse teslim et (kaliteden ödün vermeden).
- 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ı 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üşünce | Doğrusu |
|---|---|
| APC = 0.65 × PC | APC = 0.65 + 0.01 × PC |
| PC en fazla 14 | 14 faktör × 5 puan = en fazla 70 |
| EO ve EQ aynı şey | EO hesap içerir, EQ sadece getirir |
| ILF = her ekran | ILF sistemin tuttuğu veri grubudur (tablo kümesi) |
| Efor = AFP × 1.4 | Efor = 1.4 × KLOC; önce satır sayısına çevir |
| Süre = efor / 3 | Süre = 3.0 × efor üzeri 1/3 (küp kök) |
| Timeboxing’de kalite esner | Kapsam 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ç.
What are the three trade-offs a project manager balances?
Cevabı göster
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.
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
5 × 4 = 20, 3 × 7 = 21, 2 × 10 = 20. Toplam 20 + 21 + 20 = 61 unadjusted function point.
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
. .
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
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.
If all 14 complexity factors are rated 3 (average), what is APC?
Cevabı göster
PC = 14 × 3 = 42. APC = 0.65 + 0.42 = 1.07.
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
LOC = 150 × 50 = 7,500 → 7.5 KLOC. Efor = 1.4 × 7.5 = 10.5 person-month. Süre = ay. Ortalama ekip ≈ 10.5 / 6.57 ≈ 1.6 kişi.
A project of 20,000 lines of code: what is the estimated effort and schedule with the same formulas?
Cevabı göster
20,000 LOC = 20 KLOC. Efor = 1.4 × 20 = 28 person-month. Süre = ay.
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
Planlama toplamın %15'i: toplam = 3 / 0.15 = 20 person-month. Tasarım = 20 × 0.35 = 7. (Analiz 4, implementation 6.)
What is scope creep and name one way to control it.
Cevabı göster
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.
Which statement describes timeboxing?
- Adding people to a late project
- Fixing the delivery date and reducing functionality if needed
- Estimating effort from lines of code
- Drawing tasks as boxes in a network diagram
Cevabı göster
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.
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
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.
Adding more people to a late software project usually does what, and why?
Cevabı göster
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ı.