成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

軟件開發!=軟件工程 你真的希望如此嗎?

開發 項目管理
端著咖啡,你大步走向書房,只余腳步聲回響在空蕩的走廊里。跨過門檻,停下來咯噠一聲打開頭頂上的節能燈,放在書桌中央的筆 記本電腦一下子映入你的眼簾,明亮的屏幕上圖表正在發出誘惑的光芒。

端著咖啡,你大步走向書房,只余腳步聲回響在空蕩的走廊里。跨過門檻,停下來咯噠一聲打開頭頂上的節能燈,放在書桌中央的筆 記本電腦一下子映入你的眼簾,明亮的屏幕上圖表正在發出誘惑的光芒。放下咖啡,你決定***再研究一次,看看還有什么錯誤或誤算是先前被遺漏的。不斷地熬 夜,熬夜,但***,終于讓你獲得了客戶的認可。

喝一口依然還滾燙的咖啡,你決定***一次檢查客戶需求。用早餐的位置?有了。四個浴室,其中一個要在天花板上安裝花灑淋浴頭?有了。三車車庫以及寬 敞的院子?有了。一切準備就緒,各就各位。***的審查讓你充滿自信:想必客戶定會滿意,施工也馬上可以開始。合上筆記本電腦,抓起它走出房門,興沖沖地想 要展示給客戶看。

正如你所預期的那樣,客戶很滿意!他對院子的大小很滿意,他和他的家人也很喜歡你設計的游泳池和早餐位置。但是美中不足的是….

“你能讓它飛起來嗎?”

[[138589]]

這是工藝,而不是工程

上面的故事顯然是荒謬的:只要是思維正常的人都不會要求讓房子飛起來,因為我們都見過房子,它們都是不會飛的。然而,這樣的情景卻經常在軟件開發上 重演,一遍又一遍。客戶要求的東西——他認為是合理的,但對我們開發人員而言可能是完全不可能的——至少目前為止我們清楚這是不可能的事情。現在的軟件開 發很少有章程,雙方協定的標準就更少了。我們能做的,通常就是,創建的東西盡可能地符合客戶的期望。

幾年前,有一個關于軟件開發是否可以被 稱為軟件工程的大辯論,這源于一篇名為《Software Engineering: An Idea Whose Time Has Come and Gone?》的文章,作者是Tom DeMarco。DeMarco認為,短命的軟件工程已經死去,這對于所謂軟件“變革”的創建并不重要。

DeMarco的論文認為由于缺乏測量力度(和“軟件”一詞所代表得深度和廣度),軟件工程已經走向了滅亡。但是我看到的是一種截然不同的現象:軟件工程從未存在過。

首先鄭重聲明,我贊同DeMarco先生的主要觀點。軟件開發不是工程,因為在傳統的工程中輸出是有把握的,且可被反復衡量和控制的。 DeMarco的著名論據“你無法控制你不能衡量的東西”是對此理念的***總結:如果你不能衡量你將要實施的變化的影響,那么讓我們怎么相信你能控制它們 呢?

這一點,在我看來,正是我們不能將軟件開發稱為“工程”的首要原因:我們不能衡量將要實施的變化的影響。當然,我們可以執行單元測試,集成測試—— 我們能想到的所有測試,但我們依然無法準確估計當我們實施所有潛在的變化時,它們對現有系統所造成的影響范圍。我們現在根本沒有足夠的工具來做到這一點, 并且據我所知,我們一直以來就沒有這樣的工具。

我認為軟件開發可以當作一門手藝。“工藝”一詞或許能夠更好地描述我們開發人員的實際工作。

[[138590]]

工藝和工程之間的主要區別是,后者使用已經廣為人知且公認的知識來解決問題,而前者使用的是更專業的知識,懂這些知識的人不如前者那么多,甚至這些 知識可能是不成文的或并不為大眾所認同。因此,我們可以得出軟件工程一說根本不存在的觀點,因為沒有足夠普遍都接受的知識來證明它可以叫做“工程”。

那么“軟件工程”可以存在嗎?是否有用?

軟件工程這說法是否可行?

假設將軟件開發的整個領域轉換到工程學科是可能的。然而,我們真的想要這么做嗎?

在我看來,創建有用的軟件需要具備一定層次的藝術技能,有的形式的創造并不能用數學和工程精確地表現出來。創造力能讓我們面對從未見過的問題時,也能想出新穎的解決方案。但是如果我們不小心,它也會讓我們搬起石頭砸自己的腳。

