軟件開發(fā)成功12法則(2)
發(fā)布時(shí)間:2008-11-25 閱讀數(shù): 次 來(lái)源:網(wǎng)樂(lè)原科技
另一個(gè)解決問(wèn)題的辦法是:雇一些能干的項(xiàng)目主任,專職寫產(chǎn)品開發(fā)詳細(xì)說(shuō)明書。
不論采用以上哪種方法,道理只有一個(gè):在沒(méi)有產(chǎn)品開發(fā)詳細(xì)說(shuō)明書之前,決不可寫程序。
8. 你們的程序員是否工作在安靜的環(huán)境里?
當(dāng)你讓你的智囊們工作在安靜,寬敞,不受人打擾的環(huán)境里,他們往往能更快地出活,這已是不爭(zhēng)的事實(shí)。有一本經(jīng)典的講軟件開發(fā)管理的書Peopleware 把這個(gè)問(wèn)題闡述得很清楚。
問(wèn)題在于,我們都知道最好不要打斷這些智囊們的思路,讓他們一直處于他們的最佳狀態(tài)中,這樣他們就能全神貫注,廢寢忘食地工作,充分發(fā)揮他們的作用。作家,程序員,科學(xué)家,甚至籃球運(yùn)動(dòng)員都有他們的最佳狀態(tài)。
問(wèn)題還在于,進(jìn)入這個(gè)最佳狀態(tài)不容易。我覺(jué)得平均起來(lái),需要15分鐘才能進(jìn)入最佳狀態(tài),達(dá)到最高工作效率。有時(shí)侯,當(dāng)你疲勞了或已經(jīng)高效率地干了許多工作了,你就很難再進(jìn)入這個(gè)狀態(tài),只好干點(diǎn)雜事打發(fā)時(shí)間,或上網(wǎng),玩游戲等。
問(wèn)題更在于,你很容易就被各種各樣的事打擾,被拽出你的最佳狀態(tài):噪音啦,電話啦,吃午飯啦,喝杯咖啡啦,被同事打擾啦,等等。如果一個(gè)同事問(wèn)你一個(gè)問(wèn)題,只花你一分鐘,可你卻被拽出你的最佳工作狀態(tài),重新回到這個(gè)狀態(tài)需要花半小時(shí)。你的工作效率因此而受到很大影響。如果讓你在一個(gè)嘈雜的大房間里工作(那幫搞網(wǎng)站的家伙還就喜歡這樣),邊上的推銷員在電話里大叫大嚷,你就很難出活,因?yàn)槟氵M(jìn)入不了你的最佳工作狀態(tài)。
作為程序員,進(jìn)入最佳工作狀態(tài)更難。你先要把方方面面的細(xì)節(jié)裝在腦子里, 任何一種干擾都可能讓你忘掉其中某些東西。你重新回來(lái)工作時(shí),發(fā)現(xiàn)好些東西記不起來(lái)了(如你剛用的局部變量名,或你剛才的搜索程序?qū)懙侥睦锪说龋┠阒缓每纯磩倢懙某绦?,回憶一下,慢慢地回到你剛才的最佳工作狀態(tài)。
我們來(lái)做一個(gè)簡(jiǎn)單的算數(shù)。假設(shè)一個(gè)程序員被打擾一下,哪怕只有一分鐘,他卻需要花15分鐘才能回到最佳工作狀態(tài)(統(tǒng)計(jì)資料顯示如此)。我們有兩個(gè)程序員:杰夫和愚夫, 坐在一個(gè)大辦公區(qū)里工作。愚夫想不起來(lái)用什么函數(shù)去進(jìn)行Unicode 字符串復(fù)制。他可以花30秒查一下,或者花15秒問(wèn)杰夫。由于他坐在杰夫的旁邊,他就選擇去問(wèn)杰夫。杰夫被打擾了一下,耽誤了他15分鐘,節(jié)省了愚夫15秒鐘。
現(xiàn)在,我們把他們倆用墻和門隔開,讓他們倆分坐在不同的辦公室里,愚夫又想不起來(lái)什么涵數(shù)名,自己查一下要花30秒;問(wèn)杰夫,要花45秒,因?yàn)樗酒饋?lái)走過(guò)去問(wèn)(對(duì)這幫程序員來(lái)說(shuō),這可不是件簡(jiǎn)單的事,看看他們的體質(zhì)就知道為什么了)。所以他選擇自己去查。愚夫損失了30秒鐘,可是杰夫少損失了15分鐘。哈哈!
9. 你們是否使用現(xiàn)有市場(chǎng)上能買到的最好的工具?
用可編譯語(yǔ)言寫程序恐怕是這世界上為數(shù)不多的還不能隨便抓一個(gè)破計(jì)算機(jī)就可以做的事。如果你用于編譯的時(shí)間超過(guò)幾秒鐘,你就應(yīng)該換一臺(tái)最新最快的計(jì)算機(jī)了。因?yàn)槿绻幾g時(shí)間超過(guò)15秒,程序員們就會(huì)不耐煩,轉(zhuǎn)而去上網(wǎng)看一些無(wú)關(guān)的東西比如The Onion,弄不好一看就是好幾個(gè)小時(shí)。
調(diào)試圖形界面軟件時(shí),用只有一個(gè)顯示器的計(jì)算機(jī)不僅不方便,有時(shí)甚至是不可能。用有兩個(gè)顯示器的計(jì)算機(jī),要方便許多。
程序員們經(jīng)常不可避免地要去畫一些圖標(biāo)或工具欄圖。多數(shù)程序員沒(méi)有一個(gè)好的圖形編輯器可用。用微軟的“畫筆”軟件去畫圖標(biāo)簡(jiǎn)直是笑話,可事實(shí)上大家還就在這樣做。
在我的前一個(gè)工作,系統(tǒng)管理員成天給我發(fā)來(lái)自動(dòng)警告,說(shuō)我在服務(wù)器上使用了超過(guò)220兆的空間。我告訴他,按現(xiàn)在硬盤的價(jià)錢,超出這點(diǎn)空間的價(jià)錢遠(yuǎn)低于我用的廁紙的價(jià)錢。讓我花10分鐘去清理我的文件絕對(duì)是我工作效率的莫大浪費(fèi)。
一流的開發(fā)組絕不折騰它的程序員。工具落后會(huì)讓人用起來(lái)覺(jué)得難受,一點(diǎn)點(diǎn)積累起來(lái),會(huì)讓程序員們成天叫苦,而一個(gè)成天叫苦的程序員絕對(duì)不會(huì)是一個(gè)高消率的程序員。
再添一句,要想使你的程序員高興,最好的辦法就是給他們買一些最新最棒的工具軟件。用這種方法可以讓他們乖乖地為你工作,這可比用高薪吸引他們來(lái)得便宜得多。
10. 你們有沒(méi)有專職的軟件測(cè)試人員?
如果你的開發(fā)組里沒(méi)有專職的測(cè)試人員,或沒(méi)有足夠的測(cè)試人員(兩到三個(gè)程序員就應(yīng)該配一個(gè)測(cè)試員),那你的產(chǎn)品就一定是毛病百出,或者你在花100美元一小時(shí)的代價(jià)去雇你的程序員去做30美元一小時(shí)就可以雇到的測(cè)試員的工作。想在測(cè)試員身上省錢,絕對(duì)是打錯(cuò)了算盤。我真不明白為什么這么多人算不過(guò)來(lái)這筆帳。
11. 你們招人面試時(shí)是否讓寫一段程序?
我問(wèn)你,讓你去招一個(gè)魔術(shù)師,你是否連看都不看一眼他的魔術(shù)玩得怎樣就要他?當(dāng)然不會(huì)!
你舉辦婚宴,要請(qǐng)一個(gè)廚師,你是不是連嚐也不嚐他做的菜好吃不好吃就要他?我想也不會(huì)。
奇怪的是,幾乎每天都有這樣的事發(fā)生:在面試一個(gè)程序員時(shí),簡(jiǎn)歷寫得漂亮,談得熱火朝天,問(wèn)幾個(gè)簡(jiǎn)單的問(wèn)題(如CreateDialog()和DialogBox()有什么區(qū)別?這種問(wèn)題,查一下幫助文件就知道了),人就招進(jìn)來(lái)了。你真正應(yīng)該關(guān)心的不是這人記不記得這些寫程序的邊邊角角的東西,而是他能否出產(chǎn)品!更糟糕的是,許多問(wèn)題是知道就知道,不知道,想死也不知道的問(wèn)題。
不能這樣下去了!在面試時(shí),請(qǐng)一定要讓寫一段程序。在我的這篇文章里Guerrilla Guide to Interviewing,我有許多好建議。
12. 你們是否隨便抓一些人來(lái)試用你們的軟件?
這句話的意思是,讓你從走道里走過(guò)的人中,隨便抓幾個(gè)人來(lái),讓他們?cè)囉媚愕能浖H绻阕ノ鍌€(gè)人來(lái)用你的軟件,那你就可能把你的程序中95%的不方便使用的地方找出來(lái)。
要想讓用戶去買你的軟件,你必須要設(shè)計(jì)好你的用戶界面。這其實(shí)并不難。你可以讀我的free online book on UI design打打基礎(chǔ)。
用戶界面設(shè)計(jì)的關(guān)鍵是,如果你讓幾個(gè)人去用你的軟件(五六人可能就夠了),你可能很快就找出最大的問(wèn)題。想知道為什么嗎,請(qǐng)讀Jakob Nielsen's article。只要你堅(jiān)持隨便抓一些人來(lái)試用你的軟件,你就能將你的用戶界面設(shè)計(jì)得越來(lái)越好。
The Joel Test 軟件開發(fā)成功12法則的四個(gè)實(shí)用領(lǐng)域
用該法則來(lái)衡量你的軟件開發(fā)組,告訴我你得的分?jǐn)?shù),讓我來(lái)品頭論足。
如果你是開發(fā)組的經(jīng)理,用該法則來(lái)使你的組提高效率。如果你們一上來(lái)就能得12分,你就 別再打擾你的程序員了, 專心致志別讓公司的管理人員來(lái)煩你的程序員吧。
如果你在找一份程序員工作,問(wèn)問(wèn)你未來(lái)的老板他能得幾分,如果分?jǐn)?shù)很低,你一定要確信你進(jìn)去后有足夠的權(quán)力來(lái)改變這一切,否則,最好躲遠(yuǎn)點(diǎn),不然,你在那兒會(huì)很難受的。
如果你是投資者,正在決定是否向一個(gè)軟件公司投資,或者你的軟件公司正在決定是否兼并另一個(gè)軟件公司,該法則可以幫你做決定。
作者簡(jiǎn)介:Joel Spolsky 是紐約市一家小軟件公司,F(xiàn)og Creek Software, 的創(chuàng)始人。他畢業(yè)于耶魯大學(xué),曾在美國(guó)微軟公司,Viacom, Juno 任軟件設(shè)計(jì)師及經(jīng)理。