什麼是需求呢? 根據維基的定義, 需求是軟體開發時應滿足的功能與非功能要求.
 
在傳統瀑布式的開發中, 我們是靠著產品經理, 或者是系統分析師, 撰寫詳細的需求文件, 然後交給開發人員進一步去做設計.
 
在這過程中, 我想大家一定遇到這些問題:
 
寫出來的需求文件看不懂
這份文件要花很多時間才寫出來
要花很長的時間才能看完這份文件
這份文件有很多地方不完整
...
 
當 agile 出現後, 它想要改進這些問題. 他希望能夠透過團隊成員深度的對話, 來改善需求的品質.
 
基本上, 英文就不是一個很精準的語言, 並沒有辦法準確描述一件事情. 此外, 即使有很精準的語言, 撰寫的人也要有很好的文筆. 所以有文件是還不夠的.
 
從另一方面來說, 口頭溝通會比文件有效率, 撰寫文件或是閱讀文件, 應該都不會比對話更快速.
 
但是....  但是 ……對話也只是其中一招, 讓需求可以更清楚. 它是無法可以取代文件的. 畢竟, 人無法記住所有事情, 需要有些紀錄以供日後參考
 
所以在敏捷開發過程中, 我通常會建議, 大家先聚在一起討論需求, 並且是找相關不同的角色進來, 利用不同考量觀點, 讓需求可以充份被探索, 進而達成共識.
 
之後, 我們再補上文件, 供大家事後檢視, 或是再依此找出更多細節.
 
記住, agile 並不是不要文件, 而是希望你能考慮去用更有效率的方式, 來更有效率工作. 如果你沒有別招, 當然文件就是你唯一招. 只是這招往往不太好用 XDD
 
 
 
番外篇
為了讓大家可以對溝通這件事情有深刻的體認, 我借用了 Daniel 所教的 requirement exercise workshop, 讓參與課程的同學們, 有一次刻骨銘心的的經驗. 有興趣的人可以來聊聊, 呵呵......
 
螢幕快照 2015-03-24 下午9.00.08  
 
 
 
arrow
arrow
    全站熱搜

    kojenchieh 發表在 痞客邦 留言(0) 人氣()