獅子羔羊(公共微信平台)

創作的衝動來源於對過去的尊重和對未來的向往。字裏行間無意中表達出你的理念,你對生活,工作,愛情的詮釋。

文章均為獅子羔羊原創,版權歸獅子羔羊(CN) 及其筆名擁有者所有。為保護微信公眾平台的【原創】特性,有意轉載者請聯係作者
個人資料
正文

小說 一念之間之一 她(十九)

(2016-03-31 21:38:36) 下一個

大家吃上嘴了後,曼雲喝了一口飲料這才不急不忙地繼續說了起來。

 
剛才談了網絡設備的性能提高飛快,有線網無線網絡大多在30%到60%的年增長率發展。可用戶不會因為你有了新設備就把舊設備扔了買新的設備。而且這些設備的物理壽命很長,如果你隻滿足於目前的性能,你會繼續用下去而不買新設備。
 
你隻會在舊設備無法滿足新需求時更新舊設備。而雲計算就是這種新需求的源泉。蘋果在其itune 平台上租和賣電影,微軟在其xbox平台上做同樣的事情。Netflix,胡蘆通過網絡放電影電視,有線電視新聞網絡公司也把其新聞節目通過英特網送到用戶的顯示器,電視屏幕,和手機平板設備上。Vonage 通過網絡提供電話服務,這樣的麵向消費者的網絡服務如雨後春筍,它們為網絡設備提供了非常強勁的需求。但相比於麵向工商業的雲計算這些還是相對地小了許多。
 
我在講座裏麵提到的平台雲計,應用雲計算和基礎設施雲計算為網絡設備提供著最為強勁而且不斷提高的需求。如果你做一個調查你就會發現一個公司的雲計算的推廣程度與這個公司的總帶寬是成正比的。有了這個總帶寬的增長,整個英特網的各個環節都要不停地更新,這就給我們網絡設備供應商提供了無窮的商機。設想一下我們公司今天沒有網絡或者網絡比平時慢一些,我們會有什麽樣的反應?
 
說到這裏,服務員送菜來了。不同於一般美國餐館是用一個小車送菜的,這裏是服務員手舉一個七八十公分的大盤子,上麵放著每個人的菜餚。托著盤子走過來,放下盤子,不灑不潑不翻,真是好身手。
 
轉眼之間大家的食物都上齊了,大家都開始吃了起來。
 
彼德邊吃邊問道:在許多推廣agile 開發過程中遇到從管理層的阻力大多是單元測試和配對編程,他們主要的考量是這些活動對工作效率的影響。史蒂夫在這個方麵有什麽見解,能否在爭取領導層的支持給我們一幫助。正好邁克爾在這裏,你們也許可從用情景對話的方式探討一下。
 
曼雲笑著說這是一個很有趣的話題,邁克爾,我們試試?邁克爾點頭應允。
 
就開始慢慢地說了起來:
 
從表麵上看,配對編程減少了一半的工作效率。自動測試至少減少了20%的工作效率。從這兩個數據上看,不是好主意。
 
可是讓我們來看看真正的實際情況。首先,如果你注意觀察一下我們程序員的工作狀況,你會發現我們花多過一半的時間讀程序和走程序,用少過一半的時間寫程序。其主要原因是我們不知道哪裏出了問題,我們在人工地走邏輯企圖發現問題所在,或者我們在讓程序一步一步地運行同時監測數據變量和流程從而找出問題所在。這兩個活動占去了我們程序員的大半時間,從某種意義上講這些是無效時間。(nonproductive time )
 
還有一個情況也是很普遍,就是你應客戶要求改了程序的一個邏輯,你以為你做了應該做的事情然後做了些測試,運行正常,質檢部門也沒發現問題。然後你把它送上線了。可是半夜裏你被電話叫醒了,程序出了問題了。因為你的改動對程序的其它部分造成了副作用。在這種情況下哪怕是最後解決方案是隻要改一行程序,其所需的時間和對公司業務和聲譽的影響是非常之大的有時甚至是不可彌補的。
 
