斧頭與流程改善
軟體工程有許多觀念是比較抽象的,也因此有許多生動有趣的故事孕育而生,用來闡述這些生澀的觀念。這個部落格既然名為『輕鬆談軟工』,我覺得也適合談一些小故事。
有一個樵夫靠砍材為生,砍材的斧頭就是他主要的生財工具,也是所有家人的依靠。隨著小孩子一個個的出生,樵夫的經濟壓力越來越大,於是他越勤勞的工作,工作的時間越來越長。日子久了,斧頭生鏽越來越嚴重,木頭都砍不下去了,路過的人好奇的問:『老樵夫啊,斧頭都生鏽了,怎麼都不磨一磨?』
『開什麼玩笑?砍材都來不及了,哪來的時間磨斧頭?』老樵夫頭也沒抬的說。
這個故事主要談的是流程改善。許多軟體工程師每天都像樵夫一般勤奮的工作,可是工具、方法錯了,勤奮的工作並沒有帶來相對的報酬。他們或許感覺需要停下來改善工作的流程,例如規範需求變更的流程、設計版本控管的機制、研究專案成本的估算方法,無奈手頭上的案子每個都是十萬火急,只好暫時把流程改善的工作丟到一旁。這一丟可能就是好幾年,也丟掉可能成功的契機。
如何解決?我想組織必須要有長痛不如短痛的決心,另一方面,高階主管的鼓勵、決心與半壓迫的魄力也很需要。沒有決心,每個經理人都是以專案為重 - 能砍多少材是多少材吧,很難做長遠的規劃。
有一個樵夫靠砍材為生,砍材的斧頭就是他主要的生財工具,也是所有家人的依靠。隨著小孩子一個個的出生,樵夫的經濟壓力越來越大,於是他越勤勞的工作,工作的時間越來越長。日子久了,斧頭生鏽越來越嚴重,木頭都砍不下去了,路過的人好奇的問:『老樵夫啊,斧頭都生鏽了,怎麼都不磨一磨?』
『開什麼玩笑?砍材都來不及了,哪來的時間磨斧頭?』老樵夫頭也沒抬的說。
這個故事主要談的是流程改善。許多軟體工程師每天都像樵夫一般勤奮的工作,可是工具、方法錯了,勤奮的工作並沒有帶來相對的報酬。他們或許感覺需要停下來改善工作的流程,例如規範需求變更的流程、設計版本控管的機制、研究專案成本的估算方法,無奈手頭上的案子每個都是十萬火急,只好暫時把流程改善的工作丟到一旁。這一丟可能就是好幾年,也丟掉可能成功的契機。
如何解決?我想組織必須要有長痛不如短痛的決心,另一方面,高階主管的鼓勵、決心與半壓迫的魄力也很需要。沒有決心,每個經理人都是以專案為重 - 能砍多少材是多少材吧,很難做長遠的規劃。
流程固然重要,如果依"The Agile Manifesto"第1項:"Individuals Intractions over processes and tools"來說,似乎人以及人與人之間的互動應較被重視。你的說詞讓我想起金庸小說"倚天屠龍記"內,張三丰在眾多強敵前教他徒孫張無忌太極拳,最後他問張無忌,你還記得什麼?張無忌答說:統統都忘了,這樣就大功告成了,張無忌可以隨心所欲不必拘泥於什麼招式克敵。發展軟體也應該不限於何種招式,只要適合專案特性即可,例如Jacobson等人的Unified Process並不主張完全follow他們的流程,可以「客戶化」,當然初學者仍然要先規規矩矩學一些方法,如張無忌初學太極拳一般,但不能太「康固力特」,教學生也應如是。「金鋼經」裡有一句名言:「應無所住,而生其心」,大慨也就是這個意思!
回覆刪除黃教授所言甚是。記得今年邀請陳振炎教授來校演講時他說到一個觀念,讓我對 Agile的方法有一個新的體認。一般人以為 Agile比較鬆散,比較容易進行,而忽略或跳過如 Waterfall的學習。事實上,執行 Agile 的成員最好具備執行過多次 Waterfall的經驗,正如同張無忌必須練過許多紮實的武功才能隨心所欲的使用太極劍法一般。台灣的軟體產業目前應該還是要多練練基本的功夫吧?
回覆刪除很多然看完這個故事只是搖搖頭,笑一笑, 然後呢?
回覆刪除若您認為都是專案經理人的問題, 是老闆的問題, 是組織的問題???
那您只是程式設計師, 或者稱之為(特殊語言)作家, 文字工作者.
看完這個故事後, 試問您若是軟體工程師,會採取怎樣的行動呢?
何謂工程? 為何要有工程? 發展軟體也應該不限於何種方法,只要適合專案特性, 每一種方法不就代表由一群流程組合而成嗎? 但別忘了, 客戶會想要知道到進展, 這個關係到能不能填飽肚子, 怎能不慎呢?
回覆刪除我們單位也有這樣效率不好的樵夫,平時很氣人,但景氣不好時,沒有這樣的人,當主管就會很為難
回覆刪除這種事情在台灣不可能發生
回覆刪除嗯....依小弟的農具使用經驗..斧頭會生鏽的唯一原因是沒有拿來砍柴. 若是一直都有使用的話是不會生鏽的! 寫故事的人一定不是務農的....又或許這個故事有更多的啟示....
回覆刪除一個小自耕農留