現代軟體工程 四則運算專案Postmortem
整理:莫俊餘
設想和目標
1. 我們的軟體要解決什麼問題?是否定義得很清楚?是否對典型使用者和典型場景有清晰的描述?
我們的軟體主要做的是中學生四則運算,主要是中等難度的四則運算,而且會算分看得到多少分
2. 是否有充足的時間來做計劃?
有30天工程時間,計劃時間是不算長也不算短的。但是我們在工程中不斷完善這個計劃。
3. 團隊在計劃階段是如何解決同事們對於計劃的不同意見的?
如果感覺在難度和效果都可以接受的情況下,就直接同意,不然就協商民主投票解決。
使用者量, 使用者對重要功能的接受程度和我們事先的預想一致麼? 我們離目標更近了麼?
有什麼經驗教訓? 如果歷史重來一遍, 我們會做什麼改進?
80%一致,使用者對功能還是接受的,離目標更近了
計劃
1. 你原計劃的工作是否最後都做完了? 如果有沒做完的,為什麼?
都做完了。
2. 有沒有發現你做了一些事後看來沒必要或沒多大價值的事?
分工明確了,所以沒做什麼無用功。
3. 是否每一項任務都有清楚定義和衡量的交付條件?
有些有,有些沒有,比如介面部分沒太大的條件,只要介面過得去就好了,而四則運算的演算法的交付條件就比較明確。
4. 是否專案的整個過程都按照計劃進行?
有些地方卡住了,使有些時候要加班加點
5. 在計劃中有沒有留下緩衝區,緩衝區有作用麼?
有,有2天的緩衝時間,最後檢驗有沒有BUG和錯誤和容錯。
6. 將來的計劃會做什麼修改?(例如:緩衝區的定義,加班)
將來會抓緊工作,爭取多留一些緩衝時間,因為軟體漏洞可能比較多。正確估量一個工作的難度,儘量不導致加班加點。
我們學到了什麼? 如果歷史重來一遍, 我們會做什麼改進?
我們學到了要正確估量作業的難度,和正確的分配時間,儘量不要出現趕在幾天內完成很多作業的情況。
資源
1. 我們有足夠的資源來完成各項任務麼?
沒有,主要是我們客戶太少,但人手是夠用的。
2. 各項任務所需的時間和其他資源是如何估計的,精度如何?
對任務時間的判斷是差的,有些時候要通過加班加點完成
3. 使用者測試的時間,人力和軟體/硬體資源是否足夠?
硬體是足夠的,時間不夠,人力夠,軟體是夠的。
4. 你有沒有感到你做的事情可以讓別人來做(更有效率)?
有。但是別人也有別人的任務,分工明確,不會要別人做
有什麼經驗教訓? 如果歷史重來一遍, 我們會做什麼改進?
工作時間的判斷不正確,要正確估量一個作業的難度,儘量讓更多人可以同時做多個作業
變更管理
1. 每個相關的員工都及時知道了變更的訊息?
是,因為我們組都是一棟的,所以通知很方便也很快
2. 我們採用了什麼辦法決定“推遲”和“必須實現”的功能?
以工作的重要性決定推遲和必須實現,與專案關係不大的功能推遲,關係密切的列為必須實現。
3. 專案的出口條件(Exit Criteria – 什麼叫“做好了”)有清晰的定義麼?
功能完善,幾乎沒有BUG和報錯
4. 對於可能的變更是否能制定應急計劃?
能
5. 員工是否能夠有效地處理意料之外的工作請求?
基本可以
如果歷史重來一遍, 我們會做什麼改進?
注重開會的效率,更合理的分配工作
設計/實現
1. 設計工作在什麼時候,由誰來完成的?是合適的時間,合適的人麼?
林達,我們認為他是合適的人員。因為他的能力比較強,設計時間也是專案開始時,比較合適。
2. 設計工作有沒有碰到模稜兩可的情況,團隊是如何解決的?
有,大部分人可以接受就可以
3. 團隊是否運用單元測試(unit test),測試驅動的開發(TDD)、UML, 或者其他工具來幫助設計和實現?這些工具有效麼?
都不太會用,所以沒怎麼用
4. 什麼功能產生的Bug最多,為什麼?
運算功能,程式碼長,要想的地方多,有些地方要考慮很多,所以容易出錯
5. 程式碼複審(Code Review)是如何進行的,是否嚴格執行了程式碼規範?
沒有嚴格是程式碼規範。
如果歷史重來一遍, 我們會做什麼改進?
更加簡化自己的程式碼
測試/釋出
1. 團隊是否有一個測試計劃?為什麼沒有?
有測試計劃
2. 是否進行了正式的驗收測試?
沒有
3. 團隊是否有測試工具來幫助測試?
沒有,完全自己測試
4. 團隊是如何測量並跟蹤軟體的效能的?從軟體實際執行的結果來看,這些測試工作有用麼?應該有哪些改進?
沒學過也不會用
5. 在釋出的過程中發現了哪些意外問題?
沒有顯示答案,在緊急修復下,退出了有答案的版本
如果歷史重來一遍, 我們會做什麼改進?
總結
你覺得團隊目前的狀態屬於 CMM/CMMI 中的哪個檔次?
不懂什麼屬於CMM/CMMI ,所以也不清楚
2. 你覺得團隊目前處於 萌芽/磨合/規範/創造 階段的哪一個階段?
磨合
3.你覺得團隊在這個里程碑相比前一個里程碑有什麼改進?
隊員的配合更加好了,工作效率提高了。
4.你覺得目前最需要改進的一個方面是什麼?
正確估量一個作業的難度,不要出現加班加點的情況。
附上我們討論的照片!