基本上Scrum的觀念就是軟體的需求是一直在變的, 所以一般擬定設計之後就不能再改變設計的作法其實很不實際. Scrum的觀念是每一個開發專案有一個所謂的Project backlog, 這個backlog紀錄了所有這個project要完成的功能, 重點是這個backlog是永遠沒有截止日期的, 想要的新功能隨時都可以再加進去, 但專案負責人得為backlog中的每個項目加上優先權. 接下來的開發就是以所謂的sprint一直循環, 每個sprint以不超過30天為最好, 開發成員從backlog中選出可以在這個sprint中完成的項目作為sprint的目標, 每個sprint結束時, 整個專案就會增加一些新的功能. 由於在每個sprint期間, 開發成員只需專注於所挑選的功能上, 所以可以有效提高生產力. 而每個sprint完成時又可以立刻看到專案的成長, 有助於維持團隊的士氣. 如此不斷的循環, 一直推出新的build.
一個人開發引擎其實是頗為無聊的工作, 所以我之前總是以一個短期能達到的目標為單位來開發, 如此一來每隔一段時間就有一些東西出來, 比較會有成就感, 也裁不容易厭倦. 年輕的時候很能熬夜, 常常一個sprint都是以一天來計算的:). 現在體力比較差了, 引擎也更複雜了, 沒辦法這樣搞了. 之前每次引擎po出來的影片其實就是幾個較大的sprint的結果. 不過以前backlog只放在腦袋裡, 現在我打算將backlog在網站上po出來, 以免久了就忘了 :P
現在正在尋找有無好用的scrum工具可以有效的來管理backlog跟每一個sprint.
Scrum
Agile software development
Agile Game Development
Scrum Alliance
順便一提, Unreal Engine也是採用Scrum的方式來開發的喔.