- 簡單之美:軟件開發實踐者的思考
- 倪健
- 1122字
- 2018-12-31 18:20:52
2.3.2 海岸燈塔
方法論的研究者和實踐者,總是希望能夠找到一種最好的方式,來輕松地開發出高質量的軟件。而敏捷方法的支持者,是其中最靈活、最富有反思精神的一群人。
敏捷方法的支持者在理論上是理想主義者,在實踐中是實用主義者。他們似乎指出了一個激動人心的方向,但是真正的終點其實還很遠。
遺憾的是,敏捷方法的可操作性是很差的。其原因在于,所有的一切都依賴于人本身。想象一下,我們強調對人的關注。可是,誰來對人關注?還是需要依賴某些人——具有特殊權力的人。在敏捷方法的游戲規則中,針對這些特權人本身并沒有什么約束。他們可以關注人,可以懂得如何關注人;也可以不這么做,或是不懂得如何做。
此外,敏捷方法還具有一些明顯的“漏洞”。
例如,敏捷方法宣稱,個人之間的交互要勝過過程和工具。可是,不難想象,這些個人之間的交互可以產生好的化學反應,也可以帶來糟糕的后果。
事實上,影響交互的因素有很多。我們在前面提到過不少人的缺陷。這些缺陷在交互過程中可能被成倍地放大。
XP中的結對編程,效果完全取決于結對的人。
我見過爭吵帶來的創意,也見過爭吵帶來的失敗。
樂觀主義者從結對理論中看到創意,悲觀主義者從結對理論中看到失敗。
另外,無論你是否承認,那些完全依賴于人員素質的敏捷方法是不容易實施的(當然,如果你具有高質量的敏捷能力,則另當別論)。
每天站立10分鐘,給你帶來的只是理論上的興奮。我聽到過很多抱怨,一些軟件開發人員認為,敏捷方法像是在玩一種敏捷的數字游戲。每天匯報進展的壓力,只是使團隊成員在評估工作量時更加默契。
或許,我們需要更多的培訓;或許,我們需要從更多的敏捷方法實踐場景中學習真正有用的技巧;或許,問題(本質上)根本就與方法論無關。
無論如何,我們需要一個光明的希望,需要一座海岸燈塔。
相比之下,CMM更加樸實和現實。有時候,我覺得CMM并非完全不關注人的因素,CMM不斷地強調軟件開發過程,更像是在通過一種間接的方式來影響人。
敏捷方法和CMM之間的差異,使我想到了文化。
英國人類學家泰勒
認為,文化是一個復雜的總體,它包括知識、信仰、藝術、倫理道德、法律、風俗,以及作為社會成員的個人,通過學習獲得任何其他能力和習慣。
文化通常起源于個人和群體的習慣。當人們的習慣,融入到日常的生活中時,文化就產生了。
在習慣的培養上,CMM更加系統。它似乎更明確地希望,通過制度和約束來造就好的工作習慣。而敏捷方法,則更多地依賴個人,它希望通過一些簡單、靈活、人性化的最佳實踐,來培育一種良好的文化。這或許是二者之間的本質差異。
對于敏捷方法來說,沒有個人技能的支撐,實踐通常是失敗的。
最后,我想強調,這一節的內容不是在批判敏捷方法。事實上,敏捷方法非常適合于那些做好準備(頓悟)的人。它是我所見到的最高效的方法。