敏捷开发原则

1.我们最优先要做的是通过尽早的、持续的交付有价值的软件来使客户满意。尽早地交付具有部分功能的系统和系统质量之间具有很强的相关性。初期交付的系统中所包含的功能越少,最终交付的系统的质量就越高。以逐渐增加功能的方式经常性地交付系统和最终质量之间有非常强的相关性。交付得越频繁,最终产品的质量就越高。敏捷实践会尽早地、经常地进行交付。我们努力在项目刚开始的几周内就交付一个具有基本功能的系统。然后,我们努力坚持每两周就交付一个功能渐增的系统。如果客户认为目前的功能已经足够了,客户可以选择把这些系统加入到产品中。或者,他们可以简单地选择再检查一遍已有的功能,并指出他们想要做的改变。

2.即使到了开发的后期,也欢迎改变需求。敏捷过程利用变化来为客户创造竞争优势。这是一个关于态度的声明。敏捷过程的参与者不惧怕变化。他们认为改变需求是好的事情,因为那些改变意味着团队已经学到了很多如何满足市场需要的知识。敏捷团队会非常努力地保持软件结构的灵活性,这样当需求变化时,对于系统造成的影响是最小的。 在本书的后面部分,我们会学习一些面向对象设计的原则和模式,这些内容会帮助我们维持这种灵活性。

3.经常性地交付可以工作的软件,交付的间隔可以从几周到几个月,交付的时间间隔越短越好。我们交付可以工作的软件working software ),并且尽早地(项目刚开始很少的几周后)、经常性地(此后每隔很少的几周)交付它。我们不赞成交付大量的文档或者计划。我们认为那些不是真正要交付的东西。我们关注的目标是交付满足客户需要的软件。

4.在整个项目开发期间,业务人员和开发人员必须天天都在一起工作。为了能够以敏捷的方式进行项目的开发,客户、开发人员以及涉众之间就必须要进行有意义的、频繁的交互。软件项目不像发射出去就能自动导航的武器,必须要对软件项目进行持续不断地引导。---www.bianceng.cn

5.围绕被激励起来的个人来构建项目。给他们提供所需要的环境和支持,并且信任他们能够完成工作。在敏捷项目中,人被认为是项目取得成功的最重要的因素。所有其他的因素??过程、环境、管理等等??都被认为是次要的,并且当它们对于人有负面的影响时,就要对它们进行改变。例如,如果办公环境对团队的工作造成阻碍,就必须对办公环境进行改变。如果某些过程步骤对团队的工作造成阻碍,就必须对那些过程步骤进行改变。

6.在团队内部,最具有效果并且富有效率的传递信息的方法,就是面对面的交谈。在敏捷项目中,人们之间相互进行交谈。首要的沟通方式就是交谈。也许会编写文档,但是不会企图在文档中包含所有的项目信息。敏捷团队不需要书面的规范、书面的计划或者书面的设计。

团队成员可以去编写文档,如果对于这些文档的需求是迫切并且意义重大的,但是文档不是默认的沟通方式。默认的沟通方式是交谈。

7.工作的软件是首要的进度度量标准。敏捷项目通过度量当前软件满足客户需求的数量来度量开发进度。它们不是根据所处的开发阶段、已经编写的文档的多少或者已经创建的基础结构(infrastructure)代码的数量来度量开发进度的。只有当30%的必须功能可以工作时,才可以确定进度完成了30%。

8.敏捷过程提倡可持续的开发速度。责任人、开发者和用户应该能够保持一个长期的、恒定的开发速度。敏捷项目不是50 米短跑;而是马拉松长跑。团队不是以全速启动并试图在项目开发期间维持那个速度;相反,他们以快速但是可持续的速度行进。跑得过快会导致团队精力耗尽、出现短期行为以致于崩溃。敏捷团队会测量他们自己的速度。他们不允许自己过于疲惫。他们不会借用明天的精力来在今天多完成一点工作。他们工作在一个可以使在整个项目开发期间保持最高质量标准的速度上。

9.不断地关注优秀的技能和好的设计会增强敏捷能力。高的产品质量是获取高的开发速度的关键。保持软件尽可能的简洁、健壮是快速开发软件的途径。因而,所有的敏捷团队成员都致力于只编写他们能够编写的最高质量的代码。他们不会制造混乱然后告诉自己等有更多的时间时再来清理它们。如果他们在今天制造了混乱,他们会在今天把混乱清理干净。

10.简单--使未完成的工作最大化的艺术--是根本的。敏捷团队不会试图去构建那些华而不实的系统,他们总是更愿意采用和目标一致的最简单的方法。他们并不看重对于明天会出现的问题的预测,也不会在今天就对那些问题进行防卫。相反,他们在今天以最高的质量完成最简单的工作,深信如果在明天发生了问题,也会很容易进行处理。

11.最好的构架、需求和设计出自于自组织的团队。敏捷团队是自组织的团队。任务不是从外部分配给单个团队成员,而是分配给整个团队,然后再由团队来确定完成任务的最好方法。敏捷团队的成员共同来解决项目中所有方面的问题。每一个成员都具有项目中所有方面的参与权力。不存在单一的团队成员对系统构架、需求或者测试负责的情况。整个团队共同承担那些责任,每一个团队成员都能够影响它们。

12.每隔一定时间,团队会在如何才能更有效地工作方面进行反省,然后相应地对自己的行为进行调整。敏捷团队会不断地对团队的组织方式、规则、规范、关系等进行调整。敏捷团队知道团队所处的环境在不断地变化,并且知道为了保持团队的敏捷性,就必须要随环境一起变化。

时间: 2024-08-08 00:13:54

敏捷开发原则的相关文章

一起谈.NET技术,敏捷开发的26条至理名言

