12月10日下午,由CSDN(微博) &《程序員》主辦的第十八期TUP沙龍在北京知春路麗亭華苑酒店舉行,本期沙龍的主題是“精益和敏捷軟件開發”。除了UML之父Ivar Jacobson帶來的精彩演講,還有另兩位來自雅各布森的敏捷專家黃邦偉、陳慶春也發表了熱情洋溢的講說。本次沙龍參會人數共計350人次,現場氣氛十分熱烈。
精益思想已在諸多行業取得了卓越的成效,敏捷軟件開發更是讓困境中的軟件開發人員看到了曙光。本次大會中,敏捷專家們將精益和敏捷這兩種思想的精髓揉合在軟件開發中,幫助廣大開發人員將廣為接受的精益原則轉換為適應具體環境的敏捷實踐,從而提高組織的軟件開發能力。

以下是Ivar Jacobson的演講實錄:
大家下午好。今天的話題是我9月份在倫敦的會議上講的。我的想法是做任何事情的時候,發現它的本質是非常重要的,不要讓它的本質被你所看到的假象所埋葬,這也是精益思想的精髓。
大家知道米開朗基羅嗎?米開朗基羅是西方世界最著名的藝術家,他雕刻的大衛雕像是個杰作。當時有很多說法,其中有一個比較知名的說法是,當他站在大理石面前,只有他看到里面隱藏著一個大石,他所要做的事情,把加在大衛身上這些枷鎖和不需要的東西解除掉,這樣大衛就出來了。米開朗基羅從大理石里看見了大衛,這就是看見了里面本質的東西,把不需要的東西去掉,我們也需要發現它的DNA,這樣從這個DNA塑造更多的大衛。
發現事物的本質,而這個本質是可執行的,是能動的,好像一個人,我們一開始是完整的能走、能跳、能爬,只不過會慢慢地長大變得更強壯。這時候要去發現它的“核”。
抓住核心價值 尋求獨特發展

如圖,我們看到這上面畫了一個“核”,它有三個邊。一條邊是說它是可執行的,這是很重要的,我們不要紙上談兵。一開始的時候我們也是在開發一個系統,大系統當中的一個小系統,只是它非常小,但是它還是可執行的。
另外一條邊指的是藍圖,就是知道它會往什么方向發展,我們有了一個小的東西,我們會知道這個小的東西往什么方向發展,它會不會發展成我們不想要的東西。但是有一些時候我們很難很清楚地知道它會往哪個方面發展,這個時候我們需要一些原則,它有一些基本的原則保證它的發展的方向不會走錯。
三條邊一個是可執行的、還有一個是有藍圖的,還有一條邊是有自己的內涵的原則,我們有了這個核,就可以從這個核開始,去做任何的事情。
如何應用這個核來做事情,舉三個實例,一個是跟業務的開發有關,另外是軟件開發本身,還有如何去構造一個好的軟件開發者方法。
先從業務開始講,若要去描述一個業務,我們會描述兩個東西,一個是目前的組織的狀況,現在是怎樣的。另外會描述它在不久的將來能夠長成什么樣子。
現在我們的問題是,在描述這個東西的時候,業務是非常的復雜的。我要講的例子是倫敦股票交易系統,它最后的結果是延期了12年,最終的費用是原來的132倍。失敗有很多種原因,其中一個非常重要的原因,我們不要去試圖把所有的東西一下子想清楚,因為太大了,所以要從它的“核”開始。

如圖,這個例子中我們要的核是什么?這個例子中可執行的東西就是核心的過程,把它最核心本質價值的東西抽取出來,并且做成一個可執行的,然后從這個可執行的小的東西去想,它的發展的模式可能是分布式,可能是一個產品,或者是應該是多個產品。
我們有了核當中可執行的部分,如果它沒有很清楚的藍圖,我們需要去考慮它有哪些核心的原則和價值。舉例:宜家、Google都會有自己的核心和原則,Google有一個著名的話“不作惡”這是它發展業務的核心,如果后續的發展跟這個矛盾它就不會去做。
在20年前有多小的公司興起,在當時還有很多大公司,但是這些小公司有可能把原來的大公司給滅了。大家知道誰創立了Skype嗎?比如說Skype的興起,那么為什么那些傳統的公司沒有反應呢?因為他們會說我去做這樣的事情,會危機到我原來的業務。
再往前看的話,一個人從身無分文到變成一個億萬富翁,大家或許不太相信,但是Internet卻改變了這一點。
Skyp創始人把他的公司賣給易貝,賣了43億美元。易貝收購了Skyp這是非常不成功的例子,Skyp對易貝來說是非常小的一部分,易貝也不知道怎么靠Skyp來賺錢,所以過了幾年之后這個哥們又去把Skyp收購了回來,只花了5億美元。然后過了幾年Skyp又發展了,三年以后又賣給了微軟(微博),具體的數字是幾十個億或上百億。
這個例子讓我們看到他要抓住自己的核心價值是什么,然后可以尋求他能夠有自己比較獨特的發展。我們有可執行的小系統,核心價值的原則和價值的東西就能夠不斷地去發展,包括軟件和技術的方面。當發展業務的時候,業務和IT系統是同時來做,是迭代來做的,而把所有的事情先想清楚再去做,這是兩個對比。
“Skinny System”式架構
下面我們要講的話題和大家關系更緊密一些,首先是要從比較小的開始,抓住它的核心的東西不斷地長大,F在的軟件開發越來越復雜,代碼、模型等等的方面,如果要用傳統的敏捷方式,有可能要去擴展會比較的困難。我們做軟件產品的時候,關鍵的也要有個小的軟件系統,比較核心的系統,從這個上面再去加更多的應用。從骨架、框架系統,比較小的系統開始,讓你認識到你的業務是什么,然后在這個骨架上加更多的應用和能力。

如圖,這是幾年前去新西蘭做演講的時候做的,新西蘭有很多的綿羊,所以用這個例子會使新西蘭比較好理解。我們要從骨架系統開始,這個骨架雖然很小,但是它是可執行的。 Skinny System是一種羊,它是會動的。
推薦閱讀
2月18日,CSDN(微博)在北京舉行了TUP第19期活動:大數據系列研討會——從12306談起。本次研討會匯集了來自百度、豆瓣(微博)網、搜狗、淘寶、土豆、凡客誠品(微博)、新浪微博、IBM等公司的眾多業內技術高管,就大數據>>>詳細閱讀
本文標題:UML之父Ivar Jacobson:精益思想的復興
地址:http://m.sdlzkt.com/a/kandian/20120305/36942.html