< 序言 >
————
幾年前,當我確定我的發展方向是軟體開發時,給自己訂下的三步曲是:軟體程式設計、軟體設計、軟體工程。隨著對既定目標的越來越近的時候,我卻出現了一種困擾我的憂慮。
記得兩年前開始的乙個正規的軟體專案,我是乙個程式設計師,專案就像一顆種子一樣漸漸得長成了一棵大樹,按道理來說,看到如此成果應該會有一些成就或是自豪。可是我卻感到了一種憂慮,人在專案當中究竟是什麼呢?現代科學的軟體管理讓軟體開發變成「軟體工廠」,其中的人就像乙個被催眠了的機械人,我被定義成乙個部件,乙個資源,任憑別人的排程和擺布。沒有想法,機械地在乙個生產線上執行著已被他人安排好的流程和工作,我的想法和主張完全被格式化的條款規定乙個狹窄的框架中。我完全就是乙個「奴隸」,我開始懷疑所謂的軟體工程。
後來,我逐漸成長起來,並成為乙個專案經理,有一段時間,我開始同時從事三個專案,乙個專案中任系統分析,乙個專案中任專案管理,乙個專案中任售前技術負責。還要和乙個朋友專研電腦遊戲技術。在第乙個專案中,有兩個程式設計師接收我的分析結果,我把系統分析的詳細設計寫到了流程圖和偽**,他們負責實現,我負責解釋。在第二個專案中,我有五個人員供我調配,在專案初期,我分配兩個人做需求調研,另外三個人做技術準備,需求確定後,我分配乙個人解釋需求,我和另乙個搞需求的人做資料模型和詳細設計,而那三個人開始進行技術環境和基礎框架程式準備,一切都是按照軟體工程所定義的實施,文件和程式大量的出現,一切盡在掌握當中。
這是我平生以來工作強度最大的時期,每天我都要工作到凌晨三點,第二天八點就得起床上班。連續持續了兩個月後,每當我看那些曾經和我一樣的人,我有一種負債的感覺,我幹了什麼啊?他們是活生生的人啊,但他們卻被我變了乙個部件,一台機器。而我變成了「奴隸主」。
我開始以政治家的口氣對自己說:「做乙個好的軟體,就得這麼做,收起你的同情心吧,現實一點」。但我卻無法停止困惑、開始自我遣責,難道這就是我要的軟體工程?iso-9000、cmm、大學時所學的軟體工程,就是要把人當成乙個資源、乙個部件、一台機器?最近半年,我經常為這個問題所困擾,這完全就是奴隸主和奴隸的體制,我懷疑我生活在歷史書中所描述的強權統治社會。
兩周前,乙個好朋友向我推薦了一本書,我還記得那天早上收到快遞公司送來的這本書後,我就翻開看了,卻再也無法停止,一直看到三更半夜。因為我所焦慮的,我所懷疑的,都在這本書中得到了解決。難道老天真的知道我在想什麼嗎?
《自適應軟體開發》 從奴隸主到領袖
序言 幾年前,當我確定我的發展方向是軟體開發時,給自己訂下的三步曲是 軟體程式設計 軟體設計 軟體工程。隨著對既定目標的越來越近的時候,我卻出現了一種困擾我的憂慮。記得兩年前開始的乙個正規的軟體專案,我是乙個程式設計師,專案就像一顆種子一樣漸漸得長成了一棵大樹,按道理來說,看到如此成果應該會有一些成...
《自適應軟體開發》 從奴隸主到領袖
領導 協作 我們生活的這個世界是乙個強制秩序的年代,為了保持穩定,我們的領導人以發布命令的方式指使著我們,並對我們的日常活動進行控制。正規軟體工程中的專案經理,也正如我們的大多數中小學老師,還有我們的 他們把他們的思想強行灌輸給我們,而不管我們的個性和自由。於是,我們的思想,我們的創造力,我們的相像...
《自適應軟體開發》 從奴隸主到領袖
協作 學習 這是自適應的模型的。協作 學習 不斷迭代,從而讓團隊不斷進化,不斷適應多變的環境。就是對目標做乙個分析,給出乙個大的方向,但不要太具體,但是大方向一定要對。這不僅是提供給團隊目標,還有就是讓團隊中的每個人會因為這個目標而興奮,而產生激情。在這個過程中,專案組中要定期的散焦,在乙個過程開始...