敏捷开发基础知识
敏捷软件开发宣言由下述4个简单的价值观声明组成:
(1)“个体和交互”胜过“过程和工具”
优秀的团队成员是软件开发项目获得成功的最重要因素,但不好的过程和工具也会使最优秀的团队成员无法发挥作用。
团队成员的合作、沟通以及交互能力要比单纯的软件编程能力更为重要。
正确的做法是:先基于客观条件构建软件开发团队(包括成员和交互方式等),然后再根据需要为团队配置项目环境(包括过程和工具)
(2)“可以使用的软件”胜过“面面俱到的文档”
软件开发的主要目标是向用户提供可以使用的软件而不是文档,但是,完全没有文档的软件也是一种灾难。开发人员应该把主要精力放在创建可使用的软件上面,仅当迫切需要并且具有重大意义时,才进行文档编制工作,而且所编织的内部文档应该尽量简明扼要和主题突出。
(3)“客户合作”胜过“合同谈判”
客户通常不可能做到一次性地把他们的需求完整准确地表述在合同中。能够满足客户不断变化的需求的切实可行的途径是:开发团队与客户密切协作。因此,能指导开发团队与客户协同工作的合同才是最好的合同。
(4)“响应变化”胜过“遵循计划”
软件开发过程总会有变化,这是客观存在的现实。一个软件过程必须反映现实,因此,软件过程应该有足够的能力及时响应变化。然而没有计划的项目也会因陷入混乱而失败,关键是计划必须有足够的灵活性和可塑性,在形势发生变化时能迅速调整,以适应业务、技术等方面的变化。
在理解上述4个价值观声明时应该注意,声明只不过是对不同因素在保证软件开发成功方面所起作用的大小做了比较,说一个因素更重要并不是说其他因素不重要,更不是说某个因素可以被其他因素代替。
另外,“敏捷宣言”中还包含以下原则。
1.最重要的是通过尽早和持续地交付有价值的软件以满足客户需要。
2.即使在开发后期也欢迎需求的变化。敏捷过程驾驭变化带给客户竞争优势。
3.经常交付可以使用的软件,间隔可以从几星期到几个月,时间尺度越短越好。
4.业务人员和开发人员应该在整个项目过程中每天都在一起工作。
5.使用积极的开发人员进行项目,给他们提供所需环境和支持,并信任他们能够完成任务。
6.在开发小组中最有效率和效果的信息传达方式是面对面的交谈。
7.可以使用的软件是度量进度的主要标准。
8.敏捷过程提倡的是持续开发过程。投资人、开发人员和用户应该维持一个长期稳定的步调。
9.持续地追求卓越的技术与良好的设计会增加敏捷性。
10.简单(尽可能减少工作量)是最重要的。
11.最好的架构、需求和设计都来自于自组织的团队。
12.团队要定期总结如何提高效率,然后相应地调整自己的行为。
根据上述价值观提出的软件过程统称为敏捷过程,其中应用比较广泛的是极限编程和Scrum。