l

2009年10月25日 星期日

功課寫完沒: The definition of done

根據事後諸葛亮表示,小朋友最怕父母問的一個問題,就是「功課寫完沒?」短短五個字,對幼小的心靈而言,卻具有如同原子彈般的殺傷力。因為這個問題的答案,決定了接下來的時間,小朋友們能不能:

出去玩
看海綿寶寶
Play Game
吃點心
看漫畫

眼看人生中這麼多美好的事情,就要被一個簡短的是非題給毀了,幼小的心靈學會了什麼叫做善意的謊言:「寫….完…了…啊(答的很心虛,事實是,完全沒動,或是亂寫一通)」

當父母的自然也不是省油的燈:「寫完了啊,拿出來我看一下」,當場就被抓包了。

***

隨著時間飛逝,小朋友長大了,從此過著幸福快樂的日子…. 錯!這個「功課作完沒?」的問題變成:

程式寫完了嗎、Bugs 解了嗎、軟體可以release了嗎

為了不傷老闆的心,你大聲的說出:寫完了、解好了、隨時可以release

此時的你,心中浮現小小的吶喊:

寫完了,還沒測試
這個 bug 解好了,但是以另外一個 bug的身分繼續存在著
隨時可以release,附贈bugs吃到飽以及口齒不清的說明文件

「你等會」曾說過:「阿共再大,也沒有我老爸大」,這句話一點也沒錯。爸爸媽媽可以抓出你功課沒寫完,而阿共卻看不出你案子沒做完。隨著年紀漸長,功課有沒有寫完這個問題越來越難回答,因為常常連做功課的人也不知道,功課的範圍有多少,何時才寫的完。

定義功課寫完沒 (The definition of “done”)

在Scrum裡面,Scrum團隊如何知道需求是否已經做完,可以被Product Owner驗收?所以Scrum提到團隊需要有一個對於「完成的定義」。這個定義可能包含:

程式可以動、通過單元測試、通過其他各種測試(integration, function, system, security, performance, availability, robustness…)、重整程式(refactored)、更新重要設計文件、完成使用手冊、可以被安裝等等。

唯有事先定義好done,才能知道每一個 sprints真正完成了多少功能,而不是灌水的數據,也才有可能在每個sprint結束時,產生一份「可以交給老師的作業」(potentially shippable products)。


沒有留言:

張貼留言