敏捷十二原则

上一篇 / 下一篇  2015-02-01 13:29:38 / 个人分类:转载

敏捷本身有一些基础的原则,通过这些原则对你现行的软件开发流程进行敏捷化。


1. Customer satisfaction by rapid delivery of useful software

我们最重要的目标,是通过持续不断地及早交付有价值的软件使客户满意。

也就是说,我们敏捷化的第一个方向就是转换软件开发的目的,从满足产品的设计要求,到能够快速获得产品用户的反馈并及时响应反馈。

所以,敏捷的交付周期一般较短,目的就是能尽快将产品展示给用户去使用,并通过使用来产生真正有价值的回馈。

同时,这也要求了开发能将产品需求实现过程中,尽可能的切割成一个个独立的小特性。User Story是广泛使用的方法。



2. Welcome changing requirements, even late in development

欣然面对需求变化,即使在开发后期也一样。为了客户的竞争优势,敏捷过程掌控变化。

很多**纠结到底是什么时候允许需求变化,是因为他们还在意于每个交付周期的产出量。真正的敏捷过程,在一个产品的前期会有大量的failed的sprint。所以Git的流行就满足了这方面的需求。


3. Working software is delivered frequently (weeks rather than months)

经常地交付可工作的软件,相隔几星期或一两个月,倾向于采取较短的周期。

有很多团队,觉得为了交付一个产品特性,需要很多底层构建,所以无法满足持续的交付可工作的软件。其实,这是因为在计划会议时,把很多非交付性的或者技术型任务加入了交付迭代中。所以合理的安排任务很重要,必须保证产品设计能够切分成足够独立的特性。对于那些不可分割的底层架构,需要单独的团队去完成。所以看板是很重要的工具,他能将不同的团队的工作协调起来。

4. Close, daily cooperation between business people and developers

业务人员和开发人员必须相互合作,每一天都不例外。

很多敏捷团队都只包含开发人员,这个没有问题,但是每日例会,或者Scrum Master要经常推动开发团队和业务人员进行沟通,因为很多变化就在每日的沟通中就能够潜移默化,不用等到最后一天去fail掉整个sprint


5. Projects are built around motivated individuals, who should be trusted

激发个体的斗志,以他们为核心搭建项目。提供所需的环境和支援,辅以信任,从而达成目标。

敏捷团队的每个人都是独立的交付个体,他们进行自我管理,通过主动精神形成一个敏捷的团队。在这个过程中,需要整个外部环境的支持。要保证他们的资源需求,保证他们的培训力度,保证他们的团队建设,保障他们的个人利益,然后不要打断他们,才能形成一个敏捷的团队。 从来不会有一个敏捷团队能依靠自己的资源建设成功。

6. Face-to-face conversation is the best form. of communication (co-location)

不论团队内外,传递信息效果最好效率也最高的方式是面对面的交谈。

每日例会是为了寻求帮助,但是沟通要在很多情况下同样适用面对面的交谈。各种会议,各种方案,文档,计划的审核,都需要每一个人发出自己的声音。任何情况下,先保证面对面交流达成一致,然后才用文本方式归档。结对编程,就是两个开发面对面的交流中实现代码,包含可设计,验证,开发,自测,code review等过程在内。

7. Working software is the principal measure of progress

可工作的软件是进度的首要度量标准。

怎么衡量进度,任何口头,数面的确认都没有一个已经能够Demo的产品有说服力。所以,我们要拿Demo作为验收的关键点,没有完成Demo,就没有完成进度。


8. Sustainable development, able to maintain a constant pace

敏捷过程倡导可持续开发。责任人、开发人员和用户要能够共同维持其步调稳定延续。

敏捷是要团队能够稳定的开发,产品才能稳定,质量才能稳定,所以加班是反敏捷的。


9. Continuous attention to technical excellence and good design

坚持不懈地追求技术卓越和良好设计,敏捷能力由此增强。


产品更新,不光是需求更新,还会包含技术和架构的更新。这也是一个敏捷的团队成功的标志之一。因为这是每个成员的主动精神的集中体现,愿意将自身的发展和团队的目标绑定一致。


10. Simplicity—the art of maximizing the amount of work not done—is essential

以简洁为本,它是极力减少不必要工作量的艺术。

敏捷要求简洁,简洁的目的是只为了目标达成而必须的工作才去做,所以简洁的架构才更具有扩展性和衍生性。认为设计具有扩展性是复杂的设计过程,那么他对架构设计就是个门外汉。

11. Self-organizing teams

最好的架构、需求和设计出自自组织团队。

自组织团队的标准可以认为是每个团队的成员的工作目的都是为了同一个目标,大家没有相互依赖,而是相互支持。同时,自组织也意味着团队的所有成员都是平级的,任务是自己选择的,而不是分配的。

12. Regular adaptation to changing circumstances

团队定期地反思如何能提高成效,并依此调整自身的举止表现

敏捷的另一个含义就是不断的反思,过程改进,从而不断的重复正确的,成功的步骤达到目标。

TAG: 敏捷 原则

 

评分:0

我来说两句

我的栏目

日历

« 2024-03-07  
     12
3456789
10111213141516
17181920212223
24252627282930
31      

数据统计

  • 访问量: 12523
  • 日志数: 9
  • 建立时间: 2012-08-30
  • 更新时间: 2015-02-01

RSS订阅

Open Toolbar