敏捷开发之 12条敏捷原则

来源:互联网 发布:面包机哪个牌子好 知乎 编辑:程序博客网 时间:2024/04/30 23:23
1、我们最优先要做的是通过尽早的、持续的交付有价值的软件来使客户满意。

2、即使到了开发的后期,也欢迎改变需求。敏捷过程利用变化来为客户创造竞争优势。

3、经常性的交付可以工作的软件,交付的间隔可以从几周到几个月,交付的时间间隔越短越好

4、在整个项目开发期间,业务人员和开发人员必须天天都在一起工作

5、围绕被激励起来的个体来构建项目。给他们提供所需要的环境和支持,并且信任他们能够完成工作。
业务和技术是引起不确定的二个主要方面,人是第三个方面。而业务和技术又必须由人来执行,所以能够激励人来解决这些问题是解决不确定性的关键。只要个人的 目标和团队的目标一致,我们就需要鼓舞起
每个人的积极性,以个人为中心构建项目,提供所需的环境、支持与信任。
 

6、在团队内部,最具有效果并且富有效率的传递信息的方法,就是面对面的交谈
在十几或者二十几个人组成的大团队中,文档是一种比较合适的传递知识和交流的途径。而敏捷团队一般不会很多人(大团队实施敏捷时也会分成多个小的敏捷团 队),所以大量的文档交流其实并不是很经济的做法。此时面对面的交谈反而更快速有效。

7、工作的软件是首要进度度量标准。
8、敏捷过程提可持续的开发速度。责任人、开发者和用户应该能够保持一个长期的、恒定的开发速度。
很多人都认为软件开发中加班是很正常的,不加班反而不正常,我对此有点不理解,这个可能是国情所致吧。敏捷过程希望能够可持续的进行开发,开发速度不会随 着迭代的任务不同而不同,不欣赏所谓的拼一拼也能完成的态度,开发工作不应该是突击行为。我们不能指望说突击这个项目后就可以轻松了,因为完成一个项目后 会接踵而来下一个项目,而只要还是拼拼的态度,下一个项目依旧会让你的组员再次突击。这时不知道有人会不会说,那我们就一直加班,也是“持续的开发速度” 啊,这时可要注意了,持续加班智慧导致人疲劳、厌倦,保持长期恒定的速度也只是一种理想而已。

9、不断地关注优秀的技能和好的设计会增强敏捷能力。

10、简单----使未完成的工作最大化的艺术----是根本的。
我们不可能预期后面需求会如何变化,所以不可能一开始就构建一个完美的架构来适应以后的所有变化。敏捷团队不会去构建明天的软件,而把注意力放在如何通过 最简单的方法完成现在需要解决的问题。这时有人会说,我已经预计到了肯定存在哪些需求扩展点,我们在一开始是否需要考虑呢?这时团队需要根据自己的理解去 决定是否考虑,如果深信在明天发生了这个问题也可以轻易处理的话,那么就最好先不考虑。

11、最好的构架、需求和设计出自与自组织的团队
敏捷中有很多种实践,大家都知道,迭代式开发是主要的实践方法,而自组织团队也是主要的实践之一。在自组织团队中,管理者不再发号施令,而是让团队自身寻 找最佳的工作方式来完成工作。要形成一个自组织团队其实比较难。CSDN采访 Mishkin Berteig中说到自组织团队的第一个要素就是必须有一个团队,而 不仅仅是一群人。一群人是一帮在一起工作的人,他们彼此之间并没有太多的沟通,他们也并不视彼此为一体。项目一开始,我们就会组建“团队”,但很 多时候由构架师、需求人员、开发人员和测试人员组成的是一群人而已。他还认为,团队的形成必须经历几个时期。在经历了初期的磨合后,成员才 会开始对团队共同的工作理念与文化形成一个基本的认识和理解。团队内会逐渐形成规矩,而且这些规矩是不言而喻的。比如,每个人都知道上午九点来上班,都会 主动询问别人是否需要帮助,也都会去主动和别人探讨问题。如果团队成员之间能够达成这样的默契,那么这个团队将成为一个真正高效的工作团队。在这样的团队 中,成员之间相互理解,工作效率非常高。在自组织团队中,团队成员不需要遵从别人的详细指令。他们需要更高层次的指导,这种指导更像是一个目标,一个致力 于开发出更好的软件的目标。总之,自组织团队是一个自动自发、有着共同目标和工作文化的团队,这样的团队总是在向它的组织做出承诺。但是,实现这些承诺对 于自组织团队来说非常重要。否则,一旦出现问题,团队成员之间就会出现信任危机。
虽然敏捷开发小组是以小组为整体来工作的,但是还是有必要指明一些承担一定任务的角色。第一个角色是产品所有者(Product Owner)。产品所有者的主要职责包括:确认小组所有成员都在追求一个共同的项目前景,确定功能的优先级以便总是在处理最具有价值的功能,以及作出决定 使得对项目的投入可以产生良好的回报。可以对应为以前开发中的“产品经理”。另一角色是开发团队(developer),这里的开发人员包括了架构师、设 计师、程序员、需求人员、测试人员、文档编写者等,有时产品所有者也可以被看作是开发人员。还有一个重要角色就是项目经理(project manager)。敏捷开发的项目经理会更多的关注领导而不是管理。在某些项目中,项目经理可能同时也是开发人员,少数时候也会担任产品所有者。

12、每隔一定时间,团队会在如何才能更有效地工作方面进行反省,然后相应地对自己的行为进行调整
由于很多不确定性因素会导致计划失效,比如项目成员增减、技术应用效果、用户需求的改变、竞争者对我们的影响等都会让我们作出不同的反应。 敏捷不是基于 预定义的工作方式,而是基于经验性的方式,对以上这些变化,小组通过不断的反省调整来保持团队的敏捷性。 
原创粉丝点击