现在的位置: 首页 > 综合 > 正文

微软欲变身敏捷开发典范

2013年12月06日 ⁄ 综合 ⁄ 共 4522字 ⁄ 字号 评论关闭
微软可能是当今世界上最大的软件厂商,但是它同时也可能是在编程实践方面犯错误的数量最多的软件厂商。我们经常可以听到针对微软的各种批评意见。

它要么是发布软件太晚,例如Windows Vista和SQL Server 2005,要么就是太早发布,例如Windows ME;要么发布的产品太不安全,例如Outlook Express 5.5和6.0和IE 5.5,要么发布过于“安全”的产品,例如Vista;要么在新产品中的变化太少,例如Visual Studio 2003,要么新产品的变化让你感觉跨度太大,例如Office 2007的Ribbon界面;要么编写的程序过于臃肿和复杂,例如Vista,要么编写的程序过于简单,例如的微软的Bob产品。总之,微软很少有不被人们批评的时候。

很明显,在微软的31000名开发者中并不缺乏天才的存在,他们绝大多数都是程序员中的佼佼者。但是由于这个公司的编程团队过于庞大,再加上它的产品数量的繁多、产品的重要性和产品的普及范围广,所有这些因素加起来就形成了一个可能妨碍高效编程的环境。

但是,如果你相信微软服务器和工具部门的管理者所说的话,你或许会对微软的看法有所改观,据他们表示,与过去几年相比,微软已经变成了一个更加敏捷的开发商。

采取新开发策略 向敏捷开发进军

在这个微软内部称为STB的部门领导下,微软已经利用新的开发策略来帮助它的程序员使其产品更快上市,同时还可以保证代码的质量更高,以及更快速的响应来自用户的反馈。

这是一种什么策略?其中包括在开始编写任何代码之前收集来自用户的反馈;加强推出新的社区技术预览版(CTP),替换或淡化传统的alpha和beta测试版模式,CTP模式使用了一种“早发布,常发布”的方式来实际测试软件;创建独立的“feature crews(功能小组)”,可以迅速的创建特定的功能,并且针对这些功能直接与用户交流。

负责微软开发工具的高级副总裁Soma Somasegar在本月的一次采访中表示,“我不认为有猛然醒悟的说法。我们只是认识到我们是在为客户开发产品,而不能仅仅从技术角度考虑问题。因此我们如果能越早的与客户结合起来,我们就能越早的做出一个更好的架构、功能、品质产品和可扩展产品,而所有这些都是客户所关注的。”

四年开始的这种改革在近期达到了顶点,上个星期微软正式发布了2008版的Windows Server、SQL Server和Visual Studio,它们每一个的开发过程都使用了上述列出的所有新技术。

反对者:微软现状令其很难敏捷

当然批评者依旧存在。首先,批评者们指出,尽管微软在用户反馈和开发的灵活性方面取得了一定成效,但是最近的同时发布三个新产品不是它们取得成功的体现。

Visual Studio 2008自从去年11月份就早已有之,而Windows 2008上月初才交付生产。同时,RTM版的SQL Server 2008最近被推迟到几年第三季度,比原先的计划推迟了一个季度,尽管微软的确发布了一个成为完整功能的社区技术预览版。

来自kirkland的一个微软方向分析师Greg DeMichillie表示,“设定发布日期是一个公共关系手段”。他曾经作为一个开发者在微软服务器和工具部门工作了十年之久,他依然不能相信微软现在是敏捷开发的典范。

“很明显,采用CTP版和其它改变带来了一定好处,”他表示。“用户可以比较早的对产品有一定了解,微软就可以更早得到来自他们的反馈意见。但是,还不能因此断言,这个改进就会让微软能够更快发布更可靠的软件。”

关注开发工具的市场调查公司Evans数据的CEO John Andrews通过电子邮件表示,诸如Google、Salesforce.com等以Web为中心的厂商在软件开发方面都非常敏捷,甚至IBM的敏捷性也在微软之上。

Andrews在电子邮件中写到,“我相信微软正在尝试在所有可能的方面实现敏捷编程,但是它面临的实际处境是,它的代码基础的复杂性和大小使它不能够真正的实施这个编程方法,现在它做的是在可能的地方实现半敏捷开发。”

但是微软官员声称,敏捷与否和减少多少一个产品的预定计划发布时间没有多大关系,更重要的是能够在产品的第一个版本中发布更高质量的软件。

微软负责数据库开发的副总裁Ted Kummert承认,听到这个说法的用户可能会表示不同的意见,因为SQL Server 2008的发布刚刚被推迟。“但是,我们之所以决定延迟发布这款产品,是考虑到我们必须保证最终交付的软件具有很高质量,”微软上周发布的SQL Server 2008社区技术预览版是迄今为止Kummert的团队发布的第六个版本。

微软实现敏捷开发还有新武器

SQL Server和Visual Studio开发团队已经完全切换为发布社区技术预览版CTP模式,这是一个中间性质的过渡软件版本,通过它可以有机会快速得到来自用户的反馈,但是它得不到像具有完整功能的beta版那种来自微软的广泛支持。Windows Server组在开发Windows Server 2008的时候,综合使用了beta测试版和CTP版这两种模式。

微软客户服务部门的副总裁Rich Kaplan表示,在微软企业产品开发过程中,还有另外一个比较关键的地方是它的技术采纳计划TAP(Technology Adoption Programs),在这个计划中,测试软件厂商先对产品进行测试,然后将beta版或社区技术预览版应用到生产环境中,这样通过这个计划可以让微软从测试的软件厂商那儿得到丰富的线索信息。技术采纳计划由微软的客户服务和支持团队来管理,微软可以通过非正式的评论和更多的调查型数据来从参与者那儿得到反馈信息。

