敏捷开发模型及其原则
什么是敏捷开发
敏捷开发(Agile development)通常指敏捷软件开发模式,是一种应对快速变化需求的一种软件开发模式,描述了一套软件开发的价值和原则。
敏捷开发以用户的需求进化为核心,采用迭代、循序渐进的方法进行软件开发。软件项目在构建初期被切分成多个子项目,各个子项目的成果都经过测试,具备可视、可集成和可运行使用的特征。换言之,就是把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态。
在敏捷开发模式中,自组织的跨功能团队在紧密的协作中发掘使用者或客户的需求以及优化解决方案,同时也强调适度的计划、迭代开发、提前交付与持续集成,并且鼓励快速与灵活地面对开发与变更。
经过不断的发展,目前使用最广泛的敏捷软件开发框架是 Scrum 与 Kanban。
敏捷软件开发宣言
实际上,“敏捷”(Agile 或 agile)一词源自于“敏捷软件开发宣言”(Manifesto for agile software development),该宣言定义了相关的价值和原则。下面是 2001 年发表的《敏捷软件 开发宣言》的内容。
我们一直在实践中探寻更好的软件开发方法,身体力行的同时也帮助他人,由此我们建立了如下价值观:
- 个体和互动 高于 流程和工具
- 工作的软件 高于 详尽的文档
- 客户合作 高于 合同谈判
- 响应变化 高于 遵循计划
也就是说,尽管右项有其价值,但我们更重视左项的价值。
敏捷软件开发原则
- 对我们而言,最重要的是通过尽早和不断交付有价值的软件满足客户需要。
- 我们欢迎需求的变化,即使在开发后期。敏捷过程能够驾驭变化,保持客户的竞争优势。
- 经常交付可以工作的软件,从几星期到几个月,时间尺度越短越好。
- 业务人员和开发者应该在整个项目过程中始终朝夕在一起工作。
- 围绕斗志高昂的人进行软件开发,给开发者提供适宜的环境,满足他们的需要,并相信他们能够完成任务。
- 在开发小组中最有效率也最有效果的信息传达方式是面对面的交谈。
- 可以工作的软件是进度的主要度量标准。
- 敏捷过程提倡可持续开发。出资人、开发人员和用户应该总是维持不变的节奏。
- 对卓越技术与良好设计的不断追求将有助于提高敏捷性。
- 简单——尽可能减少工作量的艺术至关重要。
- 最好的架构、需求和设计都源自自我组织的团队。
- 每隔一定时间,团队都要总结如何更有效率,然后相应地调整自己的行为。