让你提前知道软件开发(44):如何解决软件故障?
文章3部分 軟件開發工作總結
怎樣解決軟件故障?
?
??????? 在軟件產品的運營維護階段,軟件project師的一項重要工作就是解決軟件的bug。在學校的時候,大家學完一門課程。然后考試通過就萬事大吉了。
但在實際的軟件開發項目中,將軟件成功交付給客戶,僅僅是“萬里長征走完了第一步”,后面還有大量的工作要做,比如:解決軟件故障、新增功能、版本號升級等。
作為一名合格的軟件project師,一定要學會準確、迅速地解決軟件出現的各種問題。
?????? 為什么解決軟件問題的能力如此重要?由于軟件項目的成功率不容樂觀。國內某IT公司對本公司內軟件項目的成功率進行了長時間的追蹤,統計的結果如圖1所看到的。
圖1 軟件項目的成功率統計結果
??????? 從圖1可以看出,軟件項目的成功率是非常低的,大部分的軟件項目都會出現超期完畢甚至是失敗的情況。既然出了問題,那么就要及時將之解決掉。
??????? 1. 軟件故障的分類
??????? 依據軟件故障的嚴重程度。將其分為下面三類:
??????? (1) 嚴重故障
??????? 這類故障通常會導致軟件產品無法正常使用,須要馬上解決。
??????? 假設出現了此類問題,那么軟件project師就要放下手中的工作,全力以赴將問題處理掉。
??????? (2) 一般故障
??????? 這類故障盡管不會導致軟件產品無法正常使用。但會影響某些功能流程,會影響到用戶的體驗。
??????? 假設出現了此類問題,那么軟件project師在手中任務不緊張的情況下。須要抽時間來處理掉,不能讓問題一直遺留下去。
??????? (3) 輕微故障
??????? 這類故障差點兒不會對軟件產品產生不良影響,用戶也非常少可以感認為到故障的存在。
??????? 對于追求高質量和良好用戶口碑的公司,在興許產品功能升級的時候。會附帶將該類問題一起處理掉。
?
??????? 2. 解決軟件故障所使用的通訊工具
??????? 無論出現了哪類軟件故障,作為負責任的軟件project師,我們都要在盡量短的時間內將之解決掉。為自己贏得贊揚。同一時候也為公司贏得口碑。
??????? 一般說來,在解決軟件故障的過程中。所使用的通訊工具包含:手機/電話、即時通訊軟件(像QQ、Skype等)、郵箱等。
依據軟件故障的不同等級,所使用通訊工具的優先級如圖2所看到的。
圖2 不同故障等級所使用的通訊工具的優先級
??????? (1) 軟件出現嚴重故障時
??????? 那么此時情況就比較緊急,須要軟件project師在第一時間里將之解決掉,否則軟件無法正常執行。這個時候,非常明顯手機或電話是最有效的通訊工具。
故障現場的人員在電話里面將問題描寫敘述清楚,研發人員依據他們的描寫敘述來評估問題發生的大致位置。然后針對該問題進行改動。
??????? 假設使用即時通訊工具((像QQ、Skype等),那么打字須要耽誤一定的時間,要把問題描寫敘述清楚又須要一定的時間。
等研發project師知道問題的解決辦法,或許“花兒都謝了”,客戶早已投訴到公司相關部門。郵箱是最次的選擇,由于在緊急的情況下,想靜下心來寫一封郵件也是比較的困難。
??????? 順便說一句。非常多大公司不許員工在辦公的電腦上安裝QQ軟件,防止他們將機密的信息傳送出去。
一定要使用公司同意的通訊工具,不要觸犯信息安全的紅線。
??????? (2) 軟件出現一般故障時
??????? 此時,事情不緊急,但還是須要盡快解決。否則長期存在就會演變為軟件嚴重故障。
??????? 使用即時通訊工具,研發project師可以知道軟件執行的具體情況。針對現場支持人員的回復來安排工作計劃。同一時候,現場支持人員將軟件執行情況及生成的日志通過郵箱發送回來,方便開發者按圖索驥地找到程序的癥結所在。
??????? 軟件出現的故障,大都是一般性的問題,通過即時通訊工具和郵箱就行搞定。
當然,假設要想具體了解軟件問題。也可以通過手機/電話來詢問現場支持人員。
??????? (3) 軟件出現輕微故障時
??????? 此時,軟件問題不足以影響到其功能流程,屬于可改可不改的類型。
??????? 現場支持人員可以將此類問題描寫敘述通過郵箱發送回來。開發者將之記錄在一個備忘錄里面,假設下次該軟件產品有新增功能或優化。就將備忘錄里面的問題一并攻克了。
??????? 在實際的軟件項目中,要依據具體情況,靈活地選擇通訊工具,其目的就是盡快解決這個問題。
?
????????3. 解決軟件故障的依據
??????? 在解決軟件故障的過程中,軟件project師的所參照的東西包含:客戶反饋的問題描寫敘述、本公司技術支持人員反饋的軟件問題描寫敘述、程序執行過程中所生成的日志。
??????? (1) 客戶反饋的問題描寫敘述
??????? 這是軟件問題的最初來源。一般說來。客戶反饋的問題都比較的籠統,對問題的細節描寫敘述得比較少。
依據客戶反饋,研發人員可以大致知道軟件的問題出在哪里。但假設要準確定位問題,還須要有更具體的反饋。
??????? (2) 本公司技術支持人員反饋的軟件問題描寫敘述
??????? 假設軟件出現故障。本公司通常會派技術支持人員趕到現場,協助客戶解決這個問題。他們會將軟件問題進行具體的描寫敘述。并通過郵箱和即時通訊工具等將這些描寫敘述返回給研發人員,供其分析時參考。
??????? 相對于客戶的反饋。本公司技術支持人員的反饋更加的具體。也更加具有參考的價值。
對于研發人員來說,要對這些信息進行細致的分析,剔除不合理的部分。
??????? (3) 程序執行過程中所生成的日志
??????? 這是最重要的查找問題的依據。
通過對日志進行分析,一般可以準確地定位到是哪段代碼出了問題。或是哪段代碼的邏輯有問題。
??????? 對于研發人員來說。在查找問題原因之前。一定要叫現場支持人員將軟件出現故障時候的日志保存并發送回來。
這樣可以對比著日志閱讀代碼,大部分問題的解決辦法就行非常快找到了。
?
?????? ? 4. 解決軟件故障的注意事項
??????? 在解決軟件故障的過程中,我們須要注意下面幾點:
??????? (1) 無論是通過郵箱來與現場交流,還是通過即時通訊工具來聯系。都要讓自己的項目經理知道交流的內容(發送郵件時要記得把他們抄送上)。
在出現故障的時候。也會有人和你一起分擔責任。
??????? (2) 研發人員提供的解決方式,一定要經過驗證之后才提供給現場使用。不能將現場當成了測試站。假設方案不經驗證直接使用,會出現意想不到的后果,甚至會出現客戶的投訴。
??????? (3) 在現場使用解決方式的時候。一定要隨時和現場配合,解決該過程中出現的各種意外情況。
??????? (4) 在現場使用完解決方式之后,一定要要求現場支持人員將軟件執行狀態相關記錄和程序日志發回來檢查一下,確保功能的正確性。
?
??????? 軟件問題在所難免,重要的是我們要有正確的態度,要及時將問題解決。
此外。在日常工作中。我們要注意程序代碼的質量。將可能會出現的bug消滅在萌芽狀態。
?
?
?
(本人微博:http://weibo.com/zhouzxi?topnav=1&wvr=5,我們的聊天號碼:245924426。歡迎關注!)
版權聲明:本文博主原創文章,博客,未經同意不得轉載。
轉載于:https://www.cnblogs.com/blfshiye/p/4884997.html
總結
以上是生活随笔為你收集整理的让你提前知道软件开发(44):如何解决软件故障?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: HTML5新增的标签
- 下一篇: Odoo(OpenERP)配置文件ope