【IT168 分析评论】
敏捷开发现在在欧美已经有了相当的普及,在国内也已经流传实践了几年,现在正逐渐进入到越来越多的项目中。虽然敏捷开发既有成功的案例也有失败的案例,但其可靠、可预测、节省成本的潜在特性决定了敏捷开发的广泛应用将是必然的趋势。此番参与敏捷中国大会的大多数学员都对敏捷开发的理念有不同程度的了解,并且都有不短时间的项目开发经验。因此,今年的大会主要交流的都是敏捷开发方法具体实施的细节,以及遇到的问题如何解决等实际内容。
敏捷开发中的一个很重要的因素在于团队成员的自律性(换句话说,就是一个自管理的团队)。所以,虽然敏捷是一个项目管理层的理念,但这个理念决定了项目的每一个参与者,即程序员(事实上敏捷这个概念适用于很多领域,但在开发这个领域的实现有着相对较低的门槛),都需要有更高的素质。事实上,敏捷开发的实施很大程度上是一个自下而上的过程:无论是怎样的敏捷方法,都需要参与者主动的领取任务,更重要的是主动的交流。因此,有着良好自律性和主动性的程序员将成为项目成功的重要因素。在大会的演讲上,Kent Beck介绍敏捷开发社区一个常用语:When you do Agile development you really need good people,意思是敏捷需要优秀的人。虽然传统的项目也需要优秀的程序员,但不得不说敏捷开发对于每个程序员的要求会更加的高。
不仅仅是对于自律性和主动性方面的需求,敏捷开发中的程序员已经不能满足于仅仅了解Java,或仅仅了解.NET,或是其他的某种语言。项目中的成员不能满足于仅仅能够后台编程或者仅仅能够做前台设计。基于对效率的追求,敏捷开发要求每一个参与者都能够单独完成一项完整的模块:并非是要求参与者精通所有的方面,但在大多数领域的能力到达中等或中上的水平是有必要的。敏捷大师Fred George对51CTO记者说,“我们现在都说Java程序员,PHP程序员,Ruby程序员,等等。我认为这样的称呼都是错误的:程序员就是程序员。”事实上,对于一个有一定基础的程序员而言,学习一门新的语言,通过一周的阅读和编写代码进行熟悉,触类旁通,便可以达到一个中等的水平。Thoughtworks的咨询师,.NET开发老手王瑜珩也是这样认为的。
可能有些开发者看到这里有些迷惑了:一队万精油怎么会比各司其职的队伍更加有效率呢?其实这正是敏捷开发的理念之一:这个理念认为项目中最大的消磨是在于沟通的不足,而由通才组成的团队则能够最大的减少交流障碍,从而进行快速的开发。而且由于队伍中的每个人都精通在不同的领域,在各个领域进行交流,将会形成互补的形势,使每个参与者都能够不断地提升自身的水平。
诚然,这对于程序员而言不是一件容易的事情。即使是敏捷宣言创始人、软件编程大师级人物Dave Thomas,做了三十多年的编程,如今仍然在编代码,他也说:“Programming isn't getting easier.”(编程并没有变得容易)。提升自己的自律性和主动性,并且在多个领域有所涉足,使自己变成多语言的优秀程序员,将成为每位开发者面临的挑战。这不完全是敏捷开发推广所造成的,但敏捷开发的迅速发展必然将加速这一进程。
作为一个程序员,你做好准备了么?