18 Ocak 2017 Çarşamba

Yazılım Yönetimi İçin Süreç Grubu

1. İlklendirme(Initiating)
2. Planlama(Planning)
3. İcra(Executing)
4. Kontrol(Controlling)
5. Tamamlama(Closing)


Note: Her bir faz için bu 5 adım tekrarlana bilir.
Her bir adımda aşağıdaki konulara dikkat edilmelidir:
Veri girişleri
Araçlar & Teknolojiler
Çıkışlar


 

İlklendirme
Giriş
 Ürün tanımları
 Strateji planı
 Proje seçim kriterleri
 Tarihsel bilgiler
Çıkış
 Proje yapısı çıktıları.
 Proje yönetim tanımları
 Kısıtlar
 Varsayımlar


Planlama
Kapsam Planlama Kapsam tanımı Aktivite Tanımlama Aktivite Sıralama Tahmini Aktivite Süresi Kaynak Planlaması Maliyet Tahmin Maliyet Bütçeleme
Risk Planlama Programı Geliştirme Kalite Planlama iletişim Planlama Organizasyon Planlama Çalışanlar Edinimi Tedarik Planlama Proje Planı Geliştirme

İcra Süreci
Proje planı yürütme Kapsam Doğrulama Kalite Güvence Takım Geliştirme
Bilgi Dağıtımı talep Kaynak Seçimi Sözleşme Yönetimi


Kontrol
Genel Değişiklik Kontrolü Kapsam Değişiklik Kontrolü Zamanlama Kontrolü Maliyet Kontrolü kalite kontrolü
Performans Raporlama Risk Tepki Kontrolü

Kapanış Süreci
İdari Kapanış
Sözleşme Kapanış







 






Süreç Uzmanı (Yazılım Yöneticisi) İşleri


Projeyi tanımla
Yazılım paydaşlarını belirle
İş listesini belirle
Proje ile ilgili zaman çizelgesini belirle (Mile stone)
Yazılım Akış Süreçlerini tanımla ve Kontrol et.
İhtiyaçları ve kaynakları belirle.
Proje gereksinimlerini değerlendir.
Riskleri tanımla ve acil durum planlarını ortaya koy.
Bağlılıkları tanımla.
Önemli noktaları tanımla ve izle.
Proje aşamasını gözetle.
Güvenli gerekli kaynaklarını belirle.
Değişim kontrol sürecini yönet.
Proje durumunu ortaya çıkaran raporlar oluştur.
Süreçlerin ve Bilgi alanlarının detaylarını ortaya çıkar.
Organizasyon yapısını bilerek ona göre süreçleri yönlendir.(Şirkette yeni olmak)

Yazılım Paydaşları Üçlüsü

1.Fonksiyon Temsilcisi Müşteri veya Kobi
2. Sponsor Projenin vizyou için kurulan ekip
3. Proje Yöneticisi

Projeler nasıl başarılı olur?


Üst yönetim destek
Kullanıcı katılımı
Deneyim proje yöneticisi
Açık iş hedefleri
Minimize edilmiş kapsamı
Standart yazılım altyapısı
Firma temel gereksinimleri
Örgün metodoloji
Güvenilir tahminleri belirle
Üst yönetim, yardımcı olabilir.
Güvenli yeterli kaynakları belirle.
Zamanında proje ihtiyaçları için onay alın
Organizasyon boyunca insanların işbirliği alın
Liderlik rehberlik sağlayın

Yazılımcı ve Yazılım İle İlgili Hata ve Sorunlar

İsteksiz yazılım geliştirme. (Moral önemli)
Zayıf yazılımcı (Bilgisiz yada deneyimsiz)
Yazılım yöneticisin ekibi hakkındaki şikayetleri.
Yazılım ekibinin proje yöneticisi ile ilgili şikayeti.
Şirket yaklaşımı(Yeni personel ile ilişki).
Son dakika projelere yazılımcı ilavesi.
Yazılımcıların %60 bir kısmı sessiz ve rahat bir yazılım geliştirme ortamı ister.
Yazılımcı ile müşteri arasındaki farklı bakış açısı(friction)
Zayıf iletişim
Finansman eksikliği
Veri eksikliği

Süreç ile İlgili Hatalar Neler Olabilir?

Süreç başında boşa zaman kaybı.
Kısa süreli değişiklikler ile süreç bozulması.
Yetersiz tasarım.
Yetersiz kalite güvencesi.
Yetersiz yönetim kontrolleri.
Gerekli olan işleri aksatma(Küçümsemek).
Yapılacak işleri sonraya bırakma.

Ürün ve Teknoloji ile İlişkili Hatalar Neler Olabilir?

İsterlerin %25 bir kısmı kırmızı ister olarak tanımlanır.   
İteleme çekme uzlaşması.
Silver-bullet syndrome kaçınılmalı.       
Projeyi kurtaracak araçlardan ve teknolojileri küçümsemek.       


