18 Ocak 2017 Çarşamba

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

Dökümantasyon nasıl test edilir?

Dokuman testi kara kutu testinin bir parçasıdır!
Buradaki bir hata yazılımın içerisindeki hata gibidir!
Hazırlanan doküman çok temel yada çok karmaşık olmamalıdır.
Dökümanın Terminoloji incelenmelidir!
Okuyucular için yeteri kadar uygun mu?
Bilgiler düzenli bir sırada mı?
Kısaltmalar bir dizin içerisinde verilmiş mi?
Teknolojik bilgilere yer verildi mi?
Web sayfası,telefon num ve bilgilerin yer aldığı bir index var mı?
Yazılımın özellikleri tam olarak anlatılmış mı?
Verilen örnekler doğru olarak çalışıyor mu?


Dokümanı yazan kişi ile test eden kişi neden farklı kişiler olmalıdır?

Yazılım Dokümanı Test Soruları

Hangi şartlar altında çalışıyor?
Mac yada düşük özellikli bilgisayarlarda çalışıyor mu?
Hatalara ilişkin yardım bilgilerini içermelidir