测试的差错还是设计的问题

发布日期:
2012-01-08

浏览次数:

“救火”

6月中旬的一天,嘉程软件公司总经理邱总在办公室看着窗外久违的大雨,舒了口气:经过几年的努力,公司学生考试系统和学生学籍管理系统在省里占据了绝对的市场份额,公司计划在中小学教育信息化领域大展拳脚。就在这时,一阵急促的电话铃声响起了,邱总抓起电话,另一头传来了服务部马经理焦急的声音:“邱总,不好了!中考学生的家长在各学校填报考信息时,信息无法上报到市教育局,无法打印回执,家长们都等在那里一段时间了,很有意见!”。邱总心里一阵紧张,赶紧指示:“我立即安排开发部人员到市教育局处理,请你们耐心做一下家长们的工作!”。

开发部李经理带了一名技术骨干赶赴现场,经过近一小时的努力,终于排查出故障原因:系统对填报的报考信息要进行验证,当检查有的信息不符合逻辑或错误时会退回会提醒重填。但系统运行时,对其中两字段的错误信息检查时进入死循环,导致系统无法继续进行数据处理。这完全是系统的一个重大BUG,经过修改后,系统恢复运行,考生志愿终于能够上报了,但这时系统又出现重复填报志愿的情况,经过分析发现原来系统没有撤消功能,另外,更改志愿后,原来的记录未被覆盖,李经理赶紧把这一问题也解决了。

分析

事后,邱总召集相关人员开会分析这次严重的质量事件,汉捷咨询吴顾问也受邀参加了分析会。邱总希望分清责任,以免再次出现类似的情况。大家很自然把矛头对准了测试部王经理:“为何测试没有把好关?是不是漏测了?相关测试人员责任心是不是有问题?……”。王经理显得非常委屈:“我已经向测试人员做了调查,系统上线前我们完全是按照测试规范和事先确定的测试项目做的测试,结果都是OK的!系统出了问题就算到测试部门头上,那我们以后的工作还怎么做啊?!”

服务部马经理听后不以为然:“我们关键是要为客户着想,测试部为什么不能从客户应用的角度进行运行测试?我们不要老是把有‘定时炸弹’的系统交给客户使用啊!”

王经理也不示弱:“你以为测试部就不想把没有问题的产品交给客户?这样我们也安心。但是,我们只是一个执行部门,按照测试用例和规范完成测试是我们的责任,我们也无法保证系统不会出问题啊!关于进行客户运行测试的问题,需要方方面面配合,我也提出来过,但是与相关部门讨论了一番,大家都觉得有困难,后面就不了了之了。我认为,开发部才是产品开发的主导部门......”

谈到这里,大家才想起问题首先是设计出来的啊。面对大家投来的目光,开发部李经理开始有点心虚:“我承认很多问题是开发人员设计不周或失误造成的BUG,这是我们需要反思和改进的,开发人员也一直在努力中.....” 他想起开发人员这些年总是在疲于奔命,顿了顿:“开发人员既要忙于新系统的开发,又要应付系统维护、升级和出现的问题,难免有疏忽的时候,再说市场部给我们提供的客户需求比较模糊,我们无法了解客户的运行环境和全面的需求,比如这次出问题的系统,填报志愿的撤消功能在需求中就没有提出来。开发部名义上是主导部门,需要各部门配合的时候总是出现这样那样的问题,好象产品开发只是开发部门的事情,各部门都是帮忙的,想帮或者容易帮的时候就帮一下,不想帮的时候总能找到各种各样的借口!”

看来问题还在源头啊!不过,市场部徐经理出差在外,没能参加会议,总不能责任都推到他身上去吧。这时,邱总发话了:“听了大家发言,好象大家都有责任,又都没有责任,即使有责任也可以推脱到别的部门,这样下去看来问题是无法解决的。请听听汉捷吴顾问有何意见。”

吴顾问首先从一个例子来启发大家的思考:“三个人一起种树,分别负责挖坑、插树苗、填土,如果树苗没有成活,应用由谁来负责任?”

“要具体问题具体分析,看谁的工作出了差错,各自要对自己的工作结果负责.....”测试部王经理抢着回答,大家似乎都赞同这种说法。

“吴顾问举的例子其实就是我们公司现在遇到的问题:系统在运行中出了问题,是测试的差错,还是设计的问题?或者是市场的问题?......大家讨论了半天,好象都是别部门的责任,即使自己有    问题也是别人造成的,这样下去问题就无解了。在我看来,系统运行不好,涉及到的每个部门都要承担责任,就象刚才提到的例子中如果树苗死了,三个人都要负责,这样才能促使大家去找自己的问题,并设法改进!”邱总的讲话语气越来越坚决。

“对!这就是共同责任或称连带责任的概念,从流程的角度看,就是流程中的每个部门或环节都要对流程的最终结果负责。系统运行中出了问题,这是我们每个部门共同的责任,是我们的问题,进一步来说就是我的问题。”吴顾问作了简要总结,又启发到:“接下来,各部门能不能谈谈部门工作中有哪些不足会导致产品开发的最终结果不好呢?”

反省

“其实,我们现在主要做的是系统测试,单元测试、集成测试、验收测试基本上都没有做起来,”测试部王经理首先做起了反省:“这样导致很多问题测不出来,系统在运行中老是出问题,让服务部门受委屈了!”

