软件开发模型笔记(下篇)—— 敏捷开发模型/方法
# 敏捷开发
## 特点
### 以人为本
### 迭代、循序渐进
### 适用于小团队和小项目
## 敏捷开发宣言
### 1、最重要的是通过尽早和不断交付有价值的软件满足客户需要
### 2、即使在开发后期,也要拥抱变化。敏捷过程能够驾驭变化,保持客户的竞争优势
### 3、经常交付可以工作的软件,从几周到几个月,时间尺度越短越好
### 4、在整个项目中,业务人员和开发人员应该始终紧密合作
### 5、围绕斗志高昂的人进行软件开发,给开发者提供适宜的环境,满足他们的需要,并相信他们能够完成任务
### 6、在团队中,最有效率也是效果最好的沟通方式是面对面交流
### 7、可以工作的软件是进度的主要度量标准
### 8、提倡可持续开发。投资人、开发人员和用户应该保持固定的节奏
### 9、不断追求优秀的技术和良好的设计,有助于提高敏捷性
### 10、要简单,尽可能减少工作量。减少工作量的艺术是至关重要的。
### 11、最好的架构、需求和设计都来自于 自我组织的团队
### 12、团队要定期总结如何能够更有效率,然后相应地自我调整
## 极限编程(XP)
### 特点
– 轻量(敏捷)
– 高效
– 低风险
– 柔性
– 可预测
– 科学、充满乐趣的
### 对比其他方法的差别
– 1、在更短周期内,更早地提供具体、持续的反馈信息
– 2、迭代地进行计划编制,在最开始迅速生成一个总体计划,然后在整个项目开发过程中不断完善
– 3、依赖于自动测试程序来监控开发进度,并及早地捕获缺陷
– 4、依赖口头交流、测试和源程序进行沟通
– 5、倡导持续的、演化式的设计
– 6、依赖于开发团队内部的紧密协作
– 7、尽可能达到程序员短期利益和项目长期利益的平衡
### 四部分组成
– 价值观(四大价值观,XP的 基础和灵魂)
– 沟通:加强面对面的沟通
– 简单:不过度设计
– 反馈:及时反馈
– 勇气:接受变更的勇气
– 原则
– 实践
– 行为
### 12个关键实践
– 1、计划游戏
– 快速制定一份概要计划,然后随着业务细节展开不断完善。
– 2、小版本发布
– XP方法遵循”持续集成”思维,每次发布的版本要尽量小,且具有商业价值和值得发布
– 3、系统隐喻
– 4、简单设计
– 认为设计不应该在编码之前一次性完成
– 5、测试驱动
– 不能忽略测试工作,保证代码效率和质量
– 6、重构
– 目的是降低变化引起的风险,使得代码优化更容易
– 7、结对编程
– 8、集体代码所有制
– 团队每个成员都拥有对代码进行改进的权利,需要对全部代码负责。同时,代码谁破坏(修改后出问题)的由谁承担
– 9、持续集成
– 10、每周40小时工作制
– 加班最终会扼杀团队的积极性,导致项目走向失败。40小时不是一个绝对值,而是应该保证按照正常的时间进行工作
– 11、 现场客户
– 为了保证开发结果与客户预想接近,最重要的是将客户请到开发现场。用于保证客户负责业务决策,开发团队负责技术决策
– 12、编码标准
– 提供一个确保代码清晰,便于交流的指导方针
## 特征驱动开发(FDD)
### 一个迭代的开发模型
### 每一步都强调质量,不断交付可运行的软件,以很小的开发提供精确的项目进度和状态信息
### 6种关键角色(有些角色身份可重复)
– 1、项目经理:团队的保护屏障
– 2、首席架构设计师:负责系统架构的设计
– 3、开发经理:负责团队日常开发,解决开发中出现的技术问题和资源冲突
– 4、主程序员:带领小组完成特征的详细设计和构建工作
– 5、程序员:按照特征开发计划完成开发
– 6、领域专家:精通业务领域的人,可以是客户或者系统分析员。
### 最佳实践
– 领域对象建模
– 根据特征进行开发
– 类的个体所有
– 组成特征小组
– 审查⭐
– 定期构造
– 配置管理
– 结果可见性
## Scrum框架
### 特点
– 是一个增量、迭代的开发过程
– 明确定义了可重复的开发过程
– 整个开发过程由若干个短周期构成
### Backlog(整体需求)
– 用于管理产品需求
– 产品backlog是一个按照商业价值排序的需求列表,Scrum团队要先开发对客户具有更高价值的需求
### Sprint
– 每个短周期,称为一个Sprint
– 每个Sprint长度为1-4周(迭代周期)
### Sprint backlog(当前周期需要处理的任务清单)
– 根据从Backlog里面挑选的需求,在Sprint计划会议(站会)经过讨论、分析和估算,得到的任务列表
### Scrum的五个活动
– 产品待办事项列表梳理
– Sprint计划会议
– 包括两部分:1、决定在Sprint中需要完成哪些工作;2、决定这些工作如何完成
– 每日会议(站会)
– 用来确认团队成员的三种信息:1、上一个Scrum日程完成的内容;2、现在到下一个Scrum日程需要完成的内容;3、影响进展的阻碍因素有哪些
– 通常不超过15分钟,仅用于简要问题回答和澄清,不应该讨论其他话题
– Sprint评审会议
– Sprint结束时,团队和相关人员评审Sprint的产出。时长和Sprint周期时长成正比,周期如果是一周为1个小时
– 展示当前产品增量的情况,以及调整产品事项待办列表等
– Sprint回顾会议
– Sprint结束后,回顾与总结。时长同Sprint评审会议
### 五个价值观
– 承诺、专注、开放、尊重、勇气
## 水晶方法(Crystal)
### 特点
– 用最少的纪律约束,仍能成功的方法。在产出效率和易于运作上达到平衡
– 提倡”机动性”的方法,包含具有共性的核心元素,每个都含有独特的角色、过程模式、工作产品和实践
### 分类
– Crystal Clear(透明水晶方法,最常用,适用于6人以下小团队)
– 七个体系特征:1、经常交付;2、反思改进;3、渗透式交流;4、个人安全;5、焦点;6、与专家建立方便的联系;7、配有自动测试、配置管理和经常集成的功能的技术环境
– Crystal Yellow
– Crystal Orange
– Crystal Red
## ASD方法[Adaptive Software Development]
### 核心是三个非线性的、重叠的开发阶段
– 猜测
– 合作
– 学习
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/120951.html