质量的定义

 

如何定义质量?这取决于提供的产品或服务是否满足需求。质量就是满足需求,不多也不少,这是克劳斯比的定义。这帮助我们很好的理解质量的概念和边界。在我刚进入软件开发领域时,糟糕的产品质量让我深恶痛绝,同时也付出惨重的代价。我知道高质量的软件是成本最低,进度最快的,但我始终无法做到,也从未亲眼目睹过,即使是身边能力出重的朋友和同事。

 

究其原因,首先,我们无法定义出什么是质量,总认为功能越强大,流程越完备,质量越高。有时还自以聪明的添加一些功能糖果,结果导致简单的事情复杂化,复杂的事情愚蠢化。我清楚记得高度参与的第一个项目,大概有30%-40%的代码从未在生产环境运行过。第二个项目也没有好到哪里去。即使是最近一次开发的项目,愚蠢依然在重复。高层认为功能太简单,于是不断地向流程中添加状态和节点,然后是数不清的界面元素。你一定猜到了,我们的目标就是同一个界面可以满足各种类型的用户的需求,美其名曰:通用。当然,你也一定猜得到,最后我们不得不简化流程,同时提供另外的快速流程,以满足多数用户的需求。悲剧一再上演,相同的情节,不同的时间、地点和演员。

 

其次,我们无法明确定义需求,没有划定需求的边界。没有明确的定义,你就无法验证需求,到最后只好祈祷一切进展顺利。没有划定边界,需求就会不断蔓延。这是每一个项目最可怕的恶梦。我曾经参与过一个项目,需求非常之不明确。为了拿下订单,销售人员夸下海口,到了项目启动之后,就发现这是个无底洞,但大家都当做没看见,结果可想而知,超出预算200%。

 

如何提高质量呢?首先就要明确需求并对质量的定义达成一致。要求客户提供业务代表,一同明确需求及其边界,并在需要时做出业务的决策。要求开发人员依据需求开发,功能上只要满足需求即可。其次,第一次就把事情做对。如果是制造行业,我们可以明确定义必须第一次就把各种事情做对,软件开发虽然有其特殊性,我也没有找出任何理由做不到这一点。为什么代码质量如此差,缺陷如此多?因为我们没有时间做得更好。这完全是个借口,我们没有时间第一次做好,却有时间做第二次,第三次。想想看,这个理由绝不适用于聪明人。

 

最后,不断总结经验和教训,不断改进,同时采取各种有效的预防措施,争取在错误发生前就解决掉。

 

你是一个聪明的Pragmatic Programmer,请将你的时间利用得更有效吧。如果你也有类似的经验,请与大家一起分享。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值