实际上,要想实现成功的软件团队的开发是一件非常不容易的事情。根据国际的调查报告表明,从94年开始,最近10年间,全北美的软件开发的这些项目进行了一个统计分析。统计的结果表明,其中只有34%的软件项目,最后能获得成功。其中有一半的项目最后因为各种各样的原因,比如严重超支,项目严重地超过预定完成的时间,或者质量达不到客户要求的标准,或者是存在一些争议的项目等等。最后还剩下将近20%的项目,因为各种各样的原因,最后完全失败。
 
因此,如何在项目开发过程中规避风险,获得项目真正的成功,成为业界的软件开发厂商们一直努力和思考的方向。近日在51CTO策划的一期微软专家互动访谈活动中,微软平台及开发合作部首席架构师吴延安先生向记者谈到了VSTS是如何帮助软件项目获得最后的成功的。
 
“在近20年来,整个软件工程领域里面,提出了各种各样的先进的设计思想。比如说面向对象的设计方法,还有一些设计模式等等。还有一些是各种各样的软件开发的方法论的指导,比如说微软的Microsoft Solution Framework ,还有业界比较推行的CMMI的一些成熟度认证、敏捷开发方法等等。这些方法都是帮助团队最终获得项目成功的有效方法。”吴延安说:“但是,我们看了很有趣的现象,有一些团队运用这样的方法开发获得了成功,但也有一些团队用同样的开发方法,却往往再次失败。是什么导致了这种情况的出现呢?我们不妨看两个关键点。”
 
“第一,整个团队在进行协同开发的过程中,首先存在着一个团队之间怎样进行有效沟通的问题。在沟通方面,传统的做法就是通过一些定期例会的方式,将项目的一些进度和实现的状况进行汇报。其实这种沟通方式很大的程度上是收集信息的过程。”
在这个过程里,有可能会出现工作效率低下,信息不准确等,所以不能真正成为项目判断的依据,也不能给项目管理带来决策上的指导。因此如何进行有效的协同和沟通,成了整个软件项目管理里面非常重要的一点。”
 
“第二,从软件开发项目管理的角度来说,我们可以设想一下,在我们拿到一个项目准备进行软件开发的时候,首先我们往往会制定一套符合自己这个团队开发标准的方法。在这套方法里面,我们可能会定义整个软件开发过程中必须遵循的一些规范、标准,还有一些开发的流程等等。”吴延安举例说:“所有的这些,比如说对于需求文档、设计说明书,尽管他们都是按照严格的规范和要求制定的,但是在整个的项目的开展过程中,一定会遇到客户源源不断的提出需求变更的情况。怎么样通过一些有效的手段,使得变更之后所完成的代码和你的设计文档前后保持一致,成为一个协调的产品? ”
 
尽管每个软件开发团队都有自己的开发方法,或者业界一些可以拿来借鉴的成功方法。但问题在于,我们并不能把这套有效的方法跟我们的开发过程结合在一起。这些规定、规范都是写在纸面上的,很大的程度上是需要我们人的智力和自律性去进行约束和执行的。
 
“微软VSTS考虑了这些问题之后,体现出来的很有特色的地方,就是将软件开发过程中所使用到的工具跟一些业界比较成功的方法论,进行了有机地集成。”吴延安说:“采用这些方法论作为开发过程中的指导,使整个团队的开发过程是真正地关注在人、流程以及工具之上。通过这种方法,使得我们平时不能够很好地遵循的规范和流程可以得到很好的贯穿。这一点在业界其他的一些软件外包管理、软件生命周期管理工具中体现的就比较少了。”