|
本文是從 I am not an engineer - I’m a software developer 這篇文章翻譯而來。
在《Object-Oriented Software Development Using Java》這本書的導言部分,第8-9頁上的“軟件開發過程是工程化的過程嗎?”一節中,Xiaoping Jia寫道:
…對于“軟件工程”這個詞的精確定義仍然沒有多少共識,就連使用“軟件工程師”作為一個專業職稱的正當性也受到質疑…
工程(engineering)和工藝(craftsmanship)之間的一個關鍵區別就是,工程的成功可以通過事前對設計的科學分析而得到保證,而工藝的成功卻是通過當前的和之前的制作上的試驗和失誤獲得的…
在某些非常成熟的工程化領域里,失敗、有時甚至是災難難以杜絕…但相同的失敗卻很少會重復發生…而對于軟件開發,相同類型的失敗比比皆是。
成熟的工程化領域里的成功很大的原因在于對知識的規范和積累,重復利用以前的解決方案…對于軟件開發,盡管有積累的大量的經驗和設計技術,卻很少有被系統化的整理過的…
所以,軟件開發是一項跟傳統的工程方法有很大的不同的活動。充其量也只是一個不成熟的工程學科。軟件開發如果想成為真正的工程方法,軟件開發人員必須要機械的去執行設計分析,確保已知的失誤不會重現,把設計知識系統化。
我不是一個工程師。我是一個軟件開發者。在跟一個是工程師的朋友交談中,我問他覺得我和他的工程作業上最大的不同是什么。他沒有想太久。“我的產品都是大規模生產的。”
我是一個軟件開發者。在我的想象里,就像Jia指出的,我們更接近是手藝人,而不是工程師。但我所說的“手藝”跟Jia說的有很大的不同,我所指的不僅僅是開發過程和工程過程之間的交集,更指的是讓軟件成為工藝品的工藝流程方法。
我既不是一個計算機科學家,也不是一個業余人士,既不是一個專家,也不是一個新手。我處在中間,我靠寫代碼為生。
it知識庫:我不是一個工程師 – 我是一個軟件開發者,轉載需保留來源!
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。