在開發的過程中,修改成本的降低是核心的。你可以任何時候對系統做任何的修改。敏捷式是不排除設計的,只不過設計不是由架構師單獨想出來的,而是這些設計非常簡單,而是在開發過程中,每一次開發都要進行設計,設計開發不斷循環,技術從簡單到復雜,最后逐漸形成一個完整的過程。這個過程不是非常容易演示,有很多技術需要支持這種設備的改進。最重要是測試、開發、重購和自動化。測試扮演著非常重要的角色,最簡單說,對任何一個功能,開發過程中,作為一個程序員,既要寫出測試程序,也要寫出功能程序,他寫出這個測試程序,先怎么樣測試,然后這個時候再寫功能程序。很簡單一點,他確實減少了很多的浪費,因為寫的過程中,對需求的考慮通常會使程序員寫出很多沒有必要的東西,因為這些測試是可以不斷的重復執行的。這些功能程序是不斷增加的。最后到你系統開發快結束的時候,你可以很隨便的運一下所有的測試程序。這就使得我們現在提到這個概念就是重購的概念。重購是通過技術修改進行設計,它不是說想把三層的架構改成四層的,而是小范圍的改動,使得程序保持靈活性和非常干凈的基礎上,第一它使你的細節設計提高,第二使你的大幅度改動變成輕而易舉的事情,使設計是在不斷的改進過程中也成為可能。
敏捷開發還有一個很大的特點就是它是以人為本,而不是以方法為本的。我們的軟件開發是腦力勞動,而不是簡單的工作。如果你設計出一套方法來,不管什么方法,讓每個人去適應的方法,最后開發效應反而不如你組建一個具有進取心的團隊,這個團隊通常情況下是先選擇一方法,細節也一樣,在開發過程中,不斷對方法反思,直到達到這個團隊的最高開發效應為止。
敏捷開發項目結束的時候和開始的時候方法已經不一樣了,這個方法是團隊使用的方法,而且方法的改進不是一個項目經理或者管理人員的事情,而是所有人的工作。
敏捷開發我再做一次定義,敏捷開發不是一個單一的方法,包括編程等。這些方法的開發創始人他們在一起開了一個重要的會議,提出了敏捷開發的概念,敏捷開發,只要你的方法跟它相似的開發哲學,這些開發哲學叫做敏捷式開發原理。
第一就是個人和交互要遠遠比流程和工具重要,第二能工作的軟件超越應盡的義務。
軟件維護,還不如買一個新的軟件。
你如果采用敏捷式開發,你的產品上市時間可以達到提高,第二客戶滿意度得到提高。很多公司不會抱怨,我確實告訴你這么做的,你也不會做的這么差。如果一個軟件的交付不是真正的成功,而是一個客戶滿意是真正的成功。
剛才上午很多的報告中,都說現在中國軟件市場發展速度非?,整個經濟發展非常迅猛,隨之而來的機會比較多。而且歷史包袱很少,這有一個好處,在西方幾十年來犯了一些錯誤,得到的一些經驗可以在中國實施。如果說中國能把握這個機會,在開發方法或者其他方面采用了最先進的技術,而不是根據它以前做的,很可能使得中國企業本身在全球范圍內競爭。