敏捷开发流行了很久,很多公司都有相应尝试。指导方向是明确的,然而实践的道路是曲折的。针对近3年的敏捷流程经验,做个小小总结。
1.Sprint周期:建议2-4周但并不局限,可以根据实际需要动态调整,以当前公司业务需求响应紧急度为依据。
2.Sprint Backlog:每一条需求应该符合story(用户故事)理念,即是一个明确的目标,完成后演示,产品可验收的。
3.从Sprint Backlog到迭代任务的拆分,需要经过brainstorm、iteration planning、estimate,确保在coding前的讨论中,团队成员的理解需要达成一致。任务拆分也同样遵循每个任务可测试验收。
4.任务的分工尽量遵循个人意愿,鼓励团队成员主动担责,特殊情况除外。
5.进入design阶段(架构、API、时序图、测试用例等)后可由具体任务负责人进行技术设计,团队集中评审,整个团队都需要清楚相关设计。
6.Coding阶段提倡TDD原则,即测试驱动开发,尽可能由开发人员完成自动化测试脚本,实现白盒测试。
7.开发时要求每个任务真正完成,即可直接验收的状态下再切换到其他任务。避免同时启动多个任务均处于process状态。存在依赖关系的任务可以通过调整迭代内优先级解决。
8.迭代内特殊情况,可协调分工,组内成员以合作完成迭代为共同目标,提倡互帮互助,即主动担责。
9.Scrum master在每日例会时,一定要把控例会内容和时间,遇到讨论问题的情况及时打断,拉回会议正题。尽量提高会议效率。
10.Sprint燃尽图每日都要关注,除个人完成度,重点要看迭代的整体完成情况。可通过JIRA配合查看此类数据。
11.利用工具完成每日例会的任务进度同步,例如纸质看板较慢,可以配合JIRA使用,通过JIRA建立任务的to-do,progress,done状态,每日例会时各成员直接拖动JIRA任务状态。
12.Sprint retrospect会议,每个人都要能参与发言。为提高会议效率,可提前通知准备。
13.尽可能缩短迭代与迭代之间的间隔,最好保持连续性。