敏捷性(Agility)是为了在动荡的业务环境中获益而创造变化和响应变化的能力。 过程(Process)是将人的精力集中于结果的组织化结构,这种组织化结构引导工作并影响产品和组织中人的关系的发展。 敏捷软件过程管理(Agile Software Process Management,ASPM)是建立在敏捷思想基础上的过程管理体系,从人与过程的关系出发,关注于过程的结果和人的创造性,设计、应用、改进和变革容变的组织化结构,其核心是解决过程与人的平衡发展的问题。 敏捷软件过程(Agile Software Process)与传统的文档驱动、严格的软件开发过程不同,提供了的新的工作方式,敏捷软件过程是动态的、相互作用的、结构性的、自适应性的、复杂的组织化结构。敏捷软件过程的特点包括:输入是变化的;输出是不可预测的;活动是并行的;结构是有机的;过程关注的价值是对客户的价值。敏捷软件过程的目标是通过经济地为客户及时提供需要的满意产品来提高组织的市场竞争力,以便更好适应市场变化而获得持续发展。 敏捷软件过程管理的基本原理是复杂系统的自适应理论。过程管理的自适应性保证了在高度不确定性和高度变化的市场环境中,对于挑战性的市场需求能够以恰当的过程加以应对,保证了持续地获得市场机会、满足市场需求的能力。
敏捷软件过程管理的过程观
敏捷软件过程管理与传统过程管理的过程观截然不同,传统软件过程管理与敏捷软件过程管理的根本区别在于过程对“变化”的态度和对“人”的态度的差别,表 1.1比较了两种过程观的不同。
敏捷软件过程观 |
传统过程观 |
过程是动态非线性的 |
过程是稳定的活动序列 |
管理以人为中心 |
管理以过程为中心 |
变化是创新的源泉,推动变化比控制变化更有效 |
严格遵循计划,防范和调整执行中与过程的偏差 |
适用于特定的问题领域 |
广泛适用 |
领导—协作 |
命令—控制 |
表 1.1 敏捷软件过程观与传统过程观比较
1 敏捷软件过程是动态的非线性的有机结构 按传统的过程概念,一个软件过程是指人们开发和维护软件及其相关产品所采取的一系列活动。这是一个线性的概念,而并行工程、学科交叉和复杂的商业环境使组织结构和软件开发的性质发生了变化。 敏捷软件开发过程适用于复杂、非线性、不可预知的变化环境下的复杂问题,非线性变化要求组织实施非线性的过程。项目中各要素之间的非线性相互作用使系统成为内在联系的有机整体,体现出整体大于部分之和的整体效应。 2 敏捷软件过程以人为中心 传统过程管理的目标是确保过程在组织内按预期运行,确保定义好的过程被彻底贯彻,以及对过程进行改进以便达到商业目标。严格的、以文档为中心的过程倾向于把人的角色定义为可互换的、可靠的机器部件。 敏捷软件过程以人为中心而非以过程为中心,认为“个体及其相互作用胜过过程和工具”。实践是方法论的生命,实践中心论者将人置于首位。实施敏捷型过程的关键之处是让大家接受一个过程而非强加一个过程,开发人员必须有权作技术方面的所有决定。过程是第二位的,所以它应该被极小化,即够用原则。敏捷软件过程以积极向上的员工为中心建立项目组,给予他们所需的环境和支持,对他们的工作予以充分的信任,“在项目组中,最有用、最有效的信息沟通手段是面对面的交谈”体现了以人为中心的原则。 3 敏捷软件过程是适应性的 传统软件过程管理认为,真正有效的软件过程必须可以预测——成本估算和进度承诺必须能较为准确、一致地兑现,产品必须满足用户对其功能和质量的期望。受控过程是稳定的过程,而稳定的过程意味着能预测未来的结果,因此在项目早期进行全面的精确的计划,在过程中进行细致的检查和严格的控制。过程中遇到的变化是对过程的干扰,需要通过控制过程尽力减小其影响。总之,传统过程是抵制变化的。 敏捷软件过程欢迎变化,因为在复杂动荡的环境下,变化是正常的和必要的,因此过程应该响应变化、引导变化和创造变化,在持续加速、不可预测的市场中获得竞争优势。敏捷软件过程提出“响应变化胜过遵循计划”的价值观,表现出对变化的欢迎态度。 敏捷软件过程是活动的集合,通过这些活动的相互作用,将得到不一定可预测,但是期望获得的结果。敏捷软件过程以积极的态度对待需求的变化,不管该变化出现在开发早期还是后期,紧密围绕变化展开并利用变化来实现客户的竞争优势。适应性的观点认为最好的框架结构、需求和设计产生于自组织的项目组。同时,自适应群体懂得有必要进行优化(线性的、工程化的、精确的)和自适应的平衡。 4 敏捷软件过程适用于适当的问题领域 与传统过程的广泛适用性不同,敏捷软件过程强调其适用于特定的问题领域,敏捷软件过程大多面向的是那些高速度、高变化和高度不确定性的软件项目。每个团队、每个项目有其适用的过程。敏捷软件过程管理通过确定项目的复杂性、项目的关键程度、团队规模等各方面因素来选择或设计适当的软件过程。 而且,敏捷软件过程强调过程是不可能重复的,因为每一个项目或每一次过程的执行都是独特的。 5 敏捷软件过程的有效执行依赖协作的文化 与自上而下的严格过程管理制度不同,敏捷软件过程是自下而上的协作文化。过程的管理模型不是“命令—控制”模型,而是“领导—协作”模型。在项目组中,最有用、最有效的信息沟通手段是面对面的交谈。 敏捷软件过程相信“客户合作胜过合同谈判”,项目发起者、开发者和用户始终努力保持步调一致。在项目过程中,业务人员和开发人员尽量一起工作。
敏捷软件过程管理具有以下的特点: (1)具有面向人的、适合学习活动的自由、多通道的沟通机制。多通道沟通的支持体现在各种信息通道之间符合知识工作者行为和思维习惯的协作。 (2)具有面向组织的、更加灵活的、更加丰富的开发方法和系统的方法论。 (3)支持基于混沌有序和非确定性的、不精确的管理,具备容错和容变的能力,而且引导和激励过程的变化。 (4)动态自适应的特性,使过程管理能适合执行者的行为规律,动态掌握过程状态及实现状态的平衡。 (5)应用知识管理和认知科学作为过程管理研究的基础。敏捷软件过程管理通过过程知识结构的建构,为组织发现和创建过程模式和过程管理体系的理解、吸纳提供了支撑。
敏捷软件过程管理的基本原则: (1) 过程的建构是自下而上的。 (2) 过程的建构始终必须人人参与。 (3) 过程与内、外部环境的相互作用是过程改进的源泉。 (4) 持续建构。 (5) 过程建构产生于过程的自组织和自适应。 (6) 过程改进需要观念的更新。 (7) 软件项目管理与众不同。
|