IsQA About People or Process?
原作者: EdwardJ. Correia
译者:开心果, Jenvee, Jeff, Wally (微博:http://weibo.com/quicktest)
日期:2009-08-20
E测中国翻译团队作品
一旦发布版本的产品出现缺陷,公司会倾向于重新审视他们的流程。 一般管理上的想法将会是“如果我们有更严格的流程,这问题将不会发生”。假如是你在负责产品质量,你的第一反应很有可能会是“问题又来了”。
但是质量控制真的就是流程控制吗?严谨的流程可以弥补由于人的散漫、漠不关心或是时间有限而带来的问题吗?或者说,尽管过程控制不尽完美,但是有一个细心的人是否能确保产品质量?要想获得好的质量,人和流程究竟哪个更重要?
质量保证显然是这两者的结合。但是国际IT服务公司Virtusa的质量分析员V.Viswanathan认为,不同的行业答案可能有所不同。由于曾在制造业和软件业工作过,他认为,制造业是以流程为中心,而项目型领域如软件业则趋向于以人为中心。六西格玛过程是制造业的基石,而“把软件业的成本下降和提升收益归功于流程改造,则可能不是很有意义”。
他指出“六西格玛主要适用于那些业务操作固定不变的行业”,但软件开发不是这样的。 “我并不是说六西格玛不适用于软件开发,但在软件业实施六西格玛可能无法实现它在制造业获得的巨大收益”。
对于业务流程改造,六西格玛的策略是确定问题根源,找到解决方案并落实。“为了使六西格玛有效,操作必须是可重复的”Viswanathan说。相比软件行业,个人能力在制造业影响很小。这两个行业,还包括以下一些差异:
l 在制造业中,产品都是相同的;而在软件开发每个产品都是定制的(否则就不用开发了);
l 在制造业每个操作的流程是相同的,而软件开发因为内容的不同,流程也有所差异;
l 大多数从事制造业的工人工作效率比较接近,而软件开发人员的能力差别相当大,所以他们的技能水平和效率也有很大差别。
软件开发是真正有很多创造性的活动,软件项目的内容可以有着极大的不同,因此产品开发相关的操作也会有所不同。“在软件方面,整个项目的运作可能是类似的,但并不相同。你可能有相同的阶段...需求分析,设计,编码,测试和执行...。但每个项目的细节是不同的,”他说。
因此,你在某个项目的成功方法,比如改进流程或解决问题,在另一个项目可能就无效了。“而且,成功标准也可能不同。即便它是可行的,也无法在各项目中一直保持成功。”Viswanathan说。更重要的是,一旦有人投入,错误就很难避免,而且错误在何处发生也难以预料。相对制造业而言,这种混乱如同诅咒。制造业是依靠预测和一致性来取得最大产出的。
也许办公室(软件公司)和车间最大的区别是各自使用能力的方式。一个机灵的工人相比一个笨手笨脚的人,他也许能多生产百分之一的零件,还可能减少受伤的机会。但一个卓有有能力的的开发人员的影响力则不同,他甚至可能会成为整个行业的基础(Linus Torvalds这么认为)
一个高效的软件开发团队,它的成员应具有技术、尽职并且细致,它的流程是严密、合乎逻辑的,这样才能做好工作,参与者也能从中找到价值。因为如得不到团队的认可,你的流程所体现的价值还不及打印这个流程的这张纸的价值。
IsQA About People or Process?
By Edward J.Correia
Any time adefect gets through to production, companies have a tendency to reexamine theirprocesses. “If we had tighter processes in place, this would not havehappened,” is usually the thinking of management. If you deal with productquality, perhaps your reaction was something like, “Here we go again.”
But is quality control really about process? Can an air-tight process make upfor sloppy, apathetic, or time-constrained people? Or, can a meticulous personassure quality despite controls that are less than perfect? Are people orprocesses most responsible for good quality?
Obviously, quality assurance involves a combination of the two. But accordingto V. Viswanathan, a quality analyst with international IT services companyVirtusa, the answer might also depend on the industry. Having worked inmanufacturing as well as software development, he believes that project-relatedendeavors like software development tend to be person-centric, whereas themanufacturing industry centers on process. “The amount of savings and benefitsthat occur in the software industry due to process improvement activities maynot be really significant,” he says, whereas the Six Sigma process is acornerstone of manufacturing.
“Six Sigma is mainly applicable to industries where operations or activitiesare identical,” he points out, hardly a characteristic of software development.“I don’t mean that Six Sigma is not applicable to software development. But byapplying Six Sigma, drastic benefits may not be achieved as those that occur inthe manufacturing industry."
Part of the Six Sigma strategy for business process improvement is to identifythe root cause of a problem and then find and implement a solution. “In orderfor Six Sigma to be most effective, the operations have to be repeatable,” saysViswanathan. Hence, individual talent plays a far smaller role in manufacturingthan in software development. Some of thedifferences include the following:
1. In manufacturing, each product is intended to beidentical; in software development each product is customized (otherwise therewould be nothing to develop).
2. Processes in manufacturing are the same for eachoperation; processes in software development vary in terms of content.
3. Most manufacturing workers perform at a similar level ofeffectiveness; software development workers’ abilities vary widely, as do theirlevels of skill and effectiveness.
As is trueof many creative activities, the content involved with software projects canvary wildly, and operations related to application development will varyaccordingly. “In software, the operations across projects might be similar, butare not identical. You may have the same set of phases…requirement analysis,design, coding, testing, and implementation… between projects. But the detailsof each are different,” he says.
Therefore, activities that you might have implemented to improve a process orsolve a problem in one project may not be valid for another. “Also, the levelof success might be different. Even if it is applicable, the consistency ofsuccess cannot be maintained across projects,” says Viswanathan. What’s more,errors are inevitable whenever human input is involved. And the places whereerrors turn up cannot be predicted. Such relative chaos is anathema tomanufacturing, which relies on predictability and consistency for maximumoutput.
Each According to Ability
Perhaps thebiggest difference between the software office and factory floor is the way inwhich each makes use of ability. A nimble factory worker might produce onepercent more widgets and be less prone to injury than someone who is clumsy.But a skilled developer can become the basis of an entire industry (think LinusTorvalds).
The most effective software development team is one that combines skilled,competent and caring workers with solid, logical processes that work well andmake sense to all involved. Because without buy-in from the team, your processesare not worth the paper they’re printed on.