在开发的过程中,修改成本的降低是核心的。你可以任何时候对系统做任何的修改。敏捷式是不排除设计的,只不过设计不是由架构师单独想出来的,而是这些设计非常简单,而是在开发过程中,每一次开发都要进行设计,设计开发不断循环,技术从简单到复杂,最后逐渐形成一个完整的过程。这个过程不是非常容易演示,有很多技术需要支持这种设备的改进。最重要是测试、开发、重购和自动化。测试扮演着非常重要的角色,最简单说,对任何一个功能,开发过程中,作为一个程序员,既要写出测试程序,也要写出功能程序,他写出这个测试程序,先怎么样测试,然后这个时候再写功能程序。很简单一点,他确实减少了很多的浪费,因为写的过程中,对需求的考虑通常会使程序员写出很多没有必要的东西,因为这些测试是可以不断的重复执行的。这些功能程序是不断增加的。最后到你系统开发快结束的时候,你可以很随便的运一下所有的测试程序。这就使得我们现在提到这个概念就是重购的概念。重购是通过技术修改进行设计,它不是说想把三层的架构改成四层的,而是小范围的改动,使得程序保持灵活性和非常干净的基础上,第一它使你的细节设计提高,第二使你的大幅度改动变成轻而易举的事情,使设计是在不断的改进过程中也成为可能。
敏捷开发还有一个很大的特点就是它是以人为本,而不是以方法为本的。我们的软件开发是脑力劳动,而不是简单的工作。如果你设计出一套方法来,不管什么方法,让每个人去适应的方法,最后开发效应反而不如你组建一个具有进取心的团队,这个团队通常情况下是先选择一方法,细节也一样,在开发过程中,不断对方法反思,直到达到这个团队的最高开发效应为止。
敏捷开发项目结束的时候和开始的时候方法已经不一样了,这个方法是团队使用的方法,而且方法的改进不是一个项目经理或者管理人员的事情,而是所有人的工作。
敏捷开发我再做一次定义,敏捷开发不是一个单一的方法,包括编程等。这些方法的开发创始人他们在一起开了一个重要的会议,提出了敏捷开发的概念,敏捷开发,只要你的方法跟它相似的开发哲学,这些开发哲学叫做敏捷式开发原理。
第一就是个人和交互要远远比流程和工具重要,第二能工作的软件超越应尽的义务。
软件维护,还不如买一个新的软件。
你如果采用敏捷式开发,你的产品上市时间可以达到提高,第二客户满意度得到提高。很多公司不会抱怨,我确实告诉你这么做的,你也不会做的这么差。如果一个软件的交付不是真正的成功,而是一个客户满意是真正的成功。
刚才上午很多的报告中,都说现在中国软件市场发展速度非常快,整个经济发展非常迅猛,随之而来的机会比较多。而且历史包袱很少,这有一个好处,在西方几十年来犯了一些错误,得到的一些经验可以在中国实施。如果说中国能把握这个机会,在开发方法或者其他方面采用了最先进的技术,而不是根据它以前做的,很可能使得中国企业本身在全球范围内竞争。