技术开发 频道

赛门铁克公司的XP探索实践之旅

【IT168 技术文章】

    这是一个阳光明媚的三月早晨,我在犹他州的American Fork市,这里的小型工业园区被Wasatch众山所环绕,其中有一座双层建筑,在它的二楼的一间宽敞的四面玻璃的房间里,25个工作人员(一共有120位工作人员)正环绕着中间的一组办公桌和电脑围成一圈。这是一个站立的会议,团队每位与会成员要向大家汇报工作进展情况,而且汇报时间最长不能超过20分钟。讨论内容包含了像是以下的这些事情,“我们正开始搭建自动化测试工具。”;“我们已经完成了数据库结构的更改。”;“我们正在和HP的管理者一起工作,而且我们需要会HP-UX的人过来帮忙!”;“我们已经定位了问题所在!”;“夜构建(译注1)跑起来了!”。

    我应OO大师Robert Martin之邀来到赛门铁克探访,这是为了了解他们的工程师是如何对其安全响应方面的新产品Orca用Java进行历时一年开发的。受探访的开发团队正是其公司向极限编程(译注2)变革的先头部队。此外,还有另外两个产品开发的先头团队,一个是同在犹他州的Rubicon更新版的开发团队,还有一个是叫做Jaguar的新产品的开发团队,他们在德克萨斯州的圣安东尼奥市。

    以终端用户软件Norton AntiVirus而享誉中外的赛门铁克公司也提供各种安全产品和服务,诸如缺陷评估(vulnerability assessment)、防火墙、入侵防护(intrusion prevention)、内容过滤和反垃圾邮件(Internet content and e-mail filtering)、端点安全技术(remote management technologies)和安全服务。该公司于1982年成立,总部位于加利福尼亚的Cupertino市,这家上市公司与36个国家间都有业务往来。在2000年的12月,赛门铁克收购了一家从事企业安全的公司Axent Technologies,并于2001年三月,赛门铁克宣布于圣安东尼奥正式启动这家公司,将其作为提供管理、监控和响应服务的安全控制中心。

    可是,将极限编程技术应用于赛门铁克这样的公司可以说遭受的质疑多于赞同。XP最初兴起于1996年,是Kent Beck和他的几位同事在从事C3(Chrysler Comprehensive Compensation)人力资源项目的时候发明的。可是作为一个独立软件开发商,它该如何去适应XP过程中必不可缺的“客户”(译注3)角色呢?是否可以从地缘上来划分多个彼此独立的团队并进行XP呢?当产品开发进入到两周一次的迭代开发过程中的时候,该如何撰写需求文档来达到高级主管们的要求呢?独立的质量保证和文档撰写部门该如何适应这种以代码为中心且测试为优先导向的开发过程中呢?该怎么才能知道XP行之有效?最后,如果允许谈论这家公司的技术细节及其相关领域的话,一个采访者是否能够清楚的描绘出这家公司的开发过程呢?

    要找到这些问题的答案,我要在接下来的六个月里仔细观察赛门铁克的进程。

    这是个好点子,而并非命令

    看起来过渡来得并不太痛苦,American Fork研发中心要求入侵检测和缺陷评估的专家们参加为期12个月的“XP变革”课程。这其实也只是Object Mentor(1991年Martin在伊利诺斯州的Vernon Hills领导创建的培训咨询公司)第三次做这样的培训。为什么要摒弃原有的做法?是否有什么不可抗拒的命令驱使他们将XP付诸实施?

    赛门铁克的开发过程管理总监Carlos Cortez说:“公司雇用我是要我来改善开发过程的可预见性、效率、内容和质量的,没有必要使之成为一种强制,这是形势所趋”,他负责犹他和德克萨斯州的开发团队,曾与赛门铁克掌管产品发布的副总Russel Stay在加入赛门铁克之前共事于辛辛那提的Structural Dynamic Research Corp.公司有超过10年之久。在赛门铁克于2000年收购Stay的公司后不久,他向Cortez申请从事改善开发过程方面的工作。

    Cortez怀疑仅通过让开发人员从书本自学是否足够有效,他回忆曾经对Stay说:“要改变我们开发的传统和方法,并从C语言过渡到C++或是Java,不仅仅是每个人自己努力的事,我们还要依靠曾有过成功合作的Object Mentor的Robert C. Martin。我曾目睹过Martin在很短的时间内就为一些纠缠复杂的难题带来了希望,并告诉那些自认为洞悉OO一切的优秀工程师们该如何真正做到OO”。在Stay的邀请下,Cortez很快就开始展开了在赛门铁克的开发过程优化的工作。

    挑战困难
   
    其实原本极限编程并非是唯一的开发方法的候选,有拥有25年IT经验,曾发明过软件成熟度模型(CMM)的Watts Humphrey(译注4)所创建的个人软件过程(PSP)曾一度引起了Cortez的关注,况且赛门铁克也已经实现了自己的“解决方案为中心的开发过程”(译注5)。此过程包括了六个阶段(探索、定义-评估-再定义、计划、实现、发布和考量)和五个检查点(随机、需求、实现过程、准备发布和发布后),实现了开发过程事无巨细地呈现于开发团队面前。最后,PSP这种以自我完善和度量为导向的方法还是没能战胜来自XP的强大诱惑,尤其是考虑到一些American Fork的开发人员已经有了XP的苗头。

    “我们已经从事XP两年了,虽然还处于菜鸟水平”,在赛门铁克工作过五年的开发总监Joseph Shull说到,“高层管理者们曾犹豫该向左走还是向右走,但现在已经倾向于它了。当培训刚开始的时候,只有25%的工程师知道XP是什么,而现在的情形大有改观”。

    “我们过去曾实践过很多方法”,Stay谈起变革的头一个月的感触,“那些都过于教条、拘禁,大家都觉得束手束脚。和当时向瀑布模型变革时情形一样是,一开始都有很多人抱怨变革。不同的是,现在随着接触的时间久了,这些抱怨之声也都慢慢的消失了,可是过去的情形却是正好相反的。不过最大的改变还要属结对编程了,开发人员担心会‘失去个人空间’,我也在怀疑难道接下来的6到12个月里他们都要这样靠在一起工作?”

0
相关文章