《构建之法》笔记
第二章 个人技术和流程
第四章 两人合作
第六章 敏捷流程
前言
敏捷流程及其原则,Backlog、Burn-down、Sprint、Scrum方法论,各种软件开发方法论的优缺点,选择软件流程的根据
一、Scrum方法论
- 步骤一:找出完成产品需要做的事情——Product Backlog(积压的工作,待解决的问题)。对Backlog中的条目进行分析、细化、理清相互关系、估计工作量等工作。每一项工作的时间估计单位为“天”。
- 步骤二:决定当前的冲刺(Sprint)需要解决的事情——Sprint Backlog。整个产品的实现被划分为几个互相联系的冲刺,Product Backlog上的任务被进一步细化了,被分解为以小时为单位。
- 步骤三:冲刺。冲刺阶段,外部人士不能直接打扰团队成员,一切交流只能通过Scrum Master来完成,这以措施较好地平衡了“交流”和“集中注意力”的矛盾。任何需求的改变都留待冲刺结束后再讨论。 冲刺期间,团队成员通过“每日立会”进行面对面交流,依次报告:我昨天做了啥;我今天要做啥;我碰到了哪些问题;
燃尽图(Burn Down Chart):逐渐把一堆Backlog烧光,呈现向下趋势线条;
看板图(Kanban):把一堆任务从最初“待定”推动到“工作中”等各个状态直至“完成”。任务状态一目了然。[ps:jira里面的那个Kanban呗] - 第四步:得到软件的一个增量版本,发布给用户。然后在此基础上又进一步计划增量的新功能和改进。
二、敏捷(Agile)
1.含义
Agile(敏捷)是一股思潮,或者说是一种价值观,涵盖了好几种软件开发方法论,方法论又是建立在很多行之有效的最佳实际方法之上的。
2.敏捷的方法论和最佳实践
- FDD(Feature Driven Design)
- SCRUM
- XP 极限编程
最佳实践很多,例如TDD(Test Driven Development)、CI、Burn-down 、Sprint Backlog、
3. 都有哪些开发方法
- 敏捷(Agile)
- 里程碑式的开发(Plan-driven development)
- 形式化的软件开发方法(Formal Method)
都有其适用的条件,敏捷不是万能的。
总结