在软件开发中很常听到 SCRUM 这个字,本身是待在软件业当PM公司没有跑到非常正规的 SCRUM ,因此上网查了一下 SCRUM 的相关内容,今天透过这篇来和大家分享。
SCRUM 到底是什麽?
如同标题是软件开发的一种方法,之前其实有和在硬体产业的PM讨论过,到底硬体公司是否适合跑 SCRUM,但其实硬体产业有些难度,原因是 SCRUM 的精神是透过高效的方式,提供有质量的产出,但硬体的开发本身就受到一些限制存在无法高效,因此在硬体产业中导入 SCRUM 会有很大的门槛。
核心概念
-
强调 经验主义(Empiricism)和 精实思想(Lean Thinking)
- 经验主义(Empiricism):知识的累计是透过经验和体察而来的。
- 精实思想(Lean Thinking):减少不必要的浪费。
-
透过迭代和增量的方式进行优化和控制风险。
角色
-
产品负责人(Product Owner): 主导产品相关事务的人,包含使用情境、使用需求、上线时间等,并且协助做产品的优先级排序。
-
敏捷教练(Scrum Master): 领导团队按照 SCRUM 的的方法进行软件开发,若是中间有遇到问题会从旁协助。
-
开发团队(Developers): 协助把产品做出来的人,团队的组成是跨职能的,因此组成的成员包含产品经理、设计师、工程师、测试工程师。
产出内容
-
产品待办清单(Product Backlog): 此清单包含需求的待办清单,还有工程端提出来的待办清单,因为在一次 Sprint 里面团队只会为了一个目标做冲刺,因此这两个待办清单要一起做排序。
-
冲刺清单(Sprint Backlog): 此次 Sprint 需要做到的内容有哪些。
-
燃尽图(Burndown Chart): 此次 Sprint 执行的阶段到哪边,还剩下多少时间能够冲刺。
会议
-
冲刺计画会议(Sprint Planning Meeting): 此会议就是一个 Sprint 启动会议,会招集所有团队成员,由产品经理协助和大家说明此次 Sprint 要交付的价值是什麽,使用情境长怎麽样,每个情境的优先级排序,往下拆分此次 Sprint 的任务拆分。
-
每日站立会议(Daily Standup Meeting): 每天早上都会进行这个站立的会议,每个人会在 3 分钟内快速分享一下以下的内容,让团队的所有成员知道目前 Sprint 的进度到了哪里是否在进度上。
-
昨天做了什麽
-
今天预计会做什麽
-
目前遇到了什麽问题或是有需要协助的地方
-
成果检视会议(Review Meeting): 通常在 Sprint 的最後一天会举办此会议,主要是展示这次 Sprint 产出的内容,同时确认是否和一开始 冲刺计画会议(Sprint Planning Meeting)里面的内容一样。
-
回顾会议(Retrospective Meeting): 此会议就是一个 Sprint 收尾会议,会和团队一起回顾此次 Sprint 的整个执行过程,帮助团队在下次 Sprint 可以越做越好,回顾的内容会有以下几项:
-
做得不错的地方: 在此次 Sprint 的过程中,是否有发现哪边执行的很棒,这些很棒的地方要一起带到往後的 Sprint 里面继续保持。
-
待改善的地方: 在此次 Sprint 的过程中,是否有发现哪边执行的不太顺利有点卡卡的,下一个 Sprint 要想办法改善的地方,要注意 待改善的部分只针对事件不针对人。
-
下次 Sprint 可以先改善的地方: 前向的待改善的地方有可能很多项,但其实在软件开发的过程中,很难一次改善所有的项目,因此需要先针对所有项目进行优先级排序,排序完後挑选 3 个项目要带到下一个 Sprint 里作改善,很有可能待改善的项目只有列出看到的问题是什麽,因此团队还要再进一不讨论可以改善的解法是什麽,这样才是完成一个回顾会议。
希望大家还喜欢今天分享的内容,因为公司内部没有跑到很正规的 SCRUM ,也很好奇大家的公司是否有跑 SCRUM ,非常欢迎大家在底下分享自身公司的经验。