敏捷方法论-敏捷原则[转]
注重个体与交互,重点关注可以工作的软件,提高客户参与度,以积极的心态相应变化是敏捷方法的核心价值。为了贯彻这4大价值观,敏捷联盟提出12调区别于重量级过程的原则。
1、尽早、持续交付有价值的中间软件使客户满意
很多开发组织经常会在时间期限上进行没有原则的退让,其结果却是让客户一等再等,不仅没有按承诺兑现,甚至是时间超过一倍,但仍然不见软件的踪迹。这种不守信的状态,使得整个软件也走入了一个负螺旋发展。
敏捷方法提出了一种新的逻辑,将今早地、持续地交付可运行的中间成果及有价值的中间结果,使得客户能够尽早地、持续地了解到软件开发的进展,并且将需求的变化、系统的改进意见尽早提出来,这会使客户的满意度大大提高。
2、即使到了开发后期,也欢迎需求变化,利用相应变化创造竞争优势
敏捷方法鼓励团队拥抱变化,通过应用各种技术来提高软件结构的灵活性,本着简单的原则进行设计,以相应变化的能力作为团队的核心竞争力。
3、经常交付可工作的软件,间隔时间可以是几周到几个月,间隔越短越好
由于敏捷方法奉行”客户合作”、“客户参与”,而要让客户更加有效的参与,经常性地、频繁地交付可工作的中间软件,将可以有效地加强开发人员与客户之间的沟通,从而将隐藏的需求变化及早触动。
4、在开发全过程中业务人员和开发人员必须天天都在一起工作
在开发中,不仅要经常用客户参与开发,还应该包括代表客户的业务人员。因此在开发人员、客户、业务人员等相关涉众之间建立频繁而且密切的交流与沟通,是使项目保持高度灵活性的关键。
5、为开发人员提供环境和支持,给予信任,以人为本地构建项目
敏捷方法崇尚“以人为本”精神,认为项目成功的最关键因素是人,其意义超过过程和工具。建立一支优秀的团队,并在环境与精神上提供支持,给予信任,使项目成功的关键。这也是与传统的以“过程”为主的管理思想的最大不同。
6、团队内部最有效的沟通方式莫过于面对面的交谈
在重量级方法中,人们尝试着通过编写规范、精美的文档进行交流。而在敏捷方法中则更加重视的是开发团队成员之间的面对面交谈,大家坐在一起,用一块白板,或是一张纸,一边绘制草图,一边交谈,这是最有效的沟通方式。
7、工作的软件是度量进度的最首要标准
要衡量工作进度,采用的基点不是文档的完成情况,不是已完成的代码行数,而是可以工作的软件完成了多少功能,实现了多少用例。这是敏捷方法的共同点,因为只有可工作的软件才是有价值的。
8、提倡可持续的开发速度,责任人、开发者和用户应保持一个长期的、恒定的开发速度
软件开发绝不是短跑,它更像一场挑战耐力的马拉松长跑。过早的冲刺、在前期过度的工作,将不利于项目按照持续的开发速度进行下去。
因此,敏捷方法反对加班,因为这样的行为会使得团队的经历过早耗尽,过早地对项目失去兴趣和信心,从而得到事与愿违的结果。
9、不断关注好的技能和设计会增加敏捷能力
保持软件高质量、简洁、健壮,是实现快速软件开发的重要途径。因此只有大家都致力于编写高质量的代码、不制造混乱,才能够提升敏捷能力。
10、本质是简单--使未完成的工作最大化的艺术
不管明天的需求,只采用符合今天需求的简单设计。因为谁也不知道明天是怎样的,变化太快了,今天的设计考虑太多明天的需求,就有可能做了过多的无用功。
11、自组织的团队才能够做出最好的架构设计和需求分析
最优秀的团队不是被强权管理下的团队,而是形成了一个有良好的协作,能够内部进行任务分解、协调的团队。
12、团队应定期在如何更有效工作方面进行反省,然后对自己的行为作出改进
不断地回顾、总结,从中找到团队未能最有效工作的瓶颈点和问题点,并且通过细致的分析与讨论,找到其要点,做出相应的改进是十分重要的。
1、尽早、持续交付有价值的中间软件使客户满意
很多开发组织经常会在时间期限上进行没有原则的退让,其结果却是让客户一等再等,不仅没有按承诺兑现,甚至是时间超过一倍,但仍然不见软件的踪迹。这种不守信的状态,使得整个软件也走入了一个负螺旋发展。
敏捷方法提出了一种新的逻辑,将今早地、持续地交付可运行的中间成果及有价值的中间结果,使得客户能够尽早地、持续地了解到软件开发的进展,并且将需求的变化、系统的改进意见尽早提出来,这会使客户的满意度大大提高。
2、即使到了开发后期,也欢迎需求变化,利用相应变化创造竞争优势
敏捷方法鼓励团队拥抱变化,通过应用各种技术来提高软件结构的灵活性,本着简单的原则进行设计,以相应变化的能力作为团队的核心竞争力。
3、经常交付可工作的软件,间隔时间可以是几周到几个月,间隔越短越好
由于敏捷方法奉行”客户合作”、“客户参与”,而要让客户更加有效的参与,经常性地、频繁地交付可工作的中间软件,将可以有效地加强开发人员与客户之间的沟通,从而将隐藏的需求变化及早触动。
4、在开发全过程中业务人员和开发人员必须天天都在一起工作
在开发中,不仅要经常用客户参与开发,还应该包括代表客户的业务人员。因此在开发人员、客户、业务人员等相关涉众之间建立频繁而且密切的交流与沟通,是使项目保持高度灵活性的关键。
5、为开发人员提供环境和支持,给予信任,以人为本地构建项目
敏捷方法崇尚“以人为本”精神,认为项目成功的最关键因素是人,其意义超过过程和工具。建立一支优秀的团队,并在环境与精神上提供支持,给予信任,使项目成功的关键。这也是与传统的以“过程”为主的管理思想的最大不同。
6、团队内部最有效的沟通方式莫过于面对面的交谈
在重量级方法中,人们尝试着通过编写规范、精美的文档进行交流。而在敏捷方法中则更加重视的是开发团队成员之间的面对面交谈,大家坐在一起,用一块白板,或是一张纸,一边绘制草图,一边交谈,这是最有效的沟通方式。
7、工作的软件是度量进度的最首要标准
要衡量工作进度,采用的基点不是文档的完成情况,不是已完成的代码行数,而是可以工作的软件完成了多少功能,实现了多少用例。这是敏捷方法的共同点,因为只有可工作的软件才是有价值的。
8、提倡可持续的开发速度,责任人、开发者和用户应保持一个长期的、恒定的开发速度
软件开发绝不是短跑,它更像一场挑战耐力的马拉松长跑。过早的冲刺、在前期过度的工作,将不利于项目按照持续的开发速度进行下去。
因此,敏捷方法反对加班,因为这样的行为会使得团队的经历过早耗尽,过早地对项目失去兴趣和信心,从而得到事与愿违的结果。
9、不断关注好的技能和设计会增加敏捷能力
保持软件高质量、简洁、健壮,是实现快速软件开发的重要途径。因此只有大家都致力于编写高质量的代码、不制造混乱,才能够提升敏捷能力。
10、本质是简单--使未完成的工作最大化的艺术
不管明天的需求,只采用符合今天需求的简单设计。因为谁也不知道明天是怎样的,变化太快了,今天的设计考虑太多明天的需求,就有可能做了过多的无用功。
11、自组织的团队才能够做出最好的架构设计和需求分析
最优秀的团队不是被强权管理下的团队,而是形成了一个有良好的协作,能够内部进行任务分解、协调的团队。
12、团队应定期在如何更有效工作方面进行反省,然后对自己的行为作出改进
不断地回顾、总结,从中找到团队未能最有效工作的瓶颈点和问题点,并且通过细致的分析与讨论,找到其要点,做出相应的改进是十分重要的。