敏捷开发(Agile Development)是目前众多大小互联网企业广泛采用或者尝试转型的一套提升工作效率和质量的方式,以适应IT行业快节奏带来的不确定性。
敏捷开发与瀑布开发的区别
敏捷开发是先将产品做出来,交付或者上线,在实际应用场景中弥补需求的不足,快速修复后发布新版本。
特点:可快速交付、迭代、以人为本、小版本
瀑布开发是传统的开发模式,源于传统工业,需要接受上一项的结果作为下一项的输入。
特点:没有迭代、注重文档、灵活性差
敏捷宣言
敏捷宣言揭示了更好的软件开发方法。我们认为:
个体和交互 胜过 过程和工具
可以工作的软件 胜过 面面俱到的文档
客户合作 胜过 合同谈判
响应变化 胜过 遵循计划
PS:前者比后者具有更大的价值
敏捷宗旨
零缺陷:当发生问题时,立即停下去修复。
开发与测试协同:测试人员融入项目的开发中,预防缺陷的发生。
迭代计划:不在一开始就制定大而全的计划,而是在不断迭代和需求发现中对计划进行不断调整。
敏捷实战三例
每日站立会议
在每天工作前,团队成员花上15分钟以内的时间,保持站立参加会议。
在会议期间,敏捷教练记录所有问题并跟踪。
每位成员依次针对以下三个主题发言:
1. 昨天做了什么?
2. 计划今天做什么?
3. 需要什么帮助以提高效率?
用户故事
从用户角度来考虑需要的功能,包含以下三元素:
1. 角色:谁来使用这个功能
2. 活动:功能是怎么样的,需要达到什么程度
3. 商业价值:这个功能最后能给角色带来怎样有益的商业价值
描述用户故事的格式:作为<角色>,我想要<活动>,以便于<商业价值>。
比如:作为一名程序员,我想要一个可以提醒我休息的功能,以便于缓解我的劳累。
看板
看板(Kanban)能将项目进度最大可视化,可以看到项目的瓶颈所在。并且能看出是谁拖慢了整体进度,以相互监督。一个简单的看板如下:
即将做 | 正在做 | 已完成 |
…… | …… | …… |
…… | …… | …… |