敏捷软件开发

敏捷开发以用户的需求进化为核心,采用迭代、循序渐进的方法进行软件开发。在敏捷开发中,软件项目在构建初期被切分成多个子项目,各个子项目的成果都经过测试,具备可视、可集成和可运行使用的特征。换言之,就是把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态。

应对模糊需求、快速变化需求的最佳方法

敏捷联盟

项目的关键因素是人 但是一个好过程并不能帮助项目成功

过多的文档比过少的文档更糟

成功的项目需要有序频繁的客户反馈

对于下两周 做好详细的计划

为下三个月做好粗略的计划

三个月以后的事 就做极为粗糙的计划

原则

方法

极限编程

实践原则

测试

单元测试

验收测试

针对每个特性编写测试脚本

敏捷设计

拙劣设计的症状

敏捷设计致力于保持系统设计在任何时间都尽可能简单 干净 富有表现力

设计模式

COMMAND 模式

interface Command{
  do();
  undo();
}

ACTIVE OBJECT 模式

while(commandListNotEmpty){
  getCommandAndExecute();
}

MONSTATE 模式

通过封装来使整个系统的某个对象以单一的形式展示

NULL OBJECT 模式

使用一个空对象来代替空指针

Scrum模型

Sprint

角色

活动

工件

kanban

渐进增量式过程改进方法学

物理看板(信息辐射强)

批注 2020-05-05 135610

使用

列非固定的,随时间空间变化而变化 可以根据此看到工作状态与潜在问题

记事贴写什么?

保证工作项的粒度粗细差别不大

降低前置时间(任务从开始到结束的时间)是一个追求目标

需要限制每列中的卡片