最近鳥毅的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 吧?