TAI'de katıldığım bir eğitimde aldığım notlarımı sizinle paylaşmak istiyorum. Bunlar yazılım mühendisliği gerektiren işlerde göz önünde bulundurulması gereken pratiklerdir. Kaliteli bir iş için dikkat edilmesi gerekir.
PRATİKLER
1.Yönetim
- Planlama
- Check-list (Başlamadan önce yapılması gerekenler)
- Görev paylaşımı
- Risklerin tanımlanması
- Başarının ölçülmesi ve değerlendirilmesi
- Süreç yönetimi
- Kayıtlı çalışma
2.Kaynak Yönetimi
- İdeal ekip sayısı 5-7 (Tecrübe olarak söyleniyor)
- Çalışanlara değer verme, adil olma, ödüllendirme
- Eğitim
- Uzmanlaşma
- Etkin iletişim
3.Bütçe Yönetimi
- İşgücü, zaman, yatırım ve maliyetler
- Proje başlamadan önce deneysel kestirimler
- Sürekli izleme ve ölçme
4.Metrik Yönetimi
- Nokta atışı sayısal değerler
- Amaç, başarımı ölçmek ve riskleri tanımlamak
- Efor metrikleri
- Geliştirilen kodun metrikleri
- Gereksinim metrikleri
- Değişiklik istekleri metrikleri
- Hata metrikleri
- Test metrikleri
5.Disiplin*
- En önemlisi. Yetki ve sorumluluklar belli olmalı.
- Saha kurallarını koymak ve kurum kültürü (Birçok toplantının verimsiz geçmesinin nedeni saha kurallarının tam konulamaması)
- Son sözü söylememek projeye zarar verir. Hayır demeyi herkes bilmeli. Net olunmalı.
- Sonuç odaklı olunmalı.
6.Gereksinim Yönetimi
- Gereksinimlerin belirlenmesi
- Gereksinimlerin herkesce anlaşılması
- Gereksinim belirlemenin son aşaması olarak gereksinimlerin dondurulması.
7.Sistem Mühendisliği
- İç içe çalışma (Geliştiriciler ile)
- Sistem mimarisine hakim olma
- Sistem yazılım uyumunun sağlanması
8.Arayüz Tanımlama ve Denetleme
- Gereksinim analizi bitmeden önce tüm dış arayüzler tanımlanmalı
- Çökmeler genellikle arayüzlerde olur. Genellikle iç arayüzlerde değil dış arayüzlerde hata çıkar. Bunun nedeni ekipler arası iletişim eksikliğidir.
9.Tasarım
- Standartlara hakimiyet (178B, IEEE12207)
- Planlara uyum
- Sistem ve yazılım geliştirilmeye açık olmalı
- Bir arayüzün başka bir arayüzle bağlantısı mümkün olduğunca az olmalı
- Sadelik ve basitlik önemli
- İnsan makine arayüz(GUI) tasarımına dikkat edilmeli. (Bir istatistiğe göre burada harcanan efor projeye harcanan eforun %47’si kadarmış)
10.Kodlama
- Anlaşılabilir
- Kısa yordamlar
- Açıklamalar
- Sık sık yedekleme
- Hatalara teslim olmayın. Hatalar tecrübeleri arttırır.
11.Test
- Projenin kritik bileşenleri fonksiyonel olarak test edilmeli (White-Box)
- Aşırı yüklemelerle test edilmeli (Aşırı yükleme testi)
- Projenin sonuna doğru, en gerçekçi senaryolarla denenmeli
12.Hata ayıklama (Debugging)
- Hatalar birer birer ayıklanmalı