人与人之间的交互是复杂的,并且其效果从来都是难以预期的,但却是工作中最重要的方面。

—— Tom DeMacro和Timothy Lister

敏捷宣言

个体和交互 胜过 过程和工具
可以工作的软件 胜过 面面俱到的文档
客户合作 胜过 合同谈判
响应变化 胜过 遵循计划

虽然右项也有价值,但是我们认为左项具有更大的价值。

 

敏捷原则

1.我们最优先要做的是通过尽早的、持续的交付有价值的软件来使客户满意。
2.即使到了开发的后期,也欢迎改变需求。敏捷过程利用变化来为客户创造竞争优势。
3.经常性地交付可以工作的软件,交付的间隔可以从几个星期到几个月,交付的时间间隔越短越好
4.在整个项目开发期间,业务人员和开发人员必须天天都在一起工作。
5.围绕被激励起来的个体构建项目。给他们提供所需的环境和支持,并且信任他们能够完成工作。
6.在团队内部,最具有效果并富有效率的传递信息的方法,就是面对面的交谈。
7.工作的软件是首要的进度度量标准。
8.敏捷过程提倡可持续的开发速度。责任人、开发者和用户应保持一个长期的、恒定的开发速度。
9.不断地关注优秀的技能和好的设计会增强敏捷能力。
10.简单是最根本的。
11.最好的构架、需求和设计出于自组织团队。
12.每隔一定时间,团队会在如何才能更有效地工作方面进行反省,然后相应地对自己的行为进行调整。

 

敏捷开发介绍

何为敏捷开发?

简单的说,敏捷开发是一种以人为核心、迭代、循序渐进的开发方法。在敏捷开发中,软件项目的构建被切分成多个子项目,各个子项目的成果都经过测试,具备集成和可运行的特征。换言之,就是把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态。 敏捷开发是由一些业界专家针对一些企业现状提出了一些让软件开发团队具有快速工作、响应变化能力的价值观和原则,并于2001初成立了敏捷联盟。他们正在通过亲身实践以及帮助他人实践,揭示更好的软件开发方法。【详细】
 

敏捷开发简史

许多人认为,相比于“传统”的瀑布开发模式,敏捷开发是一种“现代”的开发模式。但是,实际上敏捷方法,特别是迭代和增量开发方法( IID )起源于 20 世纪 30 年代的一些非软件项目。而最早引入一些敏捷方法的项目之一就是 20 世纪 60 年代初的美国航天局水星计划。在这个项目中,一些极限编程方法如测试先行等也被使用。此后,迭代和增量开发被 IBM 联邦系统部( FSD )和沃森研究中心( Watson Research Center )采纳。有趣的是一些研究人员甚至在关于瀑布开发模式的最早的论文中发现了敏捷开发的线索。【详细】

敏捷开发在游戏设计中的应用

目前,业界弥漫着一股对次世代游戏开发的恐惧空气,GDC上谈,Game Developer杂志也谈。随着硬件能力的不断提升,开发更高自由度、更逼真的游戏成为业界追求的最新目标,为了实现这一目标,随之而来的一切也都在膨胀:团队人数、美术资源需求、人时投资,当然啦,对投资者的资金需求也随之膨胀了起来。玩家的胃口越来越大。他们希望有更先进的技术以支持更好的游戏机制、更细腻的建模、更高分辨率的纹理、更复杂的人工智能、更多的测试以及更好的质量保证,没完没了。【详细】
 

敏捷开发在游戏程序中的应用

计算机诞生的几十年来,人们已经提出许多改进软件开发过程的方法。每一种方法都被吹捧为“重大成果性突破”,每一种方法都声称“使过程可控”。其实笔者认为,他们这些方法没有一种做到上述两点,管理混乱的软件开发过程仍然随处可见,投入越来越多的人力、财力,所有人都变得疲惫不堪,但是整个项目却在进度的泥淖中越陷越深。正如Grady Booch所说的:“我们常称这种情况为软件危机”。但坦率的说,长久以来我们一直把这种病态看作是正常的。【详细】

敏捷开发方法介绍

极限编程(XP)

极限编程(XP)是敏捷方法中最著名的一个。它是由一系列简单却互相依赖的实践组成。这些实践结合在一起形成了一个胜于部分结合的整体。【详细】

 

迭代增量开发(Scrum

Scrum是一种迭代式增量软件开发过程,通常用于敏捷软件开发。Scrum在英语的意思是橄榄球里的争球。【详细】

 

水晶方法族(Crystal Methods)

Crystal Methods(水晶方法族)由Alistair Cockburn在20实际90年代末提出。之所以是个系列,是因为他相信不同类型的项目需要不同的方法。虽然水晶系列不如XP那样的产出效率,但会有更多的人能够接受并遵循它。【详细】

特性驱动开发(FDD)
FDD (Feature-Driven Development,特性驱动开发)由Peter Coad、Jeff de Luca 、Eric Lefebvre共同开发,是一套针对中小型软件开发项目的开发模式。此外,FDD是一个模型驱动的快速迭代开发过程,它强调的是简化、实用、易于被开发团队接受,适用于需求经常变动的项目。【详细】

自适应软件开发(ASD)
ASD(Adaptive Software Development,自适应软件开发)由Jim Highsmith在1999年正式提出。ASD强调开发方法的适应性(Adaptive),这一思想来源于复杂系统的混沌理论。ASD不象其他方法那样 有很多具体的实践做法,它更侧重为ASD的重要性提供最根本的基础,并从更高的组织和管理层次来阐述开发方法为什么要具备适应性。 【详细】

动态系统开发(DSDM)
DSDM(动态系统开发方法)是众多敏捷开发方法中的一种,它倡导以业务为核心,快速而有效地进行系统开发。实践证明DSDM是成功的敏捷开发方法之一。在英国,由于其在各种规模的软件组织中的成功,它已成为应用最为广泛的快速应用开发方法。 DSDM不但遵循了敏捷方法的原理,而且也适合那些成熟的传统开发方法有坚实基础的软件组织。

【详细】

轻量型开发(RUP)
RUP其实是个过程的框架,它可以包容许多不同类型的过程,
Craig Larman 极力主张以敏捷型方式来使用RUP。他的观点是:目前如此众多的努力以推进敏捷型方法,只不过是在接受能被视为RUP 的主流OO开发方法而已。【详细】