【IT168 技术文章】
Chuck Maples前不久在Agilejournal网站上写了一篇文章,介绍了Borland的敏捷之旅。
他一开始这样描述Borland的做法:
Borland从06年2月开始项目试点,想看看敏捷方法能不能帮助他们达成三个核心目标:缩短交付时间、增强整体生产力、鼓励客户参与开发过程,从而确保产品可以满足市场需要。这个项目非常成功,团队提前十天交付了项目,而且比一开始计划的时候增加了很多新特性。
……
跟大多数向敏捷迁移的组织一样,Borland也面临着巨大的挑战,它走在一个激进的产品路线图上,同时还要做出规模不小的过程改造。我们的业务目标是向 市场提供革新式的软件产品,而市场压力、客户期待、业务需求等等一系列情况都逼得我们没法“暂停”下来调整过程。所以我们就得一边开车一边给车换轮胎。现 在Borland的敏捷迁移已经到了最红火的时刻——有70%的团队在用敏捷方法,收益巨大。
然后他逐一列出了Borland的成功经验:
构建自组织团队并赋予他们足够的权力
雇一个全职的敏捷专家
把ScrumMaster和开发经理的角色合并
关注传统的“功能领导”
把敏捷误解为混乱;透明的重要性
1号混乱清理器:每日站立会议
使用有意义的、简明扼要的文档
在回顾中孕育改进
在企业环境中推行、支持协作,公开开发过程
不仅仅是验收:引入性能测试
转向敏捷开发并不意味着不需要做性能测试、伸缩性测试。在传统开发模型中,这种测试都是到了开发周期结束的时候才做——这个时间真是再糟 不过了……为了保证性能测试可以迭代式的进行,开发团队不得不放慢脚步,学会如何编写代码才能保证可以一直进行性能测试。首先,我们让所有团队都明白一点:性能是团队要担当的责任。即便一段代码可以工作,但是如果性能有问题的话,那也不能看做“完成”。一开始开发代码的速度是慢了一点,不过整体的开发速度和质量却得到了提升。
后来我们就把性能测试作为构建验证过程的一部分,我们用每天的最后一个构建产物做性能测试,测试代码中最复杂的部分。我们还建立了一个性能基准点,它可以 随着应用程序复杂性的变化而变化。这样我们就可以用每晚的构建产物来比较事务响应时间,早早的发现问题、解决问题。我们把性能测试写成一个简单的用户故事,放到每一个sprint里面——“作为xx应用的用户,当系统中有xx个用户的时候,我希望执行xx操作的性能不受影响”……
可见性
自然,敏捷会提高可见性。每日站立会议和sprint回顾都可以很好的展示出项目和团队的工作状态。但是在企业中,这种可见性不能仅仅限于团队房间内。
正确的工具
把敏捷扩展到企业中少不了工具。如果你可以为团队提供一些适合他们使用,可以提高工作效率,有利于协作的工具,他们会用起来的。
执行层的承诺
让敏捷为业务服务,敏捷不是目的
在文章的末尾,作者还列出了实施敏捷之后Borland公司获得的收益:
每年的产品交付数量都比上一年增长了100%
与策略性客户的关系有了显著改进,他们已经参与了50多个sprint回顾
减少了管理和计划的成本,平均每个sprint少了15小时。
从前副总裁和董事每月6天花在每个产品组身上的听取汇报时间节省了出来。
提高了产品质量,每个交付中的问题数量减少了50%
提高了团队生产率和斗志,员工离职率降低。