软件标准化问题

 标准化(Standardization)指在工业或技术上,在竞争过程中奠定的一个技术标准,但该标准不会妨碍竞争。

软件技术到现在却似乎只有编程语言和设计语言的语法做到了真正的标准化。

软件工程这个层面倒是提出了很多标准。重型,轻型;瀑布,迭代,螺旋;CMM,RUP,XP。概念提出了很多,理论也在不断交锋发展。可是这些名词所包含的内容要不就是过于抽象,似乎不能称为标准,勉强算得上guideline。CMM倒是标准,可是笨重而昂贵。

软件开发层面就完全没有标准可言了。代码格式不可能标准,程序员出身背景不同,又有各式各样的风格偏好。同一问题的解决方法不可能标准,他们的水平参差不齐,每个人又都有自己的见解。个人的有效产出率和质量评估也没有标准,甚至代码行数的统计方法也没有标准。

软件文档一般会有标准的模板提供,但是没有行业的标准,而且文档的作用,也存在一定争议。

虽然设计模式在一定程度上提供了设计层面的标准,但是一来其涵盖范围有限,再者其抽象程度对程序员要求较高,三来其自身也有很大灵活性。也只是一种guideline。

软件项目里的无标准、无序或者叫没有规矩,带来的麻烦很多,比如文档和代码难以理解,版本维护困难;软件逐渐臃肿和不可控;接口定义冲突等等。最终导致软件产品的质量低下和成本高昂。

但是如果强制推行软件标准化,也有很大阻碍。软件毕竟不同于一般产品,是完全的头脑产物,太多限制会压抑程序员的思想火花,优秀的软件产品也难以产生。另一方面,人本身就对条条框框有天然的抵触情绪,我自己看那个什么PSP(Personal Software Process)都觉得太机械了,写个代码还在旁边不停地计时按钟的,受不了。

这就是软件开发的悖论,一方面要求标准化才能真正形成产业规模,大大提高生产率,降低成本,另一方面,软件的特殊性使这种标准化成为镜中花,水中月。很有名的“没有银弹”的结论就很可以理解了。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值