按质按时向用户交付产品是软件开发的重要目标,终极目标则是利用软件帮助用户提高生产效率,创造价值。
在组织级别,一个已经被广泛使用的过程模型是CMMI。该模型的核心是细致管理用户需求、分解任务、计划、估算、预防风险,当实际与估算差距过大时,应解决问题,解决不了,由QA监督上报直至解决。该模型要求一个组织依据过程文件(内部法律)管理软件开发过程,并需要一个强大的QA来保证过程文件正确实施,以及用户需求得到满足。
实际上,这种管理方式在人治为主的公司,在实施过程中,很可能变为paperwork,除了增加工作量以外,并不会带来实际效果。
CMMI创始人之后又提出CMMI必须与Team Software Process和Personal Software Process联合起来使用,才能起到效果,因为关键是要组织的每位成员,上至最高领导,下到每个项目的参与人员,甚至包括客户都有强烈的质量意识,和细致管理资源的理念和方法,才能创造出好的软件产品。
而在team级别,有关的其他过程有extreme programming, lean programming等等,实际执行效果也是各不相同。有人指出,这可能跟人的因素有关。
因此,软件过程实际上没有银弹,最关键的是做软件的人要有质量意识,要管理自己的资源和作品,同时小组和组织级别也要营造相应的氛围,另外也需要客户的积极参与和配合,才能产生优秀的软件作品。