從三個方面分析軟件開發過程中的幾個誤區
軟件已經成為了以計算機為運行平臺的系統和產品發展和進化中的關鍵因素, 而且是已經變成了世界這個大舞臺上最重要的技術. 他們已經從最初的解決和分析特定問題的工具演變成今天一個軟件行業.
然而, 作為軟件開發過程的一部分, 就算是今天, 要求我們在限定的預算內,很及時的交付高質量的軟件產品, 也不是件容易的事. 造成目前這種現狀的原因有很多,今天我們就從特定的角度去分析這些原因.
首先我們從軟件開發經理的角度去分析原因:
軟件開發項目經理和其他行業的項目經理大致一樣, 他們需要控制自己的預算, 項目計劃和項目的質量. 由于軟件行業在幾十年的發展過程中, 已經形成了軟件開發自有的規范和流程, 而且這些標準的規范和流程已經得到了實踐和時間的考驗 ,已經有很大的參考價值. 但是, 軟件行業是一個變化和進化非??斓男袠I, 每個軟件的開發都有自己的特性. 如果項目經理把這些規范和流程當作教條一樣去遵守和執行, 一味的生搬硬套,就會產生各種各樣的問題,我們來看看現存的一些誤區:
誤區1: 目前現有的軟件開發已經有足夠的標準和流程, 我們不需要再給軟件開發過程中的參與者提供其他的額外的信息
現實: 盡管存在軟件開發的流程和標準, 但是否他們對我們有用? 軟件開發者是否知道和了解這些流程? 這些標準和流程是否包括了現代軟件開發實踐? 我們所要開發的軟件是否有自己的特色? 因此, 作為軟件開發經理, 我們要針對特定的軟件和軟件開發團隊構成, 在現有的標準和流程之上, 制定適合自己的開發標準和流程.
誤區2: 如果開發進度落后了, 我們只要多加幾個人就可以了
現實: 軟件開發并流程和制造業的機械流程還是有區別的. 曾經在一本書上看到過一句話” Adding people to a late software project makes it later”. 當我們在項目開發的過程中添加開發人員時, 我們必須花大量的時間去培訓他, 因此, 我們就相應的減少了我們有效的開發時間. 當然并不是不可以加人, 但一定要有計劃的,配合協調好的情況下家人, 才能增加實際的開發效率.
誤區3: 如果我們項目外包給第三方的公司. 我就什么都不需要做了.
現實: 如果一個公司不知道如何去管理和控制內部的軟件項目, 即使他們外包出去, 也一樣存在各種各樣的困難, 比如與客戶的交流, 項目后期的維護等問題,這些問題. 不是說你外包了, 你就不需要承擔這些責任了.
其次,我們從客戶的角度去分析原因:
客戶, 就是軟件需求者,他們有些是只懂業務的人. 因此, 如果項目經理和開發人員沒有對需求有非常深入的了解, 就可能在今后的開發過程中留下后患.
誤區1: 一個大致的軟件需求, 已經足以讓項目進入開發階段, 我們可以在后續階段提供更詳細的需求.
現實: 這是目前大多軟件公司,特別是小軟件公司存在的現狀, 往往客戶都不知道自己到底需要怎么樣的系統, 往往是項目經理和開發人員在引導客戶提出需求. 因此在這種情況下,變化絕對是不可避免,而且是常有的, 往往我們花幾天時間做了這個功能, 過幾天, 客戶突然說不要這個功能, 而又增加別的功能. 因此, 在項目開發之前,一個清晰的需求是必須的. 這就需要開發人員和客戶必須進行持續不斷的,有效的溝通.
誤區2: 項目需求變更對軟件開發是沒有多大影響的, 因為軟件是靈活的, 可擴展的.
現實: 對于軟件開發,規避需求變更絕對是不可能的. 但是需求變更出現在何時對軟件開發的影響是大不相同的. 當需求變更出現在設計和開發之前,影響是最小的. 隨著軟件開發過程的深入,影響是越來越大, 成本也越來越大
***我們從開發人員角度去分析
作為一個開發人員,可能我們是除了代碼以外的東西,我們基本上不會過問. 曾經何時, 軟件開發被作為一種藝術創作,然而隨著進入的門檻越來越低, 開發人員的規模就越來越大, 軟件就越來越遠離藝術了,而問題就越來越多了.
誤區1: 作為開發人員, 當我們做出來的東西能正常運行了,我們的工作就結束了.
現實: 記得有人說過 ”The sooner you begin writing code, the longer it’ll take you to get done”. 曾經有統計數據顯示: 軟件開發過程中60%-80%的努力都被花費在***次遞交系統給客戶之后. 因此如何開發出高質量的穩定的軟件才是我們開發人員的目標.
誤區2: 除非系統能運行了,否則我無法評估系統的質量.
現實: 我相信這也是我們開發團隊中常見的問題, 其實在項目的開始階段我們就可以通過 ”formal technical review” 來確保系統的質量. 因為這種檢查往往比測試檢查出來的具體的錯誤更能有效的改進系統的質量和性能.
誤區3: 對于一個成功的項目,我們唯一能交付的就是一個運行很好的系統.
現實: 一個可以正常工作的系統只是軟件配置的一個部分. 軟件配置包括更多的東西,比如: 文檔. 文檔往往是系統開發成功的基礎,也能為日后的系統維護提供參考.
誤區4: 現有的規范和流程,只是讓我們浪費更多的時間去完成一些沒用的文檔.
現實: 這是一個普遍的問題,特別是像我們這樣初涉軟件領域的人. 我們往往認為, 軟件開發就是寫代碼. 然而, 軟件開發一個復雜的活動, 它包含了需求調研, 系統設計, 開發, 部署, 維護等活動. 而且現有規范和流程目的并不是讓你去完成文檔, 而是通過這些文檔, 讓軟件的質量更能得到保證.
軟件開發過程是一個進化的過程, 有問題出現是好事. 有問題可能改進, 有問題才能通過解決這些問題來完善現有的開發標準和流程.
【編輯推薦】