在本文中,笔者将介绍Visual Studio 2010 Ultimate Beta2版本中的MSF for Agile Software Development V5.0的Scrum思想以及实施方法,通过对这些内容的阐述,让读者了解VSTS2010的敏捷之道,以便于.NET管理和开发人员能随心所欲的应用在自己的项目中,从而构建出高效的软件开发团队。
1.引言
道是天地万物演变的本体或本原,是存在之根本。一个行业或者一个事物既然现实地存在着,那么它的发展必然遵循着本身的自然规律。
谈起敏捷 之道,令笔者不禁想起在《笑傲江湖》中描写令狐冲独孤九剑的精髓行云流水,任意所至。这就是活学活用,实战中随手配合招式的变招。风清扬教令狐冲将 这华山派的三四十招融会贯通,设想如何一气呵成,然后全部将它忘了,忘得干干净净,一招也不可留在心中。其实是将华山剑法一招一式固有的套路动作拆开使 它不存任何招数,再自由组合套路形成浑然一体的招式使出来。这都是活学活用,而这只是第一步。做到出手无招,才是真正踏入了高手的境界。真正的无招是没有 主观的招式,根本并无招式,敌人如何来破你的招式?
软件开发的敏捷之道也是如此,当开发团队为了求得高质量、高效的完成软件产品的交互 过程,无论项目管理者还是团队成员都需要全方面地学习,包括工具的熟练使用、学习UML、OOAD等技术和收集前人开发过程中的经验等等,从而使个人以及 团队综合素质的大大增强,这就是为学的过程,最后把这些零碎无序的知识系统化后再全部统统忘掉,达到出手无招、随心所欲,全是下意识自然而然的行动, 无变之变,这就是敏捷之道,这可能就是做项目管理及开发的最高境界吧!
敏捷的含义就是速度的最大化。当你咖啡杯从你的手中悄然滑落的时 候,你却下意识地接到了它,这种直线运动是最快的,其实里面蕴藏着一种意境和思想。这种下意识就是一种境界思维,它没有经过大脑,条件反射的方式以最短最 快的速度取得了结果。
这种现象又让笔者又联想起了李小龙的截拳道,它的一个特点就是充分运用节约的经济线(两点间的直线)的技 击原理,所以它打击对方的机会和实用性最佳,而且最快,这种下意识的境界就是一种太极哲理,搏击之最高境界。万物皆有道,这都是从道的本体中演化出来的!
2.敏捷之简易
简单通常是一个好的设计具备特征,这些设计是经典的并且很难再改进的。 例如,Lego积木(参考图1所示),经过许多年还保留着原来的样子,因为没有人能想出更简单的设计让人们将木块组合再拆开。人们无法再改进这些设计,因为它们不能够再简化,而将它们设计得更复杂也无法让它们更好用。
图1 Lego 积木
敏捷团队注重简易,这样做可以消除那些没必要的复杂。只需专注于开发当前所 需要的功能和最简单的设计。如果能使用简单来帮助一个敏捷团队开发出马上就需要的软件,而不浪费人力和资源,这就是他们给那些投资的用户以最好和最直接利 益的方法。
我们再从《易经》中的简易、变易、不易的角度思考,可以把它看做是对易理的高度抽象易理对宇宙的高度抽象 简易指变与不变都是道的体现,自然而然而非刻意求变,万事万物都只是按其本性生生不息而已。所以,简易之理是对大自然万事万物高度的抽象;变 易是指变化,任何生生不息都是处在不断的变化之中,没有停止过,宇宙中的万物没有一样东西是不变的;不易是指万事万物的变化都有其不变的本 性,同时又有当变则变、不当变则不变的含义。宇宙中万事万物虽然不断变化着,但是却有一项永远不变的东西存在,就是能变出万事万物的那个东西,是 永恒存在的,中国传统哲学里称之为道。
2001年2月由17位世界轻量级方法学家提出了一份敏捷联盟宣言,这个宣言只是简单的四 句话,但却是敏捷方法的精髓,也是对敏捷的高度抽象,这便是敏捷之道的最高境界:
个体与交互 胜过 过程与工具
可以 工作的软件 胜过 面面俱到的文档
客户协作 胜过 合同谈判
响应变化 胜过 遵循计划