一、什么是敏捷开发?
1、敏捷开发是以用户的需求进化为核心,采取迭代、循序渐进的方式来
进行软件项目的开发。
2、即将项目切分为多个子项目,每个子项目单独发布,保证软件较早可用。
3、及时收集用户反馈,调整未发布的项目,满足用户的实际需要。
4、敏捷开发是一种思维。
二、敏捷开发框架
1、Scrum (橄榄球)
2、Kanban(看板)
3、XP(极限编程)
4、FDD(功能驱动开发)
5、水晶开发(Crystal Clear)
6、动态系统开发方法(DSDM)
三、Scrum (橄榄球)
1、来源:
Scrum源于橄榄球运动,橄榄球最重要的意义就是它的坚强不屈的精神和绝对的团结精神,橄榄球充满力量,也充满冲撞,每一次被撞倒,你需要再一次的站起来。无论什么你所做的一切都是为了为团队争得胜利争得荣誉。
2、定义:
Scrum是一个增量的、迭代的开发过程,在这个框架中,整个开发周期包括若干个小的迭代周期,每个小的迭代周期成为一个Sprint(Sprint:项目开发过程中最小的迭代周期),每个Sprint的周期建议为2-4周。在Scrum中,将产品Backlog(产品代办列表)按商业价值排出需求列表,在每个迭代中开发团队从产品Backlog中挑选最有价值的需求进行开发,实现完成后,产品推出市场,进入下一个迭代。
3、框架:3个角色、3个工件、5个事件、5个价值
-- 3个角色
产品负责人(Product Owner)
敏捷教练(Scrum Master)
开发团队(Team)
-- 3个工件
产品功能列表(Product Backlog)
冲刺列表(Sprint Backlog)
产品增量(Increment)
-- 5个事件
Sprint(Sprint本身是一个事件,包括了如下4个事件)
Sprint计划会议(Sprint Planning Meeting)
每日站会(Daily Scrum Meeting)
Sprint评审会议(Sprint Review Meeting)
Sprint回顾会议(Sprint Retrospective Meeting)
-- 5个价值
承诺– 愿意对目标做出承诺
专注– 把你的心思和能力都用到你承诺的工作上去
开放– Scrum 把项目中的一切开放给每个人看
尊重– 每个人都有他独特的背景和经验
勇气– 有勇气做出承诺,履行承诺,接受别人的尊重
4、流程:
1)产品负责人收集需求,转化为产品功能列表
2)启动迭代的计划会,评审产品功能列表,挑选优先级高的需求作为迭代任务
3)项目组成员完成迭代任务的开发、测试工作
4)迭代结束后,开评审会,评估当前迭代任务的完成情况
5)开反思会。总结迭代过程中的好的与不好的地方。
下一迭代,循环2-5步
5、Sprint分化
1)把组织分化成小组、跨功能、自我组织团队
2)把工作分化成细小的交付成果,安排人员负责需求清单以及跟据重要性排优先级别,由团队估算每个项目相对工量
3)把整个开发时间分成固定时长的短迭代(2-4周),在每个迭代后演示新增可发布功能
4)优化发布以及跟客户一起更新优先级别,基于每个迭代后发布的观察
5)优化过程,在每个迭代之后进行回顾
我们不是靠一个庞大的团队,花大量时间造出庞然大物,而是用小团队在短时间内
做出小块的东西来,在有规律的集成中组装出全貌。
6、Scrum Master考证
https://zhuanlan.zhihu.com/p/79221545
四、Kanban(看板)
1、来源:
Kanban一词来源于,日本的丰田制 造。最早为了解决,生产机器之间的协作生产问题,发明了“kanban”,是一种高效管理过程的新技术。
2、定义:
软件开发过程可以被看作是一条管道,特征请求进入一端,改进的软件从另一端出现。在管道内部,会有某种过程,从非正式的临时过程到高度正式的分阶段过程。
3、构成
组成: Backlog(原始需求)、Selected(被选中的需求)、Develop(开发阶段)、Deploy(部署阶段)、Live(上线阶段)
Develop 子阶段: Ongoing(进行中)、Done(已完成)
角色: 产品经理(红色)、开发人员(蓝色)、部署人员(绿色)。
4、实际工作中---- 物理看板
5、实际工作中---- 线上看板(软件工具)
6、看板工具
1)Worktitle
2)Trello
3)Kanboard
4)Wekan
5)Leangoo
6)Teambitio
7)youtrack
8)Mantis
9)JIRA
10)禅道
... ...
7、注重质量管理化的看板
卡片:标题、描述、优先级等信息
五、Scrum 和 Kanban 相同点
两者都符合精益和敏捷思考
两者使用"拉动式"安排日程
两者限制开发中工作数目
两者是透过透明度来驱动过程开进
两者集中提早及衡常的付运软件
两者基于自我组织团队
两者要求把工作细分
在两个情况下发布计划都是基于经验数据(速度/开发周期)持续优化
六、Scrum 和 Kanban 不同点
不同点 | Scrum | Kanban |
---|---|---|
周期 | 定期进行固定长度的冲刺(2-4周) | 持续流 |
交付 | 每个冲刺结束时 | 持续交付 |
角色 | 产品负责人,Scrum主管,开发团队 | 没有必要的角色 |
关键指标 | 速度 | 交货时间,周期时间 |
可更改性 | 团队不应在冲刺期间进行更改 | 随时可能发生变化 |
... | ... | ... |
七、扩展
1、燃尽图(burn down chart)
是用于表示剩余工作量的工作图表,由横轴(X)和纵轴(Y)组成,横轴表示时间,纵轴表示工作量。这种图表可以直观的预测何时工作将全部完成,常用于软件开发中的敏捷软件开发方式,也可以用于其他类型的工作流程监控。
在燃尽图中可能会注意到的一个问题是,实际工作线是否高于或低于理想工作线取决于原始时间估计的准确程度。这意味着如果团队不断高估时间要求,那么进度将始终提前出现。如果他们经常低估时间要求,他们总是会落后于时间表。通过将效率因子纳入刻录图表来纠正此问题。在项目的第一次迭代之后,可以重新计算效率因子,以允许在下一次迭代期间进行更准确的估计。一些模板会在项目进展时自动计算效率。这可用于识别始终存在不准确估计的区域/阶段。
欢迎来到testingpai.com!
注册 关于