本期IT沙龍討論商業軟件的軟件工程。這是還不成文的主題介紹,錯誤多多,請大家指正。
幾乎每一個軟件工程師都學過軟件工程,但媒體一提起中國軟件業就異口同聲地說:中國軟件企業規模小,普遍處于軟件作坊階段,缺乏競爭力。事實上,到底有多少人真正了解軟件工程?
軟件開發人員、軟件企業領導、學院里的教授、媒體,往往都不同程度地存在對軟件工程的誤解:
誤區一:軟件企業的規模代表其競爭力
誤區二:軟件工程等同于大學教科書上的生命周期法
誤區三:將軟件工程片面化成單純的Paper Work
誤區四:把文檔和代碼割裂開
誤區五:認為軟件作坊是毫不可取,堅決打倒并杜絕的
誤區六:只向日本、印度學習甚至照抄其軟件工程方法
誤區七:中國軟件業要發展必須先發展軟件藍領
誤區七:不同的企業都要遵循同樣的軟件工程方法
誤區八:通過ISO9000和CMM認證是成為頂尖軟件企業的必由之路
誤區九:規模大的企業才需要軟件工程,軟件作坊就不需要
誤區十:只注意軟件穩定性,忽視軟件可用性
我們必須注意到以下事實:
事實一:最先進的技術往往都是小公司發明的,最成功的軟件其雛形往往來自軟件作坊
事實二:美國是軟件行業最發達的國家,印度、日本、中國等全世界其它所有國家全加起來都不及美國
事實三:Microsoft并沒有通過CMM認證
事實四:美國幾乎沒有軟件藍領
事實五:很多主流軟件的代碼,特別是非核心部分的代碼規范度,常常與教科書上的范例 相差甚遠,有時甚至還不如我們軟件作坊的產品
事實六:即使是最嚴格的書面文檔,也會存在信息失真現象,有時失真還很嚴重
事實七:產品需求一般都是在不斷變化的,需求設計做得再好,也不一定適應交貨時的市場需求
事實八:代碼即最詳細的文檔,還有很多軟件開發工具可以自動生成文檔
為了更好地為市場服務,一個商業公司的軟件工程管理應當注意以下原則:
原則一:不同企業,不同產品,不同目標導向,在軟件開發中,軟件工程的表現形式不 同。如開發產品 vs 承接外包工程,創新的產品 vs 沒有技術難度的產品/項目,要針對對不同的情況選用不同的方式
原則二:對商業公司來說,軟件工程的目的是開發出適合市場需求的產品,而不一定是開 發出沒有BUG的產品
原則三:要更多向美國而不是日本印度學習
原則四:一切取決于最后是否能讓用戶用得好,而不是是否符合書面文檔的要求
原則五:結合企業自身情況,借鑒而不是機械照搬ISO9000、CMM等制定本企業的軟件開發管理體系
原則六:無論規模大小(即使少到一個人)都可以貫徹軟件工程規范
原則七:經常與用戶溝通,而不僅僅局限在需求設計和產品測試階段,降低信息失真和用戶需求變化的風險
文章來源于領測軟件測試網 http://www.kjueaiud.com/