- 簡單之美:軟件開發實踐者的思考
- 倪健
- 3100字
- 2018-12-31 18:20:52
2.4 最好的軟件開發方法
2.4.1 中庸
最好的軟件開發方法,就是最適合企業文化的軟件開發方法。而企業文化的建設,也離不開軟件開發的實踐。
企業文化包含哪些內容呢?我認為,最重要的有兩個:一個是企業經營者和管理者的價值觀;一個是組織成員的結構和背景。這兩個都與人有關,而前者對企業文化的形成更是起著決定性的影響。
場景故事點評:
孔如之強調他的新方法,并不是在排斥敏捷方法。例如,同樣是迭代開發,同樣是每個迭代遞交一個可用的程序。但是,孔如之更加關注迭代活動的實質內容,這使他不斷地思考新的實踐方法。例如,收集能力評估的歷史記錄、長期培訓、發現和培養軟件開發人員的技能、新的考核方案等。這些新的實踐方法,是他在探索什么是最適合企業文化的工作方式上的努力。
在我們的案例中,孔如之在不斷地宣傳自己的價值觀,例如,公平、有趣、有意義、積極的文化氣氛等。這些價值觀念對于TFC項目團隊形成一種核心凝聚力是有益的。
當然,孔如之本質上是個純粹的技術人員,思想上邏輯嚴密野心勃勃、行動上簡單而固執。這給他帶來了一些工作上的阻礙。我們在以后的場景中可以看到這個問題。
企業經營者和管理者的價值觀,是評判組織成員價值(從組織的角度)的標準。在現實中,那些與價值觀相左的貢獻,常常會因為一些狹隘的認識而變得毫無意義。比方說,保守穩健的價值觀會排斥激進創新,崇尚殘酷競爭的價值觀會排斥內斂獨善等。
價值觀的狹隘,會造成不同價值觀之間的頻繁沖突,會造成大量人力資源的浪費。我提倡的是兼容并蓄、博采眾長的價值觀。這種價值觀,在軟件開發實踐中是很少見的,在東方人的實踐中更少見。
要形成兼容并蓄、博采眾長的價值觀,需要站在一個更高的層次上,需要具備一種為敵人辯護的精神。
伏爾泰有句名言:“我可以不同意你的觀點,但是我誓死捍衛你說話的權利”。為什么呢?因為現在你失去了說話的權利,那么將來我也一定會失去說話的權利。
中國近代史上的蔡元培先生也站在這個更高的層次上。蔡先生是清朝的翰林,1916年被北洋政府任命為北大校長。他提倡思想自由、兼容并包。他有句名言:“我們教書,是要引起學生的讀書興趣,做教員的不可一句一句或一字一字地都講給學生聽,最好使學生自己去研究,教員不講也可以,等到學生實在不能用自己的力量去了解功課時,才去幫助他?!边@種創新的思想估計在21世紀還少有人能真正理解。五四時期,在北大任教的有留洋的先鋒(徐志摩)、有留著長辮的怪才(辜鴻銘)、有來自鄉間的旁聽生(沈從文)、有自學成才的落榜生(梁漱溟)。不拘一格用人才,才為中國的巨變奠定了思想基礎。
企業經營者和管理者,應該清醒地認識到,企業需要的是人的技能,而不是技能發揮的形式。如何兼容并蓄、博采眾長,應該是我們最應該關注的問題。
十幾年前上大學的時候,我和哲學老師關系不錯,經常一起聊天。有一次聊到了中庸之道。
他告訴我,中庸,不是僵硬地居中于兩個極端,而是一種非常動態和靈活的平衡。就像秤砣:秤砣在秤桿上來回移動,最終使重物與秤砣保持了平衡。
換句話說,目標和能力是客觀存在的兩端,中庸之道就是這兩者之間的平衡點。一旦找到了這個點,目標就容易實現了。
每個企業都有自己的平衡點(各種動態的變化都達到一種穩定),找到那個點,并有意識地應用產生穩定的規律,就是中庸之道。對于軟件開發來說,中庸的解決方案,常常是最合適的軟件開發方法。
中庸之道,也會在一個范圍內進行調整,調整的結果一般會趨向于更加合理。但是,坦白地說,中庸之道沒有足夠的創新精神。而且,即使在一個惡劣的情況下,要打破已經建立的平衡也是很困難的。
所以,我們一方面要追求中庸之道,另一方面要追求創新精神。這是“破”與“立”的辯證,兩者并不矛盾。
我們知道,很多企業中正在使用的軟件開發方法,往往沒有經過系統的規劃和思考。它們是在企業發展的過程中,逐漸沉淀下來的。如果追溯歷史,我們會發現,某個方法,可能是某個特定時期某個人的臨時決定,也可能是某次會議上的一個妥協方案。
我們追求中庸之道,是希望通過穩定來形成企業文化。我們追求創新精神,是希望企業文化不會成為發展的阻礙。自然形成的中庸之道,往往是不可取的。
CMM為企業文化的建立貢獻了自己的價值,它嘗試建立一種科學的軟件開發方法。這種嘗試是開創性的,所以常常伴隨著劇痛;換句話說,實施CMM,會使以往的開發方法受到全方位的挑戰,各種顯性或隱性的激烈對抗將層出不窮。
縱觀歷史,文化的形成,往往源自于嚴酷的制度。與之類似,在組織的軟件開發方法形成之初,求助于制度也不失為一種辦法。
在個人主義的操縱之下,美國的股市曾一度出現問題……如何讓美國的股市走上正軌,有一個人有辦法,他就是道格拉斯,羅斯福的謀士。道格拉斯認為,只有加強監管才能挽救美國股市。此話一出,全世界嘩然:“哎喲,水至清則無魚,又來了,先把蛋糕做大了再說。”
羅斯福提出兩個法案:證券法和交易法,證券法在國會通過,交易法卻死活都通不過。羅斯福和華爾街“斗法”之后,華爾街決定,指派當時最大的莊家,“擅長”內幕交易和操縱股價的人去當證監會主席,他就是肯尼迪。華爾街說,讓這種人當,我們就放心了。
肯尼迪發明了一種非常有利的武器叫做辯方舉證,也叫舉證責任倒置。一般情況下,辯方舉證是假設人無罪,除非你能證明他有罪。比如,你要證明自己上個星期去看電影了,電影票的票根就是證明……你不是沒有信托責任嗎?我們就用法制培養你的信托責任。良心有時候是不可靠的,只有靠嚴刑峻法,才能建立信托責任。
——整理自郎咸平在浙江大學舉辦的中國企業文化國際論壇上的演講
不要嘗試從文化優劣的角度,來看文化形成的問題。文化就是一種習慣,沒有優劣之分。接受一種習慣,就形成了一種不再需要約束的文化。
事實上,軟件開發方法是企業文化的集中反映。和社會文化不同(有著漫長的形成過程),企業文化(常常體現在軟件開發方法中)需要快速形成。一種好的辦法是,在兼容并蓄、博采眾長的價值觀基礎上快速建立制度,然后用中庸之道進行調整。
前面談到,企業文化包含了兩個重要的方面。一個是企業經營者和管理者的價值觀,另一個是組織成員的結構和背景。
和企業經營者相對固定的價值觀不同,組織成員的結構和背景經常會發生變化。另外,和這個變化一起發生的,還有組織的規模、組織的規章制度以及相應的游戲規則。
如果企業的軟件開發方法能夠在上述各種變化發生的時候,根據中庸之道及時做出調整,那么企業文化的建設就進入了一種理想的狀態。(也是基于這個想法,我把組織成員的結構和背景,作為企業文化的一部分。)
什么樣的調整呢?比方說,當規模變大時,我們應該在組織的軟件開發方法中加入一些精細開發的思想。
迄今為止,我還沒有見到過精細開發的案例。這也許和我所能接觸到的軟件企業的規模有關。我接觸到的很多軟件開發組織,精細開發思想是很糟糕的。在這些企業中,一個軟件開發人員往往要兼顧很多任務,而任務的指派基本上是隨機的。
軟件開發人員常常被視作沒有任何差別(個性、技能、興趣等)的資源。
這種想法,無論從個人的角度來看還是從組織的角度來看,都是有問題的。
從個人的角度,粗獷分工不利于軟件開發人員自身知識的積累。如果沒有知識的積累,生產效率會變得極為低下。
從公司的角度,粗獷分工會造成大量重復投入的學習成本。當隨意安置的個人與小團隊文化不適應的時候,同樣會帶來嚴重的生產效率問題。
所以在企業發展的某個階段,必須做出精細開發的調整。
總之,企業經營者和管理者的價值觀,以及組織成員的結構和背景,為企業的軟件開發思想定下了基調。而兼容并蓄、博采眾長的價值觀,以及基于中庸之道的適應性調整,為軟件開發問題的解決提供了方向。
此外,從操作層面看,為了解決軟件開發問題,還需要一個方法——聚焦。