猎豹行动读书笔记

传统模式的问题

瀑布模型对业务部门的痛点

  1. 逾期交付
  2. 超支
  3. 看到成品时项目已经接近尾声
  4. 缺乏透明度,不知道具体进度
  5. 很难变更需求
  6. 最终开发的产品不是他们想要的
  7. 延误战机,丢失机场机会

对IT部门的痛点:

  1. 过度承诺
  2. 难以一次性消化所有需求
  3. 害怕需求变更
  4. 不断重做
  5. 后期压力大
  6. 加班

分析造成这些痛点的原因:一个项目开始时,业务部门只会给IT部门需求概要和期望的交付日期,IT部门需要做评估和计划。而在项目开始的时候,只有预算和目标交付时间时确定的,还有其他因素都是不确定的,例如范围与具体需求,可能的需求变更,人员中途休假和离职,对现有系统的影响,服务器环境的搭建(需要什么配置,何时能到位)等。

瀑布模型的开发过程一般有需求分析,设计,编程,测试和发布几个阶段,每个阶段一环扣一环,设计,编程,测试都依赖于完整且稳定的需求,因此需求分析非常重要,但往往花大了大量的时间挖掘需求,却压缩了开发时间,形成矛盾。用户在看到成品前,可能都无法确定自己真正想要的是什么,需求变化是不可避免的,牵一发而动全身,导致IT人员普遍不喜欢需求变更,所以简单的说瀑布模型适合确定性非常搞的项目,但这样的项目凤毛麟角。

什么是敏捷开发

敏捷所有的改变都是为了一件事,快速反馈!

敏捷开发有很多方法论,其中比较流行的有Scrum,极限编程,看板方法。
Scrum中的概念:
Product Owner(PO):用户/客户/业务的代言人,就是可以做出业务决策的人,在Scrum中,PO的角色非常重要,一个成功的敏捷项目背后一定有一个好的PO。
Scrum Master:熟悉Scrum流程的人,指导和确保团队已Scrum的方式进行交付
Sprint: 迭代,一个项目的交付由多个迭代构成。
User Story:用户故事,具有业务价值的交付单位,一个项目是由很多用户故事构成的。
Product Backlog:可以理解位项目的待办,由用户故事构成
Sprint Backlog: Sprint待办,确定一个迭代中由哪些用户故事,确定本次迭代的开发范围

每个项目的交付由多个迭代构成,迭代的周期是固定的,通常是2-4个星期,不建议超过4个星期。

如何启动敏捷开发,Scrum开发流程:

  • 在每个Sprint开始的时候,PO和IT团队一起开Sprint计划会议,PO 对 Product Backlog 中的用户故事进行排序,选出最重要的用户故事。IT团队会对这些用户故事进行估算。
  • 接下来IT团队围绕Sprint Backlog中的用户故事进行开发。IT团队每天组织一次站会,所有成员聚在一起,每个成员说一下“昨天做了什么,今天会做什么,昨天遇到了什么问题”,这是为了让整个团队了解进度,也是为了尽早地暴露问题并及时解决。一个问题越早解决成本越低。由于站会每天都要发生,因此这个会议建议控制在15~20分钟。团队规模也有要求,建议团队人数控制在7个人以内。如果项目比较大型,应该考虑把大型团队拆分成若干个小团队。小团队的沟通效率也远远比大型团队高。
  • 在Sprint结束的时候,PO和IT团队又聚在一起开评审会议,IT团队向PO展示这个Sprint的交付,PO有任何反馈,甚至编程都可以定义成新的用户故事放到Product Backlog中重新排队,这也是敏捷应对需求变化的方法。这样缩短了反馈周期,可以帮助双方及时调整项目的方向,确保最终交付的正确性。
  • IT团队也可以在这个时候总结下这个迭代中哪些地方做的好,哪些地方可以做的更好,形成持续改善的机制。

敏捷宣言

  • 个体的交互胜于过程与工具
  • 可工作的软件胜于面面俱到的文档
  • 与客户的协作甚于基于合同的谈判
  • 短迭代开发,让PO更快,更早的看到成品,给与反馈
  • 每日站会,每天都能看到进度和阻碍
  • 回顾会议,每个迭代都要反思改进,形成持续改善的机制

实施敏捷开发的好处

对业务部门:

  1. 不再需要一次性解释所有的需求
  2. 可以随时提出需求变更
  3. 进度透明
  4. 确保最重要的需求能在目标交付日期获得
  5. 确保得到正确的产品

对IT部门:

  1. 不再需要承诺一个未必能实现的计划
  2. 更早的开工和交付
  3. 为当前迭代进行更精确的计划
  4. 适应需求变化
  5. 适应不确定性
  6. 开发正确的产品
  7. 与业务人员的争执更少

敏捷与Devops有什么关联

敏捷打通了业务、开发、测试之间的墙,通过更紧密的沟通和交互实现更频繁的交付,然而开发团队和运维团队之间还有一堵墙,开发团队希望持续交付,运维团队希望稳定,DevOps就是要打破这最后一堵墙,实现开发与运维一体化和端对端的持续交付。

疑问

Q: 假如项目在开始的时候,客户一定要我们承诺什么时候能交付,这个怎么解决?
A: 敏捷自己有一套估算和计划方法

工具

JIRA: 项目与事务跟踪工具,被广泛应用于缺陷跟踪,客户服务,需求收集,敏捷管理


猎豹行动读书笔记
https://blog.aalmix.com/2020/10/01/猎豹行动读书笔记/
作者
aalmix
发布于
2020年10月1日
许可协议