技术开发 频道

为什么需要软件过程改善?

【IT168 分析评论】

    麦当劳餐厅的成功在于无论在哪个餐厅里提供的服务和食物都是“一致的和可预测的”。

    据说麦当劳对购餐等待的时间,薯条烘烤的时间都有限定。套用CMMI的标准,达到定量控制的4级恐怕没有太大的问题。

    汽车制造商每年都会有因为制造缺陷导致召回的汽车。在汽车召回的时候,细心的人会注意,厂商一定会说明两件事情:一件是召回的范围,即是哪年哪个工厂的哪个批次的汽车;另一件是缺陷会在什么情况下发生,导致什么问题。这从反面说明了,汽车制造过程同样是“一致的和可预测的”,因为连产品出现的缺陷都是可以预测的。

    而普通的餐厅是无法使得同样的食品每次的口味都一样;同样,糟糕的汽车制造商无法提前预测哪台汽车有问题,只会疲于应付突发的售后品质问题。

    很多人都说,制造业的高品质就是由于可重复的,“一致的和可预测的”制造过程。而CMM实际上是戴明的全面质量管理(TQM)在软件开发领域的具体体现。那么,软件开发过程现在能做到“一致的和可预测的”吗?

    低成熟度软件开发状况

    开始工作之前,他充满了自信,心想:没问题,肯定能够搞定。但是,是否能够成功实际上取决于他本人,谁也无法保证真的没问题。

    一个看似美妙的开始,并不总是意味着真的一帆风顺。工作的过程中,不知道从什么时候开始,似乎开始有一些小麻烦,似乎开始有一些没有预料到的事情出现了。但是,他仍然不担心。没关系,进度肯定是可以赶回来的;没关系,算法肯定是可以搞定的;没关系,bug肯定是可以修正完的。

    这样的日子一天一天地进行着,延误越来越多,开发越来越混乱,bug越来越解决不完,而交付的日子却越来越近了。最后,他终于发现没办法了。为什么一开始这么美好而最后竟变成这样?为什么大家都很努力却做不好?到底是从什么时候开始变坏的?到底是哪里做错了?他发现,连失败的原因都找不到。

    这样的故事,这样的“他”,在软件行业中每天都在上演,到底哪里出了问题?

0
相关文章