Tahmin imkanı var mı?
Kesin olarak bilinebilir mi?
Problemlerin Kaynağı
Gereksinimleri Belirle: Hatalı, eksik, tutarsız gereksinim belirleme.
Tasarım: Yazılımın Temel tasarım hataları.
Uygulama: Kodlama, programlama hataları, kalitesiz programlama.
Test: Yetersiz ve eksik test.
Destek Sistemleri: Zayıf programlama dilleri, hatalı derleyici ve debugger'lar.
Yetersiz yazılım Testi: Eksik test, kötü doğrulama, hata ayıklama sorunları.
Düzeltmeler: Yazılım geliştirme ya da bakım sırasında, bazı özellikleri geliştirmek isterken yapılan hatalar.(Düzeltmek içinyapılan çalışmalarda yeni kusurların ortaya çıkması.)
Karmaşıklık katsayısının azaltılamaması.