Jurgen Appelo上个月发表了一篇博客“敏捷团队当如群鸟飞”,他写到,“在敏捷软件开发中不应该限定规则,只应当做基本的限制”。
他开篇提出:
在组织中,人们总是试图通过引入某些规则来解决问题,例如,“在X情况下,你必须要做Y”。
我认为这绝不是最好的方式。规则应该是留给团队自己决定,你只需要设定一些限制就行了。
紧接着,他举了一个在计算机上为鸟群行为建模的例子,模拟鸟群的行为非常简单,只需要三条基本限制:
- 不许离群
- 不许相撞
- 往一个方向飞
Jurgen Appelo认为,鸟群的行为可以很容易映射到软件开发团队上来:
- 不要把自己孤立
- 不要跟其他人打架
- 与团队的方向保持一致
自然,这样几条简简单单的限制是无法保证能把事情做好的,但是给团队制定规则就能管用么?敏捷宣言中提到过:
鼓舞起每个人的积极性,以个人为中心构建项目,提供所需的环境、支持与信任。
最好的架构、需求和设计出自于自组织的团队。
团队会定期就如何更有效的工作进行回顾,继而调整行为。
那么,你有没有因为担心组织或者团队出现混乱,而从外部强加过多约束呢?
Jurgen Appelo接着说道:
在管理软件项目的时候,敏捷软件开发是一种很自然而然的方式。它设置了一些限制,如“跟客户协作”、“允许频繁的变化”、“只交付可以工作的成品”,剩下的规则就由团队自己选择。
……
这也表明,敏捷软件开发并不是天生就代表了结对编程、TDD、迭代……(注意,敏捷宣言根本没提到这些!)当然,这些实践很不错,但你要是想把它们当做固定规则来实施,你就……
当然,也就失去了敏捷的能力。
各位读者朋友,你对团队建设、团队管理持有何种态度呢?你有没有想办法组建自组织的团队?当团队能力和工作态度没有满足你的预期时,你采用了什么方式来提高生产效率,转变大家的心态?欢迎留下评论,与大家分享经验。
如果你有切实行之有效的实践经验,也欢迎为InfoQ中文站投稿,请mail至lijian[at]cn.infoq.com。