软件开发,改善质量

孤烟一品客: 无线研究院 2010年02月

【摘要】

质量工作对任何产品都很重要的,也不是一朝一夕就能改善的,需要各层领导和每个员工的投入,也需要部门每个人能展开讨论,献计献策,找到解决问题的良方,从而有效提高工作绩效和质量,使得版本质量上一个个新的台阶。达到良性循环并能形成好的质量氛围。也使的每个员工都能轻松愉快高质量和高效率的开展工作。

【关键词】

高质量 考核 开会

一、 问题的提出

二、 解决思路以及实践

1. 什么是高质量?

什么才是高质量?这个问题本很简单,有时却让人很糊涂。所谓高质量就是产品缺陷少,能满足用户需求,用户满意度高。提到高质量不能不提6sigma。对于大多数公司来说,每100万次操作中平均出现差错3.5万次,而如果达到6sigma的质量水平,则生产或服务程序中每100万次操作中出现的差错将少于3.4次。即完美率达到99.99966%。

在工业领域,操作的正确率通常在97%左右,也就是3sigma和4sigma之间的水平。举个例子说,就是每周的手术失误5000次。每小时遗失邮件两万份,每年开错药方成千上万份。想起来实在不容乐观。也表明了质量的重要性。

对开发部门而言,高质量就是编写程序Bug少,功能实现符合需求,产品故障泄露少,客户使用时发现外部故障少,对产品各方面表现很满意。

这个问题很简单?很多人却很糊涂?原因很简单,部门走廊处贴的两句话可以说明原因。

“抓质量、促进度、态度决定一切”

“胜品质、赢客户、努力创造佳绩”

这两句话中,第二句就是我们一直倡导高质量的原因。要想挣大钱,就要有订单,要想有订单,就需要客户对你的产品很满意,要想让客户很满意,就需要产品质量高人一筹。

而第一句的两个词“抓质量”和“促进度”,就是问题的关键所在。在抓质量的同时还必须促进度。

两者存在矛盾,要想提高质量,需要花时间、精力、人员来做这件事。这方面投入越多越好,可要“促进度”会使我们对这方面的投入慎之又慎!所以没办法,要想协调好,就需要“态度决定一切”。即开发人员靠认真负责的态度能既保进度,又有高质量。也就是鱼和熊掌要兼得!!

前面强调了高质量重要性,为什么也要强调进度呢?很简单,通信行业竞争激烈,技术更迭很快。进度的快慢决定是赚钱还是赔钱。所以,要想从竞争中脱颖而出,事事就要领先一步。

也就是鱼和熊掌必须兼得。

很多人糊涂的原因,就是有时候过于强调进度而不能高质量,或者是强调高指标而不是高质量。由这两句话来看,其实两个都重要,缺一不可。所以,有人反映版本太多、接口太多、需求太多、从而导致故障太多。从此角度提建议,是个死胡同,很难被采纳。然而,这里确实可以做一些工作,要求项目经理按进度和质量的最佳结合点来安排版本进度。这需要项目经理深度分析,摸索、和研究。

一旦找不到最佳结合点,就会引发大量问题:版本太多,功能实现太急,没时间进行充分的需求分析和详细设计,导致大量问题泄露到测试部,花大量时间解决EC,解决EC又导致开发新功能时间紧张,如此恶性循环。每个人都疲于奔命、累的吐血、产品结果不好,各种指标很差。等到外部大环境好转,大批优秀骨干跳槽,使得项目失血过多,情况会继续恶化。目前各个项目都有此迹象,需要引起高度重视。

2. 开展质量工作的一些误区

l 通过指标考核提高质量

RO中心或无线院对部门的考核,包含泄漏率、及时解决率等等。从整体的角度作为考核指标,完全能反映一个部门综合开发质量和开发进度。但将此指标用于部门每个人身上,可能并不太合适。

首先,考核浪费了开发人员很多的时间和精力。

一些优秀的欧美企业,考核通常是一年或半年一次。考核无非是对优秀员工进行加薪升职,对差的员工减薪或裁员。从而实现组织人员的素质提升、保持动力和活力。从而提高整体工作绩效。

