微软变革研发模型提高效率
微软软件研发模型从瀑布式走向敏捷开发
微软的软件产品更新周期太过漫长,比如Office、Windows、SQL Server和Exchange等主打产品的更新周期都长达3年左右,主要原因就是微软在软件项目的开发中采用了瀑布式开发模式。
而用户对软件的需求越来越苛刻,瀑布式开发模式已经难以满足新型软件的开发要求,而微软也不得不改变自己的软件研发策略----从瀑布式走向敏捷开发。
n 瀑布式开发模式:
瀑布式开发模式在上世纪70年代被正式命名,不少公司在软件开发中使用该模型,但它一直未能获得业界的广泛认可,相反,还有许多相关企业认为该模型是造成软件开发延期或失败的主要原因。
瀑布式开发模式将软件开发的过程分为:系统规划、需求分析、系统设计、系统编码、系统测试、系统运行和维护6个阶段,每一阶段工作的完成是下一阶段工作开始的前提,每一阶段都要进行严格的评审,保证各阶段的工作做得足够好时才允许进入下一阶段。
瀑布式开发模式来源于硬件产品、建筑设计、航空等开发过程。现今在产品制造业、建筑业、化工产品、造船、航天领域中应用广泛,是最可靠的研发管理模型。因为这些领域研发项目是不可逆的,必须具有一套规范、可靠、保证产品开发一次成功的模型。概括起来为:概念(规划)、计划、开发、验证、发布、生命周期管理。
相较于硬件开发,软件项目的修改与变更简单许多。同时软件开发过程中的不确定因素更多一些;所以许多软件项目往往会在某一阶段的开发完成之后再对需求做出修改,这显然与瀑布式开发模式的理念是相悖的。
n 敏捷开发模式
“敏捷开发”一词最早出现在上世纪的90年代,并在2001年被正式定名,当时一组开发人员公布了所谓的“敏捷开发宣言”:“个体和交互胜过过程和工具、可以工作的软件胜过面面俱到的文档、客户合作胜过合同谈判、响应变化胜过遵循计划、虽然右边的项也具有价值,但我们认为左边的项具有更大的价值。”
简单的说,敏捷开发是一种以用户需求进化为核心、迭代、循序渐进的开发方法。在敏捷开发中,软件项目的构建被切分成多个子项目,各个子项目的成果都经过测试,具备集成和可运行的特征。换言之,就是把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态。
很显然,敏捷开发与瀑布式开发有着质的区别,前者采用了“迭代式”的开发模式,事先并不先入为主地确定用户的需求,而是先做一些原型试验品来让那些关键用户去体验,然后再根据用户的反馈意见不断做修改和调整。在整个研发流程中,产品的最初设想和最终设计往往是不相同的。
微软采用瀑布式开发模式与敏捷开发模式效果比较
n 微软应用瀑布式开发模型
微软在Visual Studio的版本开发中使用瀑布式开发模型,周期约为两年左右,其中:
1. 软件的规划和设计工作4到6个月。
2. 代码编写为1.5到2个月。
3. 测试阶段为期4个月。
4. 需求变更,就需要6到8周的时间来进行第二轮的代码编写和4个月的第二轮测试,如果无需大的调整,则进入到4个月的稳定期直到产品最终发布。
以上开发周期中在需求发生变更的情况下,软件代码的编写时间也不过只有4个月,而软件测试阶段所需的时间却是代码编写的两倍左右,多少有些本末倒置。
n 微软应用敏捷开发模型
微软的Visual Studio 2010团队是首个采用敏捷开发模型的研发项目。该软件发布于2010年4月,当时同样耗费了两年的时间完成开发,但随后研发团队就发现软件中的许多模板对于敏捷开发者来说太过笼统,几乎没有太大的实际意义。
针对这种情况,微软的研发部门推出了鼎鼎大名的Team Foundation Server(TFS),这个功能强大的服务器平台能为微软的产品提供源代码管理、数据收集、定义工作流程和管理项目进度等,而微软的软件研发策略也就从此开始发生巨大变化,以往两到三年的产品更新周期逐渐变得更短,软件开发的流程也变得更加灵活高效,而敏捷开发模型也开始在微软内部流行开来。
尽管敏捷开发模型已被证明是非常高效的软件开发模型,但在微软这种规模庞大的公司中推行起来还是颇为困难的,微软拥有大量的软件开发者,其中仅研发部门的员工就在3000人以上,同时还有数百个研发团队,所以要想让大家从早已习以为常的瀑布式开发模型转换为敏捷开发模型,其难度不亚于“壮士断腕”。
微软的管理层已经意识到敏捷开发模型对于公司未来发展的重要性,于是开始积极地制定各种措施来推动这一模型在各个研发团队进行普及。推动措施包括知识培训、改变研发团队组织结构、建立新的层级汇报机制等等,这都在一定程度上盘活了微软内部的研发资源,明显提升了产品的研发进度。
微软在TFS平台支持下使用敏捷开发:Visual Studio的版本更新速度已经缩短至一个季度左右,这在瀑布式开发模型下是难以想象的。
研发管理分析:
n 敏捷开发模型为微软Visual Studio的开发带来的改进是显而易见的,敏捷开发模型明显提升了软件项目研发的速度和质量,同时该模型所带来的优质体验也让用户变得更加忠诚,所以敏捷开发模型未来将会在微软逐渐普及,并推动这家软件巨头打造出更为优秀的应用软件。
n 对于硬件类产品开发瀑布式开发模型仍是最为优秀、可靠的研发管理模式。
壹川eIPD PLM研发管理系统平台提供与微软TSF相类似的功能:源代码管理、研发过程数据收集、工作流程和管理项目进度、敏捷开发项目看板等,支持企业软件开发从“瀑布式开发模型”转向“敏捷开发模型”。