l

2014年10月2日 星期四

擠一擠就有了

Sep. 29 15:52~16:43

螢幕截圖 2014-09-29 15.46.32

 

有人說:「軟體開發最難之處在於讓每個人動腦」,Teddy非常相信這句話。秉持這樣的信念,在北科資工所「敏捷與精實軟體開發」課堂上,Teddy採取「逼迫」學生動腦與閱讀的策略。第一周上課Teddy請學生列出影響車流順暢的原因,經過一番討論,學生們想出如上圖的幾點因素。接著,Teddy請學生將這些因素與軟體開發相比較,看看可以對應到軟體開發的那些項目。

經過一番嘗試,大家得到幾點共識:

  • 車子代表工作項目(work item),車況不佳(需求不清)會影響車流。
  • 專案管理的主要目的之一就是想辦法讓車子順利(無阻礙、快速)在馬路上流動。
  • 駕駛代表開發人員,駕駛的技術、精神狀況、目標是否清楚等因素,會影響車子行徑的速度。
  • 人為介入、天災、障礙(阻礙)等因素也會影響車流。
  • 紅綠燈就好像部門間溝通的順暢度,如果紅綠燈不連鎖,性能再好的車子也跑不快。
  • 汽油代表薪水,沒有油車子發不動。加到劣質的油(22K)車子也跑不快,甚至容易故障。
  • 馬路容量與路線使否平順代表開發人員的設備狀況。單線道馬路(開發設備太差)自然只能處理有限的車流。

廣義來講,軟體開發就是希望能夠讓車子(代表需求的work item)順利地在車道上快速流動,套用精實開發的術語,就是要降低lead time(前置時間)。怎麼樣才能讓車流順暢?要降低內部風險與變異性(關照人員素質與士氣、定義清楚的工作規則、提升專注力)以及降低外部風險與變異性(人為介入、天災、阻礙、跨部門溝通)。至於詳細要採用那些手段來達到這些目的,就是這門課想要介紹的內容。

***

以上練習,剛開始學生也是一頭霧水,擠不出什麼想法。後來在Teddy不斷逼問之下,漸入佳境。在這個練習中Teddy並沒有告訴學生什麼,只是讓他們把自己平常已知的東西(影響車流的因素)列出來,然後觀察這些因素與軟體開發之間的相似性。讓Teddy有點訝異的是,預留足夠時間讓學生發表意見,其實是有可能可以談出一點東西出來。

有關敏捷開發的現成答案,都已經寫在書上,要不然Google一下也找的到。希望透過問答的形式,讓學生可以培養獨立思考與自行解決問題的能力,以便應付日後變化萬千的真實世界專案現況。

***

友藏內心獨白:有人說研究就跟某種東西一樣,擠一擠就有了XD。

1 則留言: