2014年3月14日 星期五

約耳測試:邁向高品質的12個步驟 - The Joel Test: 12 Steps to Better Code

 約耳測試:邁向高品質的12個步驟 - The Joel Test: 12 Steps to Better Code


約耳測試 (Joel Test)
你有使用原始碼控制系統嗎?
你能用一個步驟建出所有結果嗎?
你有沒有每天都重新編譯建立(daily builds)嗎?
你有沒有問題追蹤資料庫(bug database)?
你會先把問題都修好之後才寫新的程式嗎?
你有一份最新的時程表嗎?
你有規格嗎?
程式人員有沒有安靜的工作環境?
你有沒有用市面上最好的工具?
你有沒有測試人員?
有沒有在面試時要求面試對象寫程式?
有沒有做走廊使用性(hallway usability)測試?



7.你有規格嗎?
寫規格像用牙線:大家都同意這是好事,卻沒有人真的在做。
我不知道為什麼,或許是因為大多數程式人員都討厭寫文件吧。所以當全是程式人員的團體面對問題時,自然傾向用程式碼而非文件來表示答案。他們寧願跳進去寫程式也不願先寫規格。
在設計階段發現問題時,只要改幾行就能輕易修正。等程式寫出來之後,修正的代價就高得多了,代價包含了情感(人們討厭拋棄程式碼)和時間,所以會抗拒修正問題。通常未依據規格製作的軟體最後的設計都很糟,而且進度完全無法控制。這似乎就是發生在Netscape上的問題。它的前四版變得一團亂,結果管理階層愚蠢地決定把程式丟掉重新開始。然後他們在Mozilla上又重蹈覆轍,造出了一個無法控制的怪物,而且耗了幾年才進入alpha測試階段

我的拿手方法是把程式人員送去上密集的寫作課程,讓他們變得不那麼排斥寫作,就可以解決這個問題。另一個方法是雇用聰明的專案經理來寫規格。不管用哪一種方法,你都應該強制執行「沒有規格不寫程式」這個簡單的規則。

沒有留言:

張貼留言