軟體本身的特點和目前軟體開發模式使隱蔽在軟體內部的品質缺陷不可能完全避免,影響軟體品質的因素是多種多樣的:
1.軟體需求模糊以及軟體需求的變更從根本上影響著軟體產品的品質
軟體是可視性很差的複雜的邏輯實體,不同於任何其他製造業的產品。使得軟體品質難以把握的一個因素是軟體需求。確定需求,在軟體開發的初期階段讓它真正反映使用者的意圖是一件非常重要的工作,它既是後繼階段開發的基礎,又是軟體開發完成後驗收的依據,而且還是工期和開發成本估計的出發點,供方和使用者自然都一十分關心它。但實際上,軟體需求既不可見,也往往說不清。軟體使用者常常自己弄不清楚,或者說不明白自己對所要軟體的需求,或者會出現使用者提出的需求一變再變的情況。這種現象必定會給軟體的開發工作帶來許多困難,也就必定會埋下軟體品質缺陷的隱患。
2.手工開發工作難以避免出現差錯
目前軟體開發工作大多仍是手工勞動,但又需要開發人員集中精力,全神貫注投入的智力密集性工作。對於這種複雜、細緻而又可見度差的工作,出錯的可能不容易完全排除。
3.軟體品質管理的實際困難
軟體品質指標許多尚未量化。軟體開發的管理員往往更關心項目開發的成本和進度,因為成本和進度是顯而易見的,並且易於度量,而軟體品質則完全不同。
目前許多軟體機構的產品品質責任尚未落實到人。如果軟體開發的管理員對於交付的軟體含有多少錯誤並不負什麼責任,那麼他們必定沒有多高的熱情去控制開發的品質,更不必說保證品質並不容易,且保證品質是昂貴的。
不規範的開發習慣難以糾正。取得高品質的軟體產品,主要取決於參與開發的人員,然而軟體開發人員的習慣一旦形成便難以改變,他們的行為也難以控制。
人員之間的溝通容易出現問題。許多軟體工程項目需要若干甚至許多技術人員和管理員參與。工作中他們之間資訊和思想方面的交流和溝通是十分必要和頻繁的,但問題也常常發生在互相交流中。對問題的不同認識和誤解如不能及時消除,必定埋下影響產品品質的禍根。
軟體項目組中人員流動會影響產品品質。軟體項目組中人員的流動難以完全避免。事實表明,對於尚未建立成熟的軟體過程的機構來說,從軟體項目組離去的人員,特別是骨幹力量,他們的離去會帶走思想、技術和經驗,這不能不說是一種損失,項目開發的品質也會受到影響。