一、前言
以下內容為小弟拙見,噴者見諒。
結合小弟經歷過的諸多專案發現,除了本人有能力主導的專案外,基本上均無正常按期完成產品。
所以有了諸多想法,誕生此文,結合《軟體快速開發》理論,得出以下分析內容以及猜想。
二、風險分析(進度風險以及問題)
風險往往是可在產品開發初期即可避免的問題或習慣,如果我們無法合理的再開發初期規避問題,那麼將導致開發的延期以及無法控制的地步,往往會導致成本估算成為完全不可信的。
以下是作者在產品過程中所遇到的問題以及其問題分析的原因,在軟體快速開發中,我們稱其為風險分析:
1、缺乏設計,魯莽程式設計
產品的設計者(遊戲策劃,專案設計者等),對設計的內容並無任何的規劃便開始直接編碼或開發人員無基本的uml設計開始編碼,在編碼完成或接近完成時發現不符合設計規格或策劃要求,那麼你的專案風險將極其的大。
解決方法:再次我們可以回到正軌的專案進度上,從發現錯誤時開始,將模型生命週期切換為漸進原型或階段**付,從現在開始對專案的設計進行規劃並且開始迭代產品的設計文件,在設計階段規避問題,採用階段**付模型,將產品以模組的形式逐步交付最終完成最終產品,那麼我們的重點在於如何迭代產品的設計文件以及在編碼階段不再提出以及插入新需求,對目前需求進行詳細的規劃,基本上可以回歸產品的正常進度。
2、產品鍍銀
產品鍍銀的問題在於,將在需求中加入大量無關緊要的功能,但大部分功能開發周期較長。
解決方法:最好可以在產品的設計階段意識到哪些功能和模組意義並不大,可以採用其他方式對其進行替代,這樣的方法可以快速的結束產品的迭代,同時使設計人員意識到開發產品的成本以及時間週期並不容易掌控,其實在目前來說大部分組織可以將時間的評估成本控制在10%誤差內,很少控制在5%以內的。
3、產品進度過度樂觀
通常情況下,大部分開發人員以及pm對於進度都是很樂觀的,因為樂觀的進度往往可以鼓勵團隊的開發人員,但是諸位樂觀最好是有個限度,如果過度樂觀往往會導致其評估資料的偏差極大。
解決方法:採取大量的資料評估,尤其在進度評估時,請使用最合理的資料評估,盡量以悲觀資料作為參照模型並且在鼓勵團隊成員時可將悲觀進度描述為樂觀進度,這樣在某些情況下可避免大部分問題所導致的時間拖延。
4、團隊成員流動性過大(尤其是主要成員)
我們經常會看到很多團隊對於人員的意識實際是很薄弱的,舉個例子在部分南韓公司的網遊產品開發周期中會大量更換其開發人員,以便節省成本,但是其節省成本的目的導致其原始碼質量極差以及產品時間延誤,原因是新進的開發人員需要時間熟悉上個開發人員所遺留的**,同時每個人的風格導致大量的**重寫(並非重構),這類問題會導致進度完全無法掌控,在厲害的pm也會因為這種事情導致進度延誤,所以盡量避免團隊成員的更換是非常有必要的。
解決方案:盡量保證開發人員的利益以及其目標一致性,同時盡量保證新進開發人員不去對舊**進行重寫或重構保證其延續性可以減少開發成本,可以在後期將重構納入開發進度中,從而緩解部分系統產生的問題。
5、合理區分重構和重寫
重寫與重構最大區別就是重寫將**75%以上進行完全的修改或刪除,使其變更巨大,拙劣的重寫往往導致其介面的變動,從而影響其他系統,如果是底層**,往往會導致巨大的修改時間。
重構是保留大部分以前的**,盡在結構,模式等方面進行修改,使其更具有閱讀性以及維護性,重構往往不會大量影響其他介面,保持小範圍的修改以及結構變動。
7、沒有採用scm(軟體配置管理體制)
在軟體開發中,我們往往會忽略scm的重要程度,尤其是對於版本控制系統的忽略以及專案管理中未提及的scm體制,通常情況下會導致原始碼的安全性無法保證以及協同開發性的問題。
ok,scm僅僅包含版本控制器麼?no,scm是龐大的一套體系,它的目的是保證軟體開發過程中是安全的,可靠的不會存在丟失問題或錯恢復機制,而其中比較代表性的就是版本號管理,版本控制器,文件管理以及資源管理制等,所以安全性往往保證軟體的開發過程中毫無後顧之憂,請保證自己的產品擁有scm體制。
8、細緻的功能列表以及文件
開發過程中,我們往往發現任務並不細緻,為什麼?原因可能有很多,大部分情況問問自己,其實你明白需求麼?尤其是專案的管理者,如果你都不懂需求,那麼在先進的專案管理模型對你都是沒用的,因為需求修改的可能性非常大,所以細緻的定製功能列表是非常重要的。
在開發過程中細緻的定義功能理解可以編譯開發人員理解產品的內容以及分析需求,從而設計uml以及其系統模型。
先寫這麼多,睡覺了,呵呵呵
軟體生命週期模型
軟體生存期模型是跨越整個生存期的系統開發 運作和維護的全過程的結構框架。軟體開發模型能夠清晰直觀的定義軟體開發的過程,明確定義要完成的各項活動和任務,用來作為軟體專案的基礎。典型的開發模型有 瀑布模型 快速原型模型 增量模型 螺旋模型等 瀑布模型 瀑布模型的優點 瀑布模型以文件驅動,遵守嚴格的線性流...
專案生命期和專案過程典型生命週期模型
b b 典型生命週期模型 b b 專案執行組織通常按照工作出現的先後,將專案分成若干個專案階段,以便提供更好的管理控制。每個專案階段以乙個或幾個可交付成果的完成作為標誌。專案階段的全體被稱為專案生命週期。專案生命期用來定義乙個專案的開始與結束。專案中的各個子專案也可能有明顯不同的專案生命期。1 線性...
專案的生命週期
1.性生命週期 也稱之為完全設計驅動型生命週期 在專案生命週期盡可能早的時間,確定專案範圍及交付此範圍所需要的時間和成本。2.迭代和增量生命週期 在迭代式開發方法中,整個開發工作被組織為一系列的短小的 固定長度 如3周 的小專案,被稱為一系列的迭代。每一次迭代都包括了需求分析 設計 實現與測試。採用...