最近在看的一本書叫《中醫和西醫的對話》。話說我原本是個科普愛好者和不堅定的中醫懷疑論者,而每個科普**但凡有人拿中醫出來說事那個帖子必然會離題萬里,轉化為「中醫就是好」派和「中醫就是好個屁」派之爭。比如松鼠會的這個看片會[url]雙方的說法都不能讓人信服,偏偏我是個不怎麼生病更不怎麼願意看病的人,中醫沒看過也沒什麼切身體會;偏偏又想深入了解一下這個問題,便去圖書館找了這本書來看,希望看看從中醫(作者是中醫)的角度是怎麼分析此問題的,兼聽則明嘛。
這書第乙個話題是說中醫和西醫不同的方**:中醫辯「徵」施治, 認為不同的病理表現可能是相同原因(「徵」)所致,而相同的表象也可能是由於不同的「徵」。用關係術語來說,這就是個多對多的關係。中醫施治也不是針對表象,而是針對「徵」的,治病首先要找對「徵」,然後把什麼陰虛陽虛的症給搞掂,表象也就隨之消失了。也就是說,把源函式理順了,目標函式自然就連續光滑了。 西醫則是對「症」下藥,認為問題和原因是個一對一的關係,哪兒有問題就治哪兒。頭疼?就開止疼片,吃了止疼片頭疼是好了,如果胃又不舒服了咋辦呢?那就是內科大夫的事了~~,所謂「頭疼醫頭,腳疼衣腳」是也。究其原因,中醫把人當成乙個整體來治,下方子時要考慮到人體各個器官的相互協調,甚至其所處的自然環境。而西醫把人當作機器治,把你拆成乙個個零件,自然也就是乙個個零件的治法。
且不說這樣的描述是否偏頗,我倒是讀著讀著又想到軟體的本行了。如果把整個軟體開發作為乙個人考慮的話,我們現在的開發流程倒有點像文中所述的西醫治病:先是ba作需求,還有幾個ba各作各的模組,彼此之間或許還有些衝突。由於缺少專門的設計人員,ba還要兼顧一部分設計工作,這帶來了兩個問題:一是ba眼中沒有物件只有資料表,並且表和表之間冗餘嚴重。按照這種設計去作,整個系統必然是一層平面的薄紙,維護代價大且容易出錯;二是沒有人願意去更改甚至推翻以前的不合理設計,以免可能會有的使用者抱怨,對於新的cr只是不停的往原先的設計上加補丁,以至於整個設計越來越ugly。
再然後是developer實現,這實現又分domain / service/client。由於design review 只是走形式(並且很多時候design已經被ba自作聰明了),所以越到底層的developer想的越是自己這塊不要出錯,而不會站在整個business的角度考慮實現/效率/使用者體驗。
客觀的說,就算這種方法把軟體拆成了一塊塊需求一塊塊實現,然後一塊塊單獨去做,整個系統還是走過了5年時間,雖然中途也遇到過效能問題,時不時出點髒資料什麼的,但還是如同神州大地上大部分系統一樣走過了這麼多天並且活的還行。而且相信這也是軟體開發的主流,正如西醫是目前的主流一樣。
那麼敏捷呢?敏捷在我看來頗有中醫的風範。你要和客戶交流,幫助客戶抽象出領域模型,給出需求在不過度設計下的估計工作量,用test case 清晰的描述你的設計並檢驗之。每有變化,考慮的不是在哪兒哪兒加幾行就搞定了,而是要考慮到這幾行會帶來什麼bad smell,重構之。甚至進而要考慮是不是原有design的某個assumption失效了,改進之。作這所有事的都是乙個人,也只能是乙個人。
如果你能夠很好的實施敏捷,那麼你的專案一定很好,因為你一定很牛。
所以說,敏捷不是銀彈,只是一些對軟體開發有足夠經驗和技能的人覺得機械化的分工方法阻礙了他們生產率的提高,才提出的更適合他們技能水平的一種開發方式。看看倡導tdd的這些人和團隊吧,有哪個是所謂的軟體藍領流水線呢?沒有相應的人員素質,最多只能搞搞scrum這種偽敏捷,至於tdd,不能搞,也不應該搞。
再回到中醫和西醫的問題上。中醫給人的感覺一定要老中醫才牛,因為從整體上把握人體不是光讀讀黃帝內經就夠的,需要大量的試錯和體驗。而老中醫的產生要時間更要天賦,更接近於藝術而非技術,所以「老中醫」是無法量產的。如果試圖用西醫學院那種細細分科,單獨培養的方式,產生的只能如作者所說,大部分是以西醫方式行中醫,誤人而已。相反,西醫的哲學注定了其產出(醫生)區分度沒有那麼大,能產生大量「也許不那麼好,但也沒那麼差」的可用產出。在醫療作為一門產業的今天,醫療工人能夠量產是乙個很大的優勢,我覺得這也是西醫如此繁榮的乙個原因。正如軟體變成產業的今天,前一種雖有諸多不足之處,但卻能夠利用諸多軟體工人的流程能如此流行的原因。
所以我有時會感到絕望。儘管敏捷的很多提法會讓你覺得簡單和美,但考慮到人員素質之後還是不可能推行下去。也許人員的培養會是乙個好的提法,畢竟一張白紙如果有好的帶領的話估計兩年時間應該能達到敏捷的要求。但考慮到業界平均流動率和相對固定的新人素質後,這又成了一道無解的難題了。
最後說點極端的例子:chrome的開發團隊只有20個人,bigtable的團隊只有9個人。如果你沒有這麼優秀的員工,隨便你用什麼軟體開發方法估計都搞不出這些軟體來。而如果你能找到一種方法,能使北大青鳥的畢業生有50%達到這種水平,恭喜你,不要說什麼圖靈獎,就是諾貝爾和平獎您都能抱回家了(obama長舒一口氣中)
中醫和西醫的爭論
最近聽說在中國大陸有人提議廢除中醫,而且還是科學界的人提出來,並且有不少人附和,經常有人問我這方面的意見。我認為在所有慢性病都還沒有找到解決方案的今天,對於中醫和西醫做出評價都是很不智的。這些爭論並不會使醫學有絲毫進展,不可能從這些爭議中發展出任何慢性病的 技術,實在沒有太大的意義。西醫在細菌學方面...
佛和石頭的對話
一 石頭問 我究竟該找個我愛的人做我的妻子呢?還是該找個愛我的人做我的妻子呢?佛笑了笑 這個問題的答案其實就在你自己的心底。這些年來,能讓你愛得死去活來,能讓你感覺得到生活充實,能讓你挺起胸不斷往前走,是你愛的人呢?還是愛你的人呢?石頭也笑了 可是朋友們都勸我找個愛我的女孩做我的妻子?佛說 真要是那...
和SEG Leader的對話(20070907)
文 fasiondog 注 下面的對話是有環境前提的,大致是部分開發已經提前完成,整體系統設計能力不足,多的不說,見諒 問題1 對目前的系統設計進行一次外部專家review,盡早識別風險,讓大家能夠對當前的系統設計達到的質量狀況有乙個清楚的認識。這個已經和開發經理進行過溝通,也是贊同的。aaa 也有...