星期三, 1月 21, 2009

關於Agile Software Development

最近鳥毅的twitter多了一位訂閱者,原來是高手ihower,看到他寫採用敏捷方法的軟體開發合約該怎麼簽?,就想到最近遇到的狀況。

由於前兩年換部門,因此coding的機會少很多,已經不太需要寫code,大部份都在做網管工作。最近前部門接到一個公家機關的案子,主要是整合現有系統,因為是專業領域,所以敝公司從打敗現有的資訊公司得標。

但其實此單位在招標書就寫著不合理的期程,把不甚明確的規格和很短的deadline寫在裏面。前部門的優秀長官也在苦思如何應對,找了一間號稱使用XP的優秀資訊公司商討合作可能性。
鳥毅與該資訊公司代表稍微聊了一下,大致上知道他們都是有不短的coding經驗,再找幾個年輕人訓練來做專案。

本來想建議優秀長官也使用Agile Software Development,但他表示由於時程太趕,光是訪談->需求分析->coding,就沒多少時間,不太可能像XP一個phase一個phase地做,必須採用Waterfall方式。其實優秀長官有點誤會XP的意思,快速開發並快速地將需求變化回饋到code裏,才是XP所追求的目標。

鳥毅對其他敏捷開發方法論並不瞭解,只知道XP的開發方式。不過XP所提倡的Test First等等觀念,幾乎都已被廣為使用,唯一被視為難做到的就是Pair Programming。連優秀資訊公司都錯誤地表示人的成本太高,所以做不到Pair Programming。事實上,根據ingramchen的親身見證,Pair Programming會產生1+1>2的效果,只是對coding的人很累,因為完全不能打混呀...

ihower有寫一系列「實戰敏捷開發 Practices of an Agile Developer 」,裏頭有不少新的Agile觀念與做法,讓在下獲益良多呀!

P.S. 在下從國中學寫Apple Basic開始,過了十幾年看到XP才赫然有種相見恨晚的感覺,應該是每天埋首coding的人才比較容易喜歡Agile Software Development吧?

沒有留言: