敏捷软件开发

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

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

敏捷联盟

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

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

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

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

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

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

原则

方法

极限编程

实践原则

测试

单元测试

验收测试

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

敏捷设计

拙劣设计的症状

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

Scrum模型

Sprint

角色

活动

工件

kanban

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

物理看板(信息辐射强)

kanban  Todo    [Create Documentation]    docs[Create Blog about the new diagram]  [In progress]    id6[Create renderer so that it works in all cases. We also add som extra text here for testing purposes. And some more just for the extra flare.]  id9[Ready for deploy]    id8[Design grammar]@{ assigned: 'knsv' }  id10[Ready for test]    id4[Create parsing tests]@{ ticket: MC-2038, assigned: 'K.Sveidqvist', priority: 'High' }    id66[last item]@{ priority: 'Very Low', assigned: 'knsv' }  id11[Done]    id5[define getData]    id2[Title of diagram is more than 100 chars when user duplicates diagram with 100 char]@{ ticket: MC-2036, priority: 'Very High'}    id3[Update DB function]@{ ticket: MC-2037, assigned: knsv, priority: 'High' }  id12[Can't reproduce]    id3[Weird flickering in Firefox]

使用

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

记事贴写什么?

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

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

需要限制每列中的卡片