close

每次看Joel Spolsky的文章都深感自己寫程式的能力不足...
今天要介紹他有關如何提高軟體品質的文章。

約耳測試:邁向高品質的12個步驟
英文版

當然啦,那是給企業的測試法。以學生來說,我認為以下幾點是可以執行的:

  1. 你有使用原始碼控制系統嗎?
  2. 你能用一個步驟建出所有結果嗎?
  3. 你有沒有問題追蹤資料庫(bug database)?
  4. 你會先把問題都修好之後才寫新的程式嗎?
  5. 你有一份最新的時程表嗎?
  6. 你有規格嗎?
  7. 有沒有做走廊使用性(hallway usability)測試?

你有使用原始碼控制系統嗎?
原始碼控制系統,有時被稱為版本控制系統。對於較大型的計畫來說,知道其他成員做了什麼事情非常重要。
除了SVN之外,目前已經有新一代系統出現:
Linus Torvalds on git
一小時內搞懂 Git
雖然說學生似乎沒什麼大計畫可以做,但是這些系統值得參考。

你能用一個步驟建出所有結果嗎?
如果只需要一個命令,接下來的動作電腦都自己處理,顯然是大快人心(在編譯的時候快去風花雪月吧!)。
目前我有看過兩個系統:Scons、CMake。(Autotools是舊世代的玩意)
當然啦,一開始你會需要做些初步設定,所以你也許會發現這不是一個指令完成。
另外,如果要弄成Spolsky說得那麼神的境界,你要學的還多著呢!加油!

你有沒有問題追蹤資料庫?
如同學習時發現問題,暫時找不到人問,你自然會用能用的方式記起來;程式有問題,當然也要把它記下來。
不過這跟功課問題略有不同,你可以發現基本的五個欄位,即使是學生也最好別省下任何一個。
自由軟體鑄造廠提供這類服務(另外包含前述的版本控制),不過註冊事宜請自行解決。

你會先把問題都修好之後才寫新的程式嗎?
修正錯誤真的是項大工程,尤其是你懶得處理而做其他事時,這絕對會變成大災難
我目前就在煩惱到底要不要繼續做我目前的計畫(被踹)。

你有一份最新的時程表嗎?
時間的承諾是很重要的,對一個公司來講也是至關重要(除非你很大牌,讓別人勉強原諒你)。
時程表的另一個功能,如同Spolsky所說:"避免功能過度膨脹"。

你有規格嗎?
對我來說,規格就是人話,簡單來說,你要用人的語言描述你的程式
比如你要寫個繪圖軟體,你當然要列出它的功能:填滿區塊、取得特定顏色、各種畫筆、特效等。
接著就是考慮這些鬼東西要擺哪,對於使用者來說,這點至關重要,如果他找不到他需要的東西,就有人要被罵了。
Spolsky也很好心的提供一個規格範例

有沒有做走廊使用性測試?
找人測試軟體是很重要的一回事。
拿作文為例,我可以很清楚知道我在寫什麼,但是當我拿給老師改時,他若看不懂我寫什麼,就只會給我低分
因為,我寫作文是要給老師或是大考中心的教授看的,尤其是那些教授,他們根本不知道你是誰,也沒什麼興趣知道,他們只想改文章而已。
雖然這有點功利主義,不過你確實要知道,理想和現實是有差異的,而找個不懂技術的人來測試可以幫你將這兩者合而為一。

arrow
arrow
    全站熱搜

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