官术网_书友最值得收藏!

第1條:通過(guò)事務(wù)追蹤系統(tǒng)處理所有的問(wèn)題

請(qǐng)想象這樣一種場(chǎng)景:George在電話里朝你大吼,說(shuō)你開發(fā)的那個(gè)應(yīng)用程序“運(yùn)行不了”,于是你趕緊把問(wèn)題寫在便簽上,然后把它貼在顯示器旁邊,顯示器周圍還有很多類似的紙條。現(xiàn)在你開始回想,自己到底有沒有把新版程序所需的最新庫(kù)文件發(fā)給George。實(shí)際上,我們不應(yīng)該這樣來(lái)處理問(wèn)題,而是應(yīng)該改用下面的辦法。

首先,要保證有一套事務(wù)追蹤系統(tǒng)(issue-tracking system)可供使用。很多開源軟件庫(kù),如GitHub和GitLab等,都提供基本的事務(wù)追蹤系統(tǒng),該系統(tǒng)與它們所提供的其他功能是集成在一起的。有些組織使用一種名為JIRA的專有系統(tǒng),這種系統(tǒng)要復(fù)雜得多,它可以在企業(yè)內(nèi)部運(yùn)行,也可以作為服務(wù)來(lái)運(yùn)行。還有一些組織使用開源替代品,如Bugzilla、Launchpad、OTRS、Redmine或者Trac。選擇哪個(gè)系統(tǒng)并不重要,重要的是必須保證所有的事務(wù)都記錄在這個(gè)系統(tǒng)里面。

如果某個(gè)問(wèn)題沒有記錄在事務(wù)追蹤系統(tǒng)中,那我們就拒絕處理該問(wèn)題。堅(jiān)持使用這樣的系統(tǒng),能夠帶來(lái)下面幾個(gè)好處:

?可以看見調(diào)試工作所取得的進(jìn)展。

?可以對(duì)軟件的發(fā)行進(jìn)行追蹤與規(guī)劃。

?幫助我們確定各種工作項(xiàng)(work item)之間的優(yōu)先次序。

?幫助我們把常見的事務(wù)及其解決方案整理成文檔。

?防止我們遺漏某些問(wèn)題。

?可以自動(dòng)生成發(fā)行說(shuō)明(release note)。

?可以用作知識(shí)庫(kù),使我們對(duì)軟件中的缺陷進(jìn)行估量及反思,并從中總結(jié)經(jīng)驗(yàn)。

對(duì)于公司里面那些不必親自匯報(bào)問(wèn)題的高層員工來(lái)說(shuō),你可以代他們匯報(bào)問(wèn)題。如果某個(gè)問(wèn)題是你自己發(fā)現(xiàn)的,那你也可以自己把這個(gè)問(wèn)題提交到系統(tǒng)里面。有一些公司規(guī)定:在修改代碼之前,必須先指明這次修改所涉及的事務(wù)。

我們還要保證的是:每一項(xiàng)事務(wù)都能夠精確地描述問(wèn)題的重現(xiàn)方式。最好能在其中給出一個(gè)簡(jiǎn)短(short)、自足(self-contained)且正確(correct,也就是可以正確編譯并運(yùn)行)的例子(example),即SSCCE。我們可以把這個(gè)例子直接剪下來(lái),粘貼到應(yīng)用程序中,以便重現(xiàn)它所要說(shuō)明的問(wèn)題(參見第10條)。為了使大家能夠?qū)懗鲇行У腻e(cuò)誤報(bào)告(bug report),我們應(yīng)該制訂一份規(guī)范,并勸說(shuō)所有人都認(rèn)真遵照這份規(guī)范來(lái)撰寫報(bào)告。(我看到有一家公司把這些規(guī)范貼在廁所門上。)

此外,錯(cuò)誤報(bào)告還必須具備精確的標(biāo)題(precise title),并寫明bug的優(yōu)先級(jí)(priority)、嚴(yán)重程度(severity)、受影響的利益相關(guān)者(stakeholder),以及該bug的發(fā)生情境(environment)。在填寫這些內(nèi)容時(shí),要注意以下幾點(diǎn):

?精準(zhǔn)的標(biāo)題使我們能夠在事務(wù)匯總報(bào)告中迅速找出這個(gè)bug。用“程序崩潰”這幾個(gè)字做標(biāo)題是很糟糕的,應(yīng)該改成“正在保存時(shí)單擊刷新按鈕,會(huì)使程序崩潰”。

?嚴(yán)重程度能夠幫助我們判斷bug的優(yōu)先級(jí)。與數(shù)據(jù)丟失有關(guān)的問(wèn)題當(dāng)然是很嚴(yán)重的,而另外一些無(wú)關(guān)緊要的問(wèn)題,或是可以用某種明確的方式來(lái)繞過(guò)的問(wèn)題,則顯得不那么嚴(yán)重。團(tuán)隊(duì)可以根據(jù)bug的嚴(yán)重程度來(lái)對(duì)清單里面的各項(xiàng)事務(wù)進(jìn)行分類,以決定哪些事務(wù)需要立刻解決,哪些可以稍后解決,哪些應(yīng)該忽略。

