Professional Documents
Culture Documents
Asdasdasd
Asdasdasd
YÖNETİMİ
Özkan SARI
Haziran 2013
http://www.javafun.net/
http://www.ozkansari.net/
http://bilgisayardunyam.blogspot.com/
Gündem
Proje Yönetimi Kavramları
Proje Yönetimi Süreç Adımları
Work Breakdown Structure
Kritik Yol
Gantt Diagramı
Proje Yönetimi Organizasyonları
Risk Yönetimi
Yazılım Proje Standartları
Yazılım Maliyet Tahmini
2
Proje Yönetimi Kavramları>>>
Proje planlama
Gereksinim analizi (gereksinim spesifikasyon
raporunun hazırlanması)
Tasarım (Yazılım mimarisi)
Gerçekleştirme
Test
3
Proje Yönetimi Kavramları>>>
4
Proje Yönetimi Kavramları>>>
Proje
Proje: Amacı, kapsamı, süresi ve bütçesi olan sürece proje denir.
- Amaç
- Kapsam
- Süre (Başlangıç-Bitiş zamanı)
- Kaynak & Bütçe
Proje tekildir.
Rutin işlerden oluşursa operasyonel olur. (Ör. Düzenli Fatura
basımı proje olmaz ama Faturaların Basılması İçin Bir Sistem
Geliştirme Proje olabilir.)
Proje Örnekleri: Marmaray, Cebit Fuarının düzenlenmesi vb..
5
Proje Yönetimi Kavramları>>>
Proje Yöneticisi
Proje yöneticisi ne yapar?
7
Proje Yönetimi Kavramları>>>
İletişimi kuvvetli,
Sabırlı,
Analitik,
Büyük resmi görebilmeli,
Vizyoner,
Lider,
Ekip yönetimi yapabilen,
Kriz yönetimi yapabilen,
Çözüm odaklı,
Teknik bilgi ve beceri sahibi
Motivasyon sağlama becerisi sahibi
Gerekli durumlarda üst yönetime karşı durabilmeli
Çalışanların arkasında durmalı
8
Proje Yönetimi Kavramları>>>
9
Proje Yönetimi Kavramları>>>
Proje Başarısı
Başarı unsurları: Süre, kaynak, hedef
Proje başarısı tüm takıma bağlıdır → Sadece Proje
yöneticisine değil
Proje yöneticilerinin yetkisiz sorumluluğu var → Proje
sahibi/sponsoru konumunda değil
Proje başarısı için iletişim önemli → Proje başarısı
başka projelere ya da departmanlara bağlı olabilir
Proje bazlı işe alımlarda Proje yöneticisi güçlü
konumda; ama varolan kaynaklar kullanıldığında
sıkıntılar olabiliyor → Mevcut kaynakları yönetmeli
10
Proje Yönetimi Kavramları>>>
Toplantılar
Toplantı ne zaman gereklidir?
6 kişiden fazla katılmamalı (interaktif limit, fazlası bildiri olur)
Basit bir yazışma ile halledilemeyecek şeyler
Sadece ilgililer katılmalı
12
Proje Yönetimi Kavramları>>>
Toplantılar (devamı...)
Toplantı ne zamana konmalı?
Katılımcılar kim? Yönetici / Üretici ?
Sadece Yöneticiler : Uygun her hangi bir zamanda
+Üreticiler : Zaman Önemli
* http://www.safkan.org/blog/?p=3081
** http://www.paulgraham.com/makersschedule.html
13
Proje Yönetimi Kavramları>>>
Yazılım mühendisliği ?
Negatif iş
14
Proje Yönetimi Kavramları>>>
AdamxGün
300 Adam x Gün’lük İş
1 adam 300 günde işi yapar mı? ???
5 adam 60 günde işi yapar mı? 9 kadın 1 bebeği 1 ayda yapar mı?
İşin hızı sabit mi? -> 1 ayda 25%, kalan 1 ayda 75%
Zaman Tahmini
İşin tahmin edilemeyen kısımları? Kara delikler
Yazılımcı performansı?
Yazılımcının konsantrasyonu +0.5 yazılım maliyeti
* http://www.teknikodu.com/adam-gun-hangi-adam-hangi-gun/
** http://www.safkan.org/blog/?p=3075
15
300 Adam/Günlük İş
http://dilbert.com/strips/comic/2007-09-03/
16
Yeni Eleman ...
* http://dilbert.com/strips/comic/2010-04-29/
17
Genel Proje Yönetimi Süreçleri
18
Proje Yönetimi Süreç Adımları
1. Proje Anlama : Genel projenin temelinin anlaşılması.
Nereden çıktı? Kim kullanacak? Neden yapılıyor? Önceliği
nedir? Maliyet/Fayda nedir?
2. Proje Tanımlama : Projenin kapsamı, kapsam
dışındakileri projenin alanı, proje sonucunda
oluşturulacak dokümanlar-çıktılar (kim hazırlayacak, kim
kontrol edecek)
3. Proje Planlama : Tüm Plan aktiviteleri
4. Proje İzleme : Proje gidişatının takip edilmesi. Proje
plana uygun gidiyor mu? Plan değiştirilmeli mi?
5. Proje Kapatma : Biten projeden hangi dersler alındı?
Projenin genel değerlendirmesi (Proje büyüklüğü,
çalışanların performansı vb.) yapılması ve buradaki
çıkarımların gelecek projelere aktarılması.
19
Proje Yönetimi Süreç Adımları >>
20
Proje Yönetimi Süreç Adımları >>
Girdi ve Çıktılar
21
Proje Yönetimi Süreç Adımları >>
22
Proje Yönetimi Süreç Adımları >>
23
Proje Yönetimi Süreç Adımları >>
25
Proje Yönetimi Süreç Adımları >>
26
Proje Yönetimi Süreç Adımları >>
* Dan Brandon’ın kitabından alınmıştır. Scope: iş alanı, Change management: Değişim yönetimi,
procurement: eldekilerin değerlendirilmesi.
28
Work Breakdown Structure
İş Altkırılım Yapısı
Yapılacakları gösterir.
29
Work Breakdown Structure
(devamı...)
Seviye 1: Tüm proje 001
Seviye 2: Ana gruplar 100 200 300
Seviye 3: Görevler 110 120 130 310 320 330
Seviye 4: Aktiviteler 121 122 131 321 322 323 331 332
Üstteki yapı Daha alt seviyelere inerse proje kapsamında bir sorun var
demektir.
30
Work Breakdown Structure
(devamı...)
http://www.projectinsight.net/i/project-management-basics/work-breakdown-structure.gif
31
Work Breakdown Structure
(devamı...)
32
Kritik Yol Hesabı
Hangi işin hangi işe bağlı olduğunu gösterir.
Erken Başlama Zamanı (Üstteki)→ Başlangıçtan bitişe giderek
her adımın en erken başlama zamanını bul
Geç Başlama Zamanı (alttaki) → Bitişten başlangıca doğru
zamanalrı çıkararak gidilir
Erken Baş. = Geç Başl olanlar Kritik Yolu Gösterir
33
Gantt Diagramı
Hangi işin ne kadar süreceğini gösterir.
http://upload.wikimedia.org/wikipedia/en/7/73/Pert_example_gantt_chart.gif
34
Organizasyon/Ekip Yapısı
Ekip yönetimi nasıl yapılır?
35
Proje Yönetim Organizasyonları
Fonksiyonel : PY = Departman Yöneticisi
Zayıf Matris : Takımın Kendi İçinde Yönetim
Kuvvetli Matris : PY Takımından Bir PY
yönetimi
Proje Bazlı (Projectionized) : Çalışanlar
projeye bağlı
36
Proje Yönetim Organizasyonları
37
Proje Yönetim Organizasyonları >>
Fonksiyonel Organizasyon
Departmanlara bölünmüş yapıda departman
yöneticinin proje yönetici rolüne bürünmesi
38
Proje Yönetim Organizasyonları >>
39
Proje Yönetim Organizasyonları >>
40
Proje Yönetim Organizasyonları >>
41
Risk Yönetimi
42
Risk Yönetimi (devamı...)
Şimdi problem olmayıp ileride problem olabilecek
durumlar tespit edilir. (Oluşma ihtimali var)
Adımlar:
Risk belirleme
Risk önem tanımı (risk olduğunda etkisi ne
olacak)
Risk tablosu
Risk izleme ve kontrol
Proje risk değerlendirme raporu ve kurumda
veritabanı oluşturulması
43
Risk Yönetimi (devamı...)
Risk Tablosu Oluşturulur
• Risk tanımı
• Risk kategorisi
• Risk oluşma olasılığı
belirleme
• Risk etki oranı :
Düşük, Orta, Yüksek
• Alınacak Önlem
• Maliyet
* http://www.docstoc.com/docs/122983556/Risk-Y%EF%BF%BDnetimi
44
Risk Yönetimi (devamı...)
Yaygın Yazılım Projesi Riskleri :
Ürün büyüklüğü : LOC, FP, Veritabanı, Kullanıcı sayısı vs..
Teknoloji riski (Yeni donanım, yeni ara yüz, yeni tasarım gibi
durumlarda ortaya çıkan riskler)
Süreç (Takip nasıl geliştirilecek, var olan bir kontrol var mı? Her
defasında farklı bir yöntem seçiyorsak süreç zorlaşır. Standartlar
olmalı. Konfigürasyon yönetimi standardı(belge - tablo)). CASE araçları
kullanılıyor mu? Dokumanlar için standartlar.
Müşteri (Daha önce çalışıldı mı, müşteri istekli mi, gözden geçirmede
müşteri ile çalışılıyor mu, müşteri yazılımdan ne kadar anlıyor.)
Geliştirme ortamı (Kullandığımız dil, var olan yenilikleri bize sunan bir
sistem mi kullanıyoruz. Test için kullandığımız araçlar süreçteki
teknoloji kısmıyla girintili.)
Personel (büyüklük, deneyim. Çalışanların sayısı yeterli mi, istenen
yetkinlikte mi, ekip uyumlu mu, proje süresince personel bu işe
adanmış olarak çalışacak mı? Çalışanlar yeterli eğitimi aldı mı? Takibi)
İşletmecilik Önemi
45
Yazılım Proje Standartları
46
CMMI
Yazılım geliştirme firmalarının uyguladığı süreçlerin
etkinliğinin değerlendirilmesini sağlayan bir sistemdir.
47
CMMI (devamı...)
5 Seviye Süreç Alanları Yeterliliği Tanımlar. 1. Düzeyden
Başlayarak Yetkinlik ve olgunluk düzeyi artmaktadır.
1.Initial : başlangıç
2.Managed (temel proje yönetimi adımları uygulanıyor)
3.Defined : Süreç standardizasyonu ve belgelendirme (belli
sayıda geçmiş projede uygulanmış)
4.Quantitatively Managed : Niceliksel & Sayısal ölçümler
5.Optimizing : Sürekli süreç iyileştirme. Çözümü iyileştirmeye
yönelik düşünmek gerekiyor. Sadece ölçüm yeterli değil.
48
CMMI (devamı...)
People CMMI: Çalışanların yetkinliğinin ölçülmesi
49
Unified Process Model
Yazılım Geliştirme Süreci framework'ü
50
Unified Process Model (devamı...)
51
Unified Process Model (devamı...)
http://www.wittmannclan.de/ptr/cs/rup_model.jpg 52
Yazılım Maliyet Tahmini
Bitmiş projelerden elde edilmiş veri/tecrübelerden
faydalanılabilir
Geçmiş projeler için: Proje büyüklüğü, yazılım
büyüklüğü, iş gücü, adam/ay değerleri olmalı
53
Yazılım Maliyet Tahmini (devamı...)
Her proje için “Function Point” hesabı yapılır
http://groups.engin.umd.umich.edu/CIS/course.des/cis525/js/f00/artan/functionpoints.htm
http://geekswithblogs.net/Prabhats/archive/2007/03/01/107632.aspx
54
Yazılım Maliyet Tahmini (devamı...)
CoCoMo (COnstructive COst Modelling)
İş yükü ve süreden proje büyüklüğü çıkarımı yapılır
http://en.wikipedia.org/wiki/COCOMO
55
Proje Beratı (Project Charter)
Yazılım Proje Önerisi Dokümanıdır.
56
http://www.swiftlightsoftware.com/project-charter/project-charter-example-L.gif
57
Proje Kontrolü & İzleme
Proje başlangıcı-bitiş arasındaki kontroller sonucu
raporlamalar/bildirimler
Durum Değerlendirmeleri
59
Proje Kontrolü & İzleme (devamı...)
Periyodik Değerlendirmeler (Periodic Status
Assessment) : Belirli zaman aralıklarında yapılması
gereken işlerin değerlendirilmesi. Özellikle destek
verilen projelerde görülür. Örneğin: alt yüklenici
takibi, 3 aylık geliş raporu, 6 aylık sonuç raporları
vs..
Personel Yapısı
Finansal Durum
Riskler
Teknik İlerleme
Temel kilometre taşları (Plana uygunluk & sonuç)
60
Proje Kontrolü Metrikleri
Yönetim Açısından:
İşlerdeki ilerlemeler
Bütçelendirilmiş maliyet: Değişimler, sapmalar
Personel ve ekip dinamiği: personel değişiklikleri
Kalite Açısından :
Değişim trafiği
Kırılım ve Modülarite : Bir değişiklik talebinin etkisi, yeni
modül/release ihtiyacına neden olup olmayacağı
Her bir değişim için Ort. İş gücü saati
Hata oranı : Hatalar arasında ortalama zaman, hata
oranı, hata onarımı için geçen süre
61
Proje Kontrolü Metrikleri
62
CASE Araçları Kullanımı
Süreç otomasyonundan faydalanılabilir
63
Sunum 1: Yazılım Proje
Yönetiminde Agent Kullanımı
Başarısız Yazılım Projeleri → projenin gerçek durumunun
bilinememesi
64
Sunum 2: Agile Sistemlerde
Kalite Güvencesi
Agile için Kalite Parametreleri
Parameter Description
Correctness (Doğruluk) Tanımlı özelliklere göre sistemin çalışması
Robustness (Sağlamlık) Belirtilmeyen durumlarda uygun performans sunması
Extendibility (Genişleyebilirlik) Yeni özelliklere uyum sağlaması
Reusability (Yeniden Kullanılabilirlik) Farklı uygulamalar için yeniden kullanılması
Compatibility (Uygunluk) Yazılımın diğer bileşenlerle uyumlu çalışması
Efficiency (Etkinlik) Sistem donanım birimlerinin verimli kullanması
Portability (Taşınabilirlik) Farklı donanım ve yazılım ortamlarına kurulabilmesi
Timeliness (Zamanlama) Müşteriye yazılımın zamannda ya da öncesinde
teslimi
Integrity (Bütünlük) Yazılımın korunmasının ve erişimin ne kadar iyi
olduğu
Verifiability and Validation (Doğrulanabilirlik ve Sistemi test etmenin ne kadar kolay olduğu
Doğrulama)
Ease of Use (Kolay Kullanım) Farklı kullanıcı tiplerinin programı kullanmasının
kolaylığı
Maintainability (Bakım) Sistem bakımının ne kadar kolay olduğu
Cost Effectiveness (Maliyet Etkisi) Sistemin verilen bütçe ile gerçekleştirilebilmesi
65
Sunum 3 : Yazılım Projelerinde
Başarısızlık Nedenleri
Bir yazılım projesinin başarılı olabilmesi için
- belirlenen kapsam çerçevesinde tüm gereksinimleri
karşılamalı
- planlanan bütçeyle, zamanında ve istenen kalitede
olmalı
- uzun vadede sorunsuz çalışması gerekmekte
66
Sunum 3 : Yazılım Projelerinde
Başarısızlık Nedenleri (devamı...)
Başarı faktörleri
- Açık gereksinimler ve tanımlamalar
- Açık amaçlar ve hedefler
- Gerçekçi zaman planı
- Etkin proje yönetim becerileri/metot
- Üst yönetimin desteği
- Kullanıcı/müşteri katılımı
- Etkin iletişim ve geribildirim
- Gerçekçi bütçe planı
- Yetenekli ve yeterli iş gücü
- Değişmeyen gereksinimler
- Teknolojiyle/metodolojiyle aşinalık
- Uygun planlama
- Uygun geliştirme süreçleri/metodolojileri
- Güncel ilerleme raporu
- Etkin izleme ve kontrol
- Kaynakların yeterliliği
- İyi liderlik
- Risk yönetimi
67
Sunum 3 : Yazılım Projelerinde
Başarısızlık Nedenleri (devamı...)
Başarısızlık nedenleri:
- Belirsiz gereksinimler
- Kullanıcının proje sürecine yeterince katılamaması
- Proje büyüdükçe yönetimin zorlaşması
- Gerçekçi olmayan zaman planı
- Zayıf bütçe planı
- Değişen gereksinimlerin yönetilememesi
- Proje Yöneticisinin bilgi eksikliği
- Başarısız kalite yönetimi
- Kaynak yetersizliği
- Başarısız risk yönetimi
- Zayıf test süreci.
68
Sunum 4 : Koordinasyon ve
İletişim
Çevik yazılım geliştirmenin avantajları :
- Gereksinimlerin değişiminine kolay adaptasyonu sağlaması
- Müşteri ve geliştirici arasında kapsamlı işbirliğini sağlaması
- Ortaya erken ve sık ürün çıkarması
* http://dilbert.com/strips/comic/2010-03-08/
70
Kaynaklar
Sunum Hazırlanırken kullanılan kaynaklar :
71
Teşekkürler …