我经常收集各种各样的至理名言,最近我重温敏捷开发:真正的问题是什么?下面是一份26条关键原则的清单,以指引敏捷软件开发团队. 1.完整地干完一件事后在开始另一件事:用厨房比喻来说就是:"先上这道菜,再开始做下一道".软件开发的最大问题就是同时开始几件事情,这将不可避免的造成某些工作被废弃,从而造成浪费.专注于一件事:完整地实现其功能:运行测试:编写文档:签入所有,把这当做一项工作完成,然后再开始下一件事. 2.不要破坏构建:非常明显,但必须被包含在任何软件开发建议清单中.程序员在签入之

敏捷开发的26条至理名言

我经常收集各种各样的至理名言,最近我重温敏捷开发:真正的问题是什么?下面是一份26条关键原则的清单,以指引敏捷软件开发团队. 1.完整地干完一件事后在开始另一件事:用厨房比喻来说就是:"先上这道菜,再开始做下一道".软件开发的最大问题就是同时开始几件事情,这将不可避免的造成某些工作被废弃,从而造成浪费.专注于一件事:完整地实现其功能:运行测试:编写文档:签入所有,把这当做一项工作完成,然后再开始下一件事. 2.不要破坏构建:非常明显,但必须被包含在任何软件开发建议清单中.程序员在签入之

Gartner:敏捷开发的10大指导原则

 据Gartner的资料表明,一众CIO现在有压力,需要支持快速发展的数字业务发展,而同时又遇上传统项目和开发方法不能与时俱进的难题.企业现在大量采用敏捷开发,以加快项目进度及更好地显示其价值. Gartner应用架构.开发和整合峰会下个月在悉尼召开.Gartner公司研究总监Nathan Wilson在会议前夕表示,敏捷方法如果使用得当,是有能力改变IT业务关系以及对IT价值交付产生重大的正面影响.而CIO和整个IT管理团队必须悉心培养获得成功所需的变革文化,只有这样才能交付相应的价值. Wi

《软件工艺师:专业、务实、自豪》一2.2 面向技术的敏捷软件开发原则

2.2 面向技术的敏捷软件开发原则 这些原则主要与开发软件.完善软件设定.维护软件及交付软件时遇到的挑战有关.它们通常针对技术实践与技术本身设定规范或给出建议.举例来说,这些实践方式与技术包括:测试驱动开发.结对编程.持续集成.简洁设计等.面向技术的敏捷原则使团队专注于软件产品的质量,并帮助确保开发出来的软件品质优良(building the thing right,把事情做对).

《软件工艺师:专业、务实、自豪》一2.1 面向流程的敏捷软件开发原则

2.1 面向流程的敏捷软件开发原则 这些原则会影响团队与组织的工作方式.协作方式以及架构方式.它们通常对工作中的许多方面设定规范或给出建议,其中包括:团队会议的形式.工作人员的角色.捕获需求的方式.衡量工作效率的方法.怎样进行迭代开发.怎样规划并分割工作量,以及如何展示工作进度.如何取得业务反馈,等等.面向流程的敏捷原则帮助团队专注于那些特别重要而且对业务确实有价值的事情.采用这些方式,能够很好地确保团队构建出符合需求的软件(building the right thing,做正确的事).

敏捷开发学习分享

程序员都很懒,你懂的! 敏捷不是快,而是拥抱变化(不断反馈的一个过程).                                                        简单的说,敏捷开发是一种以人为核心.迭代.循序渐进的开发方法.在敏捷开发中,软件项目的构建被切分成多个子项目,各个子项目的成果都经过测试,具备集成和可运行的特征.换言之,就是把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态. 敏捷原则:主张简单,拥抱变化,可持续性,

敏捷开发的JAVA开发环境如何搭建才最好?

问题描述 敏捷开发的JAVA开发环境如何搭建才最好? 请问,如果我有一个团队需要完成一个比较有规模的JAVA网站开发项目,如何搭建AGILE原则的开发环境比较好呢?请说地详细一点.谢谢! 解决方案 开发环境和敏捷不敏捷关系不大.不过如果能用github搞一个私有库,做做持续集成,应该会有些帮助.起码在形式上. 解决方案二: 后台开发怎么搭建环境?用eclipse在本地环境搭建开发环境,通过tomcat插件或者jetty启动调试class.jsp.之前看过很多公司都通过打成war包发布到集成环境再

从管理学看敏捷开发Scrum

2010-12-21 14:13 宗子城 每次我们看敏捷开发Scrum都是从技术角度,今天我们尝试从管理角度来看这个问题. Scrum Scrum近几年已经成为最有影响的软件开发过程,从Forrester 关于敏捷模式的调查报告我们可以看出一些倪端,而且微软也推出了更Scrum的模板,相信.Net平台下越来越多的团队会采用这一过程.   图1: Forrester 关于敏捷模式的调查报表 Scrum的在软件日趋复杂的环境下,其成功不是偶然的,其指导思想符合我们现代管理学的一般规律. 管理学 经过

SCRUM敏捷开发规则一栏

敏捷.敏捷开发这类词最近很火!敏捷开发,就是指能够在需求迅速变化的情况下快速开发软件.我们接触最多的和敏捷相关的名词是:极限编程(XP).结对编程.测试驱动开发(TDD)等. 敏捷建模(Agile Modeling,AM),的价值观包括了XP的四个价值观:沟通.简单.反馈.勇气.此外,还扩展了第五个价值观:谦逊. 敏捷开发是针对传统的瀑布开发模式的弊端而产生的一种新的开发模式,目标是提高开发效率和响应能力.除了原则和实践,模式也是很重要的,多研究模式及其应用可以使你更深层次的理解敏捷开发. SC