敏捷式開發難以改變傳統專案型軟體公司

敏捷式開發(Agile)的主要概念,節錄至wiki




Individuals and interactions over processes and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan

開發時以小的功能需求面與較短的時間與客戶緊密配合,經鍋多次的循環而達成最後的產品。短的開發時程與目標讓客戶比較清楚自己想要的產品需求是甚麼,也讓程式設計師不會花太多時間重工,解決工程師每當寫好程式時卻聽到team leader對你說:"可是瑞凡,客戶需求變更了"。

國內許多接專案為主的公司都會有一樣的問題,被規定在一份金額、一定時間內做出目標產品,卻總是在開發中變更規格、更改功能,並認為這是應該辦到的。接案子時資源與預算都已經壓縮到最緊,中間卻不斷冒出問題,吃虧的通常都是以客為尊的開發商,工程師也被無條件加班重工。

敏捷開發是否能解決這類的問題?以下有幾個窘境需要面對。
  • 客戶是否願意與開發者緊密配合?
    客戶的工作內容不只有監督產品,還需要處理其他的工作項目,加上有些客戶他們是屬於8點上班17點準時下班的習慣,在配合討論時時間難以完整的配合。
  • 客戶是否願意以產品內容最為出發點考量?而不是時間與金錢。
    以往的軟體開發waterfall模式太直觀也太深直人心,太習慣一次性的規劃與一次性的付款,讓客戶較難接受以小功能為一個區間來做的方式。

所以整體來說,除非公司自己開發軟體產品,其他產業想要客制化才能實行,不然傳統專案型軟體公司不是不適合敏捷開發,而是考量到客戶的類型本身不適合。

敏捷開發不只是開發人員對於軟體開發流程觀念的轉換,客戶端也需要做改變。


P.S 或許對於台灣資方來講,最敏捷的開發就是責任制,客戶變更需求就叫員工無薪加班把code重寫,自己也省時間跟上層要資源,也省時間與客戶吵架。

留言

這個網誌中的熱門文章

[專案] 銀行端末系統

如何在MacOS 中自由切換不同Python版本 - pyenv + virtualenv

用 C# 控制 Win7 輸入法