軟件開發如同越獄

openkk 12年前發布 | 9K 次閱讀 軟件開發

如果說這世界上有一種東西太多了,那它就是廣告。如果說這世界上還有另外一種東西太多了,那就是對軟件開發的類比。盡管如此,今天我還是要編造一個。你知道軟件開發像什么嗎?它像越獄。

軟件開發如同越獄

回想一下你最喜歡的越獄類型的電影,不論是《大逃亡》、《肖申克的救贖》,還是享譽海內外的電視劇《越獄》或者是《勇闖奪命島(the Rock)》(不好意思,這不是越獄,而是關于潛入監獄的)。但這跟我們有什么關系?

“我們都是來自五湖四海,為了一個共同的革命目標走到一起來了。”

在一個越獄團隊里,有一伙人是專門負責挖地道的,另一伙人是負責清除挖地道的痕跡的,還有一伙人是負責弄假身份證和假發的——一旦越獄成功就需要用 到這些。在影片的前半部分,你毫無例外的能找到一幕場景來證實他們起初是多么的相互討厭。但一旦達成了越獄的共識,他們立即變成了能為對方兩肋插刀的兄 弟。

在一個典型的開發軟件的組織里,程序員,市場銷售,業務經理,管理人員,以及投資者,這是一群不會有第二種理由能把他們聚到一起的人。它不次于任何 世界上最奇異的家族組成。然而,這最終的目標——成為市場霸主,百萬美元的收入,或者僅僅是為了取悅用戶——這以足夠讓這群奇異組合的人在最高強壓力的環 境形勢中共同度過一年半載。周末取消了,節假日忘了,你的孩子在眾人面前指著你說“這個臭臭的家伙偶爾會到我家來換內衣,而且沖著我們大呼小叫”,這些全 是為了軟件。

一伙敵對勢力百般阻撓越獄

在越獄電影里,總有一批獄警在防范犯人越獄。我們通常會看到的一幕是另外一伙人企圖越獄結果失敗了。我們多少會發現,這些獄警多少有些愚蠢。

相似的,你的對手也在堅持不斷的試圖阻止你從將要發布的偉大的軟件中獲取豐厚的回報。這對手可能是市場上的一家競爭公司,或是公司內的某一個部門。不管怎樣,你的相當大的一部分精力被消耗在擔憂防范這些敵對勢力上。

不巧的是,敵對勢力都不怎么聰明。

是否還記得,在所有的這些電影里,犯人是如何一次次的成功把挖隧道的泥土轉移的監獄院子里,所以沒有人知道他們在挖洞。還有他們如何晚上把用襪子做 的假人放到床上,這樣獄警就沒發現他們的缺寢。如果這些獄警稍微聰明一點,盡職一點,他們就會發現這些貓膩。但這種情況永遠都不會發生。

你的軟件開發團隊的敵對勢力也跟此差不多。你很可能無時無刻的不在擔心他們已經搞清楚了你們在開發什么——根據你網站上的一些描述,或廣告宣傳中泄 漏出來的一些信息。哦,天哪,也許他們在我們的測試環境中已經注冊了帳戶!你會擔心,他們一旦知道了你的產品,他們會在市場上打敗你,偷走你的錢、聲譽, 以及伴隨它們而來的錦繡前程。但你擔心的這些事情可能永遠都不會出現。

成年累月的苦干。

毫不奇怪的事實:從監獄下面挖一條隧道,穿過圍墻,你需要做很多的工作。尤其是當你只有一把勺子的情況下。

同樣的境遇,開發軟件也是一個苦力活。無論你有多少開發經驗、理論指導、開發工具,你最終難免少不了昏天黑地的敲打鍵盤。完全不是一種讓人興奮的運 動;也許你寧愿用一把勺子去挖穿一堵墻,也不愿重新整理你代碼里密碼重設的邏輯。盡管如此,為了目標必須做這些,所以我們編呀編啊編。

緊接著是驚心動魄的一刻。

當犯人最終逃出監獄時會發生什么?最不想看到的事情全都出現:有人意識到他們的假身份證永遠等不到了,有一個警察模樣的人正站在他們集合點的前面,警察和警犬的聲音從幾百米外的地方傳來。

軟件的發布與此很相似。本以為是一個歡欣鼓舞的時刻,結果情況急轉直下,生產環境宕機,谷歌不知什么原因拒絕收錄你的網站,系統中的一個bug導致多收了用戶10倍多的錢。

萬歲,我們成功的越獄了,一切順利!除非事情沒按這樣發生。

讓人驚奇的是,在所有的老調重彈的越獄模式電影中,在影片的末尾,故事開始出現分歧。有些結局是高興的,所有人都獲得了自由。而另一些電影中,沒有 一個人逃脫。剩下的一些電影中兩種情況混合到一起,一些人逃出去了,余下的人要么被抓住,要么被打死,要么被警犬咬住不放。故事的結局通常不會是過度沮喪 的,因為還要留一些拍續集的情節線索。

軟件開發也是這個套路。結局有高興的,不高興的,或喜憂參半的。世界就是這樣,盡管我們做出了很大的努力,付出了很多犧牲,但不必一定能換來成功, 所以,我們應該把重點放到軟件開發自身的過程上。我們在其中獲得了樂趣,我們相互關懷,相互學習。我們應該明白,雖然最終的成敗與否帶有一些靠天的成分, 但我們在做優秀的工作、開發杰出的軟件過程中獲得的滿足不會因此而減少。

如果世界正向我們預期的方向運轉,那是再好不過。如果不是,至少我們的續集有了一個很好的基礎。

[本文英文原文鏈接:Building Software Is like Escaping from Prison ]
載自: 外刊IT評論 http://www.aqee.net/

 本文由用戶 openkk 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!