還有一個現象我想大家都遇到過的。係統的某一個部分一直是小組的某一個成員寫的和維護的。就在他或她度假期間,或者更壞他或她剛剛辭職的第一周,用戶部門提出改動需求,小組裏誰都不太有把握動手。然後強動了手了,上線後提心吊膽的,生怕出前麵所講的問題。
 
這裏的關鍵點就是程序越來越複雜不是某一個人能完全了解和記得的。一兩百萬行程序的係統比比皆是,已經超越了人的極限了。最近的阿發狗贏了國際冠軍就是一個例子。
 
其解決方案就是上麵講的做法,讓程序測試程序。每次做了改動後把所有測試程序運行一下。出錯的機會就小多了。雖然在早期開發時會多花20%到30%的時間。隨著時間的推移,你20%到30%的投資會以100%甚至更高的回報。
配對編程在實際情況下會增加時間費用20%到30%,絕不是我們想象的50%的費用。但是這20%到30%的投資會產生更高質量的軟件產品,試驗顯示,百行出錯率減少30%,程序可讀性可延伸性提高40%多。
 
這裏有心理學基礎的。我不是說人的本性是偷懶的,我是說當一個人在大庭廣眾之下他會比隻有一個在一個角落裏表現得好。
 
還有在配對編程下我們小組的每一個人對每一個部分都了解了,所以不會出現前麵講的沒有人敢動手的情況。特別是小組增加人手和人員變動時其優越性更加明顯。
 
最後再講一個附加的好處(對公司而言)試驗表明在配對編程的情況下,成員遲到早退的情況減少了,成員在上班時間做私事的少了,因為你要向你的同伴解釋和對他(她)有個交代了。所以我們程序員推動配對編程時要清楚“what you are asking for "
 
彼得問道:在配對編程的情況下,為什麽每人都對每個部分都了解呢,頂多每部分兩個人知道呀?
 
曼雲回答道:你說的對,如果他們不換編程夥伴的話。與警察出警不同的是極端編程中配對編程中的夥伴天天換。就這麽一換,一兩個星期做下來你就與每一個人都配對過了,你也對小組裏工作的每一部分都了解了一些。
 
再加上自動測試,你對係統進行改動時的把握大多了,什麽地方有問題自動測試會告訴你的。
 
我注意到邁克爾認真地聽著思考著。
 
隔了好一會一兒,邁克爾問道: 在這種工作流程中對編程人員的技術上有什麽不同的要求嗎?
 
曼雲回答道:這是一個關鍵的問題,如果我們像以前一樣地設計和寫代碼,前麵講的優勢就無法顯現出來。
 
在這種流程下,我們設計程序結構時要把可測試性考慮進去。在發現現有程序結構在加入新的是邏輯時顯得不那麽地合理時要勇於創新勇於改進,萬萬不能拷貝一下修改一下就交差。要有精益求精的精神。絕對不放過一個重複邏輯,一定要把能夠共用的邏輯精練提取出來,業中有一個詞叫DRY (Do not Repeat Yourself ) 絕不重複。
 
我也注意到曼雲基本上沒有動他盤子裏的食物,隻是吃了幾口印度煎餅和喝了些飲料。
看到大家都吃得差不多了,他就請服務員送過來一個盒子打包了。邁克爾順便讓服務員把賬單送來。那個挺帥的小夥子指著曼雲說:這位先生來的時候已經提供了信用卡信息預付了。希望你們享受這裏的午餐,謝謝你們。大家紛紛向曼雲表示感謝。我知道他這些都是為我做的。
 
大家都起身準備離席了,我走近邁克爾說:我哥哥就要走了,我與他已經兩年未見了。我與他說會兒話,然後我再去聽講座,可能會跳過一個節目,可以嗎?
邁克爾連忙說:沒問題,你們是該私下聚聚了,是我們耽誤了你們的私人時間還害得他午餐都沒吃好,對不起了。
說著大家與曼雲一一握手道別下樓了。
 
小說純屬虛構,請勿對號入座
 
[ 打印 ]
閱讀 ()評論 (0)
評論
目前還沒有任何評論
登錄後才可評論.