Neden Rapid Development?

Hızlı ürün geliştirme,Riskleri azaltma,Müşterinin yazılımı görmesini sağlama,Temel Seviye Kalite



Ya Rapid Kullanmıyorsak?

Proje Safhaları

Tüm projeler aşamaya ayrılır, birlikte tüm evreler Proje Yaşam Döngüsü olarak bilinir, Her faz çıktılara tamamlanması ile işaretlenir,Birincil yazılım proje safhasını tanımlama. 



Proje Uyuglama Yönetimi,Teknik Bakış,Zaman,Maliyet,Kalite,İnsan Kaynağı,İletişim,Risk,Prosedürler bu aşamalar içerisinde bakılır.

Yazılım Uygulamasının 4 Boyutu

1. İnsan
“It’s always a people problem” Gerald Weinberg, “The Secrets of Consulting”
  • Yazılım Uygulamasını İyileştirmek İçin
  • Yazılım Ekip Seçimi (Doğru kişi doğru iş)
  • Takım Organizasyonu
  • Motivasyon
2.Süreç
  • Süreç doğru tanımlanmış mı?
  •  Süreç için Tanımlanan Yöntem ve Teknik doğru mu?
  • Başlangıç nasıl belirlenecek(temelleri)?
  • Hangi kalite güvencesi standartları uygulanacak?
  • Risk yönetimi olacak mı?
  • Yaşam Döngüsü planlaması yapıldı mı?
  • Müşteri odaklı olarak mı geliştirildi?
  • Süreç  gelişme sırasında süreç olgunluğuna bakıldı mı(bütün işleri yerine getirip getirmediği sınandı mı?)

  • Takip(Tracking)
  • Maliyet, çaba, program
  • Planlanana karşılık Gerçekleşen
  • Planının dışına çıktığınızda neler yapılacak?

Ölçüm
Yazılım Nasıl Ölçülür ve Neleri Ölçmek gerekir?
Tarih ve öngörülen     maliyet     program     çaba     ürün özellikleri
Alternatifler     kazanılan değer analizi     kusur oranları
            verimlilik (örn: SLOC)
        karmaşıklık (örn: function noktaları)

Teknik ve Temeller
Gereksinimleri,Analiz,Dizayn,Kodlama,Kalite Güvence,Dağıtım

3.Ürün
  • Gözle görülür ilerleme sağlandı mı?
  • Yazılım büyüklüğünün belirlendi mi? Ve ne kadarı gerçekleşti?
  • Ürün özellikleri ve gereksinimleri neler?
  • Özellikler farklı şartlarda sınandı mı?
4.Teknoloji

  • Genellikle en önemli bir boyutu
  • Dil ve araç seçimi belirlendi mi?
  • Yazılımın değeri ve oluşturma maliyeti nasıl hesaplandı?


Yazılım başarısı için Zamanında, İsterleri karşılayan ve planlanan bütçeyi aşmayan yazılımlar üretin.

Proje Yönetimi Tarihi

Yazılım Uygulamalarının doğuşu Manhattan Project
1970’lerde askeri, savunma işlerinde software uygulamaları kullanıldı.
1990’larda: Büyük yazılım projeleri geliştirildi.
1985: TQM
1990-93: Yeniden üretim.
1996-99: Risk yönetimi, Yazılım evleri
2000: Global projelerin oluşumu.



Yazılım Uygulaması nedir?

Yıllar sürebilir mi?
Sonuçlar kesin midir?
Yazılım ekibi kalıcımıdır?
Ölçüleri nelerdir? (Büyüklük)

Yazılım Proje Yöneticisinde Arananlar

Liderlik,İletişim Yeteneği, Problem Çözme Yeteneği
Uzlaşı, Organizasyonun Süreçlerine Hakimiyet
Yönetim becerisi (Süreç tecrübesi ve teknoloji bilgisi)
Proje Yöneticisi. Proje Yöneticisi yardımcısı (asistan)
Program Yöneticisi.

Yazılım Yöneticisinin İlgilenecekleri
Finansal Destek Veren (Sponsor)
Yazılım Ekibi
Müşteri
Süreç Yöneticisi

Yazılım Yöneticisi
Yazılım İçin Gerekli Olan Kaynakları Temin Et.
Proje ihtiyaçları için onay al.
Liderlik ve Rehberlik sağla.





17 Ocak 2017 Salı

Koddan Döküman Oluşturan Araçlar

Doxygen
  Doxygen Programının İnternet Sitesi http://www.stack.nl/~dimitri/doxygen/
  Doxygen Programı çizim aracı Grphviz Programının İnternet Sitesi http://www.graphviz.org/

Doxygen ve Grphviz Programının Eğitim Videosu



Sharpdox
C# için Koddan döküman oluştruma araçı Programının İnternet Sitesi http://sharpdox.de/en/


Diğer Dokuman Oluştruma Programları

Javadoc
ROBODoc
POD
TwinText