Teddy 這次到美國出差,利用 Amazon 在美國國內買書不用運費的優惠,一不小心買了 10 本書(標準的貪小便宜心態),等要回台灣打包行李時才發現,這還真有點快放不下(要不是幫剛做完月子沒多久的同事帶了六個奶瓶回來,可能會買更多書... XD)。不過這不是重點,今天的主題是 Teddy 要介紹一本此行出差所買的書:Bridging the Communication Cap: Specification by example and agile acceptance testing。
當初會買這本書是因為被書名副標題『Specification by example and agile acceptance testing』所吸引。記得當年 Teddy 還在念博速班的時候,看過 Phillip G. Armour 所寫的一篇 paper,叫做 The Case for a New Business Model: Is software a product or a medium?, Communications of the ACM, pp. 19-22, August. 2000。這篇 paper 提到有五種儲存知識的媒介:
- DNA
- Brains
- Hardware
- Books
- Software
所以,Teddy 當時就在想,如果能夠將軟體需以 software 的形式表達,那麼需求與產品都是以第五種知識儲存媒介(software)來紀錄,是不是就可以減少『阻抗不匹配』的問題?此外,由於軟體具有『可執行』的這個特性,因此就有可能自動驗證『需求』與『軟體系統』是否『同步』。
講了這麼多,還沒轉台的鄉民們,再看一次這本書的副標題:『Specification by example and agile acceptance testing』,其實是有類似的味道。許多做 agile testing 的人都知道所謂的 agile acceptance testing,在開發一個 story 的時候,先幫這個 story 寫一個 acceptance test case (當然此時這個 test case 一定會失敗,因為程式碼都還沒出生啊),中間經過一連串開發過程(細節跳過),最後如果這個 acceptance test case 通過,就代表這個 story 完成。從另一個角度來看,我們可以說這個 acceptance test case 紀錄著它所代表(測試)的那個story 的知識。
***
講了這麼多,其實這全部都不是重點,回到本篇的重點:『需求分析書中最重要的資訊是什麼?』
答案:寫這本需求分析書的那個人的電話號碼。
來源請參考本書第 25 頁:
Ron Jeffries said, during his session on the natural laws of software development at Agile 2008, that the most important information in a requirements document are not the requirements, but the phone number of the person who wrote it.
這本書目前只看了 20% 左右,有機會看完的話再跟鄉民們報告。
***
友藏內心獨白:親愛的鄰居們,夜深了,烤肉用具可以收起來了。搞得空氣中都是烤肉味道,怎麼睡覺啊。
實在很好奇學長買的另外九本書是什麼 XD
回覆刪除在『出差前的購物』裡面有提到買了哪些書。
回覆刪除Ron Jeffries 也回答得太神了
回覆刪除