讀書筆記:How to observe software system
---------------------
版權聲明
這是亞農系列原創文章(第23篇)
無需授權即可轉載,告知一聲即可
題圖版權:除非特殊說明,皆為筆者在旅行途中拍攝
---------------------
身在軟體開發組織中,不知道你有沒有這樣的經歷?
在一次一次的項目中,做的事情反覆折騰。按說應該越做越好,但實際上感覺沒有什麼長進? 進而,發現有些事情照著流程做就行,但是有些事情卻沒有流程可以依賴?甚至照著流程做,反而做的很痛苦?
如果有這樣的苦惱,那麼這篇文章可能就有價值了。
下文是我在和測試大師Michael Bolton一次討論中,他推薦了他的老師Gerald M Weinberg的一本書《How to observe software system》,這本書講述了如何評估一個軟體開發組織的成熟度。
讀過之後,我覺得這本書對於組織的形容還挺貼切,挺挺精準的。不妨看看,我們自己的組織處於哪個階段呢?
階段1---走路:當你想去哪裡時,你就走
我們不知道自己在遵循流程,也沒有質量管理。結果完全取決於個人,因為客戶就是開發人員自己,因此任何質量的成果都可以交付。
階段2---騎馬:當你想去哪裡你就騎上馬背,如果馬配合你的話
我們做任何我們當時認為對的事情。問題沒有清晰的定義和解決方案,我們也不知道為什麼有這麼多問題,總是互相抱怨和指責。
我們要想成功,每個個體需要滿足三個條件:
我和客戶的協作關係非常好;
我是一個勝任的專業人士;
對我來說客戶問題不算太大。
在我們的組織里,工作一個接一個完成,評價一般是他能夠工作起來。
在我們組織里,感情、個人關係和神秘主義的驅動任何事情。
我們沒有從頭到尾的設計,很少有結構化的代碼。這種組織有的工作完成得很好,有的很差,完全取決於個人。
階段3---火車:有很大的運載量,也很有效率,如果你想去的地方有鐵軌的話。
我們在按照我們的流程做,除非我們忙暈了。
我們認識到質量管理也許就是價值,但是不願意投入時間和錢去讓它發生。
我們有專門的團隊來處理主要問題。要成功團隊需要四個條件:
面臨的問題大於小團隊能夠解決的
但也不會大於我們流程能夠解決;
開發者遵循我們的流程
我們不會遇到什麼太意外的事情。
在我們組織中,質量在內部用問題數來衡量。你通常可以看到自底向上的設計,半結構化的代碼,問題通過測試和修正消除。這種組織有很多成功的案例,但也有一些非常大的失敗。
階段4---貨車:可以有很多目的地選擇,但是一般來說需要在規劃好的路上走,而且需要方向盤來保障走在正確的路上。
我們根據流程產生的結果來選擇使用哪一個流程。通過我們的質量程序,我們學到了很多質量經驗,這些很有價值,能夠支撐項目。
我們的產品問題被有序地解決,通過承諾和質量改進,我們在識別和解決我們的問題。
要想成功,團隊需要四個條件:
問題已經大到無法用簡單的流程處理;
我們的經理們可以與外部環境協商;
我們不接受沒有討價還價餘地的計劃和限制;
我們遇到了很大的挑戰,但還可控。
我們的質量是通過用戶反饋來衡量的,但還不是很系統。
在我們的組織中,一些度量已經做了,但是每個人都在爭論那些度量是有意義的。你通常可以看到從上到下的設計結構化的代碼;設計和代碼說明,版本通過迭代漸增的形式發布。
我們這種組織會學習不斷的成功,當他承諾要做什麼的時候。
階段5---飛機:快速、可信、可以去任何地方,只要有飛機場。但是需要有大量的初始投資
我們的流程是根據我們過去的經驗來決定的。我們理解絕對的質量管理,認識
到自己的責任是持續強調和優化流程。
產品問題在開發階段的早期被發現,所有的產品開發階段都可以提出問題和修改。
要想成功,團隊需要三個條件:
有流程,並且流程被遵守和優化;
質量和成本在內部通過有意義的方法被度量
存在一個明確的流程管理組織在負責優化流程。
我們可以看到一些問題預防措施:功能從理論上被論證、從數學層面驗證,以及提供可靠性的測量。我們的組織可以在激進的項目上成功。
階段6---星際戰艦:可以去任何從來沒有人去過的地方,可以攜帶任何貨物,但是只存在於科學幻想中。
我們每個人,任何時間都在為改進任何事努力。
我們認為質量管理是公司管理體系必備的基礎因素。除了在非常極端的情況下,產品問題一般都會被預防和避免。換句話說,我們知道我們為什麼沒有質量問題。
要想成功,團隊需要三個條件:
我們的流程被持續優化;
所有流程中的變數都被定義出來,並每次去的自動化檢測出來;
客戶滿意度驅動我們的任何工作。
這種組織具備其他組織取得的所有好處,並且有意願去達到更高的境界。質量被通過客戶滿意度,以及MTBF ( 10到100年)來衡量。客戶喜歡產品的質量,並且願意把自己的生命安全寄托在上面。在某種意義上說,這種模型和階段1健忘型很相像,完全的,快速的客戶反饋,但是要更好。
以上就是這本書裡面的一些有意思的比喻。現實生活中的團隊,也許沒有這麼絕對的。可能既像某一種,又像另一種。沒關係,我們能夠知道什麼樣的組織更好,這篇文章就沒白讀。
另外,下面說說我心中的高水平組織的一些特徵,算是給Weinberg大師這篇大作來個狗尾續貂吧:
工具要到位:工欲善其事必先利其器,而且沒有工具,很多事情根本就做不到
度量要到位:沒有度量就沒有管理。但要去度量的不僅僅是進度和問題,更重要的是度量客戶滿意度
高度的結果為導向(客戶滿意):因為客戶可能會把自己的生命安全寄托在你的產品上面
流程被持續優化:關鍵的是,組織中的每一個人都有強烈的意識和行動去優化流程
缺陷預防到位:比如建模、模擬、測量,而且發現的問題要落實到流程中去
TAG:亞農寫字 |
※讀書筆記:Eating for Cognitive Power
※讀書 Everything I Never Told You
※《The innovators》讀書筆記
※讀書筆記《Jessica s ghost》
※Spring Cloud斷路器Hystrix原理讀書筆記
※Economist 23rd Jun 讀書筆記
※Kindle Paperwhite3—讀書小體驗
※讀書筆記#-Gone with the Wind-隨風而散
※Entering G5 Summer Reading List 即將升入五年級暑期閱讀書單
※讀書筆記-2018年的第三本書《Crushing It》 by Gary Vaynerchuk
※不如讀書 Me Before You
※評測:Kindle Paperwhite讓我做了一個躺在浴缸里讀書的夢
※「設計師不讀書「1.0——Graphic Design
※讀書推薦:《Outliers》
※《超效率手冊》讀書分享會——Get More From Life
※Vipassana十日談·讀書篇
※讀書something其一:積極心理學部分
※Vivian的讀書筆記
※朗讀者:牛津閱讀書系列 Robin Hood
※閱讀書寫的數字時代,掌閱智能本iReader Smart亮相