如果像軟體開發那樣去造飛機

aqee發表於2013-07-19

  經常會聽到某某領導一拍桌子說,“幹不完就加人、加班。”這話聽起來似乎理直氣壯,但如果是軟體公司的領導,這就大錯特錯了,這說明這人根本不懂軟體。軟體開發就如同女人生孩子,10月懷胎,加再多的人也不能讓她提前分娩。

  不是我們程式設計師太矯情,軟體開發不比其他行業。軟體工程雖然也叫工程,但跟土木工程無法相提並論。軟體工程師雖然也是工程師,但跟建築工程師幹法完全不同。引用《軟體工程的變遷》裡的話,你能明顯軟體工程的不同之處:

當一個土木工程師去修建一座跨河大橋來連線河兩邊的道路時,工程師會非常清楚的知道道路跨河的精確地理座標位置。行駛的車輛在數年裡也不會發生重大的改變。橋樑工程師只需要按照之前已經被上千次的驗證過的建築工藝把河兩邊的路連線到一起。

對於軟體系統,因為技術或業務發生了變化,在建設過程中(在所有需求和設計文件完全完成後)需求需要做重大修改的情況並不罕見。如果把這種情況放到修橋的事情上,相當於當橋的地基打好後,再把橋的搭建位置往河的下游移6公里。

  不僅如此,軟體開發裡還有一些讓其他行業里人無法理解的現象。比如程式設計師夜貓子的習慣,想想如果建築工人也是晝伏夜出會是什麼景象?比如“結對程式設計”,如果建築工人結對砌磚會是什麼效果,不僅不會提高速度和質量,而且很有可能會被開除。特別是“持續交付(Continuous delivery,開發一塊,給使用者交付一塊)”,如果蓋房子也“持續交付”,沒有屋頂的房子一定會漏雨。但如果換成造飛機時也邊造邊運營,這就是奇蹟了。大家想看奇蹟嗎,那就看看下面這個視訊吧,看看如果像軟體開發那樣去造飛機,會是一個什麼樣的壯舉。

<embed>

相關文章