|
經理:該Bug何時能得到修復? 經驗缺乏的程序員:也許一個小時?最多兩個小時!馬上去做! 經驗豐富的程序員:嗯,捉一條魚需要多少時間呢? 在現(xiàn)實操作中,很難能明確知道一個軟件缺陷需要多久可以修復,尤其是當你對代碼不了解的情況下。James Shore在“敏捷開發(fā)藝術”一書中指出:“在你需要修復Bug時,你必須找到是哪里出錯了?”,問題的關鍵是不能準確估算多久才能找出是哪里報錯的。只有知道“病源”在哪?你才能準確估算修復的時間。但那為時已晚,根據(jù)Steve McConnell: “發(fā)現(xiàn)缺陷—理解缺陷—通常占了工作的90%”。 有許多缺陷只需要改一行代碼就可以修復。時間都花在確定該行上面,就好像釣魚的時候該把魚鉤放哪?何時何地魚會上鉤一樣。每個Bug都有它們自己的性格特征,有些可能很容易被發(fā)現(xiàn),而有些可能會跟你玩“捉迷藏”并且容易發(fā)現(xiàn)的Bug不一定就很難修復,當然,那些擅長玩“隱藏”的Bug有可能很容易被修復。 查找和修復 下面讓我們來看看如何發(fā)現(xiàn)并修復Bug。當調試時,Paul Butcher把每個步驟都進行了很好的描述。經驗豐富的程序員會很熟悉這種結構化和紀律性的步驟要領。
發(fā)現(xiàn)和修復需要多久 設置測試環(huán)境所需的時間,重現(xiàn)一個Bug或者修復可能遠遠超過在代碼中查找和修復的時間。但是對于那種小缺陷,在發(fā)現(xiàn)時即可修復。 在軟件開發(fā)中,關于大多數(shù)軟件缺陷來自哪里?Dewayne Perry解釋到:發(fā)現(xiàn)一個Bug(理解并重現(xiàn)Bug)比多久去修復更難。研究發(fā)現(xiàn),大多數(shù)Bug(幾乎3/4)很容易被發(fā)現(xiàn)和理解,并且不會花多少時間去修復:5天或更少(這是在大型實時系統(tǒng)與一個重量級的SDLC中,經過大量檢查和測試發(fā)現(xiàn)的)。這里有一個長期隱藏型Bug,可能需要花更長的時間修復,即使這個Bug微不足道:
所以在你發(fā)現(xiàn)Bug的時候,可以和自己打賭,它很快就會被修復,這個命中率會很高。但是當打賭失敗時,你可能會錯很多,或者徹底來個大錯特錯。 |
|
|