工作计划

从技术的角度看如何杜绝软件设计师和硬件设计师在产品出现问题时相互扯皮?

| 点击:

【www.fsgl168.com--工作计划】

产品一旦遇到问题,相关方第一时间不是分析问题产生的具体原因,寻求最佳解决方案,而是明哲保身,先把自己的责任择出来,把责任推给别人。“推诿扯皮”是笔者在参加多个产品问题分析会的感受,也许这已经形成了组织的一种“文化”。

当组织内软件开发从产品研发中独立出来以后,这种“扯皮”就又增加了一种关系:软件设计师和硬件设计师之间的“扯皮”关系。笔者经常听到软件设计师的报怨:产品一出问题,硬件设计师张口就说“肯定是软件出了问题”,这让软件设计师郁闷不已,几乎就要吐血三升。厉害一点的就怼回去,“我的软件都已经测试过了,肯定是你硬件有问题”。这样来来去去有的吵了。

可是,一味地争吵并不能解决产品的问题。而问题始终都是要解决的。如果一个产品既包含硬件,又包含软件,那么出现的问题就只会有3种问题:硬件问题、软件问题、软件和硬件的接口问题。要避免产品出现问题之后,软件和硬件设计师相互扯皮,就应当在软硬件作为一个系统运作之前,软件设计师和硬件设计师做好软件问题和硬件问题的预防,以及必要的接口测试工作。

按照系统集成的原理,首先要确认组织系统的各个单元是正确的,然后再把它们集成在一起,验证它们的接口也是正确的。所以硬件设计师应该先确认硬件功能是正常的,软件设计师应该先确认软件功能是正常的。相比硬件设计师来说,软件设计师能够做的更多。

软件设计师在完成代码编写之后,不仅仅是使代码通过编译器的编译就了事,他还可以使用单元测试、集成测试、功能测试、接口测试等各种手段来验证软件功能是正确的,软件的接口也是正确的(虽然由于测试环境不是真实环境,这个接口正确不可能是100%)。在测试活动中,特别是要做好下面一些工作:

(1) 设计错误处理路径,这个路径可测试来自系统其它元素的所有信息。

(2)进行一系列测试,这里测试模拟了“坏数据”或软件接口上其它潜在的错误。

(3)如果出现扯皮,要记录测试的结果,作为“论据”。

(4)参加计划和系统测试的设计,以保证软件得到充分的测试。

《失控》里面提到如何实现软件零缺陷的时候,给出了将软件模块化,当模块足够小的时候,可靠性会得到保障,然后就把这些可靠的小模块逐步集成为大的模块,在集成的过程中验证接口的正确性。通过这种方式,逐步集成为一个系统,那么系统就有可能是零缺陷的。

所以要杜绝软件设计师和硬件设计师在产品出现问题时相互扯皮,就要追求集成后的系统是“零缺陷”的。为此,就需要硬件设计师和软件设计师在做好硬件部件功能的验证和硬件集成,软件设计师做好软件单元测试和集成测试、接口测试。与其产品出现问题才去找原因,推卸责任,相互扯皮,不如先做好功能测试和接口测试吧。

参考书目:

1. 《软件工程——实践者的研究途径和方法》

2. 《失控》

微信赞赏专用通道

微信号:IdeaofSE

本文来源:http://www.fsgl168.com/fanwen/68635/