作者:禅与计算机程序设计艺术
1.背景介绍
概述
随着软件规模的扩大、软件复杂性的提升、需求变更频繁等诸多因素的影响,软件架构设计已经成为IT行业的一项重要且紧迫的任务。软件架构设计者需要充分了解系统的功能特性、整体业务结构、组件之间的关系及依赖关系等,才能合理地设计出具有高效可靠的运行机制。而传统的架构设计方法往往缺乏系统规模大、复杂度高、变化快的软件环境的适应能力,无法有效满足软件架构设计的要求。因此,为了能够应对软件架构的日益复杂化和需求的不断变化,国际上开发了众多敏捷(Agile)软件开发方法论,如Scrum、XP、Kanban等。这些方法论鼓励客户在不断的迭代中持续改进产品。其基本思想就是客户和开发者之间可以互相协作、通过短期交付高价值软件来驱动项目的进展,从而提升产品质量。同时,这种迭代方式也克服了传统单枪匹马的弊端。
敏捷软件开发方法论
Scrum
Scrum 是由美国的Scrum Masters and Developers联盟于2001年发起的敏捷方法论框架。Scrum有四个层次:计划层、执行层、交流协调层和知识管理层。Scrum的基本精神是在不断的迭代过程中,逐步完善产品,以最终确定最佳方案的方式交付给用户。Scrum会议由固定周期进行,每一次会议都会围绕产品演进和计划展开,团队所有成员都要参加会议,将自己的工作成果通过短时间的集体讨论分享出来。 Scrum中的“产品”由“需求”和“待办事项”组成,产品经理负责制订产品的目标和方向;开发者负责开发产品的功能,并在产品的各个阶段收集反馈意见;测试人员负责测试产品的功能;用户是产品的最终消费者。每个开发