据一些在最近的开发周期中参与这些新产品的预览版测试的用户表示,他们发现微软在响应速度和灵活性方面有了很大的进步。

Garanti银行的数据库系统经理Umit Nazlica表示,“我们在测试SQL Server 2008的时候要求的几乎每一个事情现在都体现在了最终版本的产品中。”Nazlica表示,举个例子来说,Garanti的IT职员要求具有更强大的资源管理和监管功能,同时还有数据压缩和解密方面的改进,这些功能都已经在新版中实现。

这个银行运行了140个微软的数据库实例,具有约11TB的数据,它在这之前还参与了目前使用的SQL Server 2005的TAP计划。据Nazlica表示,这次的测试过程比上次要好很多。他表示,“我们投入了更多的时间来测试这个产品,而且在与微软的工作人员进行交流方面我们现在更有经验了。”

Michael Ruminer是波士顿的一个敏捷开发顾问,同时也是Visual Studio Team System软件方面的微软最有价值专家MVP,他表示,微软的开发团队现在真正的聆听客户要求,并且兑现自己的承诺。他们现在并没有表现出以往所具有的自大傲慢的态度。

Rbuminer表示,敏捷开发不可能简单的通过管理的方式来被规定。但是他又补充说,当他与微软的开发者交流的时候,他感觉到他们的管理者正在采取实际的措施来为敏捷开发扫清障碍和不必要的过程。而且他表示,在听到外部开发者对Visual Studio测试工具的抱怨后,微软公司已经相应进行了显著的改进,这一步让Ruminer看到了微软响应迅速的一面。

不过,他也表示,关于微软推出社区技术预览版的频率是否太快这个问题,还需要更多的讨论。因为这样将给用户和第三方开发商带来比较大的压力,它们可能被迫去忙于测试所有版本,Ruminer表示。但是对他来说,其积极的一面超过潜在的负面影响。他表示,“没有人会强迫你去安装CTP版。”

微软:敏捷源于用户需要

微软方向分析师DeMichillie表示,微软并不是一直就这样响应迅速。在这个公司的大部分历史中,它严格的坚持一种叫做零缺陷的开发哲学,尽管这种方法没有明确禁止公司的开发团队使用敏捷技术,它要求在编写任何新的代码之前要先修复现有的漏洞,从原理上来说,立即进行修复所花费的时间和金钱要比以后在开发过程中修复它少的多。

同样微软也不是一直这么积极的去聆听来自用户的意见。Somasegar表示,“三四年以前我们的大多数人观点是,‘我知道我怎么开发对你是好的,因此只要我认为有些功能已经成熟,我就会把它提供给你,然后我将等待你来证明我做对了。’”

微软的Windows Server分部的总经理Bill Laing补充说,“我们希望得到的反馈是‘这儿有些漏洞’,它不会改变这个产品。”

除了采取社区技术预览版之外,Visual Studio和SQL Server团队已经尽可能的去掉了体现部门本位思想的开发者、测试者和客户支持员工团队。它们都采用了Kummert所说的“feature crew(功能小组)”模式,通过由5到12个员工组成的更小的团队,一般来说包含一个编程经理和几个开发者和测试者。他表示,“通过采用这种方式,一个小组能够真正的控制一个特定的功能。”

Somasegar表示,通过使用一个功能小组的方法,他能够快速的跟踪某些与创建 Office 2007应用程序相关的Visual Studio 2008功能的开发,因此它们同时能够通过一个Visual Studio 2005的服务更新包的形式发布,这个新的桌面套装在去年就早已经发布。

同时,微软的客户服务机构已经被服务器和工具部门整合,以收集和分析来自早期用户的反馈。Kaplan表示,分析结果然后会在Red Zone会议上与开发经理分享,以帮助他们做出正确的决策。他表示,之所以为这个会议选择这个名字,是为了强调在产品发布之前需要修复漏洞的重要性。

但是,社区技术预览版模式不是包治百病的灵丹妙药,它并不一定适合所有的事情。Laing表示,虽然正式的beta测试版会花费微软更多的研发时间,用户要等多的时间来安装,但是Windows Server团队将继续借助于这种方法。“我认为测试者更换像Windows Server这样基础软件是一件不能草率处理的大事情,”Laing表示,“因此我们同时发布社区技术预览版和beta测试版,以鼓励测试者真正在生产环境中去尝试它们。”

波士顿Continental航空公司的系统架构师Dawn Getteau表示,在Windows Server 2008的开发中使用的这种过程非常适合这家公司。Getteau表示,“这种版本周期非常适合Continental,虽然我们在生产环境中部署了 Windows Server 2008 beta版,我们的更改管理、测试和验证过程都需要一定的时间来完成。”

对于自己希望得到多大的灵活性,微软同样有清晰的限度。举个例子来说,尽管上个星期微软宣布将对竞争厂商和开源开发者公布它的一些关键的应用程序编程接口(API)和通信协议的详细信息,Somasegar表示他没有考虑接受外部的对微软的.NET编程框架的源代码的贡献。

他表示,“我们希望你获得成功,这是我们给你访问.NET源代码权限的原因。但是我不知道该如何接受来自外部开发者的代码,并把它们放到一起,及时的作为一个产品的一部分进行发布。我们不会这么做,我们要确保对我们的用户负责,我们不能拿客户做试验。”

抱歉!评论已关闭.