1、概论
敏捷开发,其实道理很简单,但是太多的事情是道理简单却做不到。
敏捷开发(Agile)的核心是去中心化,扁平化结构,拥抱变化,习惯不确定性,当然,还有最重要的迭代。
2、三种角色
在上面这张图中可以看到,在Scrum中有三种角色,产品负责人(scrum owner)、Scrum master和menbers。
产品负责人在某种意义上,就是一个足球教练。在敏捷开发的思想中,产品负责人做出的干预越少越好,当然,在大方向错误的时候,需要跳出来cancel一些事情,一面团队最后变得像癌细胞一样不可控制。
而scrum master就是一个team的leader,但是这个leader其实并没有那么多的权利,更多的是和上层沟通,组织team的重要会议,如此而已。
3、Backlog
在一个Scrum项目中,首先是制定product backlog,这就像是一个长期目标,颗粒度比较大。每一个Sprint的开始从Product backlog中选择需要在当期Sprint中完成的任务,然后分解为Sprint backlog,这次分解就是一个颗粒度的细化。
任务的划分就是这么两级,很灵活,而且随时可控。
4、Scrum的会议
关于Scrum的会议也是有特色。
每个Sprint开始必然需要开会,目标是计划这一次的Sprint,每一个menbers选择自己负责的backlog;每天需要固定时间开站立会,目的是大家交流工作,提出问题,了解全组的当前工作情况;然后就是评审会议,这个会议的目的是展示本次Sprint的成果,只展示成果,而不展现技术细节;最后是回顾会议,这是一个对过去总结,对当前认识,对未来设想的回忆。某种意义上们十分重要。
每个会议的目的单一,目标明确。
5、Tools&thoughts
当然,还有跟产品Backlog有关的会议,这个会议则一般是由Scrum Master和上一层的人员参加。 其实所谓敏捷开发,所谓Scrum说白了就是简化了、平面化、去中心化了的IT项目管理。 在整个管理的过程中,还有几个重要的特点以及一些工具、方法。 a.在项目开始前,大家都要先沟通好沟通的方法,也就是统一信息传达的渠道。 b.如何评判story point:story point就是工作量,通常单位是“人天”,就是需要多少个一人一天的工作量。 c.买土豆的两个员工的思考:这个故事,大家都听过,积极的员工可以问好价格,把出售土豆的人带回来;而另外一个则只会告诉老板,市场上有土豆。这个故事本意是要告诉我们,工作中应该多一些积极性,但是,从agile的角度来看,这个积极的员工做的有点多了,因为他付出了成本(时间,公司信誉),如果目标改变了,这些都将是浪费。 d.团队自我管理的同时要衡量上层领导的感受,给老板一个scrum的账号,让他能看到所有menber当前的工作,让他有纵观全局的感觉,或者说错觉。 e.高度可视化:Scrum的一个特点就是高度可视化,也就是上面说的透明。团队中的每一个人都可以看到其他人的工作状况,于是会赶进度,以免自己拖后腿。 f.planning poker:这是一个评价spriint中backlog所需花费时间的方法。每个人都把认为需要的时间写在卡片上,然后出牌。然后选出最大的和最小的,分别说明理由。接下来继续出牌,直到大家的时间评估都大致相同。这样的方法可以避免群体决策的错误和个体决策的偏见。 g.燃尽图陷阱:燃尽图在某种意义上有传统管理方式的KPI的作用,明白KPI陷阱的想必对燃尽图陷阱也是可以理解。工作、生活中很多事情都是不能看单一指标的。指标如果比较单一,那么无论多么科学,都只能作为参考,因为可以造假,无论有意无意。 6、个人管理的Scrum理念 关于Scrum大致就是这么多的感悟和理解。其实Agile这一套完全可以用于自我管理。
譬如粗颗粒任务和细颗粒任务并行的方式,就是长期目标和短期目标并行的自我管理方式。我们把自己想做的事情罗列出来,成为一张长期目标的backlog,然后在每一个Sprint,可以是一周为单位。
在一周开始,选择最迫切、重要的事情,来分割。然后在一个Sprint结束之后,反思自己任务完成的情况。
同时,把自己的任务可视化,虽然只有自己看到,但是可视化的视觉效果本来就是一种监督。