對我而言,將軟件開發制定為工程學科會消弭大量的創造自由(當然并非全部),從而阻礙我們從多方面思考來解決當前問題。

另一方面,利用工程策略可以顯著提高例如標準規格、可測試性,以及項目管理等理念。此外,它提供的公共知識池,可作為使用來源用于參考解決方案,使它們更容易交叉引用。

既然這樣,那么共享和控制所有知識是否值得我們失去一些創造的自由?我認為這不值得,哪怕上述權衡真的可以實現。軟件可用于所有基本的事情,與其說 偉大的多元化思維自由是我們解決問題的阻礙,倒不如說它是福音。如果硬是將軟件塞進工程領域,那么就會有太多的變量,太多的問題,太廣泛的問題范圍需要考 慮。對所有軟件開發使用工程策略將會是一場災難。

這篇文章開頭的故事,就是一個當我們將軟件開發與工程作比較時,常見但不正確的假設:即將軟件設計比作是蓋房子。這嚴重偏離了事實。房子是有形的, 受到物理定律如重力的約束,并且我們已經擁有了上千年的筑造歷史,知道如何建筑適宜居住的房子。而軟件是沒有這些條件的,因此這樣的比較說好聽點是天真, 說難聽點就是誤人子弟。

總之,軟件開發永遠不可能是軟件工程。

我們的專業是一門手藝,我們是工匠。軟件開發是一個過程,作為程序員的我們吸取關于項目的專業信息和設計內容,然后實施滿足客戶需求的解決方案。它是藝術,它充滿了創造性;它不是工程,它也不需要成為工程。這應該成為我們的共識。

你有什么看法?你認為軟件開發成為軟件“工程”是一個值得追求的目標,還是一項不可能完成的任務?歡迎分享你的評論,請暢所欲言!

 

 

 

責任編輯:王雪燕 來源: 碼農網
相關推薦

2011-05-17 09:25:33

軟件工程師

2011-05-17 10:48:30

軟件程序員

2009-07-24 09:43:09

軟件工程軟件開發

2011-05-16 10:05:33

軟件工程師Java工程師

2020-03-09 11:00:42

軟件技術開發

2011-05-10 09:22:28

軟件工程

2020-07-01 07:00:00

軟件開發低代碼無代碼

2009-02-12 11:52:23

軟件工程師職業規劃價值

2011-09-07 08:59:23

2013-07-24 10:11:50

軟件工程師

2020-06-24 11:21:47

軟件開發面試

2017-03-17 08:15:17

敏捷軟件開發軟件開發

2024-11-07 12:14:36

2012-06-18 09:34:14

2020-12-01 16:51:05

軟件工程師編碼代碼

2019-11-22 08:00:00

軟件軟件開發

2021-11-04 10:42:43

汽車軟件技術

2022-08-20 18:28:49

汽車軟件

2014-10-08 09:34:23

git并行管理并行工程

2009-05-26 17:38:43

IEEECSDA認證CSDA
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 精品福利av导航 | 国产免费拔擦拔擦8x高清 | 国产乱码久久久久久一区二区 | 久久综合影院 | 日韩在线免费 | 亚洲国产精品一区二区三区 | 亚洲欧美视频 | www.97zyz.com| 国产精品视频久久 | 日本久久综合 | 国产福利在线视频 | 看一级黄色毛片 | 欧美综合一区二区三区 | 午夜精品视频一区 | 天天干天天爱天天爽 | 91社区在线观看 | 欧美性另类 | 久久精品国产免费 | 成人在线视频网址 | 懂色中文一区二区在线播放 | 欧美一级淫片007 | 亚洲免费精品 | 99热最新网址 | 91精品国产欧美一区二区 | 午夜免费看 | 玖玖国产 | 国产一区二区在线免费 | 国产精品视频播放 | 在线黄色影院 | 亚洲一区二区三区在线 | 国产精品久久久久久婷婷天堂 | 99久久久久久 | 欧洲高清转码区一二区 | 99久久久无码国产精品 | 亚洲精品久久区二区三区蜜桃臀 | 欧美一级在线观看 | 免费久久久久久 | 亚洲综合区| 日韩中文字幕一区 | 激情毛片 | 日韩伦理电影免费在线观看 |