zoukankan      html  css  js  c++  java
  • 让你提前知道软件开发(44):如何解决软件故障?

    文章3部分 软件开发工作总结

    怎样解决软件故障?

     

            在软件产品的运营维护阶段,软件project师的一项重要工作就是解决软件的bug。在学校的时候,大家学完一门课程。然后考试通过就万事大吉了。

    但在实际的软件开发项目中,将软件成功交付给客户,仅仅是“万里长征走完了第一步”,后面还有大量的工作要做,比如:解决软件故障、新增功能、版本号升级等。

    作为一名合格的软件project师,一定要学会准确、迅速地解决软件出现的各种问题。

           为什么解决软件问题的能力如此重要?由于软件项目的成功率不容乐观。国内某IT公司对本公司内软件项目的成功率进行了长时间的追踪,统计的结果如图1所看到的。

    1 软件项目的成功率统计结果

            从图1可以看出,软件项目的成功率是非常低的,大部分的软件项目都会出现超期完毕甚至是失败的情况。既然出了问题,那么就要及时将之解决掉。

            1. 软件故障的分类

            依据软件故障的严重程度。将其分为下面三类:

            (1) 严重故障

            这类故障通常会导致软件产品无法正常使用,须要马上解决。

            假设出现了此类问题,那么软件project师就要放下手中的工作,全力以赴将问题处理掉。

            (2) 一般故障

            这类故障尽管不会导致软件产品无法正常使用。但会影响某些功能流程,会影响到用户的体验。

            假设出现了此类问题,那么软件project师在手中任务不紧张的情况下。须要抽时间来处理掉,不能让问题一直遗留下去。

            (3) 轻微故障

            这类故障差点儿不会对软件产品产生不良影响,用户也非常少可以感认为到故障的存在。

            对于追求高质量和良好用户口碑的公司,在兴许产品功能升级的时候。会附带将该类问题一起处理掉。

     

            2. 解决软件故障所使用的通讯工具

            无论出现了哪类软件故障,作为负责任的软件project师,我们都要在尽量短的时间内将之解决掉。为自己赢得赞扬。同一时候也为公司赢得口碑。

            一般说来,在解决软件故障的过程中。所使用的通讯工具包含:手机/电话、即时通讯软件(QQSkype)、邮箱等。

    依据软件故障的不同等级,所使用通讯工具的优先级如图2所看到的。

    2 不同故障等级所使用的通讯工具的优先级

            (1) 软件出现严重故障时

            那么此时情况就比較紧急,须要软件project师在第一时间里将之解决掉,否则软件无法正常执行。这个时候,非常明显手机或电话是最有效的通讯工具。

    故障现场的人员在电话里面将问题描写叙述清楚,研发人员依据他们的描写叙述来评估问题发生的大致位置。然后针对该问题进行改动。

            假设使用即时通讯工具((QQSkype),那么打字须要耽误一定的时间,要把问题描写叙述清楚又须要一定的时间。

    等研发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。欢迎关注!)

    版权声明:本文博主原创文章,博客,未经同意不得转载。

  • 相关阅读:
    pipelinewise 学习二 创建一个简单的pipeline
    pipelinewise 学习一 docker方式安装
    Supercharging your ETL with Airflow and Singer
    ubuntu中使用 alien安装rpm包
    PipelineWise illustrates the power of Singer
    pipelinewise 基于singer 指南的的数据pipeline 工具
    关于singer elt 的几篇很不错的文章
    npkill 一个方便的npm 包清理工具
    kuma docker-compose 环境试用
    kuma 学习四 策略
  • 原文地址:https://www.cnblogs.com/blfshiye/p/4884997.html
Copyright © 2011-2022 走看看