敏捷开发与中医理论系列之一:序言及为何中医教材都是千年古籍
這是敏捷開發與中醫理論系列的第一篇。。
最近一個世交的中醫朋友到梁冬的正安藥坊上班,也去實地參觀了一下。因為之前的一些經歷和最近的幾天的交流,一點點悟到一些中醫理論與軟件研發管理的共同之處,寫在這里成一系列。這里的很多內容來自于與這位朋友溝通所得,并與之前更早聽《冬吳相對論》的思考成果。
內容將涉及中國文化與研發管理方法,團隊的自組織管理,師徒制度/技能教育等內容。
千年古籍
這位朋友很精湛的一個解釋是:為何西醫教材每年都在變化,而中醫卻經常使用《黃帝內經》、《傷寒雜病論》這些千年古籍?到底是什么導致教材千年不變但依然有效?
原來西醫基于對外界變化的認知,比如發現了細菌,就有了抗生素;發現了病毒,就有了疫苗;發明了人工心臟,就可以做植入心臟。西醫的研究對象是外界。
而中醫則聚焦于人本身,就是人的經絡,陰陽,五行等,聽起來很玄乎,實際上是對人體免疫系統工作原理的一種“近似的”甚至可以稱為“錯誤”的但確是自洽的解釋。由于2000年來人體并沒有發生明顯的進化,因此中醫的理論也沒有明顯的變化。(這位朋友并不認為不變化是完全正確的,但也認為“研究人本身”從思想上說是正確的)
不過,這個和研發管理關系何在?
文化及社會對生產關系的影響
世界上的“資本主義”分為3個流派,一個是英美注重自由競爭、重公司輕員工的央格魯薩克遜資本主義,一個是北歐注重福利、重員工輕公司的萊茵資本主義,一個則是我們的近鄰日本注重“仁”與大家庭觀念的儒教資本主義。
歐美資本主義發展迅速,很大程度上得益于“新教倫理”,即基督教中關于工作即修行的信念。這一信念在產生了諸如“為何極其富有的企業主仍然努力工作”“為何蓋茨會捐獻幾乎全部家產”“為何50%的美國前100富翁會響應蓋茨的捐獻50%的號召”“為何西方罕見富二代”“為何巴菲特從剛起步到擁有百億美元一直開一輛舊車(注意他不是成名后買輛舊車裝簡樸)”。因此注重世俗享樂的西/葡/意等國紛紛衰落,而新教國家將資本主義發揚光大。
但日本很奇特,其文化中也有工作即修行的概念(如果大家看過《入殮師》),但產生的資本主義形態卻截然不同,比如“終身雇傭制”“年工序列”等等,與西方資本主義相差很大。
但是簡單的理解可以解釋其產生過程:日本人有1000多年的儒教歷史,而日本企業至今只有100多年的資本主義歷史,因此當兩者相遇,作為新生生產關系的客體“資本主義”,就必須要受到存在已久的主體“人(及其社會)”的影響而發生變形。
研發管理建設中存在的問題
但是在研發管理中卻經常忽視這種現象,一個公司可能上個月還在用CMMI管理,下個月就決定改為敏捷開發。而且,CMMI是原汁原味的CMMI(因為要做認證),敏捷開發是原汁原味的敏捷開發(因為不想做成“Scrum But”)。可是被管理的主體——人呢?他們并沒有在這短短的兩個月里邊發生什么實質性的變化,一個本來連每天的計劃變更都要審批還要被PPQA嚴格審計的受控團隊,轉眼變成一個居然可以自己估算和領取任務的自組織團隊,不可不謂一個相當瘋狂的舉動。
敏捷中本來有以人為本的概念,但個人感覺并非是指選擇管理方法要以人為本,而是指任何管理方法,都應該以發揮個體的能力為最主要的目標。這個目標很好也很實際,但和本文討論的以人為本不是一個概念。
本文中的以人為本的概念是:“無論使用哪種研發管理方法,都要以被管理的人為本,進行相應的調整,才能發揮個體的能力。”
比如中國人文化上內斂含蓄,比較不容易“對估算結果進行挑戰”,那么就利用估算撲克中的匿名性,引發估算討論(老外比中國人用撲克反而多,因為國內對此方法多不了解);又比如中國人文化上有“人之患在好為人師”的說法,因此就應該指定師傅徒弟,來取代自發的互助行動(估算中的和每日立會中的);再如中國人文化多內斂,不愿意干涉別人的代碼也不愿意被干涉,就適合使用松結對編程建立有限的以師傅幫助徒弟為目的的“干涉”(不解對不好,天天結對也不好);載入中國文化人多喜歡被動指令,就可以保留項目經理的指派制度;等等。
開始變革
不知道日本18XX年有沒有報紙,但是顯然并沒有一場社會運動來討論資本主義如何適應日本文化,等出現結果了,然后大家才能開工辦廠。相反地,工廠一個一個建立起來,人們在日常的活動中不斷問題驅動地持續改進、精益求精地消除浪費(是所謂“精益生產”),最終形成了其特有的生產方式,甚至超越了歐美原來的生產方式。
現在中國也處于大國崛起的狀態,本人并不提倡真的上升到國學/儒學/佛學的高度來看研發管理甚至敏捷開發,這很不現實。但是筆者提倡在日常工作中,適時地發現那些與群體性格(可以算是文化的縮影)相悖的實踐,并加以變革。
變革不能是生硬的,而是要遵循適當的步驟。操作層面的步驟可以大致歸納如下:
1. 理解“相悖”的原因。
這個原因不能馬虎地找到一個就算,而是要真切到你感覺“如果是我,我也會……的”的程度。
比如如果團隊成員都很反對別人看自己的代碼,就要找真正原因。一個人對公司代碼的最大權利,也不過是在注釋里邊簽上自己的名字(其實,在編譯的時候就給忽略了別指望發布后還能找到),有什么可保密的呢?仔細思考可能我們才發現:“原來公司是考核大家的編程質量的,而這些代碼里邊隱藏這很多測不出來但一看就知道是壞代碼的東西”,如果一個人看了我的代碼說:“這些代碼真爛”而項目經理果然過來看了以后說:“的確如此,你別編新功能了(這會影響我的生產率績效),先把代碼重構一下吧”然后他轉身離去……如果是我,我也會反對別人看我的代碼的。
2. 理解這一實踐的必要性和前后生態
既然連自己都不想做的事情,是不是不做算了?不行。在敏捷開發生態系統系列之二中曾經提到,為了能讓團隊“跨職能”/“共同估算”/“共同跟進”,看別人的代碼肯定是難免的,那怎么辦?
3. 在平衡文化和生態系統中解決問題
如果一個人看了我的代碼,而我也不會被考核為差,反而這個人還會幫助我改好代碼(甚至提前預防寫出爛代碼),豈不美哉?估計沒有人會拒絕這種看代碼。
可是誰這么大公無私呢?只有一個能從中得利的人才會如此——比如我的師傅。他能力強經驗多,管理著一群小組,而小組的生產力都算在他的頭上,因此他的工資也比我多,但是為了讓我能干更多活,他得幫助我,其中一種方法就是看代碼——這就是我們在敏捷開發松結對編程系列中提到的代碼審查。
所以師傅會幫助改好代碼;因為“改好”代碼太費時間,他還會選擇前關鍵點來提前防止代碼變壞;又因為每次都來指導很麻煩,他會嘗試指導徒弟在工作中學習,提高水平。
師徒制度其實是中國文化由來已久的一種生產關系,我剛分配到研究所的時候就被指派了一位師傅。在多數企業中都被忽略了,另外一些企業則西化為mentor制度(還是師徒制度)。在“古法教學”一文中,還有詳述額外的問題,比如“餓死師傅”。
?
讀者可以試著用三部曲分析這個問題:在無人認領任務的團隊中,如何“指派”任務,而又不破壞自組織團隊?
如果您愿意,可以在回復中作答,我也會說一說我對這件事情的認識。
轉載于:https://blog.51cto.com/cheny/1100193
總結
以上是生活随笔為你收集整理的敏捷开发与中医理论系列之一:序言及为何中医教材都是千年古籍的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MAC OS中的dylib 的@rpat
- 下一篇: .NET简谈组件程序设计之(手动同步)