【我的总结】Scrum

今天听了一个内部的分享,结合本身之前的经历,记录整理一下:工具

什么是Scrum排序

Scrum是一种迭代式增量软件开发过程,一般用于敏捷软件开发。Scrum在英语的意思是橄榄球里的争球。资源

虽然Scrum是为管理软件开发项目而开发的,它一样能够用于运行软件维护团队,或者做为计划管理方法。Scrum之间的合做称为“Scrum of Scrums”。开发

Scrum是一种系统而不是具体的过程。只要基于这套系统或者说原则,其具体实现能够是多样的。产品

Scrum中的角色it

Scrum当中的角色主要分为:io

  • Product Owner(PO):主要负责维护Product Backlog,相似产品经理的角色。Product Backlog相似于一个基于重要性排序的feature库。那么PO须要对真个产品线有足够的了解,才能正确的对不一样的feature进行排序。并且PO须要将feature拆分到足够小,而且定义的足够好。因此一般PO适合由有必定资历的人来担任。ast

  • Scrum Master:主要承担项目经理的角色。控制团队进度;带领团队进行Scrum实践;保护团队。保护团队有不少方面,好比:确保在一个Sprint内每一个feature的优先级不会发生变化。软件

  • Scrum Team:唔,干活的咩。采用一些敏捷方法仍是很好玩的。并且当团队采用Scrum的时候,有些东西能够自底向上完成。方法

  • Product Engineering Manager(PEM):唔,在哪里都有老大咩。

Sprint

Sprint就是一个开发周期。每一个开发周期从product backlog中选取合适的任务,而后你们一块儿开发。我的认为一个比较好的实践是:首先对任务进行拆分,并经过一个相对点数进行时间预估。而后组员依次根据重要性选择任务进行完成。当一项任务完成以后,再选择下一项完成。这样的好处是可以保证一我的在单位时间内相对专一。专一每每意味着高校。

一个比较好的经验就是:不要把对于项目预估的点数用做其余任何用途,特别是考核。一旦有了其余用途,点数每每将不可以继续保持其真实性。从而致使整个团队没法真实的预估项目进度。

Definition Of Done

其实这是一个很好的话题。什么叫作作完了一件事情:Code Ready?Release?Pass Test?每一个人都有不一样的定义,如何达到一个共识。

延伸一下,为何作这件事情。是想验证一个假设?想发布一个功能,从而改善产品?这件事情怎么算是成功?怎么算是失败?换句话说,如何判断是否继续投入资源,甚至砍掉这个功能。这些东西应该在一开始就定义好,而且一直坚持。

Action

我会尝试在本身的工做中引入Scrum。我并不认为这是一个须要全组都采用,不然就不能使用的模式。基于我对它的理解,我认为其关键点以下:

  • 任务的拆分与预估。把任务拆分红足够小、足够独立的部分。从而使得整个过程更加可控。这一点对于我来讲会是一个难点。刚开始的拆分和预估均可能会作得很烂。Practice makes perfect。只要保证全部的数据真实且完整,就行了。

  • Weekly Sprint & Daily Scrum。以周为单位计划工做,这样可以有一些buffer来完成较难的工做。天天回顾总结一下当前进度,可以帮助本身及时做出调整。是须要加加班;仍是须要经过一些方法来unblock本身;仍是就是预估错误了,须要delay或者cut off。

  • Definition Of Done。提早明确好Goal & Non-Goal。这样可让他人做出正确的预期,同时避免南辕北辙的故事。

  • 工具。我的以为One Note对于一我的来讲就够了。因此目前我会采用One Note来帮助我进行实践。

相关文章
相关标签/搜索