- 簡單之美:軟件開發實踐者的思考
- 倪健
- 973字
- 2018-12-31 18:20:51
2.2.2 成熟之路
只有成熟的軟件開發組織,才能快速適應組織規模的變化,才能持續不斷地遞交成功的項目成果,才能最大限度地降低團隊開發的成本。
CMM提供了成熟度評估模型。這個模型,可以幫助軟件開發組織,圍繞著軟件開發過程這條主線,通過各種有價值的活動,最終達到軟件開發能力成熟的目標。
我相信,在我們這個美麗的星球上,有不少值得尊敬的、成熟的軟件開發組織。遺憾的是,我至今還未接觸到它們。
這使我充滿了幻想。
在軟件開發實踐中,我們經常會遇見這樣的場景。
在項目進行過程中,由于某些原因,項目無法按時完成。于是,為了確保及時交付產品,項目經理會提出兩種方案:加班或加人手。
高一級的經理會對這種做法表示贊賞。因為在項目出現延期風險時,項目經理采取了相應的對策。
接下來,項目經理召開了多次會議,討論軟件開發人員的工作安排。由于公司可以提供的資源是有限的,所以往往采用加班這個方案。
類似的會議不斷地召開。
最終,項目延期了。
顯然,偶爾出現這種場景是正常的。可現實的情況是,這種場景幾乎出現在公司的每一個項目當中。我認為,頻繁出現上面的場景就是一個軟件開發組織不成熟的特征。
我在想,在一個軟件開發組織中,為什么沒有人對這類問題進行思考并采取行動呢?為什么失敗的經驗不能減少失敗的可能性,而僅僅是增加了失敗的合理性呢?為什么有這么多的人寧愿被動地接受項目延期,也不愿到CMM中去努力尋找解決方案呢?
不經歷CMM(或類似的工作模式),很難體會到敏捷開發的意義。CMM仿佛是軟件開發組織成長中的一個階段。只有經歷過這個階段,軟件開發思想才能更快地成熟。
CMM可以使我們認清軟件開發過程中的好與壞、輕與重。
CMM中有解決方案嗎?既有,也沒有。
說沒有,是指當你的項目陷入危機時,它幾乎不會提供任何幫助;說有,是指它為你的軟件開發組織提供了一個方向,可以確保組織走在一條正確的道路上。盡管你暫時沒有好的辦法,但是總會在將來的某個時刻擁有解決問題的能力。
這就像武林高手,為了笑傲江湖,必須從馬步練起。而馬步在臨敵之際,給不了你任何幫助。
所以,我更愿意把CMM看作是一條成熟之路。
在這條成熟之路上,最重要的是軟件開發思想的修煉。
是的,任何一個軟件開發組織的軟件開發過程,都是不相同的。當我們的智慧經過積淀和結晶,當這些積淀和結晶被記錄在案,當我們擁有了知識基礎,當我們的軟件開發思想形成體系,我們將可以輕松面對任何變化。