如果考核复杂化、做滥了却有百害无一利。将考核逐月开展,将考核整体的指标应用到个人,将月考核又极尽复杂化。每月十来个相关考核数据要开发人员汇总,每天开发人员要详细记流水账做过哪些工作。浪费大量时间、造成巨大压力、鼓励虚假数据、损害开发质量、打击积极性、主动性和热情、形成不良风气。

而且还会存在一个奇怪现象:很多非常优秀的员工,负责模块很多,工作量很大,又常被叫来叫去四处救火帮助他人。本来应该考核成绩会很好,但考核数据却很难看,因为EC很多,解决周期较长,没时间集成测试导致泄漏率很大。大家公认的优秀员工考核数据排名确是倒数。非常奇怪的现象,但一些科室的确存在。

不过,在QA开展工作中,有时却要一些考核指标来迅速改善某些方面。目的引起大家足够重视,而如果会上一遍遍说,会被听者当成耳旁风,进展缓慢,这个度要把握好,过犹不及。

所以,只依赖考核指标来提高质量。会误导别人只追求质量相关的高指标,却忽略了质量本身。

l 通过统计数据提高质量

质量改进里面有个PDCA环。就是说质量改进的原则需遵循策划(Plan)、实施(Do)、检查(Check)、处置(Act)。

其实统计数据相当于只是P里面一个很小的方面。

在质量改进初期,需要开展三个工作:选择课题、掌握现状、分析问题原因。通过数据统计,可以知道工作中质量较差的方面,通过调查了解具体原因。但统计不是质量改进的全部工作。QA人员不应把时间都花在统计上,数据本身只是QA人员发现问题的一个途径。如果它浪费时间太多,会对质量改善无任何益处,一旦有这种情况,必须砍掉。或改善统计工作,或交他人负责。

l 通过高压线提高质量

武汉某广告公司员工平均年龄25.5岁,而他们的月收入平均在7000元左右,这些年轻的“新贵”是怎样产生的呢?该公司总经理柳行鸣称,鼓励员工犯“合理”错误,是公司提高绩效最有效的法宝。

“如果每个员工都不犯错误,公司就不会有创新。”柳行鸣说,一个出色的管理者懂得适时奖励业绩出色的员工、鼓励犯错的员工,充分调动员工的积极性,为企业创造财富。

部门目前有很多高压线,被电上一次,月考核不仅倒数,甚至会影响半年考核以及各种优秀评选。

没有谁不曾犯错,也没有谁想犯错!引入高压线目的是引起足够重视,使得不再重犯错误。但是也会因此使得很多人得了“恐高症”,每天战战兢兢,总是将很大精力花在如何避免犯错上,对将工作如何做好却无暇考虑,更不敢考虑创新。对重构,重写一些模块代码更是不敢越雷池一步。对开创性的提高整个代码的执行效率更是鲜有问津。对于另外一些人,则是多做多错,少做少错,不做不错。所以就能推的推,能躲的躲。导致一些人工作效率低下,总是磨来磨去和人扯皮。

所以高压线应该是领导的高压线,通过高压线来分析问题的深层次原因,堵住工作中各种漏洞,对员工自身需视具体情况具体讨论了。

3. 如何开展高质量工作

l 砍掉时间浪费、提高工作实效,鼓励推广提高效率的好方法

1). 经常会有这种情况,开会原定两小时,可领导突然有事推迟1个多小时,结果是两个小时的会半个小时就开完了,能压缩的压缩,能精简的精简,不该说的就不说了。结果效果到是还不错,可当初为什么没想到只开半小时呢,二十几个人的1小时,就是一个人3天多的工作时间。多大的时间浪费啊!

还有一种情况,本来开会两小时讨论5个事情,可一个问题就讨论的跑题到天南海北,会议室成了聊天室,有的人有任务急得是热锅上的蚂蚁,有的人听的是昏昏欲睡。结果两个小时下来,一个都没确认,明天接着开。大企业中,会议多是个通病,所以必须引起重视。

每个人注意力只有10分钟,所以会议是能不开就不开,能缩短就缩短。永远不要为满足个人权力欲而去组织开会,永远不要为了开会而开会。

而且会议参加较多的一般是技术骨干和业务精英,这些人浪费时间而不能有效发挥优势,对高质量工作危害更大。