“是啊,开发项目组设计方面经常考虑不周,由于周期紧匆匆忙忙就进入详细设计和编码阶段,过去中评审很少或者流于形式,加上缺乏规范指导,研发人员都比较年轻,我们的设计质量是较差的!”开发部李经理说到。

服务部马经理平时经常处理客户投诉,对开发部和测试部意见最大,听到两个部门都在做自我批评,说道:“服务部门直接面对客户,系统出了问题我们很着急,难免对上游环节就有怨言,其实仔细想想光抱怨解决不了问题,服务部门应该多把客户关心的问题进行收集整理,反馈给开发小组,事先就提出系统在服务方面需要注意的问题,如果有条件,最好能开发前期服务人员就参与进去。”

“马经理说得很好!谈到了两个问题。”汉捷吴顾问插话道:“一是并行开发,即在产品开发初期各环节人员就都参与进去,并行开展设计、测试、服务、销售、制造等各项工作并进行有效的协同,避免串行开发导致设计更改或返工、时间延误、准备不足等问题。二是需求管理,服务环节也应该作为一个很重要的客户需求来源。”

谈到需求管理,邱总说到:“需求管理一直是公司的薄弱环节,也多次要求市场部加强。本来今天徐经理要参会的,但临时有个非常关键的销售项目要谈,等他回来我们再针对需求管理专门开一个会。”

“是得赶紧开这个会,”开发部李经理显得很是期待:“现在设计与市场脱节的问题比较严重,市场部往往只是告诉我们客户需要这个那个,既不完整也比较模糊,开发人员就凭自己的理解去开发了。我们的开发人员有个毛病,不愿意去见客户,觉得那是市场部的事情。”

“需求不明确、不准确是软件产品失败的主要原因!但如果大家就指望市场部来解决,那肯定会失望了。”汉捷吴顾问提醒到:“目前的市场部并不是真正意义上的市场部,主要还是对销售目标负责,需求工作摆在次要位置,而且更多是关注短期的需求......”

“那我们就单独成立一个市场部,这样问题是否就解决了呢?”邱总显得有点急于找到答案。

“呵呵!如果成立单独的市场部就能解决需求问题那就太好了!” 吴顾问笑了笑:“客户需求这样的复杂问题是无法只靠一个部门解决的:客户需求来源就有多种渠道,需要相关环节都收集和反馈需求;需求访谈和需求分析活动需要市场、技术、服务等不同专业人员的相互合作;开发项目组应在前期开展充分的需求分析活动,必要时还需要进行需求收集和访谈。其实,研发的很多问题都无法只靠一个部门解决,包括设计问题、测试问题、工艺问题等等。李经理你说是吧?”

“是的!我们已经开始意识到研发不应该只是开发部门的事情,应该由各部门共同来参与和负责,但不知道如何做。”开发部李经理回答道。

邱总:“那我们接下来讨论一下解决方案吧!”

解决方案

“我想,需要加强各部门对研发项目的参与,还有就是前面吴顾问提到的,大家都要对最终结果负责。”李经理首先提出了自己的想法。

“我们测试肯定全力配合你们开发,首先配合开发人员把单元测试做起来,其次尽量在开发前期就参与,与开发人员一道制定测试计划和测试用例。”测试部王经理也表态。

服务部马经理:“如果开发人员一开始就能够听取我们的意见那就太好了,就怕开发人员认为开发是他们的事情,不关服务的事情,产品开发出来交给服务部门就行了。”

吴顾问:“马经理提到的是企业研发中的典型问题,只是从功能和性能实现的角度来定义研发,所以开发人员认为只是他们的事情,这种看法是片面的和有害的。产品开发是为客户开发,应该从客户需求的角度来定义研发的内容,客户除了关心功能、性能外,还关心价格、服务、体验、包装、产品现象、营销方式等,把客户需要的这些作为一个整体称之为产品包,所以产品开发应该是产品包的开发。”

“既然是产品包开发,那就不光是开发部门的事情,各部门参与进来就有依据了。”邱总很是兴奋:“要让各部门人员都参与开发项目组,共同配合做好产品包。”

“邱总的思路是对的!”汉捷吴顾问:“但是,仅仅建立包括各部门人员的开发项目组是否就够了呢?”

“我原来服务的公司也成立了这样的项目组。”李经理若有所思地说:“但运行情况很不理想,除了技术人员,其它部门人员参与度很有限,还是各自为政,沟通困难,经常扯皮,问题到了各部门经理那里也很难协调解决,项目经理感到很难做,吃力不讨好。”

吴顾问:“这是弱矩阵结构下的轻量级项目组开发模式,其实还是各部门各管一段地进行开发,部门壁垒不可避免,如果缺乏前面提到的共同目标和共同责任的意识,那协调沟通的问题就更严重了!”

“那到底如何解决呢?”邱总显得有些焦急了。

“其实,通过前面的研讨我们把问题都分析清楚了。针对这些问题,结合产品开发的目的和特点,”吴顾问顿了顿:“从思路上来看,应该从树立产品包概念、以产品市场成功为目标、打破部门壁垒、构建跨部门团队、人员能力提升、建立研发规范几个方面考虑。具体的解决方案包括思想意识宣贯、组织结构调整、角色职责分配、跨部门PDT团队组建、绩效管理机制设计、资源及能力建设、产品开发流程设计、体系实施运行、优化调整等多个方面。这是一个系统性的解决方案,过程中会涉及很多专业性问题,而且需要很强的推动力,所以最好借助专业咨询机构的帮助。“

“好,那我们就聘请汉捷咨询来帮助!”邱总道。


相关推荐