一個專案的反思與總結
這一段時間在做某個模組的除錯,結果2周的活幹了7周才做完。今天我在這裡看看問題到底出現在哪裡?
專案目標:驅動除錯,移植
估算時間: 2周
實際結果:
第1周將Linux版本的驅動和庫改寫成另一個作業系統的版本,編譯完成。
第2周,上板子測試,沒有結果。
第3周,使用Linux版本測試,仍然不過;發現致命問題,硬體版本沒有加入中斷模組。引入客戶支援,還是沒有任何進展。
第4周,硬體版本完成,重新測試,仍然有問題,分析中斷模組有問題。問硬體開發人員,中斷模組沒有經過測試;尋求客戶支援,廠家提供了中斷模組的測試例子。
第5周,硬體中斷模組除錯完畢。使用Linux版本除錯,發現有進展,但還有問題。
第6周,繼續尋求客戶支援,寫給GPU的硬體地址有問題,解決後,Linux版本除錯通過。開始除錯公司作業系統版本,有問題。
第7周,發現移植版本缺少signal支援,硬體浮點庫有問題。解決問題後,移植版本跑通
分析上面工作流程,有幾個致命問題:
1. 硬體人員沒有明白這個模組的需求,連中斷模組都沒有加入;加入中斷模組後沒有測試後直接使用。
2. 硬體人員沒有及時和提供IP的廠家溝通,導致中斷模組缺乏測試案例,就自認為中斷模組沒有問題。
3. 首先不應該使用移植版本測試,導致不必要的時間浪費。
4. 關鍵難點沒有把握好,軟體人員沒有很好了解GPU的工作流程。
5. 沒有充分利用客戶支援這個重要資源。
6. 專案估算有明顯偏差,專案難度被低估。
改進流程如下:
1. 和硬體人員溝通,確認硬體是否缺少模組,所有模組是否經過測試。
2. 及時取得客戶支援。
3. 充分了解GPU硬體的工作流程。
4. 使用Linux版本測試通過後,才對移植版本進行測試。
5. 移植過程可以貫穿整個工作週期。
6. 專案時間估算根據實際情況變更,但是偏差不能太大。