2). 引入自动化测试或半自动化测试,提高开发和测试的工作效率,共享测试的测试脚本和用例。避免手工测试时间巨大浪费,工作的大量重复和效率低下。前一段时间版本很多,天天都要冒烟测试,测升级脚本,QA做这个工作同时要天天统计冒烟结果,有的人功能还没实现完,EC很多,只能走流程式的随便点点来应付冒烟测试,应付别人也应付自己,版本存在很多隐患。导致匆忙编码,匆忙测试结果是版本匆忙中构建失败,匆忙中被测试打回,匆忙中又提交新的补丁版本。开发人员主要工作是开发工作,以及对自己代码的单元测试,一些冒烟测试完全可以定期让机器运行脚本自己测试,打印测试结果,或者有专人负责这些工作,按照测试规程详细认真的进行测试。

非正式的女商人在办公室开会时睡着了

l 各项流程工作开展要真正落到实处

公司目前的一些流程是实践总结而来,还是比较完善,如果每一步都能严格执行照做了,质量会很好,但是开发的整个阶段走流程都存在为应付走过场的局面。

首先概要设计,系统工程师SE负起责任,接口变更SE要跟前台和平台沟通确认。确保自己的文档能够完全符合对方的需求,严肃认证的逐一进行确认,没一点问题再由开发写祥设。在欧美企业,软件的祥设也是SE来写,写的精确到一个函数传什么类型的参数。写完了再和开发反复确认问题,然后再改文档,一个文档写好后,开发只需要照着编码,一般没有因文档写的有问题而重复修改的现象。而在中国一些软件公司是什么情况大家都很了解。

在设计之初犯了错误,后面人员要花数倍工作时间来修正此错误。编码、单元测试、冒烟测试、修改EC、更新文档。如果这些工作经常一个功能折腾好几次。质量能好到哪里去,接口变更变来变去,前台有的不懂业务,靠猜测提变更,猜错了再提变更修改,后台编码实现成了前台想法的实验所。大家都感觉很累很倦的确是有理由的。

所以这些必须引起重视。可以每个科室专门找一些精通业务的人写祥设、和SE、前台、平台来沟通,确保编码前理解正确无误。不要说没时间没人,把各个环节中的时间浪费砍掉了,完全可以。而且,这样做会逐渐减少无效劳动,提高开发效率,节省人力,从而形成良性循环。

测试工作也一样,每个科室都有一些非常细心能发现很多问题的员工,为什么不发挥他们的优势,让他们有充分的时间和机会来从事测试工作。改进测试方法,提高测试效率。从而,使得一个科室有各种各样的人才,都能做自己最擅长的事。完成的质量也会最好。在开发组更好开展这项工作,进行敏捷开发。

如果想把每个员工都培养成:写文档很牛、编码很牛、沟通能力强、测试起来更牛、且业务精通、管理才能卓著。这种人才做领导的候选人培养倒还可以考虑。如果想每个员工都能做到这样,不仅仅很难,几乎是不可能。且会使版本质量成为员工成长的实验场。改正错误付出的时间和代价可能成倍增长。而且员工个人也会因某方面做的不好没有成就感。

愤怒的女人

l 鼓励高质量行为,引导质量氛围

加大对好的工作方式、工作质量和工作态度肯定和表扬。形成主动追求高质量的工作氛围。对一些提升效率好的思想和建议,大力支持奖励并推广,对一些员工能积极主动、认真负责且完成质量一直较好的,进行表扬并且经验推广,对质量改进某个环节,一直做的很优秀的,专门给予物质奖励。从而引导部门的质量氛围,逐渐向好的方面发展。

对于一些重点代码、重点模块和重要EC,开发经理严格把关,代码逐行审查,对一些优秀代码风格,代码规范和代码设计,专题讨论,推广和学习。对一些常见问题进行专题分析,让大家引以为戒,等等。

三、效果评价

质量工作对任何产品都很重要的,也不是一朝一夕就能改善的,需要各层领导和每个员工的投入,也需要部门每个人能展开讨论,献计献策,找到解决问题的良方,从而有效提高工作绩效和质量,使得版本质量上一个个新的台阶。达到良性循环并能形成好的质量氛围。也使的每个员工都能轻松愉快高质量和高效率的开展工作。

四、 推广建议

参考资料

Close-up view of the movement of a pocket watch

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2018年9月21日
下一篇 2018年9月22日

相关推荐