针对目前软件质量普遍不如以往的情况想说的话
2008年10月13日
针对目前软件质量普遍不如以往的情况,我想说:
1. 心急吃不了热豆腐,晒盐还得晒足了时间。人的速度是有限的,所以软件需要花多点时间进行打磨才能真正做好。
2. 像微软一样,普遍的测试是能明显地提高软件质量的,至少能提高表观质量。
3. 内在质量的提高不能仅通过时间充裕和进行测试来实现,必须还要有端正的态度。要花时间想想,如果态度端正了,做出来的软件将会是多么的体面。
我才疏学浅,上述观点请各位批评。
投入资源,端正态度,范兄说得很对也很好。不过在这两个因素中间,我觉得很有可能后者更加重要些。资源在很多情况下(如果不是所有情况下)可能都是供小于求的,但只要整个团队有一个端正的态度:重视设计阶段的良构性和开放性、重视测试驱动开发,以及在每次迭代后坚持做依赖模块的回归测试(当然,测试用例的更新也反映了一个态度),软件质量就有了一个基本面的保证。而精品的推出,我以为最重要的几点是:1. 不要为测试而测试。有些东西根本没有相依性的,要想明白迭代到底影响了哪些东西。不要反复地测一些肯定没问题的东西;2. 不要回避客户方的问题。有些问题很傻,看起来也不make sense,但是它代表的就是客户的心声。比如一些农民用洗衣机洗土豆,然后把洗衣机搞坏了,就投诉。而张瑞敏就针对这个需求改进了产品,让洗衣机也能洗瓜果土豆——软件也是一样,要客户用得满意才是真的满意,不要给自己找借口说这是客户在吹毛求疵,或是有workaround——客户付钱给我们,他们有资格吹毛求疵,他们不喜欢workaround。根据我的观察,很多情况下,客户提出的不过是一些细小需求,因为他们也不懂后面的实现机理,只能提表面问题。而这些细小需求的满足,会大大提高他们的忠诚度。当然有的时候软件是业务系统,你做得烂他们也只能硬着头皮用,但如果人家有别的选择就不会用你的了。其实归根结底还是个态度的问题,你做软件的人,或是做软件的公司就要有一个做事的态度,一个对客户负责、对产品负责的态度,舍此就没有别的成功之道。哪怕你做的是政府项目,是关系户的项目,你对质量的态度仍然会决定你能做多大。