專案實踐-進度遊戲(1): Schedule Chicken
Refer
to:http://www.codinghorror.com/blog/archives/000288.html
I've been meaning to write a series of posts on schedule games, and a story I heard over the weekend has jolted me into writing about schedule chicken.
I'm most familiar with schedule chicken that happens in meetings. Usually in a project status meeting, with the project manager and the project team, especially where the meeting is a form of serial status, everyone claims they're on time. But the reality is that each person is waiting for another person to explain why he or she is not ready. In that case, each person graciously says, "Oh, that's fine with me if you take an extra week or two or three. No problem." Of course it's no problem, if everyone else needs more time.(在專案狀態會議上,每個人都在申明自己的任務都按時完成了,但是實際情況確認每個人都在等著其他人解釋為什麼他或她還沒有準備好。如果你準備好了或按時了,我就能夠按時,但是如果每個人都需要額外的時間來準備,進度如何得到保證呢? )
專案中的活動和任務不可避免的存在著相互的依賴和關聯,下游的任務負責人就是上游任務的內部客戶。如果上游提供給你的工件延期或質量不高引起你的抱怨和不滿,那麼將心比心,你應該更有責任和義務為下游按時提供高質量的工件。要信守承諾,不要推卸自我的責任,不要犯本位主義的錯誤。
But I just learned of another schedule chicken. In this case, everyone claims to be on time. And, the developers are checking in code every night and building every night. But imagine there's a milestone, named something like "code freeze." After code freeze, you can't add any more code, all you can do is fix the code that already exists. The day before code freeze, developers check in two to four times as much code as they had any of the previous days before. The results? Sure, you "met" the code freeze milestone, but the build doesn't work, or even worse, you can no longer build. You spend the next week or two (at one of my clients, it was up to three weeks) fixing the code just so you have a successful build. Now that you have a working build (some time later than the testers expected), the testers find all kinds of problems.(在這裡提到了另外一個很值得思考的話題,為了檢查專案的進展狀態,我們開始在專案中設定里程碑或檢查點,為了檢查編碼工作是否完成,我們設定了和定義的編碼里程碑和編碼凍結點。到了編碼凍結點的時候,所有的程式碼檔案確實都已經增加完成和檢入了,這給了我們一個假象,因為里程碑雖然達到了但是確沒有達到我們的質量要求,編碼檔案是都完成了但是整個系統可能連程式碼構建都無法成功,我們還得花費1-2周甚至更長的時間來解決這些本該在該里程碑前完成的事情。)
Schedule chicken occurs when PMs only measure the milestones (the date), and not the stuff that's created (the feature set) and the progress towards creating that stuff (velocity) and how good that stuff is (the defect levels) all throughout the project. If you know how much progress people are making, you can use your sense of smell to see if all those checkins were really to make code freeze, or were developers covering their tushes to meet the milestone.(專案管理的過程就是一個系統思維和平衡的過程,沒有質量的進度是毫無意義的虛假進度。因為我們必須要重新審視里程碑的深刻含義,必須要對里程碑的出口準則做明確的定義。當你下次在關注程式碼凍結檢查點的時候,你就會發揮你敏銳的嗅覺來審查整個環境是否已經整合和構建成功,冒煙測試是否都通過等問題。)
When I manage projects, I want to know the reality of the project, whether I like it or not. I don't want to play schedule games with the project team, nor do I want them to play schedule games with me. And if you're in senior management, or are a project sponsor, don't make people "commit" to a project date they don't think they can make, because you're setting yourself up for schedule chicken.(進度延期的一個重要原因不是沒有里程碑和檢查點,而是我們的檢查點存在進度欺騙,你和專案團隊成員在玩著這種沒有明確檢查標準的進度遊戲。所以這裡再給我們一個重要的警示,里程碑的出口準則往往比里程碑更加重要。不要為了單純的進度里程碑而犧牲了專案其它重要屬性。)
I've been meaning to write a series of posts on schedule games, and a story I heard over the weekend has jolted me into writing about schedule chicken.
I'm most familiar with schedule chicken that happens in meetings. Usually in a project status meeting, with the project manager and the project team, especially where the meeting is a form of serial status, everyone claims they're on time. But the reality is that each person is waiting for another person to explain why he or she is not ready. In that case, each person graciously says, "Oh, that's fine with me if you take an extra week or two or three. No problem." Of course it's no problem, if everyone else needs more time.(在專案狀態會議上,每個人都在申明自己的任務都按時完成了,但是實際情況確認每個人都在等著其他人解釋為什麼他或她還沒有準備好。如果你準備好了或按時了,我就能夠按時,但是如果每個人都需要額外的時間來準備,進度如何得到保證呢? )
專案中的活動和任務不可避免的存在著相互的依賴和關聯,下游的任務負責人就是上游任務的內部客戶。如果上游提供給你的工件延期或質量不高引起你的抱怨和不滿,那麼將心比心,你應該更有責任和義務為下游按時提供高質量的工件。要信守承諾,不要推卸自我的責任,不要犯本位主義的錯誤。
But I just learned of another schedule chicken. In this case, everyone claims to be on time. And, the developers are checking in code every night and building every night. But imagine there's a milestone, named something like "code freeze." After code freeze, you can't add any more code, all you can do is fix the code that already exists. The day before code freeze, developers check in two to four times as much code as they had any of the previous days before. The results? Sure, you "met" the code freeze milestone, but the build doesn't work, or even worse, you can no longer build. You spend the next week or two (at one of my clients, it was up to three weeks) fixing the code just so you have a successful build. Now that you have a working build (some time later than the testers expected), the testers find all kinds of problems.(在這裡提到了另外一個很值得思考的話題,為了檢查專案的進展狀態,我們開始在專案中設定里程碑或檢查點,為了檢查編碼工作是否完成,我們設定了和定義的編碼里程碑和編碼凍結點。到了編碼凍結點的時候,所有的程式碼檔案確實都已經增加完成和檢入了,這給了我們一個假象,因為里程碑雖然達到了但是確沒有達到我們的質量要求,編碼檔案是都完成了但是整個系統可能連程式碼構建都無法成功,我們還得花費1-2周甚至更長的時間來解決這些本該在該里程碑前完成的事情。)
Schedule chicken occurs when PMs only measure the milestones (the date), and not the stuff that's created (the feature set) and the progress towards creating that stuff (velocity) and how good that stuff is (the defect levels) all throughout the project. If you know how much progress people are making, you can use your sense of smell to see if all those checkins were really to make code freeze, or were developers covering their tushes to meet the milestone.(專案管理的過程就是一個系統思維和平衡的過程,沒有質量的進度是毫無意義的虛假進度。因為我們必須要重新審視里程碑的深刻含義,必須要對里程碑的出口準則做明確的定義。當你下次在關注程式碼凍結檢查點的時候,你就會發揮你敏銳的嗅覺來審查整個環境是否已經整合和構建成功,冒煙測試是否都通過等問題。)
When I manage projects, I want to know the reality of the project, whether I like it or not. I don't want to play schedule games with the project team, nor do I want them to play schedule games with me. And if you're in senior management, or are a project sponsor, don't make people "commit" to a project date they don't think they can make, because you're setting yourself up for schedule chicken.(進度延期的一個重要原因不是沒有里程碑和檢查點,而是我們的檢查點存在進度欺騙,你和專案團隊成員在玩著這種沒有明確檢查標準的進度遊戲。所以這裡再給我們一個重要的警示,里程碑的出口準則往往比里程碑更加重要。不要為了單純的進度里程碑而犧牲了專案其它重要屬性。)
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/15027599/viewspace-429695/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 專案實踐-進度遊戲(2):90% Done遊戲
- 專案實踐-進度遊戲(4):Dream Time or Happy Date遊戲APP
- 專案實踐-進度遊戲(3):Hope is Our Most Important遊戲Import
- 實施專案--如何推進專案實施進度
- 結對-遊戲《石頭剪刀布》-專案進度遊戲
- 專案進度管理
- 軟體專案管理(CMMI成熟度)實踐——之決策分析(1)專案管理
- Redux進階系列1:React+Redux專案結構最佳實踐ReduxReact
- 專案管理基礎與實踐(1)專案管理
- 如何有效管理專案進度
- 施工專案進度控制(轉)
- 如何加快專案進度提高專案質量
- 施工專案進度比較與計劃調整(1)(轉)
- mobx專案實踐
- vue實踐06-專案實踐Vue
- 如何監控工程專案進度?
- 施工專案進度控制原理 (轉)
- Python專案實踐之二:外星人(1)Python
- Yocto實踐(1): 基於Dunfell 構建Yocto專案
- 瞭解這個專案進度跟蹤管理工具,輕鬆掌握專案進度
- 專案去O實踐
- 微服務專案實踐之中建專案微服務
- 第2周專案-課後實踐·閱讀程式(1)
- 專案管理過程之進度控制 (轉)專案管理
- 【zz】IT專案如何做好進度管理
- 專案管理過程之進度控制(轉)專案管理
- 軟體專案管理 7.5.專案進度模型(SPSP)專案管理模型
- 軟體專案管理 7.1.專案進度基本概念專案管理
- 如何利用專案管理軟體制定專案進度計劃?專案管理
- 在小型專案中實行專案管理最佳實踐專案管理
- 前端技術演進(六):前端專案與技術實踐前端
- maven 專案轉化成 gradle 專案實踐MavenGradle
- uoj專案部署的學習實踐和基於JUnit進行的專案測試
- 軟體專案管理(CMMI成熟度)實踐——之決策分析(2)專案管理
- 軟體專案管理(CMMI成熟度)實踐——之決策分析(3)專案管理
- 《軟體工程》第2次作業(1、個人專案實踐)軟體工程
- 中阿交鑰匙工程專案管理的實踐1(轉)專案管理
- go專案dockerfile最佳實踐GoDocker