?對(duì)事務(wù)進(jìn)行分類并排定其次序之后,就可以把結(jié)果填寫在優(yōu)先級(jí)這一欄中了,這使得我們能夠據(jù)此安排各項(xiàng)事務(wù)的處理順序(參見第8條)。在很多項(xiàng)目中,bug的優(yōu)先級(jí)是由開發(fā)者或項(xiàng)目主管來(lái)設(shè)置的,如果允許終端用戶來(lái)設(shè)置,那么他們總是會(huì)把自己提交的所有bug都設(shè)置成最高優(yōu)先級(jí)。雖說(shuō)管理人員、客戶代表、其他團(tuán)隊(duì)的開發(fā)者以及銷售人員都宣稱自己提交的事務(wù)應(yīng)該最先得到處理,但我們還是應(yīng)該根據(jù)實(shí)際情況來(lái)設(shè)置優(yōu)先級(jí)。

?在事務(wù)中指出受到影響的利益相關(guān)者,可以幫助團(tuán)隊(duì)獲知與該事務(wù)有關(guān)的其他一些信息,并幫助產(chǎn)品擁有者來(lái)決定事務(wù)的優(yōu)先次序。有些公司甚至?xí)诶嫦嚓P(guān)者后面標(biāo)注他們給公司帶來(lái)的年度收入。(例如,“由Acme所提交,該客戶給公司帶來(lái)的年度收入是25萬(wàn)元。”)

?對(duì)于某些難以捕獲的bug來(lái)說(shuō),情境描述可以提供線索,使得我們能夠重現(xiàn)這種bug。不要強(qiáng)迫用戶填寫過(guò)多的信息,例如,PC的序列號(hào)、BIOS的日期,以及系統(tǒng)中每一個(gè)程序庫(kù)的版本等,這樣做會(huì)令用戶覺得非常麻煩,從而跳過(guò)這些內(nèi)容。我們只應(yīng)該詢問(wèn)與bug密切相關(guān)的那些細(xì)節(jié),對(duì)于Web應(yīng)用程序來(lái)說(shuō),瀏覽器的信息自然是相當(dāng)重要的,而對(duì)于移動(dòng)應(yīng)用程序來(lái)說(shuō),我們或許想知道設(shè)備的制造商及型號(hào)。如果能夠通過(guò)軟件來(lái)自動(dòng)提交這些信息,那就更好了。

使用事務(wù)追蹤系統(tǒng)時(shí),我們一定要通過(guò)它來(lái)記錄進(jìn)度。大部分追蹤系統(tǒng)都允許用戶在每個(gè)事務(wù)后面持續(xù)追加各種形式的評(píng)論。這些文檔可以把調(diào)查及修復(fù)bug時(shí)所經(jīng)歷的步驟記錄下來(lái),其中也可以包括修復(fù)bug時(shí)所遇到的困境。這樣做可以使公司內(nèi)的工作更加透明。我們應(yīng)該精確地寫出記錄或追蹤程序行為時(shí)所執(zhí)行的各種命令,這樣做很有用,因?yàn)槊魈炷憧赡芫鸵匦聢?zhí)行這些命令,你或你的同事也有可能要在一年之后尋找一個(gè)類似的bug。當(dāng)你辛苦地完成了為期一周的bug搜尋工作之后,這些筆記可以幫助你回顧工作內(nèi)容,使你能夠更好地把這些天所做的事情解釋給團(tuán)隊(duì)或管理者聽。

要點(diǎn)

■ 通過(guò)事務(wù)追蹤系統(tǒng)來(lái)處理所有的問(wèn)題。

■ 確保每項(xiàng)事務(wù)都能夠以短小、自足而又正確的范例(SSCCE),精確地描述出該問(wèn)題的重現(xiàn)方式。

■ 對(duì)事務(wù)進(jìn)行分類,并根據(jù)每項(xiàng)事務(wù)的優(yōu)先級(jí)與嚴(yán)重程度來(lái)安排工作。

■ 通過(guò)事務(wù)追蹤系統(tǒng)來(lái)記錄進(jìn)度。

主站蜘蛛池模板: 铜山县| 孙吴县| 和龙市| 枣强县| 银川市| 九寨沟县| 福建省| 南华县| 齐齐哈尔市| 安国市| 浏阳市| 澎湖县| 诏安县| 潞城市| 辉县市| 彝良县| 博客| 东阳市| 平邑县| 莲花县| 全椒县| 镇平县| 泗水县| 凌海市| 镶黄旗| 民丰县| 满城县| 南郑县| 海淀区| 运城市| 普陀区| 西吉县| 县级市| 景德镇市| 来凤县| 香港| 霍山县| 拜泉县| 沧源| 华容县| 彰化县|